AI 용어집 · 기초 · 안전·정렬 · 데이터 엔지니어링
연합학습 Federated Learning
연합학습은 데이터를 한곳에 모으지 않고, 각 기기나 기관이 자기 데이터로 모델을 조금씩 학습한 뒤 그 '학습 결과(변경분)'만 모아 하나의 공용 모델을 만드는 방법이다.
어떻게 작동하나
먼저 중앙 서버가 현재 공용 모델을 휴대폰이나 병원 같은 여러 참여자에게 나눠 준다. 각 참여자는 자기가 가진 데이터로 모델을 조금 학습시키고, 원본 데이터 대신 모델이 어떻게 바뀌었는지(변경분)만 서버로 보낸다. 서버는 이 변경분들을 합쳐 더 나은 공용 모델을 만들고, 이를 다시 참여자들에게 배포한다. 이 과정을 여러 번 반복하며 모델을 키워 간다.
왜 중요한가
개인 메시지, 의료 기록, 금융 거래처럼 민감한 데이터는 법이나 신뢰 문제로 한곳에 모으기 어렵다. 연합학습을 쓰면 데이터가 원래 있던 곳을 떠나지 않으면서도 많은 데이터에서 배운 모델을 만들 수 있다. 여러 병원이나 은행이 서로 데이터를 넘기지 않고 협력할 수 있는 길이 열린다. 데이터를 옮기는 비용과 위험이 줄어든다는 것도 장점이다.
알아 둘 점
변경분만 보내도 그 안에서 원본 데이터를 일부 추측해 낼 수 있어, 보통 차분 프라이버시나 암호화 기법과 함께 쓴다. 참여자마다 데이터 성격이 크게 달라 학습이 고르게 되지 않는 문제도 있다. 기기 성능과 통신 상태가 제각각이라 운영이 복잡하고, 악의적인 참여자가 일부러 잘못된 변경분을 보내는 데이터 포이즈닝 공격에도 대비해야 한다.
예시
스마트폰 키보드의 다음 단어 추천은 연합학습이 쓰이는 대표 사례로 자주 소개된다. 사용자가 입력한 문장은 휴대폰 밖으로 나가지 않고, 휴대폰이 충전 중일 때 등 여유가 있을 때 모델을 조금 학습해 변경분만 보낸다. 의료 분야에서는 여러 병원이 환자 영상을 공유하지 않은 채 함께 진단 보조 모델을 학습하는 데 쓰인다.