애플, 구글, IBM 등 빅테크 기업들이 연합학습을 연구하는 이유

scalalang2
CURG
Published in
10 min readMar 6, 2021

2021년 2월 16일, 애플의 기계 번역팀이 연합 학습과 관련된 논문을 아카이브(arxiv)에 게재하였다[1]. 해당 논문은 On-device에서 개인을 위한 인공지능을 구현하기 위한 일반화된 시스템 디자인인 연합 평가 및 튜닝(FE&T)을 설계한 내용을 담고 있는데 서술하는 과정을 보면 구글의 연구진들이 이미 발표한 시스템[2]과 FE&T를 비교하는 방식으로 서술이 되어 있다.

이번 포스팅에서는 원래 애플에서 발표한 논문의 내용을 다루어보려고 했는데 서술 과정이 구글에서 발표한 연구와 직접 비교한다는 것과, 따로 정리하지 않아도 될 정도로 일반화된 내용을 담고 있기 때문에 이번 시간에는 특정 기업에만 초점을 맞추지 않고 빅테크 기업들은 왜 연합학습을 연구하고 있는지에 대해서 탐구해보고자 한다.

연합학습 (Federated Learning)

연합학습은 분산 머신러닝 패러다임의 하나로, 다수의 기기에서 데이터 정보를 노출하지 않으면서 학습하는 방법이다. 연합학습을 사용하는 이유는 연구자들마다 다르게 소개하지만 내가 종합해본 바에 따르면 아래 세 가지 이유로 정리할 수 있다.

  • (보안성) 사용자 혹은 기관은 자신의 데이터를 노출하지 않으면서도 전체 데이터를 학습할 수 있기 때문에 보안성을 확보할 수 있다.
  • (저장 효율성) 모든 기기에서 발생한 데이터를 한 곳에 저장하고 학습하는 것은 물리적으로 어렵다. 한 예로 현재 테스트되고 자율주행차는 한시간에 4TB의 데이터를 생성하는데[3] 이를 하나의 스토리지에 저장하는 것은 네트워크/스토리지 용량 문제로 거의 불가능하다. 연합학습을 이용하면 이 용량 문제를 해결하면서도 모든 데이터의 학습이 가능하다.
  • (연산 가능성) 컴퓨팅 연산력이 전통적인 서버에서 각 기기로 옮겨가고 있다. 테슬라는 생산하는 차량에 오토파일럿 기능을 담당하는 칩인 AP 3.0을 자체 생산하고 있으며 매년 성능을 높여나가고 있다. 즉, 중앙 서버의 연산력을 빌리지 않아도 이미 스마트폰과 같은 기기에서 충분히 딥러닝 연산이 가능한 수준으로 발전되고 있다.

연합학습의 기본 동작과정

필자의 지난 포스팅에서 연합학습을 몇번 다루었는데, 이 글로 연합학습을 처음 접하는 분들을 위해 기본적인 매커니즘을 설명하고자 한다. 연합학습에는 다양한 알고리즘이 있지만 일반화하면 공통적으로 다음의 순서로 동작한다. 아래 그림은 구글의 연구자들이 발표한 논문[2]에서 인용한 것이다.

그림 1. 연합학습 프로토콜에 관한 설명
  1. Initialization: 학습을 진행하기 전에 중앙 서버는 모델을 랜덤하게 초기화한다.
  2. Client Selection: 중앙 서버는 전체 로컬 디바이스의 일부분을 선택해서 디바이스로 모델값을 전송한다. 디바이스가 선택되는 기준은 상황마다 다르지만 휴대폰이라고 가정했을 때 충전 중인 상황일 것, Wi-Fi 네트워크를 이용중일 것 등을 고려하고 그 중에서도 랜덤으로 선택한다.
  3. Configuration: 로컬 디바이스들은 중앙서버로부터 받은 모델을 설정하고, 로컬에서 가진 데이터로 학습을 진행한다.
  4. Reporting: 로컬에서 학습이 완료된 노드들은 변경된 로컬 모델 값을 서버로 전송한다. 중앙 서버는 전송받은 로컬 모델 값을 집계하여 계산한뒤 다시 Client Selection 과정을 반복한다. 이 과정에서 추가적으로 연결이 끊긴 기기에 대한 예외 상황을 처리한다.
  5. Termination: 사전에 정의된 종료조건이 만족하면 연합학습 프로세스를 종료한다. 여기서 종료조건이란 학습 라운드 횟수, 목표한 정확도 수치가 될 수 있다.

