본문 바로가기

Papers/Federated Learning

논문 리뷰) (Mobisys 2022) FedBalancer: Data and Pace Control for Efficient Federated Learning on Heterogeneous Clients - (4)

이전 게시글

2023.01.11 - [Papers/Federated Learning] - 논문 리뷰) (Mobisys 2022) FedBalancer: Data and Pace Control for Efficient Federated Learning on Heterogeneous Clients - (1)

2023.01.11 - [Papers/Federated Learning] - 논문 리뷰) (Mobisys 2022) FedBalancer: Data and Pace Control for Efficient Federated Learning on Heterogeneous Clients - (2)

2023.01.11 - [Papers/Federated Learning] - 논문 리뷰) (Mobisys 2022) FedBalancer: Data and Pace Control for Efficient Federated Learning on Heterogeneous Clients - (3)

 

정작 논문 세미나보다 이걸 오래 쓰고 있는 것 같다. 얼른 마무리 해버리고 연구해야지...

 

Evaluation

개인적으로 해당 논문에서 실험을 꽤나 꼼꼼하게 그리고 많이 했다고 생각된다. Mobisys 말고 다른 컨퍼런스에서도 리뷰를 좀 받고 보충하면서 solid해진 paper가 아닐까 감히 예측한다. 사족이 길었다.

 

Evaluation은 기본적으로 대부분 '우리 scheme 성능 좋아요'를 이야기 하는 경우가 많아서 아예 비교가 unfair하거나 기준이 이상한 것이 아니면 간단하게 보고 넘어가련다.

 

평가는 computer vision (CV), natural language processing (NLP), human action recognition (HAR) 세가지에 대해서 진행되었으며 CV는 FEMNIST, Celeba 두 가지 데이터셋을 사용했으며 NLP는 Reddit과 Shakespeare, HAR는 UCI-HAR를 사용하였다. 평가 기준으로는 time-to-accuracy와 최종 accuracy 두 가지를 중점적으로 분석했다고 한다.

Baseline에 대한 설명은 스킵하련다. 원문을 참고하길 권한다. 아무튼 간에 다양한 baseline과 비교하여 꽤나 clear margin을 가지고 speed up과 accuracy 모두 이기고 있다. 또한 FedBalance는 Prox 위에 구현된 Framework이라고 이해했는데 Prox보다 훨씬 좋은 성능을 보이는 것이 신기할 따름이다. 그리고 NLP task에서 왜 Prox의 경향이 다른 task들과 다른지 이해가 잘 안된다만 뭐 prox의 review가 아니니 이 부분도 스킵하자. Reddit 데이터셋이 꽤나 힘든 task인지 대부분 성능이 구리다... 마음엔 안들지만 구린 것들 중에서는 제일 좋으니까...

 

Table3에서 재밌는 것은 update 빈도를 결정하는 $w$가 큰 경우, 그러니 적게 update를 하는 경우에 accuracy와 speeed up에 모두 긍정적인 영향을 줬다는 것이다. $lss$나 $p$에 따른 경향성이 NLP와 CV에서 다르게 나오는 것도 흥미롭다... 왜 그런건지는 본인은 설명하지 못하겠다... 데이터의 내재된 특성에 의한 것인가 아니면 model? 아니면 dataset의? 가능한 변인이 많아서 뭐 이렇다 하기 어려운 것 같다.

Figure 5 a의 NF는 noise factor를 말하는데 원문을 안보고 본인의 정리만 보신 분들은 이게 뭔가 싶을텐데 당연하다. 언급을 안했으니까... FedBalance가 마주하는 challenge중 하나는 privacy guarantee를 지키는 것이었는데, loss 값들에 대한 데이터는 입력에 대한 정보를 어느정도 가지고 있는 것이므로 이를 differential하게 처리하기 위해 loss값에 noise를 섞는다고 이야기한다. NF 뒤의 값은 표준 편차인 것 같은데, 5.0면 꽤나 큰 값임에도 성능이 크게 떨어지지 않는 것이 매우 흥미롭다.

