ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 상위 7개의 오픈소스 프레임워크 Federated Learning
    Engineering 2023. 10. 22. 17:35
    728x90

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

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

    연합 학습을 얼마나 자주 적용하시겠습니까?

    설정은 얼마나 표준화되어야 합니까?

    구현 및 유지 관리에 얼마나 많은 지원이 필요합니까?

    이 기사에서는 가장 유명한 오픈 소스 프레임워크에 대한 개요를 제공하고자 합니다.

    나열된 모든 프로젝트는 매우 가치가 있으며 다중 파트너 데이터 협업, 기계 학습 및 AI에서 개인 정보 보호가 오늘날 세계에서 점점 더 많은 역할을 하고 있다는 것을 알게 되어 기쁩니다!

    그럼에도 불구하고 여기에 면책 조항이 있습니다.

    Apheris에서는 통합되고 개인 정보를 보호하는 데이터 과학을 위한 엔터프라이즈급 플랫폼을 구축하고 있습니다. 자체 연구 및 개발의 일환으로 우리는 다양한 프레임워크를 평가하고 작업하는 데 수천 시간을 보냈으며 OpenMined 커뮤니티에서도 활발하게 활동하고 있습니다. 이 과정에서 우리는 안전하고, 사용하기 쉽고, 배포하기 쉬우며, 다중 파트너 데이터 협업을 설정하기 위한 엔드투엔드 솔루션으로 제공될 수 있는 플랫폼을 구축해야 한다는 사실을 깨달았습니다. 여기에 표시된 연합 학습 프레임워크는 우리의 자체 개발을 안내했습니다. 이를 실행하려면 많은 양의 엔지니어링 및 배포 노력이 필요한 경우가 많습니다.

     

     

     

    • FATE
    • Substra
    • PySyft + PyGrid
    • OpenFL
    • TensorFlow Federated
    • IBM Federated Learning
    • NVIDIA Clara
    • Enterprise-grade Federated Learning Platforms

     

     

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

    이에 대한 사용자 정의 모델을 사용하고 작성하려면 프로토콜 버퍼에 대한 지식이 필요합니다. 그 외에도 다음과 같은 여러 구성 요소가 있습니다.

    FATEFlow

    FATEFlow는 FATE의 주요 구성 요소이며 엔드투엔드 기계 학습 오케스트레이션 파이프라인을 나타냅니다. 파이프라인은 데이터 전처리, 모델 훈련 및 테스트, 게시, 제공과 같은 기계 학습 작업을 지원합니다. FATEFlow는 DAG, 예약, 모니터링 및 사용자 지정 파이프라인 구성 요소를 지원합니다.

    FederatedML

    FederatedML은 많은 표준 기계 학습 알고리즘과 기타 유틸리티 도구를 구현하는 역할을 하는 구성 요소입니다. 지원되는 알고리즘에는 DataIO, Intersect 및 OneHot Encoder가 포함되지만 이에 국한되지는 않습니다.

    FATE보드

    FATEBoard는 모델을 쉽게 탐색, 분석, 이해하기 위한 연합 학습용 시각화/대시보드 도구 모음입니다. FATEBoard는 독립형 및 분산 배포 설정을 모두 지원합니다.

    FATE 서빙

    FATE Serving은 프로덕션 사용을 위한 연합 학습 모델을 제공하는 구성 요소입니다. 온라인 추론, 모델의 동적 로딩, A/B 테스트 시나리오 및 캐싱을 지원합니다.

    연합 네트워크

    연합 네트워크는 연합 학습 당사자 간의 통신 수단입니다.

    KubeFATE

    KubeFATE는 연합 작업 부하를 관리하는 데 필요한 분산 시스템 인프라입니다. KubeFATE는 docker-compose 및 Kubernetes 클러스터 배포 설정을 지원합니다.

    FATE-클라이언트

    FATE-Client는 다양한 FATE 구성 요소와 상호 작용하는 데 사용되는 선택적 구성 요소입니다.

     

     

    Substra

    https://www.substra.ai/

     

    Substra

    Substra is the most proven federated learning software designed for healthcare research. - Substra

    github.com

     

     

    Substra는 2016년에 설립된 프랑스 스타트업인 Owkin을 중심으로 다중 파트너 연구 프로젝트에 의해 개발된 연합 학습 소프트웨어 프레임워크입니다. Substra는 데이터 소유권 및 개인 정보 보호를 목적으로 의료 분야에 중점을 두고 있습니다. 현재는 제약 산업의 신약 발견을 위한 MELLODY 프로젝트에 사용됩니다.

    Substra는 다양한 유형의 사용자를 위한 다양한 인터페이스를 지원합니다. 여기에는 데이터 과학자를 위한 Python 라이브러리, 관리자를 위한 명령줄 인터페이스, 프로젝트 관리자 및 기타 고급 사용자를 위한 그래픽 사용자 인터페이스가 있습니다. 배포 측면에서 Substra에는 모든 노드에 대한 복잡한 Kubernetes 설정이 포함됩니다.

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

    개인 정보 보호: Substra는 코드 및 데이터에 대한 개인 영역을 별도로 설정할 수 있는 신뢰할 수 있는 실행 환경(enclave라고도 함)을 사용합니다.

    추적성: Substra는 플랫폼의 모든 작업을 불변의 원장에 기록합니다.

    보안: Substra는 모델 업데이트, 저장 데이터 및 네트워크 통신을 암호화합니다.

     

     

    PySyft + PyGrid

    https://blog.openmined.org/tag/pysyft/

     

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

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

    볼 수 없는 데이터에 대한 동적 계산

    나중에 다른 컴퓨팅 환경에서 실행할 수 있는 계산 그래프인 정적 계산

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

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

    PyGrid는 세 가지 구성 요소로 구성됩니다.

    도메인: 연합 학습을 위한 개인 데이터 및 모델을 저장하는 데 사용되는 Flask 기반 애플리케이션

    작업자: 데이터에 대한 계산을 수행하기 위해 도메인 구성 요소에서 관리하는 임시 컴퓨팅 인스턴스입니다.

    네트워크: 다양한 도메인 구성 요소를 모니터링하고 제어하는 ​​Flask 기반 애플리케이션

     

     

    GitHub - OpenMined/pygrid-admin: The user interface for PyGrid!

    The user interface for PyGrid! Contribute to OpenMined/pygrid-admin development by creating an account on GitHub.

    github.com

     

    OpenFL

    https://github.com/intel/openfl

     

    GitHub - securefederatedai/openfl: An open framework for Federated Learning.

    An open framework for Federated Learning. Contribute to securefederatedai/openfl development by creating an account on GitHub.

    github.com

     

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

     

     

    라이브러리는 로컬 데이터 세트를 사용하여 글로벌 모델을 교육하는 공동 작업자와 모델 업데이트를 수신하고 이를 결합하여 글로벌 모델을 생성하는 수집기라는 두 가지 구성 요소로 구성됩니다. OpenFL에는 Python API 및 명령줄 인터페이스가 함께 제공됩니다.

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

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

     

     

     

    TensorFlow Federated

    https://www.tensorflow.org/federated

     

    TensorFlow Federated

    분산 데이터에 대한 머신 러닝 및 기타 계산을 위한 오픈 소스 프레임워크입니다.

    www.tensorflow.org

     

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

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


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


    FL(연합 학습) API
    고급 API를 사용하면 연합 학습 알고리즘의 작동 방식을 자세히 알아보지 않고도 기존 기계 학습 모델을 TFF에 연결할 수 있습니다. FL API는 FC API를 기반으로 구축되었습니다.

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

    모델: TFF로 기존 모델을 래핑할 수 있는 클래스 및 도우미 함수

    연합 계산 빌더: 연합 계산을 구성하는 도우미 함수

    데이터 세트: 시뮬레이션 시나리오에 사용할 미리 준비된 데이터 컬렉션

    FL과 FC 간의 레이어 분리는 다양한 사용자가 수행하는 작업을 용이하게 하기 위한 것입니다. Federated Learning API는 기계 학습 개발자가 FL을 TF 모델로 구현하고 FL 연구원이 새로운 알고리즘을 도입하는 데 도움이 되는 반면, Federated Core API는 시스템 연구원을 위한 것입니다.

     

     

     

    TensorFlow Federated

    분산 데이터에 대한 머신 러닝 및 기타 계산을 위한 오픈 소스 프레임워크입니다.

    www.tensorflow.org

     

    IBM Federated Learning

    https://ibmfl.mybluemix.net/

     

     

    IBM Federated Learning은 고급 기능을 추가할 수 있는 FL용 기본 패브릭을 제공합니다. 이는 특정 기계 학습 프레임워크에 의존하지 않으며 공유 수집기 및 프로토콜과 같은 다양한 학습 토폴로지를 지원합니다.

    이는 엔터프라이즈 및 하이브리드 클라우드 설정에서 다양한 연합 학습 모델, 토폴로지, 학습 모델을 가능하게 하는 연합 학습을 위한 견고한 기반을 제공하기 위한 것입니다. IBM Federated Learning은 다음을 포함한 여러 기계 학습 모델을 지원합니다.

    모델은 Keras, PyTorch 및 TensorFlow로 작성되었습니다.

    선형 분류자/회귀(정규화 포함): 로지스틱 회귀, 선형 SVM, 능형 회귀 등

    의사결정 트리 ID3

    DQN, DDPG, PPO 등을 포함한 심층 강화 학습 알고리즘

     

     

     

    NVIDIA CLARA

    https://developer.nvidia.com/clara

     

    Healthcare Developer Resources

    What is NVIDIA Clara? NVIDIA Clara™ is a platform of AI applications and accelerated frameworks for healthcare developers, researchers, and medical device makers creating AI solutions to improve healthcare delivery and accelerate drug discovery. Clara’

    developer.nvidia.com

     

     

    NVIDIA CLARA는 의료 사용 사례를 위해 설계된 애플리케이션 프레임워크입니다. 여기에는 개발자, 데이터 과학자 및 연구원이 안전하고 확장 가능한 실시간 연합 학습 솔루션을 만들 수 있도록 풀 스택 GPU 가속 라이브러리, SDK 및 참조 애플리케이션이 포함되어 있습니다. CLARA의 적극적인 배포는 NVIDIA의 기술을 사용하여 유방암 진단의 정확성을 향상시키고 있는 프랑스 스타트업 Therapixel에서 확인할 수 있습니다.


    NVIDIA CLARA는 다음 사용 사례를 지원합니다.

    의료기기용 클라라 AGX

    신약 발견을 위한 클라라 디스커버리

    병원을 위한 클라라 가디언

    의료 이미지를 위한 Clara Imaging

    유전체학 분야의 Clara Parabricks

     

     

     

     

     

     

     

    https://www.apheris.com/resources/blog/top-7-open-source-frameworks-for-federated-learning

     

    Top 7 Open-Source Frameworks for Federated Learning

    Build and evolve globally impactful data ecosystems across organizations, industries, and borders — all while protecting privacy and IP.

    www.apheris.com

     

     

     

    반응형
Designed by Tistory.