개요
TFF는 현실적인 프록시 데이터셋에서 연합 연산을 시뮬레이션하여 연합 학습(FL) 연구를 수행할 수 있는 확장 가능하고 강력한 프레임워크입니다. 이 페이지에서는 연구 시뮬레이션에 관련된 주요 개념과 구성 요소를 설명하고, TFF를 활용한 다양한 연구 수행 방법에 대한 자세한 지침을 제공합니다.
TFF에서 연구 코드의 일반적인 구조
TFF로 구현된 연구용 FL 시뮬레이션은 일반적으로 세 가지 주요 유형의 논리로 구성됩니다.
TensorFlow 코드의 개별 조각, 일반적으로
tf.function타입으로 표현되는 이 코드들은 특정 위치(예: 클라이언트 또는 서버)에서 실행되는 로직을 캡슐화합니다. 이러한 코드는 일반적으로tff.*참조 없이 작성 및 테스트되며, TFF 외부에서도 재사용할 수 있습니다. 예를 들어, 연합 평균(Federated Averaging)의 클라이언트 학습 루프는 이 수준에서 구현됩니다.TensorFlow 연합 오케스트레이션 로직은 1번에서 설명한 개별
tf.function들을tff.tensorflow.computation으로 래핑한 다음,federated_language.federated_computation내에서federated_language.federated_broadcast및federated_language.federated_mean과 같은 추상화를 사용하여 오케스트레이션합니다. 예를 들어, 연합 평균화에 대한 오케스트레이션을 참조하십시오.실제 FL 시스템의 제어 로직을 시뮬레이션하는 외부 드라이버 스크립트로, 데이터 세트에서 시뮬레이션된 클라이언트를 선택한 다음 2.에 정의된 연합 연산을 해당 클라이언트에서 실행합니다. 예를 들어, 연합 EMNIST 실험 드라이버가 있습니다 .
연합 학습 데이터 세트
TensorFlow Federated는 연합 학습으로 해결할 수 있는 실제 문제의 특성을 대표하는 여러 데이터 세트를 호스팅합니다 .
데이터 세트에는 다음이 포함됩니다.
StackOverflow . 언어 모델링 또는 지도 학습 작업에 사용할 수 있는 현실적인 텍스트 데이터 세트로, 342,477명의 고유 사용자와 135,818,730개의 예제(문장)로 구성된 학습 세트를 제공합니다.
연합형 EMNIST . EMNIST 문자 및 숫자 데이터셋의 연합형 전처리로, 각 클라이언트는 서로 다른 필기자에 해당합니다. 전체 학습 데이터셋은 62개 레이블에서 추출한 671,585개의 예제를 포함하는 3,400명의 사용자로 구성됩니다.
셰익스피어 . 윌리엄 셰익스피어의 모든 작품을 기반으로 한 소규모 문자 수준 텍스트 데이터 세트입니다. 이 데이터 세트는 715명의 등장인물(셰익스피어 희곡의 등장인물)로 구성되며, 각 예시는 해당 희곡에서 등장인물이 말하는 연속된 대사 집합에 해당합니다.
CIFAR-100 . 500개의 훈련 클라이언트와 100개의 테스트 클라이언트에 걸쳐 CIFAR-100 데이터셋을 연합 방식으로 분할했습니다. 각 클라이언트는 100개의 고유한 예제를 가지고 있습니다. 이러한 분할은 클라이언트 간의 보다 현실적인 이질성을 생성하는 방식으로 이루어집니다. 자세한 내용은 API를 참조하세요.
Google Landmark v2 데이터 셋은 전 세계 다양한 랜드마크 사진으로 구성되어 있으며, 사진 작가별로 이미지를 그룹화하여 연합 분할 방식으로 데이터를 관리합니다. 데이터셋은 두 가지 버전으로 제공됩니다. 하나는 233개 클라이언트와 23,080개의 이미지로 구성된 소규모 데이터셋이고, 다른 하나는 1,262개 클라이언트와 164,172개의 이미지로 구성된 대규모 데이터셋입니다.
CelebA는 유명인 얼굴의 예시(이미지 및 얼굴 속성)로 구성된 데이터셋입니다. 연합 데이터셋은 각 유명인의 예시들을 그룹화하여 하나의 클라이언트를 형성합니다. 총 9343개의 클라이언트가 있으며, 각 클라이언트는 최소 5개 이상의 예시를 포함합니다. 데이터셋은 클라이언트별 또는 예시별로 학습 그룹과 테스트 그룹으로 분할할 수 있습니다.
iNaturalist 데이터셋은 다양한 종의 사진으로 구성되어 있습니다. 이 데이터셋에는 1,203종에 대한 120,300장의 이미지가 포함되어 있습니다. 데이터셋은 총 7가지 유형으로 제공됩니다. 그중 하나는 사진작가별로 분류되어 있으며, 9,257명의 고객 정보를 담고 있습니다. 나머지 6가지 유형은 사진 촬영 위치별로 분류되어 있으며, 각각 11명에서 3,606명의 고객 정보를 포함하고 있습니다.
고성능 시뮬레이션
FL 시뮬레이션 의 실제 소요 시간은 알고리즘 평가에 적합한 지표는 아니지만(시뮬레이션 하드웨어가 실제 FL 배포 환경을 대표하지 않기 때문), FL 시뮬레이션을 빠르게 실행할 수 있는 것은 연구 생산성에 매우 중요합니다. 따라서 TFF는 고성능 단일 및 다중 머신 런타임을 제공하는 데 많은 투자를 해왔습니다. 관련 문서는 현재 개발 중이며, 지금은 가속기를 사용한 TFF 시뮬레이션 지침과 GCP에서 TFF를 사용한 시뮬레이션 설정 지침을 참조하십시오. 고성능 TFF 런타임은 기본적으로 활성화되어 있습니다.
다양한 연구 분야에 대한 TFF
연합 최적화 알고리즘
TFF에서 연합 최적화 알고리즘에 대한 연구는 원하는 맞춤 설정 수준에 따라 다양한 방식으로 수행할 수 있습니다.
연합 평균화 알고리즘의 최소한의 독립형 구현이 여기에 제공됩니다. 코드에는 로컬 계산을 위한 TF 함수 , 오케스트레이션을 위한 TFF 계산 , 그리고 예시로 EMNIST 데이터셋에 대한 드라이버 스크립트가 포함되어 있습니다. 이 파일들은 README 파일 의 자세한 지침에 따라 사용자 정의 애플리케이션 및 알고리즘 변경에 맞게 쉽게 수정할 수 있습니다.
연합 평균화의 보다 일반적인 구현은 여기에서 확인할 수 있습니다. 이 구현은 서버와 클라이언트 양쪽에서 서로 다른 최적화 도구를 사용하는 등 더욱 정교한 최적화 기법을 지원합니다. 연합 k-평균 클러스터링을 포함한 다른 연합 학습 알고리즘은 여기에서 확인할 수 있습니다.
모델 업데이트 압축
모델 업데이트의 손실 압축은 통신 비용을 줄여 결과적으로 전체 학습 시간을 단축할 수 있습니다.
최근 논문을 재현하려면 이 연구 프로젝트를 참조하십시오. 사용자 지정 압축 알고리즘을 구현하려면 예시로 기준선에 대한 비교 방법(comparison_methods)을 참조하고, TFF Aggregators 튜토리얼( 아직 익숙하지 않은 경우)을 참조하십시오.
차분 프라이버시
TFF는 TensorFlow Privacy 라이브러리와 상호 운용이 가능하여 차분 프라이버시를 적용한 모델의 연합 학습을 위한 새로운 알고리즘 연구를 지원합니다. 기본 DP-FedAvg 알고리즘 및 확장 기능을 사용한 차분 프라이버시 학습 예시는 이 실험 드라이버를 참조하세요.
사용자 정의 DP 알고리즘을 구현하고 이를 연합 평균의 집계 업데이트에 적용하려면, tensorflow_privacy.DPQuery 의 하위 클래스로 새로운 DP 평균 알고리즘을 구현하고, 해당 쿼리 인스턴스를 사용하여 tff.aggregators.DifferentiallyPrivateFactory 를 생성하면 됩니다. DP-FTRL 알고리즘 구현 예시는 여기에서 확인할 수 있습니다.
연합 GAN( 아래 설명 참조)은 사용자 수준 차분 프라이버시를 구현하는 TFF 프로젝트의 또 다른 예입니다(예: 여기 코드 참조 ).
견고성 및 공격
TFF는 Can You Really Backdoor Federated Learning? 에서 다룬 연합 학습 시스템에 대한 표적 공격 및 차분 프라이버시 기반 방어를 시뮬레이션하는 데에도 사용할 수 있습니다. 이는 잠재적으로 악의적인 클라이언트를 사용하여 반복적인 프로세스를 구축함으로써 수행됩니다( build_federated_averaging_process_attacked 참조). targeted_attack 디렉터리에 더 자세한 내용이 있습니다.
- 새로운 공격 알고리즘은 클라이언트 업데이트 함수(TensorFlow 함수)를 작성하여 구현할 수 있습니다. 예를 들어
ClientProjectBoost참조하세요. - 클라이언트 출력을 집계하여 전역 업데이트를 얻는 'tff.utils.StatefulAggregateFn' 을 사용자 정의하여 새로운 방어 기능을 구현할 수 있습니다.
시뮬레이션 예제 스크립트는 emnist_with_targeted_attack.py 참조하세요.
생성적 적대 신경망
GAN은 표준 연합 평균화와는 다소 다른 흥미로운 연합 오케스트레이션 패턴을 제공합니다. GAN은 각각 고유한 최적화 단계를 거쳐 학습된 두 개의 독립적인 네트워크(생성자와 판별자)로 구성됩니다.
TFF는 GAN의 연합 학습 연구에 활용될 수 있습니다. 예를 들어, 최근 연구 에서 제시된 DP-FedAvg-GAN 알고리즘은 TFF로 구현되었습니다 . 이 연구는 연합 학습, 생성 모델, 그리고 차분 프라이버시를 결합하는 것의 효과를 입증합니다.
개인화
연합 학습 환경에서의 개인화는 활발한 연구 분야입니다. 개인화의 목표는 사용자마다 다른 추론 모델을 제공하는 것입니다. 이 문제에는 다양한 접근 방식이 존재할 수 있습니다.
한 가지 접근 방식은 각 클라이언트가 로컬 데이터를 사용하여 단일 글로벌 모델(연합 학습을 사용하여 학습됨)을 미세 조정하도록 하는 것입니다. 이 접근 방식은 메타 학습과 관련이 있으며, 예를 들어 이 논문을 참조하십시오. 이 접근 방식의 예는 emnist_p13n_main.py 에 나와 있습니다. 다양한 개인화 전략을 탐색하고 비교하려면 다음을 수행할 수 있습니다.
초기 모델에서 시작하여 각 클라이언트의 로컬 데이터셋을 사용하여 개인화된 모델을 학습 및 평가하는
tf.function구현하여 개인화 전략을 정의하십시오.build_personalize_fn이 예시입니다.전략 이름을 해당 개인화 전략에 매핑하는
OrderedDict정의하고, 이를tff.learning.build_personalization_eval_computation의personalize_fn_dict인수로 사용합니다.
또 다른 접근 방식은 모델의 일부를 완전히 로컬에서 학습함으로써 전체 모델을 학습하는 것을 피하는 것입니다. 이 접근 방식의 구체적인 예는 이 블로그 게시물 에 설명되어 있습니다. 이 접근 방식은 메타 학습과도 관련이 있으며, 관련 내용은 이 논문을 참조하십시오.