메뉴 건너띄기
상단메뉴 바로가기 본문 바로가기

S W M P E O P L E

Revivers팀 - Federated Learning을 활용한 분산 학습 시스템 구축

  • 2020-08-09 14:32
  • |
  • SW마에스트로
Revivers팀 - Federated Learning을 활용한 분산 학습 시스템 구축




 

Q. 안녕하세요. 자기소개 한번씩 부탁드립니다. 

(효린) 숙명여대에서 아이티공학과를 전공하고 있는 김효린입니다. 저는 주로 안드로이드 앱 개발을 해왔고, 이번 프로젝트에서도 프론트엔드를 맡게 되었습니다.

(재혁) 저는 김재혁이고요. 현재 홍콩과학기술대학교에서 2학년을 마친 상태이고, 컴퓨터 사이언스를 전공하고 있습니다. 이번 프로젝트에서는 태형님이랑 같이 딥 러닝 

모델을 개발하고, 저희 셋 다 Federated Learning이라는 기술을 활용 및 개발하게 될 것 같습니다.

(태형) 저는 박태형입니다. 경희대학교 기계공학과 4학년으로, 지금은 휴학을 한 상태입니다. 저는 원래 머신 러닝, 딥러닝, AI 분야를 공부해왔고, 그 중에서도 데이터 

사이언스 쪽에서 컴퓨터 데이터를 가지고 예측하거나 분류하는 문제를 많이 풀어왔습니다. 그래서 이번에 소마에서 딥 러닝 관련 공부를 더 하면서 프로젝트를 진행하게 될 것 같아요.


Q. 팀 소개 및 프로젝트 소개 한 번씩 부탁드립니다

(재혁) 저희는 Revivers라는 팀이고, 저희 프로젝트는 지정프로젝트로 ‘Federated Learning을 활용한 분산 학습 시스템 구축’ 입니다. Federated Learning이라는 기술은 

구글에서 지난 해 9월 발표한 것으로, 개인정보 보호를 강화하려는 목적으로 고안된 기술로 각 디바이스에서 학습을 하게 한 다음, 학습 정보를 취합해서 모델을 

업데이트하는 학습 방식이에요. 이런 식으로 기존 시스템에서는 ‘서버’에서 학습을 한 다음에 그걸 배포를 해주는데, Federated Learning 기술은 ‘디바이스’에서 학습을 

하고 그 다음에 학습 정보만 가져와서 모델을 다시 업데이트 해주고, 업데이트 한 걸 다시 배포하는 방식입니다. 즉, 데이터 자체가 디바이스 밖으로 나가지 않기 때문에 

개인정보 보안에 좋은 거죠. 저희는 이 기술을 활용해 어떤 현존하는 기술(무엇지는 아직 비밀입니다ㅎㅎ)을 개선하고, Federated Learning 기술 자체를 활용해보자는 게 

저희 지정 프로젝트입니다.

다시 팀 이름에 대해서 설명해드리자면, 앞서 Federated Learning이라는 기술을 말씀드렸잖아요. 원래 edge device 안에 있는 개인 정보 데이터들을 서버로 가져와서 

학습에 사용하는 게 거의 불가능하단한 경우도 있어요. 따라서 저희는 그 데이터들이 죽어 있다고 생각을 한 거죠. 여기 하지만 저희는 Federated Learning을 사용하여 

그 데이터들을 활용할 것이기 때문에 이 데이터들을 살려주는 사람들 이라는 의미로 Revivers라는 팀명을 짓게 되었습니다.


Q. (지정프로젝트를 하시게 되었는데)팀 매칭은 어떻게 하게 되신 거예요?

(재혁) 저희는 프로젝트 주제 하나만 보고 모인 팀이에요. 저는 사실 소마 지원하게 된 계기가 갖고 있는 기술을 활용해서 어떤 서비스를 만들어보고 싶다 이런 게 

아니라 많이 해보고 배우고 공부하고 싶다는 것이었어요. 그 중에서도 머신러닝이나 딥러닝 쪽에 관심이 있었는데 지정 프로젝트 중에 이 주제를 보자마자 너무 

끌려서 바로 지원을 하게 되었습니다. 그 다음에 멘토링할 때 지정프로젝트로 이 주제를 하게 되었다고 말씀을 드렸는데 그 때 태형님이 프로젝트 주제를 듣고 

바로 같이 하게 되었어요. 그리고 한명 자리가 남았는데, 지원자가 없어서 멘토님이 연수생 채널에 프로젝트를 홍보를 해주셨어요. 그랬더니 몇분 정도에게서 

연락이 왔고, 결국 효린님과 같이 하게 되었습니다. 저희 프로젝트가 앱을 만들어야 하는데 효린님이 마침 앱 개발을 하시고 싶어하셨으니까 안드로이드 개발 

많이 하시는 효린님이 들어오시게 된거죠.

