1. 개요[편집]
| 연합 학습 Federated Learning | |
|---|---|
| 기본 알고리즘 | FedAvg (McMahan et al., 2017) |
| 움직이는 것 | 데이터가 아니라 모형 파라미터 |
| 병목 | 계산이 아니라 통신 라운드 수 |
| 최대 난제 | 비-IID 자료에서의 클라이언트 드리프트 |
| 대표 처방 | FedProx(근접항) · SCAFFOLD(제어변량) |
| 프라이버시 | 보안 집계 + 차등 프라이버시 |
| 두 세계 | cross-device(10⁶대) 대 cross-silo(수~수십 기관) |
연합 학습(federated learning)은 원자료를 한곳에 모으지 않고, 각 참여자가 자기 데이터로 로컬 학습을 수행한 뒤 모형 갱신량만 중앙에 보내 평균 내는 분산 학습 패러다임이다. 데이터가 서버로 오는 대신 모형이 기기로 간다.
동기는 실무적이다. 스마트폰 키보드의 다음 단어 예측을 잘하려면 사용자가 실제로 친 문장이 필요한데, 그걸 서버로 업로드하는 것은 프라이버시·규제·대역폭 어느 쪽으로 봐도 곤란하다. 병원 간 공동 모형도 마찬가지로 환자 기록을 옮기는 순간 법률 문제가 된다. 구글이 2016~17년에 제안한 답이 **“데이터는 그 자리에, 모형만 순회”**였다.1
핵심은 이것이 그냥 분산 확률적 경사하강법이 아니라는 점이다. 데이터센터의 데이터 병렬 학습은 (a) 노드마다 데이터가 무작위 분할이라 동질적이고 (b) 노드가 항상 살아 있고 (c) 대역폭이 넉넉하다. 연합 학습은 셋 다 깨진다. 그래서 알고리즘·시스템·보안이 한꺼번에 얽힌 별개의 문제로 자란다.
2. FedAvg[편집]
목적함수는 클라이언트별 손실의 가중합이다.
라운드 에서 서버가 하는 일은 세 줄이다.
- 표본추출 — 전체 개 클라이언트 중 비율 만큼( 개)을 무작위로 고르고 현재 모형 를 내려보낸다.
- 로컬 갱신 — 선택된 각 클라이언트가 자기 데이터로 에포크 동안 배치 크기 의 SGD를 돌려 을 만든다.
- 가중평균 — 서버가 로 합친다.
, (전체 배치)로 두면 이건 그냥 분산 경사하강법 한 스텝이다. FedAvg의 실질적 기여는 를 키워 로컬에서 여러 스텝을 몰아 돌리는 것이다. 같은 정확도에 도달하는 데 필요한 통신 라운드가 원 논문 실험에서 10~100배 줄었다. 클라이언트의 CPU 시간은 어차피 사용자가 폰을 충전기에 꽂아둔 밤에 공짜로 나오지만, 업링크 한 번은 비싸기 때문이다.
파라미터 의 역할을 정리하면 이렇다.
| 손잡이 | 키우면 | 대가 |
|---|---|---|
| 로컬 에포크 E | 라운드 수 감소 | 클라이언트 드리프트 심화 |
| 배치 크기 B | 로컬 잡음 감소 | 로컬 스텝 수 감소 |
| 참여 비율 C | 집계 분산 감소 | 라운드당 지연·낙오자 증가 |
를 키우는 효과가 생각보다 빨리 포화된다는 것이 실험적 관찰이다. 라운드당 수백 대 정도면 평균의 분산은 충분히 줄고, 그 이상은 낙오자(straggler) 대기 시간만 늘린다.
3. 비-IID와 클라이언트 드리프트[편집]
이론적으로 가장 골치 아픈 부분이다. 사용자마다 쓰는 단어가 다르고 병원마다 환자군이 다르다. 즉 의 최소점 들이 전역 최소점 와 다른 곳에 있다. 이 상태에서 로컬 스텝을 에포크나 돌리면 각 클라이언트는 자기 최소점 쪽으로 성큼성큼 걸어간다. 그것들을 평균 내면 어떻게 되는가?
평균이 전역해가 아니다. 이것이 클라이언트 드리프트(client drift)다. 결과적으로 FedAvg는 이질성이 크고 가 크면 전역 최적점이 아닌 지점 근방에서 맴돌며, 학습률을 줄이지 않는 한 그 편차가 사라지지 않는다. “로컬 스텝을 늘려 통신을 아낀다”는 FedAvg의 핵심 아이디어가 바로 그 자리에서 자기 발등을 찍는 구조다.
처방은 두 갈래다.
FedProx — 로컬 문제에 근접항을 건다. 로컬 목적을 다음으로 바꾼다.
전역 모형에서 멀리 못 가게 묶어 두는 것이다. 사실상 근접점 알고리즘의 로컬 버전이고, 가 크면 드리프트가 줄지만 진행도 느려진다. 부수 효과가 하나 더 있는데, 목적함수가 강볼록해져서 로컬 스텝 수가 클라이언트마다 달라도 되는 유연성이 생긴다. 느린 기기가 절반만 돌고 돌아와도 버리지 않고 쓸 수 있다는 뜻이며, 실무에서는 이쪽이 더 실질적인 이득인 경우가 많다.
SCAFFOLD — 제어변량으로 드리프트를 상쇄한다. 서버는 전역 제어변량 를, 각 클라이언트는 로컬 제어변량 를 들고 다닌다. 로컬 갱신을
로 바꾸면, 괄호 안은 “내 로컬 경사에서 내 편향을 빼고 전역 방향을 더한” 것이 된다. , 로 유지되므로 보정항이 로컬 방향과 전역 방향의 차이를 정확히 상쇄한다. 분산감소 SGD(SVRG 계열)의 아이디어를 클라이언트 축으로 옮긴 셈이다. 대가는 정직하다. 클라이언트가 상태를 들고 있어야 하고(다음 참여 때까지 를 보관), 라운드마다 파라미터와 제어변량을 함께 주고받아 통신량이 2배가 된다. 그래서 SCAFFOLD는 상태 유지가 가능한 cross-silo 쪽에 잘 맞고, 한 사용자가 평생 한두 번 참여할까 말까 한 cross-device에서는 가 대부분 낡아 있어 이점이 줄어든다.
이 밖에도 클라이언트마다 로컬 스텝 수가 달라 생기는 목적함수 왜곡을 정규화로 고치는 FedNova, 서버 쪽 갱신에 모멘텀·Adam을 얹는 FedOpt 계열이 있다. 방향은 다 같다 — 평균을 그냥 믿지 않는다.
4. 통신이 병목이라는 시스템 관점[편집]
수치최적화 습관대로 “반복 횟수”를 세면 연합 학습의 비용 구조를 완전히 잘못 읽는다. 여기서 세야 할 것은 라운드 수이고, 라운드 하나의 벽시계 시간은 대략 이렇게 결정된다.
- 업링크 비대칭. 가정용·모바일 회선은 업로드가 다운로드보다 훨씬 느리다. 모형을 내려받는 시간보다 갱신을 올리는 시간이 지배적이다.
- 낙오자. 라운드는 가장 느린 참여자를 기다린다. 실무에서는 필요 수보다 넉넉히 뽑아 먼저 도착한 것만 쓰고 나머지는 버린다(over-selection).
- 가용성 편향. 폰은 충전 중이고 와이파이에 붙어 있고 유휴일 때만 참여한다. 그 결과 참여 분포가 시간대·지역·기기 등급에 따라 편향되며, 이건 통계적 편향으로 그대로 넘어온다. 알고리즘 논문이 가정하는 “균등 무작위 표본추출”이 현장에서 깨지는 지점이다.
- 갱신 압축. 양자화(1비트·부호 SGD), 상위- 희소화, 저계수 분해, 스케치. 대개 오차 피드백(error feedback)을 함께 써야 정확도가 유지된다. 지식 증류로 파라미터 대신 예측만 주고받는 계열도 있다.
정리하면 연합 학습의 성능 지표는 정확도-반복 곡선이 아니라 정확도-업링크 바이트 곡선이다. 이 관점에서 보면 로컬 스텝을 늘리는 것과 갱신을 압축하는 것은 같은 목표를 향한 두 축이고, 둘 다 정확도를 조금씩 팔아 통신을 산다.
한편 문제 구조 자체는 합의 최적화(consensus optimization)와 같아서, 서버 없이 이웃끼리만 평균 내는 분산화 변형이나 교대방향 승수법 기반 정식화도 자연스럽게 나온다. 실제로 cross-silo 환경에서는 참여 기관 수가 적고 회선이 좋아서 ADMM 계열이 실용적인 선택지가 된다.
5. 프라이버시는 공짜로 오지 않는다[편집]
“원자료를 안 보낸다”는 것과 “프라이버시가 지켜진다”는 것은 전혀 다른 명제다.2 경사에는 정보가 남는다. 배치가 작으면 경사만으로 원본 이미지나 문장을 상당 부분 복원할 수 있다는 경사 역전(gradient inversion) 공격이 잘 알려져 있고, 참여 여부 자체를 알아내는 멤버십 추론 공격도 가능하다. 그래서 실전 시스템은 두 겹을 더 쌓는다.
- 보안 집계(secure aggregation). 클라이언트끼리 짝지어 만든 마스크를 갱신에 더해 보내되, 합치면 마스크가 정확히 상쇄되도록 설계한다. 서버는 개별 갱신은 난수로만 보이고 오직 합계만 복호할 수 있다. 중간에 기기가 죽어도 복구되도록 비밀 분산(Shamir)을 얹는 것이 표준이며, 이 계열은 안전 다자간 계산의 응용이다.
- 차등 프라이버시. 클라이언트별 갱신의 노름을 클리핑한 뒤 합계에 가우시안 잡음을 더한다. 여기서 보호 단위가 관측 하나가 아니라 사용자 하나(user-level DP)라는 점이 중요하다. 프라이버시 예산 을 조이면 정확도가 떨어지는 정직한 교환이 있고, 잡음이 참여자 수로 나눠지므로 라운드당 참여자가 많을수록 같은 에 대해 손해가 작다. 보안 집계와 결합하면 서버조차 신뢰하지 않으면서 중앙 DP 수준의 정확도에 접근할 수 있다.
여기에 크로스체크할 것이 하나 더 있다. 참여자 중 일부가 악의적이면 모형 오염(model poisoning)으로 백도어를 심을 수 있는데, 보안 집계는 서버가 개별 갱신을 못 보게 하므로 이상치 탐지와 정면으로 충돌한다. 프라이버시와 견고성이 같은 설계 축에서 서로를 방해하는 것이며, 아직 깔끔한 해답이 없는 열린 문제다.
6. cross-device 대 cross-silo[편집]
같은 이름을 쓰지만 사실상 다른 공학이다. 구분 자체는 이 분야의 대규모 서베이가 정착시킨 용어다.3
| cross-device | cross-silo | |
|---|---|---|
| 참여자 | 10⁶ ~ 10¹⁰ 대의 단말 | 2 ~ 100개 기관 |
| 참여 형태 | 부분·간헐·무상태 | 전원·상시·상태 유지 |
| 클라이언트당 데이터 | 매우 적음 | 매우 많음 |
| 신뢰성 | 언제든 이탈 | 대체로 안정 |
| 병목 | 업링크·가용성 | 기관 간 정책·회선 |
| 잘 맞는 알고리즘 | FedAvg + 압축 + DP | SCAFFOLD·ADMM·무거운 암호 |
cross-device 논문의 결론을 cross-silo에 그대로 옮기거나 그 반대로 하는 것이 이 분야의 흔한 사고다. 상태를 유지할 수 있느냐, 매 라운드 전원이 참여하느냐 두 가지만 확인해도 어떤 알고리즘이 후보에서 탈락하는지가 대부분 갈린다.
7. 관련 문서[편집]
- 확률적 경사하강법 · 경사하강법 · 볼록 최적화
- 근접점 알고리즘 · 모로 포락 · 교대방향 승수법
- 심층 학습 · 병렬 컴퓨팅 · GPU 컴퓨팅
- 차등 프라이버시 · 안전 다자간 계산 · 지식 증류
8. Footnotes[편집]
-
McMahan et al. (2017), Communication-Efficient Learning of Deep Networks from Decentralized Data, AISTATS. 실제 첫 대규모 배포는 안드로이드 키보드의 다음 단어 예측이었다. 즉 인류 최초의 대규모 연합 학습 응용은 오타 교정이다. 위대한 기술의 첫 임무는 늘 이렇게 소박하다. ↩
-
“우리는 데이터를 수집하지 않습니다, 연합 학습을 씁니다”라는 홍보 문구를 볼 때마다 떠올릴 것. 연합 학습은 프라이버시 기술 스택의 한 층이지 그 자체로 보증서가 아니다. 보안 집계와 차등 프라이버시가 함께 언급되지 않으면 그 문장은 절반만 참이다. ↩
-
이 분야의 지형을 한 번에 훑고 싶으면 Kairouz et al. (2021), Advances and Open Problems in Federated Learning을 보면 된다. 저자가 수십 명이고 본문이 100쪽을 넘는다. 서베이가 웬만한 교과서보다 두꺼운 것 자체가 이 분야가 얼마나 급하게 팽창했는지를 보여준다. ↩