Federated Learning

2. Cross-Silo FL과 Cross-Device FL 본문

Federated Learning/Fundamentals

2. Cross-Silo FL과 Cross-Device FL

pseudope 2022. 7. 5. 22:30
728x90

 앞서, 우리는 연합학습을 정의하고, 연합학습과 분산학습 간의 차이에 관하여 확인해보았습니다. (이전 글 보기) 오늘은 연합학습의 두 갈래에 관하여 확인해보고, 각 체계가 가지는 추가적인 문제점에 관하여 알아보겠습니다.

 

1. Cross-Silo Federated Learning

 

 Silo란 "큰 규모의 저장소"를 의미합니다. 즉, 이름에서 알 수 있듯이, Cross-Silo FL은 각 device의 크기가 비교적 큰 경우에 적용하며, 보통 학습에 참여하는 client 수 역시 비교적 적은 편입니다. (정확한 정의는 없는데, 대체적으로 최대 100개 ~ 10000개까지를 Silo로 보는 경향이 있습니다.) 또한, 명확하게 어떠한 client가 학습에 참여하는지 확인 가능(addressible)하며, 특수한 사건이 발생하지 않는 이상 각 device가 정상적으로 작동한다고 가정합니다. 즉, 연결 상태가 불량하여 학습 결과를 받아오지 못하거나, 악의적인 사용자가 학습을 방해하는 일 등은 거의 일어나지 않습니다.

 대표적인 사례로는 병의원이 있습니다. 새로운 감염병이 유행하기 시작한다면, 초기에는 임상 자료가 충분하지 않아 원활한 model 학습이 진행되지 않을 것입니다. 이때에 각 병의원마다, 혹은 각 국가마다 몇 건 씩 흩어져 있는 데이터를 모두 사용할 수 있다면 더욱 원활한 model 학습이 진행될 것입니다. 물론, 이러한 의료 데이터는 민감한 개인정보이므로 함부로 주고 받을 수 없지만, 연합학습을 사용한다면 이 부분은 해결될 것입니다. 실제로 COVID-19 관련 데이터 분석에 연합학습을 적용한 사례가 존재하니, 관심 있으신 분들은 참고 바랍니다. [1]

 

2. Cross-Device Federated Learning

 

 Cross-Device FL은 Cross-Silo FL보다 훨씬 더 많은 수의, 비교적 작은 크기의 device가 참여하는 경우이며, 불특정 다수가 학습에 참여하기 때문에 고려해야 할 사항이 Cross-Silo FL보다 더 많습니다. 앞서 두 연합학습 체계의 추가적인 문제점을 알아보자고 이야기하였는데, 사실은 대부분 Cross-Device FL이 해결해야 하는 부분입니다. 사람에 따라 별도의 언급이 없다면 이 Cross-Device FL만을 FL로 취급하기도 하며, 그러한 분들의 포스트를 보실 경우에는 이전 글에서 언급된 FL의 문제점과, 앞으로 이야기할 Cross-Device FL의 문제점이 글에 혼재되어 있을 수도 있다는 점을 감안하고 읽으셔야 합니다.

 대표적인 사례로는 구글의 스마트폰 키보드 어플리케이션인 Gboard가 있습니다. Gboard는 연합학습을 통하여 사용자가 입력할 다음 단어를 예측하도록 학습되었습니다. [2] 이 경우, 각 사용자의 단어 사용 패턴을 익힐 때에 사용자의 채팅 이력을 device에 둔 채로 학습할 수 있으므로 privacy preserving에 용이하겠죠. 또한, 회사 입장에서는 학습에 사용되는 cost를 사용자에게 전가할 수 있다는 소소한 이점도 있습니다.

 

3. Cross-Device Federated Learning의 추가적인 고려 사항

 

