본문 바로가기
AI 인사이트

Top7 연합 학습(Federated Learning) 오픈소스 프레임워크 소개

by AI 동키 2024. 4. 17.
반응형

연합 학습(Federated Learning)은 데이터 프라이버시를 보호하면서 머신러닝 모델을 학습시키는 혁신적인 방법입니다. 최근 데이터 보안과 개인정보 보호에 대한 우려가 높아지면서 연합 학습이 주목받고 있는데요, 이 글에서는 연합 학습을 구현하기 위한 다양한 오픈소스 프레임워크를 소개합니다.

요약

연합 학습을 활용하려면 사용 목적과 요구사항에 맞는 프레임워크를 선택할 수 있습니다. 본문에서는 NVIDIA FLARE, Flower, Substra, FATE, PySyft, OpenFL, TensorFlow Federated 등 7가지 인기 있는 오픈소스 프레임워크를 비교하고 각각의 특징을 설명합니다. 이들은 모두 연합 학습 연구와 개발을 위해 커뮤니티의 노력으로 만들어졌습니다. 한편 높은 수준의 보안과 거버넌스가 필요한 경우에는 Apheris와 같은 상용 솔루션을 활용할 수 있습니다.

연합 학습이란?

연합 학습은 데이터를 한 곳에 모으지 않고도 분산된 데이터를 활용하여 머신러닝 모델을 학습시키는 방법입니다. 각 참여자(병원, 기업, 개인 등)는 자신의 데이터를 로컬에 보관하면서 모델 학습에 기여합니다. 중앙 서버는 참여자들이 보내온 모델 업데이트를 취합하여 글로벌 모델을 만들고, 이를 다시 참여자들에게 보냅니다. 이 과정을 반복하면서 데이터 프라이버시를 지키며 모델을 학습시킬 수 있습니다.


연합 학습의 활용 분야:

연합 학습은 데이터 보안과 프라이버시가 중요한 분야에서 큰 잠재력을 가지고 있습니다. 대표적으로 의료 분야에서는 각 병원이 환자 데이터를 공유하지 않고도 협력하여 질병 진단 모델을 만들 수 있습니다. 금융 분야에서는 개인 금융 정보를 보호하면서 사기 탐지 모델을 개발할 수 있죠. 또한 모바일 키보드 앱, 스마트 홈 기기 등 사용자 프라이버시가 중요한 애플리케이션에도 연합 학습이 활용될 수 있습니다.


(원문을 번역했습니다. 원문은 여기)


Top 7 Open-Source Frameworks for Federated Learning

연합 학습 사용을 고려할 때 사용할 수 있는 여러 오픈 소스 프레임워크와 소프트웨어 옵션이 있습니다. 올바른 선택은 사용 사례의 목적과 성격에 따라 크게 달라집니다.


스스로에게 물어봐야 할 가장 중요한 질문은 다음과 같습니다.

  • 연합 학습을 얼마나 자주 적용하고 싶습니까?
  • 설정은 얼마나 표준화되어야 합니까?
  • 구현 및 유지 관리에 얼마나 많은 지원이 필요합니까?
  • 사용 사례에 필요한 거버넌스, 보안 및 개인 정보 보호 기능은 얼마나 됩니까?

이 기사에서는 가장 사랑받는 오픈 소스 프레임워크의 스냅샷을 여러분과 공유하게 되어 기쁘게 생각합니다.

전 세계의 데이터를 더욱 상호 연결하기 위해 노력하는 다양한 팀의 헌신을 보는 것은 정말 고무적입니다. Apheris에서도 비슷한 임무를 수행하고 있습니다.

Project Name Maintainer # of Stargazers # of Contributors
NVIDIA FLARE NVIDIA 523 34
FLOWER Flower 4100 121
Substra Owkin 267 36
FATE WeBank 5500 86
PySyft OpenMined 9200 424
OpenFL Linux Foundation 654 78
TensorFlow Federated Google 2300 107

 

 NVIDIA FLARE핵심 페더레이션 엔진으로 사용하는 동시에 최고 수준의 보안, 개인정보 보호, 거버넌스를 요구하는 고위험 시나리오에 필요한 모든 요소를 ​​통합하는 것입니다.

우리는 이러한 프레임워크를 상당히 깊이 있게 연구하고 실험했습니다. 우리의 경험을 공유함으로써 모든 사람이 빠르게 확장되는 연합 학습의 세계를 보다 쉽게 탐색할 수 있기를 바랍니다.

연합 학습의 미래에 대한 모든 것을 최신 백서에서 알아보세요. 백서 전문을 읽으려면 여기를 클릭하세요.

 

연합 학습을 위한 오픈 소스 소프트웨어

