https://ai.googleblog.com/2017/04/federated-learning-collaborative.html

 

Federated Learning: Collaborative Machine Learning without Centralized Training Data

Posted by Brendan McMahan and Daniel Ramage, Research Scientists Standard machine learning approaches require centralizing the training data...

ai.googleblog.com

Federated Learning은 2017년 구글 AI 블로그에서 공식적으로 소개되었습니다. 아래는 Federated Learning에 대해 공부하기 위해 Google AI 블로그에 올라온 원문을 직접 공부하며 번역한 내용입니다.

 

* 매끄럽지 못한 문장이 많습니다. 너그럽게 봐주세요

 


Federated Learning: Collaborative Machine Learning without Centralized Training Data

Thursday, April 6, 2017
Posted by Brendan McMahan and Daniel Ramage, Research Scientists
 

Standard machine learning approaches require centralizing the training data on one machine or in a datacenter. And Google has built one of the most secure and robust cloud infrastructures for processing this data to make our services better. Now for models trained from user interaction with mobile devices, we're introducing an additional approach: Federated Learning.

표준적인 머신러닝 접근 방식은 훈련 데이터를 한 곳의 machine이나 데이터센터에 중앙화시키는 것을 필요로 한다. 이에 구글은 서비스를 더 개선시키기 위해 이러한 데이터를 처리하는 가장 안전하고 robust한 cloud infrastructures를 만들었다. 이제 사용자 interaction이 있는 모바일 장치로부터 훈련된 모델에 대하여 우리는 부가적인 접근을 소개한다 : Federated Learning.

 

Federated Learning enables mobile phones to collaboratively learn a shared prediction model while keeping all the training data on device, decoupling the ability to do machine learning from the need to store the data in the cloud. This goes beyond the use of local models that make predictions on mobile devices (like the Mobile Vision API and On-Device Smart Reply) by bringing model training to the device as well.

FL을 통해 모바일 기기들은 디바이스의 모든 훈련 데이터들을 가지고 있는 상태로 공유된 예측모델을 학습할 수 있으며, 클라우드에 데이터를 저장하는 필요성과 기계학습을 하는 능력을 분리시킬 수 있다. 이는 디바이스에도 모델 훈련을 적용시킴으로서 모바일 기기들에서 예측하는 로컬 모델(Mobile Vision API, On-Device Smart Reply)을 사용하는 것을 넘어서는 것이다.

 

It works like this: your device downloads the current model, improves it by learning from data on your phone, and then summarizes the changes as a small focused update. Only this update to the model is sent to the cloud, using encrypted communication, where it is immediately averaged with other user updates to improve the shared model. All the training data remains on your device, and no individual updates are stored in the cloud.

이는 다음과 같이 작동한다 : 당신의 기기는 최신의 모델을 다운로드하고, 당신의 핸드폰의 데이터를 학습함으로써 개선될 것이고, 변경된 것을 요약하여 small focused update로 표시된다. 이러한 모델에서의 업데이트만이 암호화된 통신을 통해 클라우드로 전송되고, 공유된 모델을 개선시키기 위해 다른 사용자의 update들과 즉시 평균화된다. 모든 훈련 데이터는 당신의 기기에 남아있으며, 어떤 개별적인 update도 클라우드에 저장되지 않는다.

 

Your phone personalizes the model locally, based on your usage (A). Many users' updates are aggregated (B) to form a consensus change (C) to the shared model, after which the procedure is repeated.

 

Federated Learning allows for smarter models, lower latency, and less power consumption, all while ensuring privacy. And this approach has another immediate benefit: in addition to providing an update to the shared model, the improved model on your phone can also be used immediately, powering experiences personalized by the way you use your phone.

FL은 privacy를 향상시키면서 모델을 더 똑똑하게 만들고, latency를 늦추며, power 소비를 낮춘다. 그리고 이러한 접근은 다른 즉각적인 이익도 있다. 공유된 모델에게 update를 제공하면서, 당신의 핸드폰의 개선된 모델은 동시에 당신이 핸드폰을 사용하는 방식에 의해 맞춤형 경험을 제공한다.

 

We're currently testing Federated Learning in Gboard on Android, the Google Keyboard. When Gboard shows a suggested query, your phone locally stores information about the current context and whether you clicked the suggestion. Federated Learning processes that history on-device to suggest improvements to the next iteration of Gboard’s query suggestion model.