(효린) 저는 소마에 지원하게 된 동기가 체계적으로 프로젝트를 해보고 싶어서 였는데, 지정 프로젝트를 하게 되면 주제를 정하는 과정에서 겪는 많은 시행착오를 

줄일 수 있을 거라는 생각이 들었습니다. 그래서 멘토님께 제가 이 팀에서 어떤 걸 할 수 있을지 조언을 구하고 팀에 들어가게 되었어요.


Q. 그럼 프로젝트의 어떤 점에 끌린 건가요?

(재혁) 저 같은 경우에는 요약서에 ‘federated learning이 어떤 기술이고 이걸 어떻게 해서 모델 학습을 할 수 있다’ 이렇게 적혀 있는 걸 보고 와 재밌겠다 싶었어요.

그리고 멘토님이 말씀하시길 이게 연구 성격의 프로젝트라고 하셨어요. 왜냐하면 전례가 없으니깐. 이게 나온지 얼마 안돼서 다른 기술에 비해 활용된 것도 적고 

그래서 저희가 이걸 활용해서 새로운 시도를 해보는 거죠. 그리고 저는 공부를 하고 싶었기 때문에 이 프로젝트를 하면 진짜 많이 늘겠다고 생각했어요. 

저는 어차피 대학원을 희망하고 있기 때문에 연구 성격의 프로젝트를 하는 게 도움이 많이 될 거라고 생각을 해서 읽자마자 바로 지원을 하게 되었습니다.



Q. 현재 프로젝트는 얼마나 진행되었는지, 그리고 앞으로 계획은 어떻게 되시나요? 

(태형)일단 머신 러닝 쪽은 지금 정보수집 단계라서 논문을 읽고 있습니다. 시스템 범위가 넓어서 정보 수집이 중요해요. 그래서 논문을 읽고 어떻게 구현하면 될지 초기 

셋팅하고, 논문 읽으면서 의논해보고, 멘토님한테 컨펌받고 그런식으로 진행하고 있습니다. 아마 개발은 8월부터 시작할 수 있을 것 같아요.

(효린) 앱 개발 쪽은 지금 정보와 코드를 찾아보고 있습니다. 현재 진행상황은 WBS(work breakdown structure)라고 저희 프로젝트 계획을 다 태스크로 분류하는 건데, 

이쪽으로 멘토님이랑 많이 진행을 했어요. 프로젝트 설계, 계획을 정했고 이제 이걸 기반으로 개발을 하면 됩니다. 아직은 기술 확인하는 정도의 초기 단계입니다.

(재혁) 앞으로 계획은 읽은 논문 내용을 바탕으로 실제 구현해내는 것입니다. 전례가 없어서 구현이 될지 안될지 100퍼센트 확신할 순 없지만 빨리 구현하도록 해봐야죠. 

저희 프로젝트 주제가 처음 한다는 장점이 있지만 사례가 없다는 단점이 있어요. 모 아니면 도일 것 같아요. 근데 실패를 하더라도 많이 배울 것 같아요.


Q. 프로젝트를 진행하면서 어려운 점은 없으신가요?

당연한 거긴 하지만 멘토님들에 비해 비교적 실전 경험이 부족하다는 게 있고요. Federated Learning이 최근에 나온 기술이라 참고할 만한 사례가 많이 없어요. 

논문이 있긴한데 활용할만한 기술 같은 게 많이 없는 거죠.


Q. 지금 진행하시는 프로젝트랑 비슷한 기술이 있나요? 유사 서비스와의 차별화 문제는 없나요?

(태형) Distributed Learning이라고 분산학습이라는 기술이 있긴 한데 저희는 유사서비스와의 차별화 문제 이런거 보다는 범위에 대한 반응이 많은 것 같아요. 

이거 다 할 수 있어? 이렇게 많은데? 이런 반응이 많아요. 기간에 비해서 저희 주제가 범위가 너무 넓거든요. 저희는 서비스를 제공하는 프로젝트가 아니라 

기술적으로 연구를 해서 이런 게 된다를 보여준다든지 아니면 성능을 올린다든지 이런 걸 해야 하는 거라서 너네 다 할 수 있겠냐 이런 부분이 있었죠. 

그래서 저희는 다들 휴학하고 할 예정입니다. 논문을 많이 읽어야 하고, 또 결과가 논문 형식으로 나올 수도 있어요. 아마 앱이 나오고 시스템이 나올텐데 

앱은 약간 검증, 테스트 용도로 나오게 될 것 같아요

(재혁) 좀 더 디테일하게 설명을 드리자면 저희가 시스템 구축을 해야 되는데, 이게 어떤 서비스에 붙여야 되는 거예요. 그런데 저희가 서비스를 어디서 섭외해 

올 수도 없어서 저희가 서비스를 데모로 만들어야 해요. 데모 아이디어도 생각을 해서 어떤 앱을 만들지 정하고 저희 서비스를 활용하기 좋은 게 어떤 걸지 