언제나 그렇듯이 오픈 소스 커뮤니티는 지난 몇 년 동안 환상적인 작업을 수행해 왔습니다. 모든 팀에게 찬사를 보냅니다! 여기에 사용 가능한 모든 프레임워크를 나열할 수는 없지만 새로운 페더레이션 엔진을 결정하기 전에 1년 전에 자세히 살펴보았던 몇 가지 인기 있는 예를 강조하고 싶습니다. 아래 나열된 모든 프로젝트에는 Apache 2 라이선스가 있습니다(2024년 4월 GitHub에서 가져온 데이터).

 

이러한 프로젝트에 참여한 각 커뮤니티, 엔지니어 및 데이터 과학자는 연합 학습과 개인정보 보호 데이터 과학의 연구 및 개발을 더욱 발전시키기 위해 훌륭한 노력을 기울였습니다. 멋진 작업을 해주신 모든 분들께 감사드립니다!

이제 각 프로젝트를 살펴보겠습니다.

 

NVIDIA FLARE

NVIDIA FLARE 웹사이트의 스크린샷 ( https://developer.nvidia.com/flare )

NVIDIA FLARE (FLARE)는 NVIDIA 팀에서 유지 관리합니다. 이 연합 엔진은 아직 우리가 선택한 것 중 가장 큰 오픈 소스 커뮤니티를 가지고 있지는 않지만 잘 설계된 (보안 및 거버넌스 관련) 기능, 보안 강화 아키텍처를 가지고 있으며, 도메인에 구애받지 않습니다. 또한 FLARE를 사용하면 MONAI 및 Hugging Face의 모델을 쉽게 사용할 수 있으며 ML 엔지니어가 기존 ML 워크플로(PyTorch, RAPIDS, Nemo, TensorFlow)에 쉽게 연결할 수 있습니다.

우리가 특히 마음에 들었던 기능은

  • 신속한 개발 및 프로토타이핑을 위한 FL 시뮬레이터
  • 차등 프라이버시, 동형 암호화 등을 통한 프라이버시 보존
  • 확장성을 위한 명세 기반 API.

FLARE 프로젝트는 생명과학, 유전체학, 신약 발견 등 매우 민감한 산업을 위한 컴퓨팅 플랫폼 제품군인 NVIDIA CLARA에서 탄생했습니다. Flare는 많은 프로젝트에서 전투를 통해 강화되었으며 여러 회사에서 구현되었습니다.

학습 자료:

 

Flower

친숙한 연합 학습 프레임워크를 꽃피우세요(https://flower.ai/)

Flower는 "친절한 연합 학습 프레임워크"일 뿐만 아니라 매우 친절한 커뮤니티이기도 합니다. 그들의 개방형 Slack 채널에 참여하면 모두가 매우 친절하고 지원적인 것을 볼 수 있습니다. Flower 팀은 우리가 선택한 것 중 두 번째로 큰 기여자 기반을 모았으며 연합 학습을 발전시키는 데 훌륭한 역할을 하고 있습니다.

이를 위해 그들은 명확한 원칙을 따릅니다.

  • Flower는 각 사용 사례에 맞게 적용할 수 있도록 매우 사용자 정의가 가능합니다.
  • 확장성: 새로운 최첨단 시스템을 구축하기 위해 많은 구성 요소를 확장하고 재정의할 수 있습니다.
  • 프레임워크 중립: pytorch, TensorFlow, scikit-learn 등 선호하는 프레임워크를 그대로 사용할 수 있습니다. 저장소의 최고 인용문 "심지어 기울기를 직접 계산하는 것을 즐기는 사용자를 위한 원시 NumPy까지도 지원" : 매우 친절한 프로젝트임을 알 수 있습니다!

학습 자료:

 

Substra

Substra 홈페이지의 스크린샷 ( https://www.owkin.com/substra )

SubstraOwkin을 중심으로 한 다중 파트너 연구 프로젝트에서 처음 개발한 연합 학습 소프트웨어입니다. Owkin은 Substra를 Linux Foundation에 기부했고 현재 Linux Foundation이 Substra를 호스팅하고 있습니다.

Substra는 데이터 소유권과 개인 정보 보호를 목적으로 의료 분야에 중점을 두고 있습니다. Substra는 다양한 유형의 사용자를 위한 광범위한 인터페이스를 지원합니다. 데이터 과학자를 위한 파이썬 라이브러리, 관리자를 위한 명령줄 인터페이스, 프로젝트 관리자 및 기타 고급 사용자를 위한 그래픽 사용자 인터페이스가 있습니다. 배포와 관련하여 Substra는 모든 노드에 대해 복잡한 Kubernetes 설정이 필요합니다.

Substra의 주요 기능은 다음과 같습니다:

  • 개인 정보 보호: Substra는 코드 및 데이터에 대해 개인 영역을 설정할 수 있는 신뢰할 수 있는 실행 환경(엔클레이브라고도 함)을 사용합니다.
  • 추적 가능성: Substra는 플랫폼의 모든 작업을 변경할 수 없는 원장에 기록합니다.
  • 보안: Substra는 모델 업데이트, 데이터 보안 및 네트워크 통신을 암호화합니다.

학습 자료:

 

PySyft

PySyft 문서의 스크린샷 ( https://github.com/OpenMined/PySyft )

PySyft는 연구 목적으로 연합 학습을 가능하게 하는 Python 3 기반 오픈 소스 라이브러리로 FL, 차등 개인 정보 보호 및 암호화된 계산을 사용합니다. OpenMined 커뮤니티에서 개발했으며 주로 PyTorch 및 TensorFlow와 같은 딥러닝 프레임워크와 함께 작동합니다.

PySyft는 두 가지 유형의 계산을 지원합니다:

  • 볼 수 없는 데이터에 대한 동적 계산
  • 나중에 다른 컴퓨팅 환경에서 실행할 수 있는 계산 그래프인 정적 계산

PySyft는 개체, 기계 학습 알고리즘 및 추상화를 정의합니다. PySyft를 사용하면 네트워크를 통해 통신이 필요한 실제 데이터 과학 문제를 다룰 수 없습니다. 이를 위해서는 PyGrid라는 또 다른 라이브러리가 필요합니다.

PyGrid는 웹, 모바일, 엣지 디바이스 및 다양한 유형의 터미널에서 연합 학습을 구현합니다. PyGrid는 PySyft를 대규모로 관리하고 배포하기 위한 API입니다. PyGrid Admin을 사용하여 제어할 수 있습니다.

PyGrid는 세 가지 구성 요소로 이루어져 있습니다:

  • 도메인: 연합 학습을 위해 개인 데이터 및 모델을 저장하는 데 사용되는 Flask 기반 애플리케이션
  • 작업자: 데이터에 대한 계산을 수행하기 위해 도메인 구성 요소에서 관리하는 임시 계산 인스턴스
  • 네트워크: 서로 다른 도메인 구성 요소를 모니터링하고 제어하는 Flask 기반 애플리케이션

학습 자료:

 

FATE

FATE 홈페이지의 스크린샷 ( https://github.com/intel/openfl )

FATE (Federated AI Technology Enabler)는 안전하고 연합된 AI 생태계를 지원하는 것을 목표로 하는 오픈 소스 프로젝트입니다. FATE는 독립 실행형 및 클러스터 배포 설정에 사용할 수 있습니다. 이 오픈 소스 프레임워크는 중국 선전에 기반을 둔 민간 소유 네오뱅크인 WeBank

지원을 받습니다.

FATE를 사용하고 사용자 정의 모델을 작성하려면 프로토콜 버퍼에 대한 지식이 있어야 합니다.

학습 자료:

 

OpenFL

OpenFL GitHub 페이지의 스크린샷 ( https://github.com/securefederatedai/openfl )

Intel® Open Federated Learning은 민감한 데이터에 FL을 구현하기 위해 Intel이 개발한 Python 3 오픈 소스 프로젝트입니다. OpenFL에는 bash로 된 배포 스크립트가 있으며 통신 보안을 위해 인증서를 활용하지만 대부분은 프레임워크 사용자가 직접 처리해야 합니다.

이 라이브러리는 두 가지 구성 요소로 구성됩니다. 로컬 데이터셋을 사용하여 글로벌 모델을 학습하는 협력자와 모델 업데이트를 수신하고 결합하여 글로벌 모델을 만드는 집계자입니다. OpenFL에는 Python API와 명령줄 인터페이스가 제공됩니다.

노드 간 통신은 mTLS를 사용하여 수행되므로 인증서가 필요합니다. 연합의 각 노드를 인증해야 합니다. OpenFL은 통신 비용을 줄이기 위해 데이터의 손실 및 무손실 압축을 지원합니다. OpenFL을 사용하면 개발자가 로깅, 데이터 분할 방법 및 집계 논리를 사용자 정의할 수 있습니다.

OpenFL 설계 철학은 연합 학습(FL) 계획을 기반으로 합니다. 필요한 협력자, 집계자, 연결, 모델, 데이터 및 필요한 구성을 정의하는 YAML 파일입니다. OpenFL은 연합 환경을 격리하기 위해 Docker 컨테이너에서 실행됩니다.

학습 자료:

TensorFlow Federated

TensorFlow Federated 웹사이트의 스크린샷 ( https://www.tensorflow.org/federated )

TensorFlow Federated (TFF)는 Google에서 개발한 연합 학습용 Python 3 오픈 소스 프레임워크입니다. TFF의 주요 동기는 Google의 모바일 키보드 예측 및 기기 내 검색 구현 필요성이었습니다. TFF는 Google에서 고객 요구 사항을 지원하기 위해 적극적으로 사용되고 있습니다.

TFF는 두 가지 주요 API 계층으로 구성됩니다:

Federated Core (FC) API

FC는 분산 계산을 구현하기 위한 프로그래밍 환경입니다. 각 계산은 복잡한 작업을 수행하고 네트워크를 통해 통신하여 조정 및 정렬합니다. 다양한 대상 런타임(모바일, 센서, 컴퓨터, 임베디드 시스템 등)에서 로컬로 실행 가능한 프로그램을 표현하기 위해 의사 코드와 유사한 추상화를 사용합니다. TFF에는 성능이 뛰어난 다중 머신 런타임이 포함되어 있기 때문입니다.

Federated Learning (FL) API

FL API는 기존 머신 러닝 모델을 TFF에 쉽게 연결할 수 있는 고급 API로, 연합 학습 알고리즘의 작동 방식을 깊이 파고들 필요가 없습니다. FL API는 FC API 위에 구축되었습니다.

연합 학습 API는 세 가지 주요 부분으로 구성됩니다:

  • 모델: 기존 모델을 TFF로 래핑할 수 있는 클래스 및 도우미 함수
  • 연합 계산 빌더: 연합 계산을 구성하는 도우미 함수
  • 데이터셋: 시뮬레이션 시나리오에 사용할 데이터의 캔 컬렉션

FL과 FC 간의 계층 분리는 서로 다른 사용자가 수행하는 작업을 용이하게 하기 위한 것입니다. 연합 학습 API는 머신러닝 개발자가 TF 모델에 FL을 구현하고 FL 연구원이 새로운 알고리즘을 도입하는 데 도움이 되는 반면, 연합 코어 API는 시스템 연구원을 위한 것입니다.

학습 자료:

 

연합 학습으로 충분하지 않을 때

연합 학습은 원시 데이터를 교환할 필요 없이 개인 정보를 보호하는 방식으로 머신러닝 모델을 학습할 수 있게 해주는 혁신적인 접근 방식입니다. 이 방법은 환자 정보가 매우 민감한 의료 분야와 지적 재산권 보호가 중요한 제조업에 특히 유용합니다.

그러나 엄격한 규제 또는 내부 규정 준수 기준이 적용되는 경우, 단순한 연합 학습 설정으로는 충분하지 않을 수 있습니다. 이를 해결하기 위해 Apheris 팀은 Compute Gateway를 도입했습니다. 이 기술은 데이터 제공자의 환경 내에서 에지에서 작동하여 알고리즘 수준에서 민감한 데이터 처리를 감독할 수 있는 권한을 부여합니다.

이러한 향상된 수준의 감독을 우리는 연합 계산 거버넌스라고 부르며, 다양한 유형의 데이터와 알고리즘에 적용할 수 있는 유연한 솔루션입니다. 핵심적으로 연합 학습은 협업에 관한 것이며, Compute Gateway는 계산 수준에서 악수를 할 수 있는 기능을 추가합니다.

오늘날 우리의 솔루션은 NVIDIA FLARE와 통합되어 있어 훌륭한 기능, 에코시스템 통합 및 기타 장점을 모두 얻을 수 있습니다. 물론 최근 Flower와 NVIDIA FLARE 간의 협력 발표에서 볼 수 있듯이 연합 학습 프로젝트 간에도 오픈 소스 커뮤니티의 협력 정신을 보게 되어 매우 기쁩니다. 앞으로 좋은 일들이 있을 것입니다!

완전하고 안전한 데이터 협업 수명 주기를 위해 통합할 수 있는 범주 및 예시적 도구, 프레임워크 및 플랫폼

백서에서는 엔터프라이즈 MLOps 파이프라인에 연합 학습을 구현하는 데 필요한 사항에 대해 더 자세히 설명합니다.


연합 학습은 데이터 활용과 프라이버시 보호라는 두 마리 토끼를 잡을 수 있는 혁신적인 방법입니다. 다양한 오픈소스 프레임워크 덕분에 연합 학습을 직접 구현하고 활용하는 것이 점점 쉬워지고 있는데요, 앞으로 의료, 금융, 제조 등 다양한 분야에서 연합 학습의 성공 사례가 나올 것으로 기대됩니다. 데이터 경제 시대에 연합 학습은 데이터 협력과 보안이라는 가교 역할을 톡톡히 해낼 것입니다.

 

 

#연합학습 #FederatedLearning#데이터프라이버시 #DataPrivacy#인공지능 #AI#머신러닝 #MachineLearning#데이터보안 #DataSecurity#오픈소스 #OpenSource#의료혁신 #HealthcareInnovation#금융기술 #FinTech#개인정보보호 #PrivacyProtection#미래기술 #FutureTechnology#연합학습  flower#연합학습 pysyft#파이썬 연합학습 라이브러리#연합학습 fate

반응형

댓글