제목 : Federated Learning - Challenges, methods, and future directions
저자 : Tian Li, Anit Kumar Sahu, Ameet Talwalkar, and Virginia Smith
이번에는 Surveys of related and current work부터 논문 리뷰 시작
연합학습의 현재 연구들은 어떻게 진행되고 있을까
알다시피 연합 학습이란 각 디바이스의 privacy를 보존하는 동시에 대규모의 머신러닝을 돌리는 것.
하지만 여러 한계점이 아직까지 존재하고, 이것을 해결해야하는 것에 초점을 둬야 한다.
이 섹션에선 Introduction에서 소개했던 연합학습의 과제를 더 구체적으로 살펴보도록 하자.
1] Communication Efficiency
클라이언트에서 서버에게 데이터를 전송할 때, 통신 효율을 높히는 방법은?
1. 로컬 업데이트
한 번에 여러 데이터를 처리하기 위해서 평소 하는 방법은 바로 '미니 배치 최적화'
지금까지 자주 쓰이는 방법이며, input으로 들어오는 데이터를 하나씩 처리하지 않고 특정 숫자 N을 정해 N개의 데이터를 동시에 처리하는 방법.
"하지만 미니 배치 최적화는 분산 데이터 처리를 최대한 활용할 수 있는 통신-계산 트레이드오프에 유연하게 대처하는 데 한계가 있다." (뭔소리지?)
-> 이유를 찾아보니..
(1) 클라이언트에서 미니 배치 후 전송하는 모델의 파라미터의 크기가 큰 경우 네트워크 대역폭을 많이 차지할 수 있다. (따라서 미니 배치는 연합 학습에서 단점이 될 수 있다는 것이고)
(2) 연합 학습에서는 서버와 클라이언트 간 통신과 계산을 조정해야하는데, 미니 배치를 사용할거면 미니 배치 크기를 결정해야 한다. 만약 더 작은 미니 배치를 사용하면 통신의 빈도가 높아지는 단점이 존재하고, 더 큰 미니 배치를 사용할 경우 클라이언트 장치의 계산 부담이 증가할 수가 있다. 따라서 최적의 설정을 찾는 것이 힘들어진다.
(결국 미니 배치 사이즈를 정하는 것은.. 엄청 어려운 일이라는 것.)
=> 따라서 제안된 내용은, "로컬 업데이트"라는 것이다.
로컬 업데이트란, 변수를 로컬(클라이언트)에서 계산한 다음 중앙에서 적용하는 것이 아닌,
각 통신 라운드에서 각 머신에 병렬로 적용할 수 있도록 하는 것!
아래 그림을 살펴보면,