위 과정을 보면 로컬 기기들은 각자의 데이터를 중앙 서버 혹은 다른 기기로 노출하지 않으면서도 글로벌한 모델을 만들 수 있다. 그리고 중앙 서버는 별도로 딥러닝을 하는게 아니라 단순히 모델 값을 집계하는 역할만 하는데 연합학습의 대표 연구인 FedAvg에서는 단순히 모델값을 평균값을 구하는 방식으로 집계한다.

정확하게 측정을 하지 않아도 모델 값만을 공유하기 때문에 이미지, 영상 등의 멀티미디어 데이터를 공유하는 것보다 네트워크 비용이 적게들 뿐만 아니라 중앙에서 데이터를 보관해야 한다는 부담을 줄일 수 있다. 학습을 위해 거대한 데이터센터를 짓지 않아도 빅데이터를 학습 자료로 참고할 수 있다는게 연합학습의 장점 중 하나이다. 하지만, 아무래도 데이터의 제약이 존재하기 때문에 중앙 집중형 방식보다 성능이 낮긴 하다. 이 문제를 학계에서는 Federated Optimization 이라고 정의하고 현재 이를 풀기위해 많은 연구자들이 노력을 하고 있다.

현재 연합학습의 연구동향을 살펴보면 이 분야를 만든 Google이 가장 주도적으로 이끌고 있고 Apple, IBM, Intel 등의 미국 거대 테크기업들이 하나 둘씩 연구 성과를 발표하고 있다.

연합학습으로 빅 데이터에서 바늘 찾기

데이터가 스스로 가치를 가지려면 학습하고자 하는 대상과 그에 반대되는 성격의 데이터를 모두 가져야 한다. 예를 들어 자율 주행 자동차가 안정적으로 운행하려면 햇빛이 따사로운 오후에 아스팔트와 콘크리트로 도배된 편안한 도로뿐만 아니라 차선도 제대로 안보이는 어두운 밤의 빗길 운전도 경험 해봐야 계절이나 시간에 무관하게 안정적인 주행이 가능하다.

각 기기마다 경험하는 데이터가 다르기 때문에 기기에 저장된 데이터는 확률적으로 동일하게 분포되어 있지 않다. 연합학습의 이런 성격을 학술적으로는 Non-I.I.D 데이터라고 부른다. Non-I.I.D 문제를 해결하려면 데이터를 한곳으로 모아야 하는데 이 때 개인정보보호이슈가 발생한다.

이 문제를 풀기 위해 가장 많이 이용하는 방법은 데이터를 수집하되 노이즈를 삽입하는 차등적 정보보호(DP) 방식을 이용한다. 예를 들어, 29세의 환자 A의 정보를 입력할 때 나이를 ‘20–40세 사이’로 입력해서 원본을 추정할 수 없게 만드는 게 차등적 정보보호 방식이다. 하지만 이 역시 환자 A가 걸린 질병이 통계적으로 20대 후반에 많이 발병하는 질병이라면 환자의 나이를 추정할 수 있기 때문에 다른 메타정보로 원본 정보를 추론할 수 있다는 점에서 완벽한 대안이 아니다. 그래서 우리는 이 문제를 ‘연합학습’으로 해결해야 한다.

연구에서 바라보는 사용 사례들

연합학습이란 개념이 처음 나온게 2016년, 올해로 5년차이기 때문에 아직 비즈니스에서 사용사례가 많지는 않다. 여기서는 연구에서 보고된 사용 사례를 두 가지 소개해보려고한다. 첫 번째로 연합학습의 활용처를 찾던 연구진들이 가장 많이 이야기 하는게 의료 분야의 적용 가능성이다.

과학 저널 네이처의 파트너 잡지중 하나인 Digital Medicine에는 “연합 학습과 미래 디지털 헬스[4]”라는 제목의 연구가 발표되었다. 이 연구는 엔비디아의 연구진들이 발표한 내용이다. 의료 분야에서 환자 데이터는 높은 수준의 정보보안 정책이 강요된다. 한 예로 CT촬영 이미지 만으로 원래 얼굴을 복원할 수 있기 때문에 병원들끼리 데이터 센터를 구축해서 데이터를 모으는 일은 현실적으로 어렵다. 이런 상황에서 협력적으로 학습 모델을 만드는 연합학습이 현실적인 해결책으로 나타나고 있다.

두 번째로 IBM 리서치에서는 금융 범죄 탐지를 위한 연합학습의 활용 방안을 제안했다.[7] 일반적으로 금융 범죄자들은 하나의 은행만을 사용하지 않는다. 그래서 은행간 입출금 내역을 공유해서 협력적으로 데이터를 활용할 필요가 있는데 이 또한 법적인 이슈를 해결하기 어렵기 때문에 연합학습으로 문제를 해결하고자 한다.