Figure 5 b 또한 loss list 갱신을 매 round에 하는 것이 아니라 처음에 한 번해두고 학습에 사용되는 loss만 update하는 전략이 꽤나 괜찮은 선택임을 보여준다. 속도는 물론 성능도 더 높게 나오는 것이 신기할 따름... 저자들이 논문에서 이야기 하길 outdate된 결과가 어차피 학습의 관점에서는 괜찮다고 하는 것 같음.

 

Sample selection과 deadline의 조합이 중요하다는 것을 보여주는 실험이다 단순히 sample selection만으로는 좋은 결과를 얻지 못한다는 것! 여전히 나는 reddit dataset 결과가 마음에 들지 않는다... 왜 Shakespeare dataset으로 안보여준걸까? 흠스럽다.

"아, 고생 꽤나 하셨겠다!" 한 부분, android device에서 on-device training을 하는거 별거 아닌 것 같지만 이거 꽤나 일이다. 이런 저런 버그도 여기저기서 튀어나오고 device 별로 다른게 한 두개가 아니라 짜증이 이만저만이 아니다. 진짜로... 뭐 testbed 구현+거기서도 성능 좋음 이니 reviewer 입장에선 까기 좀 어렵겠다.

 

다른 FL method와 collaboration한 결과로 여기서도 (특히 Oort에서) accuracy가 꽤나 가파르게 오르는 모습을 보여준다. 그런데 다른 방식들에 비해 학습 마지막 부분에서 accuracy가 조금 튀는 경향이 보인다. 최종적인 수렴에 있어 조금 어려움을 겪는 것일까? 해당 부분이 뭐 크게 문제가 되지는 않겠지만 이러한 식으로 sampling을 기반으로 학습한 model과 그렇지 않은 model의 특성이 달라지는건 아닐지, representation space나 robustness는 괜찮은지 검토해보는 것도 괜찮은 연구주제가 아닌가 하는 생각이 든다.

마지막 figure로 deadline 결정시 training과 network latency를 평균내서 사용하는데, training에 비해 network latency는 이리저리 튀는 것을 확인할 수 있다. 사실 연구실 세미나에서도 나왔었던 이야기로 network latency를 mean으로 대충 때려버리는 것이 괜찮은가에 대한 이야기가 나왔었다. training latency는 뭐 stable 할 수 있는데 network는 너무 unstable하다. network 상황이 원활하지 못하면 deadline이 조금 안맞을 수 있을 것 같은데, 뭐  잘 된다는 가정 아래에서 하는 연구니까 이걸로 태클 거는건 out of scope인 듯 하다. deadline 설정에 있어 현재 network condition을 고려하는 새로운 연구 주제이니 말이다.

 

마무리 하며...

이런 저런 논문을 읽으면서 정리를 안해두어 후회한 경우가 가끔 있어 처음으로 리뷰를 해보았는데 이런 식으로 하다가는 제대로 논문을 못읽겠다. 시간이 너무 오래걸린다... 다음부턴 좀 요약해서 정리해보도록 할련다...

 

해당 논문에 대해서 나는 엄청 복잡하고 완전히 새로운 scheme을 제안한 것은 아니지만, 그걸 만들기 위해서 얼마나 이 주제를 닦고 갈았는지가 느껴졌다. Best paper를 받기는 어려울지 몰라도 reviewer가 마땅히 트집 잡기 어려운 논문인 것 같다.

 

개인적으로는 importance sampling이나 time-to-accuracy 측면의 평가 등에서 이런저런 insight를 많이 주워간다. 그리고 나는 android testbed에서 실험할 일이 없었으면 한다는 생각이 든다. Evaluation x 축 단위가 시간(hours)이다... 아찔함 그잡채... 다시 생각해도 구현하느라 고생하셨을듯 하다.

 

끗!