(a)는 고전적인 방법, (b)는 로컬 업데이트를 사용했을 때의 방법을 직관적으로 표시한 것인데,
data handling -> parameter sending -> data handling -> ... 이 방법이 아니라
그냥 최종적인 parameter을 서버에게 전송하는 것.
설명은 되게 장황하지만 실로 보면 미니 배치를 통신에 적용시킨 것이다.
근데 이 방법은 클라이언트에 computational load를 주지 않을까 싶은디
뭐.. 어찌됐든 그림으로만 봐도 굉장히 효율적이라는 것을 알 수 있다.
따라서, 연합 학습에선 유연한 로컬 업데이트 + 통신에서의 낮은 클라이언트 참여를 통해서 최적화를 하는 방법이 해결책이 됐다고 한다.
2. 압축 방식
로컬 업데이트 방식은 위에서 살펴봤듯이 클라이언트와 서버간 통신 라운드 수를 줄일 수 있다.
하지만 여기에 스파스화(Sparsification) 및 양자화(Quantization) 같은 모델 압축 방식은 각 라운드에서 통신되는 메시지의 크기를 줄일 수 있다고 한다.
(그렇다면, 스파스화와 양자화는 로컬 업데이트에 더불어 모델을 압축하는 방식이라고 볼 수 있겠다. 그렇다면 통신 라운드도 줄임과 동시에 통신할 때 송수신되는 데이터의 크기를 줄일 수 있다! 네트워크가 꽤나 안정화 될 수 있겠다.)
궁금해서 스파스화와 양자화를 찾아봤는데,,
~ 스파스화란?
우리가 모델을 만들면 그 모델은 가중치와 같은 여러 parameter로 정의가 될텐데, 그 가중치들 중에서 0에 가까운 값들을 제거하여 모델을 희소하게 만드는, sparse하게 만드는 기법이라고 한다.
이렇게 모델을 간단하게 만들게 되면 서버로 전송할 모델 파라미터 중에서 실제로 유의미한 값이 존재하는 비율이 높아지고, 그 중요한 값들만을 전달하게 됨으로서 훨씬 적은 데이터만을 보내게 된다.
(참조한 페이지 : https://www.tutorialspoint.com/what-is-sparsification)
~ 양자화란?
모델의 가중치와 활성화 함수 값을 더 적은 비트로 표현하는 기법.
이전 통신공학 과목에서 신호를 보낼 때 양자화 하는 것을 배웠다. 만약 -2,-1,0,1,2 5개 중 하나의 값을 가진 데이터라면, 양자화를 통해 2^3의 비트로 전송하는 방법이다.
(아래 그림은 신호를 binary code로 양자화 하는 방법)

이런 방법과 마찬가지로 양자화를 모델에 적용하면, 일반적인 딥러닝 모델은 32비트 또는 64비트의 부동소수점 숫자로 가중치와 활성화 값을 표현하지만, 양자화를 통해 이를 더 작은 비트로 표현할 수 있게 된다.
(예를 들어 32비트 부동소수점 값 -> 8비트 또는 4비트 정수로 양자화)
이렇게 가중치와 활성화 값을 더 작은 비트로 표현하면 모델의 크기가 줄어들며, 통신 시에 전송되는 메시지의 크기를 크게 감소시킬 수 있게 된다.
아무튼, 스파스화와 양자화 같은 모델 압축 방식은 연합 훈련과 같은 분산 학습에서 통신 비용을 줄이고, 클라이언트 장치와 중앙 서버 간의 효율적인 상호작용을 지원하는데 유용하다고 한다.
3. 분산형 훈련
연합 학습에서는 스타 네트워크가 주요 통신 topology라고 한다. (전공 지식이 이렇게나 많이 도움이 될 줄이야..)

(위 그림은 wired ethernet에서의 star topology이지만, 해당 논문에선 switch or hub가 서버의 역할이고, 각 밑의 컴퓨터 같은 클라이언트들은 해당 서버와 wireless하게 이어진 그림일 것이다)
반면 분산형 toplogy는 아래 그림과 같을 것이다.

이렇게 (a)가 아닌 (b)와 같은 분산형 토폴로지는 디바이스가 이웃 디바이스와만 통신을 하는 형태이다.
데이터센터 환경에서는 대역폭이 낮거나, 지연시간이 긴 네트워크에서는 탈중앙화 훈련이 중앙화 훈련보다 더 빠른 것으로 입증되었다고 한다. (이에 대한 논문은 어디 없나..)
아무튼 연합학습에서 분산형 알고리즘은 이론적으로 중앙 서버의 높은 통신 비용을 줄일 수 있다고 한다.
하지만 이런 연구에서도 아직까지 선형 모델로 제한되거나 모든 디바이스의 참여를 가정한다고 한다.
2] System Heterogeneity
연합학습 환경에선 디바이스의 하드웨어, 네트워크 연결 및 배터리 전원이 다를 수 있으므로 네트워크 전반의 시스템 특성에 상당한 변동성이 존재한다. (-> 이를 heterogeneity, '이질성' 이라고 한다.)
기존 연구에선 많이 디바이스의 모든 참여를 가정했는데, 사실을 모두 참여를 가정할 수 없다는 뜻이다.
논문에선 이 한계에 대해 어떻게 처리할지 총 세 가지로 소개하고 있다.
1) 비동기 통신
idea : 동기화 없이 독립적으로 실행하는 작업자들. // 클라이언트끼리 동기화하지말고 서버에 파라미터를 전송
2) 액티브 샘플링
idea : 각 통신 라운드에서 참여하는 디바이스를 능동적으로 선택하자.
-> 능동 선택하는 알고리즘이 어떨까? 궁금해진다.
-> 하지만.. wireless network에선 디바이스가 붙었다 사라졌다 하지 않는가? 그건 어떻게 처리했는지 궁금.
3) 내결함성
idea : 비잔틴 장애가 일어나면, 분산 시스템에서 오류 감지와 오류 복구, 그리고 합의 알고리즘을 통해서 파라미터의 신뢰성과 안정성을 확보해야 한다.
비잔틴 장애(Byzantine Fault)란 컴퓨터 시스템 또는 네트워크에서 장애가 발생한 노드나 요소가 임의의 비합리적인 방식으로 동작하여 시스템이나 네트워크 동작에 문제를 발생시키는 문제이다. (특히 분산 시스템에서 이러한 장애에 취약해진다.)
비잔틴 장애는 장애가 발생한 노드가 다른 노드들과 서로 다른 정보를 전달하거나, 정보를 왜곡하거나, 아예 응답을 하지 않는 등의 동작을 할 수 있다. 이런 비합리적인 동작은 시스템의 신뢰성과 안정성을 저해할 수 있으며, 특히 분산된 환경에서 일어날 경우, 네트워크 상에서 데이터 무결성 문제와 같은 심각한 문제를 초래할 수 있다.
그리하여, FedAvg에서와 같이 장치 오류를 그냥 평균때려서 무시할 수도 있는데, 만약 실패한 장치에서 어떤 특정한 파라미터가 포함된 경우 장치 샘플링 체계에 편향이 발생할 수도 있다.
(FedAvg와 같이 오류를 무시하는 것은 정답이 아니라는 내용 -- 스노우볼이 될 수도 있다.)
그래서 FedProx라는 방법은 선택된 디바이스가 기본 시스템 제약 조건을 준수하는 부분 작업을 수행하고 근거리 용어롤 통해 서로 부분 업데이트를 안전하게 통합하는 방법인데.. 이것도 여전히 오류가 많은 것은 사실이다. (이부분 이해하기 너무 어려워 ㅠ)
오늘은 연합학습에서 Communication Efficiency와 system heterogeneity를 위해서 진행된 연구들과 방법들에 대해 알아보았다.
아직까지 Statistical heterogeneity와 privacy secure 파트가 남아있긴 한데, 내일 마저 보도록 하자.
+ 논문 리뷰하는 거 생각보다 시간이 엄청 걸리는 것을 처음 알게됐다. 하지만 계속 읽다보면 전에 배웠던 전공 지식이 아하 하고 떠오를 때도 있어서 그럴 땐 짜릿하긴 함. 하지만.. 내용이 어려운건 무시 못하는 것 같다.
'AI' 카테고리의 다른 글
| 연합 학습(Federated Learning) (1): Introduction (0) | 2026.06.04 |
|---|---|
| 머신러닝에서의 Causality(인과) (0) | 2026.06.04 |
| 머신러닝에서의 Correlation (상관) (0) | 2026.06.04 |
| 머신러닝에서의 Correlation(상관) (0) | 2026.06.04 |
| GPU 분산 학습 - DDP (Distributed Data Parallel) (0) | 2026.06.04 |