그들이 연합학습을 연구하는 이유

앞서 연합학습이 기대하는 바와 장점 세 가지를 들었는데 지금 가장 중요하게 주목받고 있는 항목은 개인정보보호인 것 같다. 유럽연합의 일반 데이터 보호 규칙(GDPR)을 시작으로 2021년까지 데이터 주권과 개인정보보호 이슈에 대한 목소리가 커지고 있다.

마이크로소프트의 현 대표이사인 사티아 나델라는 2021년 3월 2일에 온라인으로 개최한 마이크로스프트의 기술 컨퍼런스인 이그나이트[5]의 기조연설에서 향후 클라우드가 진화해야할 방향 5가지를 제시했다. 그 중 첫번째로는 탈중앙화된 컴퓨팅과 바로 이어서 나온 내용이 데이터 주권이다.

그림 2. 사티아 나델라가 기조 연설에서 강조한 다섯가지 항목

그는 전세계적으로 데이터는 더욱 은밀하게 취급될 것이고 데이터의 주권과 거버넌스가 중요해질 것이라고 이야기하면서 사용자의 개인정보를 보호하기 위해 새로운 연합학습의 방법을 개발할 것이다 라고 발표했다. 빅테크 기업의 대표가 전 세계 사람들이 보는 컨퍼런스 기조연설에서 공식적으로 해당 연구를 언급한 것이다.

Satya Nadella — “We will develop new methods of federated machine learning to drive the next generation of personalized and yet privacy-preserving services”

데이터 주권(Sovereign data) — 데이터 주권이란 소비자가 자신에 관한 데이터의 생성, 저장, 유통 및 활용에 대해서 스스로 통제할 수 있는 권리를 말한다.

추가로 다섯 가지 항목 중, 권한을 가진 창작자와 커뮤니티 그리고 세계적 노동력의 경제적 기회 창출 관한 이야기를 했는데 이와 관련해서 CURG의 지난 포스팅과 연결지어 생각해 볼 거리가 있을 것 같다.

이는 마이크로소프트 만의 이야기가 아니다. 구글은 지난 3월 3일, 구글 크롬에서 사용자의 쿠키 추적을 중단하고 더 이상 온라인 광고에 활용하지 않겠다는 정책을 자사 블로그에 발표했다. 그리고 애플은 iOS 14 업데이트에서 앞으로 개인정보를 추적하는 모든 기능을 수행할 때마다 동의를 얻도록 수정하겠다고 밝혔다. 앞으로는 위치정보만 취급하는 앱을 이용해도 아래와 같은 팝업창을 보게 될 것이다.

그림 3. iOS 14 업데이트 이후 페이스북을 이용할 때마다 사용자가 보는 화면

이 정책으로 가장 큰 타격을 보는 업체는, 온라인 광고 매출 비율이 높은 페이스북이다. 참고로 위 그림에서 나오는 “Facebook”은 인위적으로 만든게 아니라 애플이 자사 홈페이지에 직접 사용한 그림이다. 이에 페이스북의 대표인 저커버그는 1월 27일 컨퍼런스콜에서 애플이 공익적 목적을 위해서가 아니라 앱 마켓의 영향력을 높일려고 한 시도라고 비판을 하면서, ‘소상공인을 위한 목소리'라는 이름으로 미국 주요 일간지에 애플을 저격하는 광고를 실었고 회사 임직원에게 아이폰 사용 금지령을 내리기도 했다.

이런 일련의 발표들은 앞으로 개인정보보호의 중요성이 높아질 것을 예고하고 있다. 그렇다면 한 예시로, 온라인 광고 기업이 개인정보를 침해하지 않으면서 데이터를 활용해 개인화된 광고를 할 수 있는 전략은 무엇일까? 정답은 이번 포스팅 제목에 있다.

레퍼런스

[1] Federated Evaluation and Tuning for On-Device Personalization: System Design & Applications, Apple, 2021–02–16
[2] Towards Federated Learning at Scale: System Design
[3] 하루에만 수십 테라바이트…미래차는 데이터로 달린다
[4] The future of digital health with federated learning
[5] https://news.microsoft.com/march-2021-ignite/
[6] 제페토가 블록체인에서 구현되면 어떨까?
[7] Towards Federated Graph Learning for Collaborative Financial Crimes Detection

--

--

scalalang2
CURG
Writer for

평범한 프로그래머입니다. 취미 논문 찾아보기, 코딩 컨테스트, 언리얼 엔진 등 / Twitter @scalalang2 / AtCoder @scalalang