우리는 Google Keyboard인 Android의 Gboard에서 FL을 테스트하고 있다. Gboard에서 쿼리를 제시해서 보여주면 당신의 핸드폰은 현재의 상황과 당신이 제안된 쿼리를 클릭했는지 여부에 대한 정보를 local에 저장한다. FL은 다음 반복에서 Gboard 쿼리 제안 모델을 개선시키기 위해 이러한 history를 on-device 처리한다. (on-device : 스마트 기기에서 자체적으로 데이터를 수집하고, 연산)

 

To make Federated Learning possible, we had to overcome many algorithmic and technical challenges. In a typical machine learning system, an optimization algorithm like Stochastic Gradient Descent (SGD) runs on a large dataset partitioned homogeneously across servers in the cloud. Such highly iterative algorithms require low-latency, high-throughput connections to the training data. But in the Federated Learning setting, the data is distributed across millions of devices in a highly uneven fashion. In addition, these devices have significantly higher-latency, lower-throughput connections and are only intermittently available for training.

FL이 가능하게 하기 위해서 우리는 알고리즘과 기술적인 부분에서의 많은 어려움을 극복해야 한다. 특정 ML 시스템에서는, Stochastic Gradient Descent(SGD)와 같은 특정 최적화 알고리즘은 클라우드의 서버에서 동일하게 분할된 대규모 데이터 집합을 기반으로 실행한다. 이러한 높은 반복적인 알고리즘은 훈련데이터에 대한 low-latency와 높은 처리량 connection 이 필요하다. 하지만 FL 설정에서, 데이터는 아주 균등하지 않은 방식으로 수백만의 기기에 분산되어 있다. 게다가 이러한 기기들은 상당히 높은 latency, 낮은 처리량 connection 문제가 있으며, 훈련을 하는 동안 간헐적으로만 사용가능하다.

 

These bandwidth and latency limitations motivate our Federated Averaging algorithm, which can train deep networks using 10-100x less communication compared to a naively federated version of SGD. The key idea is to use the powerful processors in modern mobile devices to compute higher quality updates than simple gradient steps. Since it takes fewer iterations of high-quality updates to produce a good model, training can use much less communication. As upload speeds are typically much slower than download speeds, we also developed a novel way to reduce upload communication costs up to another 100x by compressing updates using random rotations and quantization. While these approaches are focused on training deep networks, we've also designed algorithms for high-dimensional sparse convex models which excel on problems like click-through-rate prediction.

이러한 대역폭과 latency 제한은 우리의 Federated Averaging algorithm의 동기가 되었다. 이는 단순한 SGD의 federated 버전과 비교했을 때 10-100x 적은 연결로 깊은 네트워크를 훈련할 수 있다. 핵심 아이디어는 단순한 gradient steps보다 높은 수준으로 업데이트를 계산하기 위해 최신 기기에서 파워풀한 프로세스를 사용하는 것이다. 이것은 적은 반복으로 좋은 모델에 제공하기 위한 높은 수준의 업데이트를 할 수 있기 때문에 훈련은 더 적은 통신을 할 수 있다. 대체로 업로드 속도는 다운로드 속도보다 훨씬 느리기 때문에, 우리는 무작위의 로테이션과 양자화를 사용하여 업데이트를 압축함으로써 업로드 통신 비용을 100x까지 줄일 수 있는 순수한 방법을 개발했다. 이러한 접근 방식이 깊은 네트워크를 훈련하는데 집중된 것과 동시에, 우리는 클릭률 예측과 같은 문제에 뛰어난 고차원의 sparse한 convex 모델을 위한 알고리즘도 디자인했다.

 

Deploying this technology to millions of heterogenous phones running Gboard requires a sophisticated technology stack. On device training uses a miniature version of TensorFlow. Careful scheduling ensures training happens only when the device is idle, plugged in, and on a free wireless connection, so there is no impact on the phone's performance.

Gboard를 실행하는 수백만의 다른 핸드폰에 대한 기술을 개발하는 것은 정교한 기술 스택이 필요하다. 기기 훈련에는 세밀한 버전의 TensorFlow를 사용한다. 세밀한 scheduling은 기기가 idle, 플러그인 상태, 무료 와이파이일 때만 훈련을 할 수 있기 때문에 핸드폰의 performance에는 영향을 전혀 주지 않는다.

 

 

The system then needs to communicate and aggregate the model updates in a secure, efficient, scalable, and fault-tolerant way. It's only the combination of research with this infrastructure that makes the benefits of Federated Learning possible.

