Path: blob/master/site/ko/federated/tutorials/federated_select.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
tff.federated_select를 사용하여 특정 클라이언트에 다른 데이터 보내기
이 튜토리얼에서는 TFF에서, 다른 클라이언트에 다른 데이터를 보내야 하는 사용자 지정 페더레이션 알고리즘을 구현하는 방법을 보여줍니다. 모든 클라이언트에 단일 서버 배치 값을 보내는 tff.federated_broadcast
에 이미 익숙할 것입니다. 이 튜토리얼은 서버 기반 값의 서로 다른 부분이 다른 클라이언트로 전송되는 상황에 초점을 맞춥니다. 이것은 전체 모델을 단일 클라이언트에 보내는 것을 피하기 위해 여러 클라이언트에 걸쳐 모델을 여러 부분으로 나누는 데 유용할 수 있습니다.
tensorflow
와 tensorflow_federated
를 모두 가져와 시작하겠습니다.
클라이언트 데이터를 기반으로 다른 값 보내기
일부 클라이언트 배치 데이터를 기반으로 각 클라이언트에 몇 가지 요소를 보내려는 서버 배치 목록이 있는 경우를 고려하겠습니다. 예를 들어, 서버의 문자열 목록과 클라이언트의 다운로드할 인덱스 목록은 쉼표로 구분됩니다. 다음과 같이 이를 구현할 수 있습니다.
그런 다음 서버 배치 문자열 목록과 각 클라이언트에 대한 문자열 데이터를 제공하여 계산을 시뮬레이션할 수 있습니다.
각 클라이언트에 무작위 요소 보내기
또는, 서버 데이터의 임의 부분을 각 클라이언트에 보내는 것이 유용할 수 있습니다. 먼저 각 클라이언트에서 임의의 키를 생성한 다음 위에서 사용한 것과 유사한 선택 프로세스를 수행하여 이를 구현할 수 있습니다.
broadcast_random_element
함수는 어떤 클라이언트 배치 데이터도 사용하지 않으므로 사용할 기본 클라이언트 수로 TFF 시뮬레이션 런타임을 구성해야 합니다.
그런 다음 선택을 시뮬레이션할 수 있습니다. 위의 default_num_clients
와 아래의 문자열 목록을 변경하여 다른 결과를 생성하거나 단순히 계산을 다시 실행하여 다른 무작위 출력을 생성할 수 있습니다.