0 / 0
영어 버전 문서로 돌아가기
연합 학습 Tensorflow 학습서
마지막 업데이트 날짜: 2024년 11월 28일
연합 학습 Tensorflow 학습서

이 튜토리얼에서는 사용자가 데이터를 공유하지 않고 다른 사용자의 데이터로 기계 학습 모델을 훈련시키는 것을 목표로 연합 학습의 사용을 설명합니다. 단계는 UI및 Tensorflow 프레임워크를 사용하여 낮은 코드 환경에서 수행됩니다.

참고:

이는 UI 기반 연합 학습 실험을 실행하기 위한 단계별 학습서입니다. API 구동 접근 방식에 대한 코드 샘플을 보려면 연합 학습 Tensorflow 샘플을 참조하십시오.

팁:

이 학습서에서 admin 은 연합 학습 실험을 시작하는 사용자를 나타내고 party 는 관리자가 실험을 시작한 후 모델 결과를 전송하는 하나 이상의 사용자를 나타냅니다. 이 튜토리얼은 관리자 및 여러 당사자가 수행할 수 있지만 단일 사용자도 관리자 및 당사자 모두로 전체 런 스루를 완료할 수 있습니다. 보다 간단한 데모를 위해 다음 튜토리얼에서는 하나의 당사자가 하나의 데이터 세트만 제출합니다. 관리자 및 당사자에 대한 자세한 정보는 용어를 참조하십시오.

이 학습서에서는 다음 태스크를 완료합니다.

튜토리얼 미리보기

이 짧은 동영상 튜토리얼을 통해 watsonx.ai Studio로 연합 학습 실험을 만드는 방법을 알아보세요.

이 비디오는 이 문서의 개념 및 태스크를 학습하기 위한 시각적 방법을 제공합니다.

전제조건

확인 Python 버전

관리자와 동일한 Python 버전을 사용 중인지 확인하십시오. 다른 Python 버전을 사용하면 호환성 문제가 발생할 수 있습니다. 다른 프레임워크와 호환 가능한 Python 버전을 보려면 프레임워크 및 Python 버전 호환성을 참조하십시오.

프로젝트 열기

  1. 기존 프로젝트 를 사용하거나 새 프로젝트를 작성하십시오. 최소한 관리 권한이 있어야 합니다.

  2. watsonx.ai 런타임 서비스를 프로젝트에 연결합니다.

    1. 프로젝트에서 관리 > 서비스 및 통합을 클릭하십시오.
    2. 서비스 연관을 클릭하십시오.
    3. 목록에서 watsonx.ai 런타임 인스턴스를 선택하고 연결을 클릭하거나, 인스턴스가 없는 경우 새 서비스를 클릭하여 인스턴스를 설정합니다.

    서비스 연관 스크린샷

작업 1: 관리자로 연합 학습 시작

프로젝트에서 다음을 사용하여 연합 학습 실험을 생성합니다. Tensorflow MNIST 데이터 세트를 사용하는 프레임워크입니다.

일 1a: 실험 세부정보 정의

  1. 프로젝트에서 자산 프로젝트의 탭.

  2. 딸깍 하는 소리 새 자산 > 분산 데이터에 대한 모델 학습 연합 학습 실험 자산을 생성합니다.

  3. 실험의 이름 을 입력하고 선택적으로 설명을 입력하십시오.

  4. 머신 러닝 인스턴스 선택에서 연결된 watsonx.ai 런타임 인스턴스를 확인합니다. 연결된 watsonx.ai 런타임 인스턴스가 보이지 않는 경우 다음 단계를 따르세요:

    1. Machine Learning 서비스 인스턴스 연관을 클릭하십시오.

    2. 기존 인스턴스를 선택하고 연관을 클릭하거나 새 서비스를 작성하십시오.

    3. 연관된 서비스를 보려면 다시 로드를 클릭하십시오.

      서비스 연관 스크린샷

    4. 다음 을 클릭하십시오.

일 1b: 실험 구성

  1. 구성 페이지에서 하드웨어 스펙을 선택하십시오.

  2. 을 위한 머신러닝 프레임워크, 선택하다 Tensorflow 2.

  3. 선택하다 분류 에 대한 모델 유형.

  4. 훈련되지 않은 모델을 다운로드하십시오.

  5. Federated Learning 실험에서 모델 스펙아래의 선택을 클릭하십시오.

    1. 다운로드한 tf_mnist_model.zip 파일을 업로드 파일 상자로 끌어오십시오.

    2. 필요한 경우 runtime-23.1-py3.10 에 대한 소프트웨어 사양 쓰러지 다.

    3. 모델 이름을 입력한 다음 추가하다.

      초기 모델 가져오기의 스크린 프로듀서다니다니다니다.

  6. Fusion 방법에 대해 가중 평균 을 클릭하고 다음을 클릭하십시오.

    융합 방법 UI의 스크린샷

