제휴 컴퓨팅(FC) 서버는 기기 내 맞춤설정(ODP)에서 제공하는 제휴 학습의 일부입니다. 이 문서의 목적은 제휴 컴퓨팅 서버 (FC Server)와 그 구성요소, 사용되는 기술을 소개하는 것입니다. 이 문서에서는 아키텍처에 대한 대략적인 개요를 제공한 후 각 구성요소를 자세히 살펴봅니다. 또한 구성요소가 함께 작동하여 제휴 학습 환경을 제공하는 방법을 설명하고 워크로드 확장 및 샤딩 전략을 제공합니다.
학습 흐름
학습은 FC 클라이언트와 FC 서버 간의 데이터 흐름으로 구성됩니다. FC 클라이언트는 기기 내에서 ML 모델을 학습하고 FC 서버와 상호작용하는 핵심 Android 모듈입니다. FC 서버는 신뢰할 수 있는 실행 환경(TEE)에서 FC 클라이언트의 결과를 안전하게 처리하고 집계합니다.
교육은 다음 단계로 구성됩니다.
- 기기의 FC 클라이언트가 키 서비스에서 공개 암호화 키를 다운로드합니다.
- FC 클라이언트가 FC 서버에 체크인하고 학습 작업을 가져옵니다.
- FC 클라이언트는 학습 계획과 최신 버전의 모델(버전 N)을 다운로드합니다.
- FC 클라이언트는 로컬 데이터와 계획을 사용하여 학습합니다.
- FC 클라이언트는 0단계에서 얻은 공개 키를 사용하여 이 기기의 참여를 암호화하여 FC 서버에 업로드합니다.
- FC 클라이언트는 학습이 완료되었음을 FC 서버에 알립니다.
- FC 서버는 충분한 수의 고객이 기부를 제출할 때까지 기다립니다.
- 집계 라운드가 트리거됩니다.
- 암호화된 참여는 애그리게이터에 의해 신뢰할 수 있는 실행 환경(TEE)에 로드됩니다.
- 애그리게이터는 NIST의 RFC 9334 원격 증명 절차 (RATS) 아키텍처에 따라 조정자에게 자체 증명합니다. 증명에 성공하면 키 서비스에서는 암호 해독 키를 부여합니다. Shamir 보안 비밀 공유 체계에서 이러한 키는 여러 키 제공업체에 분할될 수 있습니다.
- 애그리게이터는 적절한 개인 정보 차등 보호(DP) 메커니즘에 따라 교차 기기 집계, 클립, 노이즈를 처리하고 노이즈가 제거된 결과를 출력합니다.
- 애그리게이터가 모델 업데이터를 트리거합니다.
- 모델 업데이터는 집계된 기여도를 로드하고 모델 버전 N에 적용하여 모델 버전 N + 1을 만듭니다. 새 모델이 모델 저장소에 푸시됩니다.
FC 서버는 TEE 및 관련 보안 기능을 지원하는 모든 클라우드 서비스에 배포할 수 있습니다. 여기서는 퍼블릭 클라우드 제공업체와 기반 기술을 평가하고 있지만, 지금은 다음 섹션에서는 Confidential Space를 사용한 Google Cloud 구현 예시를 보여줍니다.
대략적인 아키텍처
FC 서버에는 Google Cloud에 배포된 다음 구성요소가 있습니다.
구성요소 | 설명 |
작업 관리 서비스 | 학습 작업을 관리하는 웹 서비스입니다. 파트너는 Task Management API를 사용하여 학습 작업을 만들고, 기존의 모든 학습 작업을 나열하고, 작업을 취소하고, 모든 학습 상태를 검색해야 합니다. |
할 일 할당 서비스 | 클라이언트 기기가 주기적으로 체크인하여 학습 작업을 가져오고 학습 상태를 보고하는 HTTPS 기반 웹 서비스입니다. |
애그리게이터 | Confidential Space에서 실행되는 백그라운드 서비스 ODP 작성 워크로드를 실행합니다. 암호 해독 키에 대한 액세스를 가드레일하는 조정자를 입증해야 합니다. 성공적으로 증명된 애그리게이터만 클라이언트 기기에서 제출한 기여를 복호화하고 교차 기기 집계를 수행할 수 있습니다. |
모델 업데이터 | 집계된 그라디언트를 모델에 적용하는 Confidential Space에서 실행되는 백그라운드 서비스입니다. |
구성요소 세부정보
다음 섹션에서는 대략적인 아키텍처를 더 자세히 설명합니다.
작업 관리 서비스
작업 관리 서비스에는 작업 관리 웹 서비스와 작업 스케줄러 서비스라는 두 가지 하위 구성요소가 있으며, 둘 다 GKE에 배포됩니다.
작업 관리
HTTPS 요청을 받아 작업 데이터베이스에서 작업을 만들거나 가져오는 프런트엔드 웹 서비스 집합입니다.
작업 스케줄러
작업 데이터베이스를 지속적으로 스캔하는 백그라운드 서비스 새 학습 라운드 및 반복 생성과 같은 학습 흐름을 관리합니다.
작업 데이터베이스
태스크, 반복, 할당 정보를 저장하는 ANSI SQL 준수 데이터베이스입니다. 이 구현에서는 Google Cloud Spanner가 기본 데이터베이스 서비스로 사용됩니다.
할 일 할당 서비스
Task Assignment Service는 GKE에서 호스팅되는 프런트엔드 웹 서비스입니다. FC 클라이언트의 요청을 수신하고 해당하는 경우 학습 작업을 배포합니다.
여기서 태스크 데이터베이스는 태스크 관리 서비스의 태스크 데이터베이스와 동일한 데이터베이스 인스턴스입니다.
애그리게이터 서비스
애그리게이터 및 모델 업데이터
애그리게이터와 모델 업데이터는 비슷합니다. Confidential Space에서 데이터를 안전하게 처리하는 백그라운드 서비스입니다. 오프라인 작업 간의 통신은 PubSub를 통해 이루어집니다.
경사, 집계된 경사, 모델, 계획
- 클라이언트 기기에서 업로드된 (암호화된) 그라데이션을 위한 그라디언트 스토리지입니다.
- 집계된, 잘린, 노이즈가 추가된 그라데이션을 위한 집계된 그라데이션 저장소입니다.
- 학습 계획, 모델, 가중치의 모델 및 계획 저장소입니다.
수집기
수집기는 학습 중에 클라이언트 기기 제출 수를 주기적으로 계산하는 백그라운드 서비스입니다. 충분한 제출이 확보되면 애그리게이터에게 집계를 시작하도록 알립니다.
서비스 호스트
민감한 정보에 액세스할 수 없는 모든 서비스는 GKE에서 호스팅됩니다.
민감한 정보에 접근할 수 있는 모든 서비스는 Confidential Space에서 호스팅됩니다.
모든 민감한 정보는 여러 당사자가 소유한 키 서비스에서 관리하는 암호화 키로 암호화됩니다. 적법한 기밀 컴퓨팅 지원 버전의 Confidential Space에서 실행되고 성공적으로 증명된 ODP 작성 오픈소스 코드만 복호화 키에 액세스할 수 있습니다.
하나의 서비스 단위에서 컴퓨팅 리소스는 다음과 같습니다.
확장성
앞에서 설명한 인프라는 하나의 서비스 단위에 중점을 둡니다.
서비스 단위 1개에서 Cloud Spanner 1개를 사용합니다. 중요한 제한사항은 Spanner 할당량 및 한도를 참고하세요.
이 아키텍처의 각 구성요소는 독립적으로 확장할 수 있습니다. 이는 표준 확장 메커니즘을 사용하여 Confidential Space 또는 GKE 클러스터 내에서 용량을 확장하여 수행됩니다. 다음의 인스턴스를 더 추가하여 처리 용량을 늘릴 수 있습니다.
- 할 일 할당 웹 서비스
- 작업 관리 웹 서비스
- 애그리게이터 인스턴스
- 모델 업데이터 인스턴스
탄력성
FC 서버의 복원력은 복제된 스토리지를 사용하는 재해 복구로 처리됩니다. 재해 복구에 관심이 있다면 리전 간 데이터 복제를 사용 설정해야 합니다. 이렇게 하면 재해(예: 데이터 센터를 방해하는 기상 현상)가 발생할 경우 마지막 학습 라운드부터 서비스가 재개됩니다.
Spanner
FC 서버의 기본 구현은 Google Cloud Spanner를 데이터베이스로 사용하여 학습 흐름을 제어하는 데 사용되는 태스크 상태를 저장합니다. 멀티 리전 구성을 선택하기 전에 비즈니스 요구사항에 따라 일관성과 가용성 간의 절충점을 평가해야 합니다.
Spanner 인스턴스에는 원시 또는 암호화된 사용자 데이터 또는 그 파생 데이터가 저장되지 않습니다. Spanner에서 제공하는 재해 복구 기능을 자유롭게 사용할 수 있습니다.
Spanner는 변경 내역을 기록합니다. 집계기와 모델 업데이터는 학습 라운드별로 데이터를 저장하며 각 라운드의 결과는 서로 덮어쓰지 않고 별도로 저장됩니다. 따라서 재해가 발생할 경우 마지막 학습부터 서비스를 다시 시작할 수 있습니다.
Google Cloud Storage
FC Server의 기본 구현에서는 Google Cloud Storage를 사용하여 모델, 학습 계획, 암호화된 기기 참여 내역과 같은 blob 데이터를 저장합니다.
설계에는 GCS 인스턴스가 세 개 있습니다.
- 기기 참여: 기기에서 업로드된 암호화된 기기 참여
- 모델: 학습 계획, 모델, 가중치
- 집계된 경사: 애그리게이터에 의해 생성된 집계된 경사입니다.
GCS에 저장된 데이터는 다음 중 하나입니다.
- 개발자가 제공한 데이터(예: 학습 계획) 또는
- 기기 업로드 경사 및 집계된 경사와 같은 사용자 신호 (다중 조정자 지원 암호화로 보호됨)에서 파생되므로 비공개 가능성이 있는 데이터 또는
- 모델 가중치와 같이 개인 정보 차등 보호 적용 후에 사용자 신호에서 파생된 개인 정보 이외의 데이터
일관성과 가용성 사이의 절충점을 평가하고 적절한 GCS 데이터 가용성 및 내구성 기능을 선택해야 합니다. 자체 데이터 보관 정책을 지정해야 합니다.
복제 및 백업
Google Cloud에서 제공하는 데이터 복제 메커니즘 외에도 Spanner 및 GCS에서 주기적으로 데이터를 백업할 수도 있습니다. 예를 들어 교차 클라우드 복제 서비스 및 제품을 사용할 수 있습니다. 이러한 구성은 비즈니스 요구사항에 따라 크게 달라지므로 ODP에서 샘플을 제공하지 않습니다. 현재 설계는 이러한 복제 및 백업에 대한 개발자의 잠재적 요구사항을 고려합니다. 따라서 서드 파티에서 제공하는 복제 및 백업 서비스 및 제품과 호환됩니다.