← AI 용어집

AI 용어집 · 기초 · 안전·정렬 · 데이터 엔지니어링

연합학습 Federated Learning

연합학습은 데이터를 한곳에 모으지 않고, 각 기기나 기관이 자기 데이터로 모델을 조금씩 학습한 뒤 그 '학습 결과(변경분)'만 모아 하나의 공용 모델을 만드는 방법이다.

쉽게 말하면 여러 요리사가 각자 집에서 같은 레시피를 시험해 보고, 재료는 보내지 않은 채 '소금은 조금 줄이자' 같은 개선 메모만 본부에 보내 레시피를 고쳐 나가는 것과 비슷하다. 다만 메모만으로도 재료를 어느 정도 짐작할 수 있다는 점은 실제 연합학습에도 남아 있는 한계다.

어떻게 작동하나

먼저 중앙 서버가 현재 공용 모델을 휴대폰이나 병원 같은 여러 참여자에게 나눠 준다. 각 참여자는 자기가 가진 데이터로 모델을 조금 학습시키고, 원본 데이터 대신 모델이 어떻게 바뀌었는지(변경분)만 서버로 보낸다. 서버는 이 변경분들을 합쳐 더 나은 공용 모델을 만들고, 이를 다시 참여자들에게 배포한다. 이 과정을 여러 번 반복하며 모델을 키워 간다.

연합학습 한 바퀴휴대폰 A → 로컬 학습; 휴대폰 B → 로컬 학습; 병원 C → 로컬 학습; 로컬 학습 → 변경분 합치기(변경분만); 로컬 학습 → 변경분 합치기; 로컬 학습 → 변경분 합치기; 변경분 합치기 → 새 공용 모델; 새 공용 모델 → 로컬 학습(다시 배포)참여자 쪽 · 데이터는 그대로휴대폰 A개인 데이터휴대폰 B개인 데이터병원 C의료 데이터로컬 학습로컬 학습로컬 학습변경분 합치기중앙 서버새 공용 모델변경분만다시 배포
연합학습 한 바퀴 원본 데이터는 각 참여자에게 머물고, 학습 후 변경분만 서버로 모여 합쳐진다. 새 공용 모델은 다시 참여자에게 배포된다.

왜 중요한가

개인 메시지, 의료 기록, 금융 거래처럼 민감한 데이터는 법이나 신뢰 문제로 한곳에 모으기 어렵다. 연합학습을 쓰면 데이터가 원래 있던 곳을 떠나지 않으면서도 많은 데이터에서 배운 모델을 만들 수 있다. 여러 병원이나 은행이 서로 데이터를 넘기지 않고 협력할 수 있는 길이 열린다. 데이터를 옮기는 비용과 위험이 줄어든다는 것도 장점이다.

알아 둘 점

변경분만 보내도 그 안에서 원본 데이터를 일부 추측해 낼 수 있어, 보통 차분 프라이버시나 암호화 기법과 함께 쓴다. 참여자마다 데이터 성격이 크게 달라 학습이 고르게 되지 않는 문제도 있다. 기기 성능과 통신 상태가 제각각이라 운영이 복잡하고, 악의적인 참여자가 일부러 잘못된 변경분을 보내는 데이터 포이즈닝 공격에도 대비해야 한다.

예시

스마트폰 키보드의 다음 단어 추천은 연합학습이 쓰이는 대표 사례로 자주 소개된다. 사용자가 입력한 문장은 휴대폰 밖으로 나가지 않고, 휴대폰이 충전 중일 때 등 여유가 있을 때 모델을 조금 학습해 변경분만 보낸다. 의료 분야에서는 여러 병원이 환자 영상을 공유하지 않은 채 함께 진단 보조 모델을 학습하는 데 쓰인다.

함께 보면 좋은 용어