찾아보고 하면서 개발까지 하게 될 것 같습니다. 앱은 저희 시스템을 증명하는 용도일 거예요.


Q. 소마는 어떻게 알고 오시게 된 건가요?

(효린) 저는 인터넷에서 홍보물을 봤어요. 처음에 알게 된 건 학교 개발자 커뮤니티에서 였어요. 저희 학교 사람들이 이거 좋은 활동이니까 하면 좋을 것 같다고 

누가 소마 추천해준 걸 보고 이런 게 있구나를 인지하게 된거죠. 그리고 인터넷으로 홍보 뜬 걸 보고 한번 신청해봐야겠다고 생각을 해서 지원을 했어요.

(태형) 저는 2년전에 소마를 알게 되었는데 그 때는 이쪽 분야에 지식이 거의 없었어요. 그 때 제가 스스로 기획력이나 전공 지식도 부족하고, ML로 프론트하고 싶은데 

ML도 모르고 그래서 잘 잘렸다고 생각을 했어요. 근데 이 사업 자체가 괜찮은 사업이라고 생각해서 2년동안 더 준비를 해서 다시 왔습니다.

(재혁) 저는 군복무를 어떻게 하면 전공을 살리고 시간을 아깝지 않게 보낼 수 있을까를 생각하다가 소프트웨어 개발병을 찾게 됐어요. 개발병에는 어떤 조건이 

필요한지 알아보다 또 SW마에스트로를 알게됐어요. 근데 마침 홍콩에서 시위가 터져서 작년 11월에 한국에 들어왔거든요. 그래서 한국에 있는데, 페이스북 광고에서 

소마를 뽑는다고 해서 ‘아 이거 지금 뽑는구나. 한국에 있는 김에 지원해볼까’ 해서 지원을 하게 되었어요.



Q. 현재 온라인 비대면으로 진행되는 연수과정에 대해 어떻게 생각하세요? 아쉬운 점이 있다면? 

팀 단위 멘토링할 때는 괜찮은데 특강 같은 경우는 따라가기 힘든 느낌이 들어요. 멘토님도 온라인으로 강의를 하시다보니깐 벽보고 강의한다는 느낌을 받으시는 것 같고, 

연수생들도 중간에 질문을 할 수가 없고 한번 흐름을 놓치면 뒤에는 또 다 이해가 안되고 이런식으로 되어서 그게 좀 어려운 것 같습니다. 

그리고 멘토님들 중에서 아직까지 실제로 뵙지 못한 분이 많아요.

근데 지금 상황에서는 이게 최선인 것 같아요. 또, 온라인이 단점만 있는 건 아니고 장점도 있어요. 멘토링 시간이 밤 10시여도 멘토링이 가능하다는 게 장점인 것 같아요. 

늦은 시간에 멘토링을 하면 교통편이 끊기기때문에 멘토님을 만나기 어렵잖아요. 그런데 온라인은 시간에 제약이 없어 좋습니다.


Q. 그렇다면 소마 연수과정에서 좋은점이 무엇일까요?

일단 멘토님들한테 조언을 얻을 수 있는 게 가장 큰 장점인 것 같아요. 멘토님들이 모든 분야에 계셔서 어디서 막히든 질문을 할 수가 있어요. 저희가 예를 들어 법적으로 

문제가 되지 않을까 하는 부분에서는 변호사 멘토님이 계시고 특허 관련해서는 변리사 멘토님이 계시고, 서버쪽에서 막히면 서버쪽 멘토님, 머신 러닝 멘토님도 엄청 많고 

하니깐 다양하게 도움을 받을 수가 있어요. 저희가 모르는 것도 짚어 주시고 또 새로 알게 되는 부분도 많아요. 

그리고 비슷한 목적을 가지고 있는 다양한 멘티들(연수생들)을 만날 수 있다는 것도 장점이에요.


Q. 소마에서 얻고 싶은 최종 목표나 개인 목표가 있으신가요?

(태형) 소마의 최종 목표는 지금 하고 있는 프로젝트를 잘 마무리 지어서 제가 원하는 만큼의 퀄리티가 나오는 것입니다. 우수자 15인을 목표로 하면 못했을 때 허탈함이 

너무 크기 때문에 우수자 15인을 목표로 하기보다는 최선을 다 하되, 잘 되면 잘되는 거고 아니어도 되고 그렇습니다.

(재혁) 저도 비슷합니다. 궁극적인 목표는 프로젝트를 성공적으로 잘 마치는 것입니다.

(효린) 소마에는 멘토님들이 많이 계시잖아요. 멘토님들에게서 현재 현업에서 어떤 기술이 자주 쓰이고 어떤 식으로 일이 진행되는지 이런 걸 좀 체계적으로 배워가고 

싶어요. 그리고 이를 바탕으로 더 성장하고 싶습니다.