일 1c: 하이퍼파라미터 정의

  1. 기본 하이퍼 매개변수를 채택하거나 필요에 따라 조정하십시오.

  2. 완료되면 다음을 클릭하십시오.

일 1d: 원격 훈련 시스템 선택

  1. 새 시스템 추가를 클릭하십시오.

    RTS UI 추가 스크린 샷

  2. 원격 교육 시스템의 이름을 입력하세요.

  3. 허용된 ID에서 당사자인 사용자를 선택한 후 추가를 클릭하십시오. 이 자습서에서는 데모 목적으로 가상의 사용자나 자신을 추가할 수 있습니다.
    이 사용자는 다음의 공동작업자로 프로젝트에 추가되어야 합니다. 편집자 또는 더 높은 권한. 사용하려는 각 원격 당사자에 대해 이 단계를 반복하여 시스템을 더 추가하십시오.

  4. 완료되면 시스템 추가를 클릭하십시오.

    사용자 추가 스크린샷

  5. 원격 훈련 시스템 선택 페이지로 돌아가서 시스템이 선택되었는지 확인한 후 다음을 클릭하십시오.

일 1e: 설정 검토

  1. 설정을 검토하십시오. 그리고 클릭 만들다.

  2. 상태를 감시하십시오. Federated Learning 실험 상태는 시작 시 보류 중입니다. 사용자의 실험이 연결할 준비가 되면 상태가 설치 - 원격시스템 대기 중으로 변경됩니다. 몇 분이 소요될 수 있습니다.

  3. 딸깍 하는 소리 설정 정보 보기 원격 파티에서 실행할 수 있는 파티 구성 및 파티 커넥터 스크립트를 다운로드합니다.

  4. 생성한 각 원격 교육 시스템 옆에 있는 구성 다운로드 아이콘 ' 구성 다운로드 '을 클릭합니다. 파티 커넥터 스크립트를 이름이 있는 컴퓨터의 디렉터리에 저장합니다.remote-test-system-configuration.py .

    원격 교육 시스템 설정 정보

  5. 완료를 클릭하십시오.

체크포인트 아이콘 진행 상황 확인

다음 이미지는 '원격 시스템 대기 중' 상태의 실험을 보여줍니다.

다음 이미지는 '원격 시스템 대기 중' 상태의 실험을 보여줍니다.

작업 2: 파티로 모델 훈련

모델을 훈련하려면 데이터 세트를 다운로드한 다음 Python 스크립트를 편집하고 실행해야 합니다. 다음 단계에 따라 모델을 당사자로 훈련시키십시오.

일 2a: 데이터 세트 및 스크립트 다운로드

  1. 새 로컬 디렉터리를 만들고 작업에서 다운로드한 파티 커넥터 스크립트를 이동합니다. 1e 새 디렉터리로 이동합니다.

  2. 파일 이름을 마우스 오른쪽 버튼으로 클릭하여 데이터 핸들러 mnist_keras_data_handler.py 다운로드한 다음 다른 이름으로 링크 저장을 클릭합니다. 당사자 커넥터 스크립트와 동일한 디렉토리에 저장하십시오.

    1. 변경하려면 데이터 핸들러 Python 스크립트를 편집하세요.ibm_watson_machine_learning 에게ibm_watsonx_ai .

    2. 파일을 저장하십시오.

  3. 리소스 허브에서 MNIST 필기 데이터 세트를 다운로드하세요. 파티 커넥터 스크립트, 데이터 처리기 및 나머지 파일과 동일한 디렉터리에서 unzip 명령을 실행하여 압축을 풉니다.unzip MNIST-pkl.zip .
    이제 파티 커넥터 스크립트가 생겼습니다.mnist_keras_data_handler.py ,mnist-keras-test.pkl 그리고mnist-keras-train.pkl 같은 디렉토리에 있습니다.

작업 2b: watsonx.ai 런타임 설치

  • Windows를 사용하는 경우 또는 Linux, 다음 명령을 실행하십시오.

    pip install 'ibm_watsonx_ai[fl-rt23.1-py3.10]'
    
  • M 시리즈 CPU 및 Conda가 탑재된 Mac OS를 사용하는 경우 다음을 다운로드하세요. 설치 스크립트 그런 다음 다음을 실행하십시오.

    ./install_fl_rt23.1_macos.sh <name for new conda environment>
    

일 2c: 파티 커넥터 스크립트 편집 및 실행

파티 커넥터 스크립트는 다음 스크립트와 유사합니다.

from ibm_watsonx_ai import APIClient
wml_credentials = {
    "url": "https://us-south.ml.cloud.ibm.com",
    "apikey": "<API KEY>"
    }