(1) Byzantine Fault Tolerance

 Cross-Silo FL의 경우, 학습에 참여하는 client의 수가 많지 않고, 어떠한 client가 학습에 참여하는지 확인할 수도 있습니다. 그리고 이러한 client의 대부분은 사전에 검증된 사용자이기 때문에 큰 문제가 발생하지 않습니다. 하지만 Cross-Device FL의 경우 불특정 다수의 client가 학습에 참여하는데, 이중 악의적인 의도를 가지고 접근하여 잘못된 data로 model을 학습시키고자 하는 client나 배터리 부족, 저장공간 부족, 불량한 와이파이 연결 상태 등의 이유로 정상적으로 학습에 참여하지 못하는 client가 얼마든지 존재할 수 있습니다. 이러한 device를 Byzantine하다고 표현하며, Cross-Device FL을 적용할 때에는 Byzantine client가 존재할 때에도 에러 없이 정상적으로 model update가 진행될 수 있는 알고리즘을 고안해야 합니다. 그리고 이러한 알고리즘을 Byzantine Fault Tolerance 알고리즘이라고 이야기합니다. (물론, Cross-Silo FL도 정전 등의 이유로 특정 client가 정상적으로 학습을 진행하지 못할 수 있으므로 Byzantine Fault Tolerance 알고리즘으로 구성하면 분명 이점이 있을 것입니다. 하지만 Cross-Silo FL의 경우 addressiblity를 가정하기 때문에 큰 문제가 되지는 않습니다.)

 

(2) 각기 다른 device의 사양

 Cross-Silo FL의 경우 어떠한 사양을 가진 기기들이 학습에 관여하는지 알 수 있기 때문에 각 기기의 사양을 잘 고려하여 모델을 구성할 수 있습니다. 더 나아가, client 수가 그다지 많지 않기 때문에 사전에 동일한 사양의 기기들로 연합학습 체계를 구축하는 것도 가능합니다. 하지만  Cross-Device FL의 경우 어떠한 사양의 device가 학습에 참여할 것인지 예측할 수 없기 때문에 model을 학습하는 데에 있어 어려움이 많습니다. 우선, device마다 연산 능력에 있어 차이가 존재하기 때문에 model 학습에 걸리는 시간도 device마다 다 다르며, 이는 (1)에서 언급한 (비록 사용자가 악의를 가지고 있지는 않았지만) Byzantine client를 만들어내게 됩니다. 또한, device의 사양에 따라 아예 model이 메모리에 올라가지 못하는 상황이 생길 수도 있습니다. 최근에는 이러한 저사양 기기들도 학습에 관여하도록 하기 위하여 Distillation 기반의 model update 등이 활발하게 연구되고 있습니다. [3]

 

(3) 부족한 연산 능력

 기기마다 사양에 있어 차이가 나는 것도 문제이지만, 전반적으로 Cross-Device FL에 사용되는 device들의 연산 능력이 Cross-Silo FL에 사용되는 device들보다 많이 낮습니다. 스마트폰, 스마트워치 등에서 V100이나 A6000 같은 GPU의 연산 능력을 기대할 수는 없기 때문에, model 자체를 작게 만들고, 적절하게 최적화해야 필요가 있습니다. 이러한 부분은 On-Device나 Model Compression, Stochastic Optimisation 등의 분야에서 계속해서 연구되고 있으며, 사실 이 분야들이 FL과 직접적으로 관련 있는 것은 아니지만, FL을 공부하기 위해서는 해당 분야들을 지속적으로 follow-up할 필요가 있습니다.

 

 이번 포스트에서는 Cross-Silo FL과 Cross-Device FL의 차이, 그리고 후자가 지니고 있는 추가적인 문제점에 관하여 알아보았습니다. 다음 포스트에서는 연합학습의 또 다른 구분인 Horizontal FL과 Vertical FL에 관해서 알아보고, 어떻게 이 두 가지가 각각 Cross-Silo FL과 Cross-Device FL에 매칭이 되는지에 관하여 확인해보겠습니다. 더 나아가서, Horizontal FL과 Vertical FL이 공통적으로 가지고 있는 큰 문제점이 하나 있는데, 이를 해결하고자 하는 시도인 Federated Transfer Learning도 간단하게나마 살펴보도록 하겠습니다.

 

 

 

참고문헌

[1] https://www.nature.com/articles/s41746-021-00431-6

[2] https://arxiv.org/abs/1811.03604

[3] https://arxiv.org/abs/2105.10056

'Federated Learning > Fundamentals' 카테고리의 다른 글

3. Horizontal FL과 Vertical FL  (0) 2022.07.08
1. 분산학습과 연합학습  (1) 2022.07.03
0. 참고자료  (0) 2022.07.02
Comments