이 시스템은 안전하고, 효율적이고, 확장 가능하고, fault-tolerant한 방식으로 모델 업데이트들을 전달하고 집약해야 한다. FL의 이점을 얻을 수 있는 것은 이러한 인프라와 연구를 합한 것 뿐이다.

 

 

Federated learning works without the need to store user data in the cloud, but we're not stopping there. We've developed a Secure Aggregation protocol that uses cryptographic techniques so a coordinating server can only decrypt the average update if 100s or 1000s of users have participated — no individual phone's update can be inspected before averaging. It's the first protocol of its kind that is practical for deep-network-sized problems and real-world connectivity constraints. We designed Federated Averaging so the coordinating server only needs the average update, which allows Secure Aggregation to be used; however the protocol is general and can be applied to other problems as well. We're working hard on a production implementation of this protocol and expect to deploy it for Federated Learning applications in the near future.

FL은 클라우드에 사용자 데이터를 저장하지 않아도 작동하지만 우리는 거기서 멈추지 않을 것이다. 우리는 암호화 기술을 사용한 Secure Aggregation protocol을 개발했고, 이는 만일 100명 혹은 1000명의 사용자가 참여했을 때만 coordinating 서버는 평균 업데이트를 복호화할 수 있도록 한다. 평균화 이전에는 어떤 개인 핸드폰의 업데이트도 검사할 수 없다. 이것은 deep-network-sized 문제와 real-world의 연결 제한을 위한 실용적인 최초의 protocol이다. 우리는 Federating Averaging을 개발해서 서버가 평균 업데이트만 필요하도록 Secure Aggregation이 사용되는 것을 허가하도록 했다. ; 그러나 이 프로토콜은 일반적이고, 다른 문제에도 적용될 수 있다. 우리는 이 프로토콜의 생산 완성을 위해 열심히 일했으며, 가까운 미래에 FL application들이 효율적으로 사용되는 것을 기대한다.

 

 

Our work has only scratched the surface of what is possible. Federated Learning can't solve all machine learning problems (for example, learning to recognize different dog breeds by training on carefully labeled examples), and for many other models the necessary training data is already stored in the cloud (like training spam filters for Gmail). So Google will continue to advance the state-of-the-art for cloud-based ML, but we are also committed to ongoing research to expand the range of problems we can solve with Federated Learning. Beyond Gboard query suggestions, for example, we hope to improve the language models that power your keyboard based on what you actually type on your phone (which can have a style all its own) and photo rankings based on what kinds of photos people look at, share, or delete.

우리의 작업은 가능한 것의 표면만 훑은 것이다. FL은 모든 머신러닝 문제들을 해결할 수는 없으며(예를 들어 세밀하게 라벨링된 예시를 훈련함으로써 다른 개들의 품종을 인식하는 학습), 다른 많은 모델들은 필수적인 훈련 데이터가 이미 cloud에 저장되어 있다. (Gmail의 스팸 메일 필터 훈련처럼). 그래서 구글은 계속해서 cloud-based ML을 위한 최첨단 향상을 위해 계속해서 노력할 것이며, 우리는 또한 FL로 해결할 수 있는 문제의 범위를 확장시키는 연구 진행을 위해 헌신할 것이다. 예를 들어 Gboard 쿼리 제안 이외에도 우리는 사람들이 실제로 핸드폰에서 타이핑하는 것과 (각각의 스타일이 모두 존재하는) 사람들이 보고, 공유하고, 삭제하는 사진을 기반으로 하는 사진 순위를 기준으로 키보드를 작동시키는 언어 모델을 향상시키기를 희망한다.

 

 

Applying Federated Learning requires machine learning practitioners to adopt new tools and a new way of thinking: model development, training, and evaluation with no direct access to or labeling of raw data, with communication cost as a limiting factor. We believe the user benefits of Federated Learning make tackling the technical challenges worthwhile, and are publishing our work with hopes of a widespread conversation within the machine learning community.

FL을 적용하는 것은 기계학습 practitioners에게 새로운 도구와 생각의 방식을 채택하는 것을 필요로 한다. : raw data의 직접적인 접근과 라벨링이 없고, 최소한의 요소로서 통신 비용을 갖는 모델 개발, 훈련 그리고 평가. 우리는 FL로 인한 사용자 이익은 기술적인 challenge에 대처할 가치가 있다고 생각하며, ML 커뮤니티에서도 폭넓은 대화가 이루어지길 바라며 우리의 작업을 publishing하고 있다.