wml_client = APIClient(wml_credentials)
wml_client.set.default_project("XXX-XXX-XXX-XXX-XXX")
party_metadata = {
            wml_client.remote_training_systems.ConfigurationMetaNames.DATA_HANDLER: {
            # Supply the name of the data handler class and path to it.
            # The info section may be used to pass information to the
            # data handler.
            # For example,
            #     "name": "MnistSklearnDataHandler",
            #     "path": "example.mnist_sklearn_data_handler",
            #     "info": {
            #         "train_file": pwd + "/mnist-keras-train.pkl",
            #         "test_file": pwd + "/mnist-keras-test.pkl"
            #     }
                "name": "<data handler>",
                "path": "<path to data handler>",
                    "info": {
                        "<information to pass to data handler>"
                    }
                }
            }
party = wml_client.remote_training_systems.create_party("XXX-XXX-XXX-XXX-XXX", party_metadata)
party.monitor_logs()
party.run(aggregator_id="XXX-XXX-XXX-XXX-XXX", asynchronous=False)

파티 커넥터 파일을 편집하고,remote-test-systm-configuration.py 을 클릭하고 다음과 같이 변경합니다.

  1. 자격 증명 제공: 원격 교육 시스템에 정의된 사용자의 API 키를 붙여넣습니다. API 키가 없는 경우, IBM Cloud API 키 페이지로 이동하여 API 키 만들기를 클릭하고 필드를 채운 다음 만들기를 클릭합니다.

  2. 에서 파티_메타데이터 필드에 다음 JSON 텍스트와 유사해야 하는 이름, 경로 및 정보를 제공합니다.

    "name": "MnistTFDataHandler",
     "path": "mnist_keras_data_handler.py",
     "info": {
             "train_file": "mnist-keras-train.pkl",
     	     "test_file": "mnist-keras-test.pkl"
             }
    
  3. 파티 커넥터 스크립트를 저장합니다.

  4. 다음 중 하나를 사용하여 파티 커넥터 스크립트를 실행합니다.python 또는python3 당신이 설치한 것에 따라.

    python remote-test-system-configuration.py
    

UI에서 연합 학습 실험의 상태를 모니터할 수 있습니다.

체크포인트 아이콘 진행 상황 확인

다음 이미지는 완료된 실험을 보여줍니다.

다음 이미지는 완료된 실험을 보여줍니다.

작업 3: 온라인으로 모델 저장 및 배포

이 섹션에서는 훈련한 모델을 저장하고 배치하는 방법을 학습합니다.

일 3a: 모델 저장

  1. 완료된 연합 학습 실험에서 다음을 클릭하세요. 집계 저장.
  2. 집계된 모델을 프로젝트에 저장 화면에서 모델 이름을 입력하세요. 그리고 클릭 만들다.
  3. 모델이 생성되었다는 알림이 표시되면 프로젝트에서 보기. 알림을 놓친 경우 프로젝트 이름을 클릭하여 자산 탭으로 돌아가고, 모델 이름을 클릭하여 확인하세요.

일 3b: 모델을 스페이스로 승격

  1. 모델 세부 정보 페이지에서 ' 배포 공간으로 승격 ' 배치 영역으로 승격'를 클릭합니다.
  2. 선택하세요 대상 공간 목록에서 선택하거나 새로운 배포 공간을 생성하세요.
    1. 선택하다 새로운 배포 공간 생성.

    2. 배포 공간의 이름을 입력합니다.

    3. 보관 서비스를 선택하세요.

    4. 머신러닝 서비스를 선택하세요.

    5. 작성을 클릭하십시오.

    6. 배포 공간이 생성되면 창을 닫습니다.

  3. 승격 후 공간의 모델로 이동 옵션을 선택하십시오.
  4. 승격을 클릭하십시오.

일 3c: 온라인 배포 생성 및 보기

  1. 배치 공간 내에 모델이 표시되면 새 배치를 클릭하십시오.
  2. 배치 유형으로 온라인을 선택하십시오.
  3. 배치의 이름을 지정하십시오.
  4. 작성을 클릭하십시오.
  5. 배포 상태가 다음으로 변경될 때까지 기다립니다. 배포됨 을 클릭한 다음 배포 이름을 클릭합니다.
  6. 애플리케이션에서 이 배포를 사용하려면 엔드포인트와 코드 조각을 확인하세요.

체크포인트 아이콘 진행 상황 확인

다음 이미지는 배포를 보여줍니다.

다음 이미지는 배포를 보여줍니다.

다음 단계

사용자 정의된 고유 연합 실험을 작성할 준비가 되셨습니까? Federated Learning 실험 작성에서 상위 레벨 단계를 참조하십시오.

상위 주제: 연합 학습 학습서 및 샘플

일반적인 AI 검색 및 응답
이러한 응답은 제품 문서의 컨텐츠를 기반으로 하는 watsonx.ai 의 대형 언어 모델에 의해 생성됩니다. 자세히 알아보기