Federated learning
스마트폰 키보드에서 자동완성 기능이 점점 똑똑해지고 있다는 걸 느껴보신 적 있나요?
내가 자주 쓰는 말투와 단어를 학습해서, 다음에 칠 단어를 미리 제안해주는 기능 말이죠.
그런데 이 기능이 어떻게 작동하는지 궁금해 본 적 있나요?
혹시 내 데이터를 서버로 전부 보내서 학습하는 건 아닐까, 걱정된 적도 있을 겁니다.
실제로, 요즘 AI는 사용자의 기기 안에서 데이터를 직접 학습하는 방식, 즉 연합학습(Federated Learning) 을 통해 개인 정보를 보호하면서도 똑똑해지는 중이에요.
여러 사용자가 각자의 데이터를 가지고 자기 기기에서 로컬 모델을 학습하고, 그 모델의 가중치만 서버로 보내서 평균을 내는 방식입니다.
즉, 데이터는 사용자 기기에 머물고,
서버는 오직 '모델 파라미터 평균'만 계산하는 구조죠.
하지만 질문이 생깁니다:
이 방법, 진짜 잘 작동할까?
클라이언트마다 데이터가 너무 다르면?
모델을 빨리, 통신 적게 하면서도 잘 학습할 수 있을까?
이런 물음에 답하기 위해, Google AI 연구진은 2017년 논문에서 다양한 데이터셋과 모델, 분할 방식으로 수천 번의 실험을 진행했습니다.
이 블로그에서는 그 유명한 논문
∎ “Communication-Efficient Learning of Deep Networks from Decentralized Data”
의 실험 파트를 쉽게 정리해봅니다.
아래에서 소개할 다섯 가지 실험은 FedAvg가 얼마나 견고하고 효율적인지를 검증한 결과들입니다.
MNIST: 숫자 분류에서 기본 성능 확인
Shakespeare: 모바일 타이핑처럼 편향된 데이터 실험
CIFAR-10: 이미지 분류의 일반적인 벤치마크
클라이언트 수/연산량 실험: 어떻게 더 빨리, 더 적게 통신하며 학습할까?
대규모 LSTM: 실제 모바일 환경에서의 확장 가능성 확인
실험에 앞서, 반복적으로 등장하는 핵심 하이퍼파라미터들인 E, C, B에 대해 알아보겠습니다.
E는 클라이언트 내 학습 횟수, B는 한 번에 처리할 데이터 크기, C는 몇 명의 클라이언트를 참여시킬지 결정하는 통신 효율의 열쇠입니다!
Federated Learning의 핵심 과제는 적은 통신으로도 성능 좋은 모델을 학습하는 것입니다.
이를 입증하기 위해 FedAvg 논문은 **다양한 모델, 데이터셋, 클라이언트 수, 분포 조건(IID/Non-IID)**을 실험적으로 분석했습니다
이 포스트에서는 해당 논문에서 진행한 다섯 가지 주요 실험을 순서대로 소개할게요.
모델: 2층 MLP (2NN) CNN (2 conv + FC layers)
데이터 분할: IID (랜덤 분할) vs Non-IID (두 숫자에만 편향된 shard 분할)
결과: Non-IID에도 불구하고 FedAvg는 견고하게 수렴 C=0.1, E=5, B=10 설정이 통신 효율성과 성능 균형 가장 우수
문제: 다음 문자 예측 (character-level language modeling)
분할: 각 **배우(클라이언트)**의 대사로 클라이언트 분리 → Unbalanced & Non-IID
모델: 2-layer LSTM (256 노드) + softmax 약 86만 파라미터
주요 결과: E=1보다 E=5가 오히려 수렴이 느려짐 → local epoch가 클수록 좋지는 않음 적절한 E, B, C 설정의 중요성 확인
핵심 질문: 한 라운드에 클라이언트를 얼마나 참여시켜야 효율적일까?
결과: C=0.1이 가장 합리적인 계산-성능 균형 특히 B=10과 결합 시, Non-IID 환경에서 훨씬 효과적
목적: 한 라운드 동안 클라이언트 계산량을 늘리면 어떤 이점이 있는가?
실험: B ↓, E ↑ → local update 수 u 증가
결과: MNIST: 최대 46배 통신 라운드 감소 Shakespeare: Non-IID 구조에도 95배 속도 향상 하지만 E가 너무 크면 과적합/발산 가능 → 후반부에 E 감소 전략 추천
환경: Balanced IID / 100명 클라이언트 / 각 500개 학습 샘플
모델: CNN (TF 튜토리얼 기반), 약 100만 파라미터
결과: FedAvg는 FedSGD 및 중앙 SGD보다 50배 이상 통신 효율 우수 E=5, B=50, C=0.1 조합이 실제 환경에서도 잘 작동함
환경: 10M개 소셜 글, 50만 명 이상의 사용자 각 클라이언트 5,000단어 이내 제한
모델: 1-layer LSTM, vocab 10,000, 495만 파라미터
결과: FedAvg: 35 라운드만에 정확도 10.5% 달성 FedSGD보다 23배 빠름, 더 안정적인 정확도 분산
FedAvg는 다양한 모델과 환경에서 우수한 통신 효율성과 수렴 안정성을 보여줍니다.
하지만 E를 지나치게 키우면 오히려 발산하거나 수렴 실패 가능 → 적절한 local/global trade-off 중요
실험은 단순히 모델 정확도가 아닌 통신 비용, 수렴 속도, 안정성까지 평가해야 함.
연합학습은 단지 분산된 학습을 의미하지 않습니다.
FedAvg의 실험들은 어떻게 통신 효율성과 학습 성능의 균형을 잡아갈 수 있는지, 그리고 무엇이 실제 환경에서 중요한지를 우리에게 보여줍니다!