제퍼넷 로고

FedML, Amazon EKS 및 Amazon SageMaker를 사용하여 AWS에서 통합 학습 | 아마존 웹 서비스

시간

이 게시물은 FedML의 Chaoyang He, Al Nevarez 및 Salman Avestimehr와 공동으로 작성되었습니다.

많은 조직에서는 자동화와 대규모 분산 데이터 세트 사용을 통해 비즈니스 의사 결정을 강화하기 위해 기계 학습(ML)을 구현하고 있습니다. 데이터에 대한 액세스가 증가함에 따라 ML은 비교할 수 없는 비즈니스 통찰력과 기회를 제공할 수 있는 잠재력을 가지고 있습니다. 그러나 정제되지 않은 원시 민감한 정보를 여러 위치에서 공유하면 특히 의료와 같이 규제되는 산업에서 심각한 보안 및 개인 정보 보호 위험이 발생합니다.

이 문제를 해결하기 위해 연합 학습(FL)은 정확성과 충실도를 유지하면서 데이터 개인정보 보호를 제공하는 분산형 협업 ML 교육 기술입니다. 기존 ML 교육과 달리 FL 교육은 독립적인 보안 세션을 사용하여 격리된 클라이언트 위치 내에서 발생합니다. 클라이언트는 훈련 조정자 또는 집계 서버로 알려진 중앙 집중식 서버와 출력 모델 매개변수만 공유하며, 모델을 훈련하는 데 사용되는 실제 데이터는 공유하지 않습니다. 이 접근 방식은 모델 교육에 대한 효과적인 협업을 가능하게 하는 동시에 많은 데이터 개인 정보 보호 문제를 완화합니다.

FL은 더 나은 데이터 개인 정보 보호 및 보안을 달성하기 위한 단계이지만 보장된 솔루션은 아닙니다. 액세스 제어 및 암호화가 부족한 안전하지 않은 네트워크는 여전히 공격자에게 민감한 정보를 노출시킬 수 있습니다. 또한 로컬로 훈련된 정보는 추론 공격을 통해 재구성되는 경우 개인 데이터를 노출할 수 있습니다. 이러한 위험을 완화하기 위해 FL 모델은 교육 코디네이터와 정보를 공유하기 전에 개인화된 교육 알고리즘과 효과적인 마스킹 및 매개변수화를 사용합니다. 로컬 및 중앙 위치에서 강력한 네트워크 제어를 통해 추론 및 유출 위험을 더욱 줄일 수 있습니다.

이 게시물에서는 다음을 사용하여 FL 접근 방식을 공유합니다. FedML, Amazon Elastic Kubernetes 서비스 (아마존 EKS) 및 아마존 세이지 메이커 데이터 개인 정보 보호 및 보안 문제를 해결하면서 환자 결과를 개선합니다.

의료 분야에서 연합 학습의 필요성

의료는 환자 치료에 대한 정확한 예측과 평가를 위해 분산 데이터 소스에 크게 의존합니다. 개인 정보 보호를 위해 사용 가능한 데이터 소스를 제한하면 결과의 정확성은 물론 궁극적으로 환자 치료의 질에도 부정적인 영향을 미칩니다. 따라서 ML은 환자 결과를 손상시키지 않으면서 분산된 엔터티 전반에 걸쳐 개인 정보 보호 및 보안을 보장해야 하는 AWS 고객에게 과제를 안겨줍니다.

의료 기관은 FL 솔루션을 구현하는 동안 미국의 HIPAA(Health Insurance Portability and Accountability Act)와 같은 엄격한 규정 준수 규정을 준수해야 합니다. 데이터 개인 정보 보호, 보안 및 규정 준수를 보장하는 것은 강력한 암호화, 액세스 제어, 감사 메커니즘 및 보안 통신 프로토콜이 필요한 의료 분야에서 더욱 중요해졌습니다. 또한 의료 데이터 세트에는 복잡하고 이질적인 데이터 유형이 포함되는 경우가 많아 FL 설정에서 데이터 표준화 및 상호 운용성을 어렵게 만듭니다.

사용 사례 개요

이 게시물에 설명된 사용 사례는 ML 모델이 분류 알고리즘을 실행하여 환자의 심장 질환을 예측하는 다양한 조직의 심장 질환 데이터입니다. 이 데이터는 조직 전반에 걸쳐 있으므로 연합 학습을 사용하여 결과를 대조합니다.

XNUMXD덴탈의 심장병 데이터 세트 University of California Irvine의 Machine Learning Repository는 심혈관 연구 및 예측 모델링에 널리 사용되는 데이터 세트입니다. 이는 각각 환자를 대표하는 303개의 샘플로 구성되어 있으며 임상적, 인구통계학적 특성의 조합은 물론 심장 질환의 유무도 포함하고 있습니다.

이 다변량 데이터 세트에는 환자 정보에 76개의 속성이 있으며, 그 중 14개의 속성은 주어진 속성을 기반으로 심장병의 존재를 예측하는 ML 알고리즘을 개발하고 평가하는 데 가장 일반적으로 사용됩니다.

FedML 프레임워크

다양한 FL 프레임워크가 있지만 우리는 다음을 사용하기로 결정했습니다. FedML 프레임워크 이 사용 사례의 경우 오픈 소스이고 여러 FL 패러다임을 지원하기 때문입니다. FedML은 인기 있는 오픈 소스 라이브러리, MLOps 플랫폼 및 FL용 애플리케이션 에코시스템을 제공합니다. 이는 FL 솔루션의 개발 및 배포를 촉진합니다. 연구원과 실무자가 분산 환경에서 FL 알고리즘을 구현하고 실험할 수 있도록 하는 포괄적인 도구, 라이브러리 및 알고리즘 제품군을 제공합니다. FedML은 사용자 친화적인 인터페이스와 사용자 정의 가능한 구성 요소를 제공하여 FL의 데이터 개인 정보 보호, 통신 및 모델 집계 문제를 해결합니다. 협업과 지식 공유에 초점을 맞춘 FedML은 FL 채택을 가속화하고 이 신흥 분야에서 혁신을 주도하는 것을 목표로 합니다. FedML 프레임워크는 최근 추가된 LLM(대형 언어 모델) 지원을 포함하여 모델에 구애받지 않습니다. 자세한 내용은 다음을 참조하세요. FedLLM 출시: FedML 플랫폼을 사용하여 독점 데이터에 대한 자체 대규모 언어 모델 구축.

FedML 문어

시스템 계층 구조와 이질성은 서로 다른 데이터 사일로가 CPU 및 GPU를 갖춘 서로 다른 인프라를 가질 수 있는 실제 FL 사용 사례에서 주요 과제입니다. 이러한 시나리오에서는 다음을 사용할 수 있습니다. FedML 문어.

FedML Octopus는 조직 간 및 계정 간 교육을 위한 산업 등급 교차 사일로 FL 플랫폼입니다. FedML MLOps와 결합하면 개발자나 조직이 어디서나 안전한 방식으로 규모와 규모에 관계없이 개방형 협업을 수행할 수 있습니다. FedML Octopus는 각 데이터 사일로 내에서 분산 교육 패러다임을 실행하고 동기식 또는 비동기식 교육을 사용합니다.

FedML MLOps

FedML MLOps를 사용하면 나중에 FedML 프레임워크를 사용하여 어디든 배포할 수 있는 코드의 로컬 개발이 가능해집니다. 훈련을 시작하기 전에 FedML 계정을 생성하고 FedML Octopus에서 서버 및 클라이언트 패키지를 생성 및 업로드해야 합니다. 자세한 내용은 다음을 참조하세요. 단계FedML Octopus 소개: 단순화된 MLOps를 통해 연합 학습을 프로덕션으로 확장.

솔루션 개요

실험 추적을 위해 SageMaker와 통합된 여러 EKS 클러스터에 FedML을 배포합니다. 우리는 사용 Terraform용 Amazon EKS 청사진 필요한 인프라를 배포합니다. EKS Blueprints는 워크로드를 배포하고 운영하는 데 필요한 운영 소프트웨어로 완전히 부트스트랩된 완전한 EKS 클러스터를 구성하는 데 도움이 됩니다. EKS Blueprint를 사용하면 제어 플레인, 작업자 노드, Kubernetes 추가 기능 등 원하는 EKS 환경 상태에 대한 구성이 IaC(Infrastructure as Code) 청사진으로 설명됩니다. 블루프린트를 구성한 후에는 지속적 배포 자동화를 통해 여러 AWS 계정 및 리전에 걸쳐 일관된 환경을 생성하는 데 사용할 수 있습니다.

이 게시물에서 공유된 콘텐츠는 실제 상황과 경험을 반영하지만, 이러한 상황의 배치는 위치에 따라 다를 수 있다는 점에 유의하는 것이 중요합니다. 별도의 VPC가 있는 단일 AWS 계정을 활용하지만 개별 상황과 구성이 다를 수 있다는 점을 이해하는 것이 중요합니다. 따라서 제공된 정보는 일반적인 지침으로 사용해야 하며 특정 요구 사항 및 현지 조건에 따라 조정이 필요할 수 있습니다.

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

각 훈련 실행에 대해 FedML MLOps가 제공하는 추적 외에도 우리는 다음을 사용합니다. Amazon SageMaker 실험 각 클라이언트 모델과 중앙 집중식(집합자) 모델의 성능을 추적합니다.

SageMaker 실험은 ML 실험을 생성, 관리, 분석 및 비교할 수 있는 SageMaker 기능입니다. 실험 세부 사항, 매개 변수 및 결과를 기록함으로써 연구자는 자신의 작업을 정확하게 재현하고 검증할 수 있습니다. 이를 통해 다양한 접근 방식을 효과적으로 비교하고 분석할 수 있어 정보에 입각한 의사 결정을 내릴 수 있습니다. 또한 추적 실험은 모델 진행 상황에 대한 통찰력을 제공하고 연구자가 이전 반복을 통해 학습할 수 있도록 하여 반복적 개선을 촉진하고 궁극적으로 보다 효과적인 솔루션 개발을 가속화합니다.

각 실행마다 다음을 SageMaker Experiments로 보냅니다.

  • 모델 평가 지표 – 훈련 손실 및 곡선 아래 면적(AUC)
  • 하이퍼 파라미터 – 에포크(Epoch), 학습률, 배치 크기, 옵티마이저, 가중치 감소

사전 조건

이 게시물을 따라 하려면 다음 전제 조건이 있어야 합니다.

솔루션 배포

시작하려면 샘플 코드를 로컬로 호스팅하는 저장소를 복제하세요.

git clone git@ssh.gitlab.aws.dev:west-ml-sa/fl_fedml.ai.git

그런 다음 다음 명령을 사용하여 사용 사례 인프라를 배포합니다.

terraform init
terraform apply

Terraform 템플릿을 완전히 배포하는 데 20~30분 정도 걸릴 수 있습니다. 배포된 후 다음 섹션의 단계에 따라 FL 애플리케이션을 실행합니다.

MLOps 배포 패키지 만들기

FedML 문서의 일부로 MLOps 플랫폼이 훈련을 시작하기 위해 서버와 클라이언트에 배포할 클라이언트 및 서버 패키지를 생성해야 합니다.

이러한 패키지를 생성하려면 루트 디렉터리에 있는 다음 스크립트를 실행하세요.

. ./build_mlops_pkg.sh

그러면 프로젝트 루트 디렉터리의 다음 디렉터리에 해당 패키지가 생성됩니다.

mlops/dist-packages

FedML MLOps 플랫폼에 패키지 업로드

패키지를 업로드하려면 다음 단계를 완료하세요.

  1. FedML UI에서 다음을 선택합니다. 내 응용 프로그램 탐색 창에서
  2. 왼쪽 메뉴에서 새 응용 프로그램.
  3. 워크스테이션에서 클라이언트 및 서버 패키지를 업로드합니다.
  4. 하이퍼파라미터를 조정하거나 새 하이퍼파라미터를 생성할 수도 있습니다.

연합 훈련 트리거

연합 훈련을 실행하려면 다음 단계를 완료하세요.

  1. FedML UI에서 다음을 선택합니다. 프로젝트 목록 탐색 창에서
  2. 왼쪽 메뉴에서 새 프로젝트를 만듭니다.
  3. 그룹 이름과 프로젝트 이름을 입력한 후 선택하세요. OK.
  4. 새로 생성된 프로젝트를 선택하고 새 실행 만들기 훈련 실행을 트리거합니다.
  5. 이 교육 실행을 위해 에지 클라이언트 장치와 중앙 수집자 서버를 선택합니다.
  6. 이전 단계에서 생성한 애플리케이션을 선택합니다.
  7. 하이퍼파라미터를 업데이트하거나 기본 설정을 사용하세요.
  8. 왼쪽 메뉴에서 스타트 훈련을 시작합니다.
  9. 선택 교육 상태 탭을 클릭하고 훈련 실행이 완료될 때까지 기다립니다. 사용 가능한 탭으로 이동할 수도 있습니다.
  10. 교육이 완료되면 다음을 선택하세요. 탭을 클릭하여 에지 서버 및 집계 이벤트의 훈련 기간을 확인하세요.

결과 및 실험 세부정보 보기

훈련이 완료되면 FedML 및 SageMaker를 사용하여 결과를 볼 수 있습니다.

FedML UI에서 모델 탭에서 애그리게이터와 클라이언트 모델을 볼 수 있습니다. 해당 모델은 웹사이트에서도 다운로드할 수 있습니다.

에 로그인할 수도 있습니다. 아마존 세이지 메이커 스튜디오 선택하고 실험 탐색 창에서

다음 스크린샷은 기록된 실험을 보여줍니다.

실험 추적 코드

이 섹션에서는 SageMaker 실험 추적을 FL 프레임워크 교육과 통합하는 코드를 살펴봅니다.

선택한 편집기에서 다음 폴더를 열어 훈련의 일부로 SageMaker 실험 추적 코드를 삽입하기 위한 코드 편집 내용을 확인합니다.

cd fl_fedml.ai/

훈련을 추적하기 위해 우리는 SageMaker 실험 생성 매개변수와 측정항목을 사용하여 기록된 log_parameterlog_metric 다음 코드 샘플에 설명된 대로 명령을 실행합니다.

에 항목 config/fedml_config.yaml 파일은 고유한 실험 이름을 만들기 위해 코드에서 참조되는 실험 접두사를 선언합니다. sm_experiment_name: "fed-heart-disease". 이를 원하는 값으로 업데이트할 수 있습니다.

예를 들어 다음 코드를 참조하세요. heart_disease_trainer.py, 각 클라이언트가 자체 데이터 세트에서 모델을 훈련하는 데 사용됩니다.

# Add this code before the for loop on epochs
# We are passing the experiment prefix & client-rank from the config
# to the function to create a unique name
experiment_name = unique_name_from_base(args.sm_experiment_name + "-client-" + str(args.rank))
print(f"Sagemaker Experiment Name: {experiment_name}")

각 클라이언트 실행에 대해 실험 세부정보는 heart_disease_trainer.py의 다음 코드를 사용하여 추적됩니다.

# create an experiment and start a new run
with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
run.log_parameters(
{ "Train Data Size": str(len(train_data.dataset)),
"device": "cpu",
"center": args.rank,
"learning-rate": args.lr,
"batch-size": args.batch_size,
"client-optimizer" : args.client_optimizer,
"weight-decay": args.weight_decay
}
)
run.log_metric(name="Validation:AUC", value=epoch_auc)
run.log_metric(name="Training:Loss", value=epoch_loss)

마찬가지로 다음의 코드를 사용할 수 있습니다. heart_disease_aggregator.py 모델 가중치를 업데이트한 후 로컬 데이터에 대한 테스트를 실행합니다. 세부 정보는 클라이언트와의 각 통신이 실행된 후에 기록됩니다.

# create an experiment and start a new run
with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
run.log_parameters(
{ "Train Data Size": str(len(test_data_local_dict[i])),
"device": "cpu",
"round": i,
"learning-rate": args.lr,
"batch-size": args.batch_size,
"client-optimizer" : args.client_optimizer,
"weight-decay": args.weight_decay
}
)
run.log_metric(name="Test:AUC", value=test_auc_metrics)
run.log_metric(name="Test:Loss", value=test_loss_metrics)

정리

솔루션 작업이 완료되면 사용된 자원을 정리하여 효율적인 자원 활용 및 비용 관리를 보장하고, 불필요한 비용과 자원 낭비를 방지하세요. 사용하지 않는 인스턴스 삭제, 불필요한 서비스 중지, 임시 데이터 제거 등 적극적인 환경 정리는 인프라를 깨끗하고 정리하는데 기여합니다. 다음 코드를 사용하여 리소스를 정리할 수 있습니다.

terraform destroy -target=module.m_fedml_edge_server.module.eks_blueprints_kubernetes_addons -auto-approve
terraform destroy -target=module.m_fedml_edge_client_1.module.eks_blueprints_kubernetes_addons -auto-approve
terraform destroy -target=module.m_fedml_edge_client_2.module.eks_blueprints_kubernetes_addons -auto-approve

terraform destroy -target=module.m_fedml_edge_client_1.module.eks -auto-approve
terraform destroy -target=module.m_fedml_edge_client_2.module.eks -auto-approve
terraform destroy -target=module.m_fedml_edge_server.module.eks -auto-approve

terraform destroy

요약

Amazon EKS를 인프라로 사용하고 FedML을 FL용 프레임워크로 사용함으로써 데이터 개인정보 보호를 존중하면서 공유 모델을 교육하고 배포하기 위한 확장 가능하고 관리되는 환경을 제공할 수 있습니다. FL의 분산된 특성을 통해 조직은 안전하게 협업하고, 분산 데이터의 잠재력을 활용하고, 데이터 개인정보 보호를 침해하지 않고 ML 모델을 개선할 수 있습니다.

언제나 그렇듯이 AWS는 여러분의 피드백을 환영합니다. 의견 섹션에 의견과 질문을 남겨주세요.


저자에 관하여

랜디 드포랜디 드포 AWS의 수석 수석 솔루션 아키텍트입니다. 그는 미시간 대학교에서 MSEE를 취득했으며 자율주행차용 컴퓨터 비전 분야에서 일했습니다. 그는 또한 콜로라도 주립대학교에서 MBA를 취득했습니다. Randy는 소프트웨어 엔지니어링에서 제품 관리에 이르기까지 기술 분야에서 다양한 직책을 맡았습니다. 그는 2013년부터 빅데이터 분야에 입문해 계속해서 그 분야를 탐구하고 있다. 그는 ML 공간의 프로젝트에 적극적으로 참여하고 있으며 Strata 및 GlueCon을 포함한 수많은 컨퍼런스에서 발표했습니다.

아르납 신하 AWS의 수석 솔루션 아키텍트로서 현장 CTO 역할을 하며 조직이 데이터 센터 마이그레이션, 디지털 전환 및 애플리케이션 현대화, 빅 데이터 및 기계 학습 전반에 걸쳐 비즈니스 성과를 지원하는 확장 가능한 솔루션을 설계하고 구축할 수 있도록 지원합니다. 그는 에너지, 소매, 제조, 의료, 생명과학 등 다양한 산업 분야에서 고객을 지원해 왔습니다. Arnab은 ML 전문 인증을 포함한 모든 AWS 인증을 보유하고 있습니다. AWS에 합류하기 전에 Arnab은 기술 리더였으며 이전에는 설계자 및 엔지니어링 리더십 역할을 맡았습니다.

프라치 쿨카르니 AWS의 수석 솔루션 아키텍트입니다. 그녀의 전문 분야는 기계 학습이며 다양한 AWS ML, 빅 데이터 및 분석 제품을 사용하여 솔루션을 설계하는 데 적극적으로 노력하고 있습니다. Prachi는 의료, 복리후생, 소매, 교육을 포함한 다양한 영역에서 경험을 갖고 있으며 제품 엔지니어링 및 아키텍처, 관리, 고객 성공 분야에서 다양한 직책을 맡았습니다.

테이머 셰리프 그는 AWS의 수석 솔루션 아키텍트이며, 17년 넘게 솔루션 아키텍트로 활동하면서 기술 및 기업 컨설팅 서비스 영역에서 다양한 배경을 갖고 있습니다. 인프라에 초점을 맞춘 Tamer의 전문 지식은 상업, 의료, 자동차, 공공 부문, 제조, 석유 및 가스, 미디어 서비스 등을 포함한 광범위한 산업 분야를 포괄합니다. 그의 숙련도는 클라우드 아키텍처, 엣지 컴퓨팅, 네트워킹, 스토리지, 가상화, 비즈니스 생산성, 기술 리더십 등 다양한 영역으로 확장됩니다.

한스 네스비트 남부 캘리포니아에 본사를 둔 AWS의 수석 솔루션 아키텍트입니다. 그는 확장성이 뛰어나고 유연하며 복원력이 뛰어난 클라우드 아키텍처를 만들기 위해 미국 서부 전역의 고객과 협력하고 있습니다. 여가 시간에는 가족과 함께 요리하고 기타 연주를 하며 시간을 보냅니다.

허 차오양 규모와 규모에 관계없이 어디서나 개방적이고 협력적인 AI를 구축하는 커뮤니티를 위해 활동하는 스타트업인 FedML, Inc.의 공동 창립자이자 CTO입니다. 그의 연구는 분산 및 연합 기계 학습 알고리즘, 시스템 및 애플리케이션에 중점을 두고 있습니다. 그는 University of Southern California에서 컴퓨터 과학 박사 학위를 받았습니다.

알 네바레즈 FedML의 제품 관리 이사입니다. FedML 이전에는 Google의 그룹 제품 관리자이자 LinkedIn의 데이터 과학 수석 관리자였습니다. 그는 데이터 제품 관련 여러 특허를 보유하고 있으며 스탠포드 대학에서 공학을 전공했습니다.

살만 아베스티머 FedML의 공동 창립자이자 CEO입니다. 그는 USC의 학장 교수, USC-Amazon 신뢰할 수 있는 AI 센터 소장, Alexa AI의 Amazon 학자였습니다. 그는 연합 및 분산형 기계 학습, 정보 이론, 보안 및 개인 정보 보호 분야의 전문가입니다. 그는 IEEE 회원이며 UC Berkeley에서 EECS 박사 학위를 받았습니다.

사미르 라드 고객의 최고 경영진과 긴밀하게 협력하는 숙련된 AWS의 엔터프라이즈 기술 전문가입니다. 여러 Fortune 100대 기업에서 혁신을 주도한 전 최고 경영진으로서 Samir는 자신의 귀중한 경험을 공유하여 고객이 자신의 혁신 여정에서 성공할 수 있도록 돕습니다.

스티븐 크레이머 AWS의 이사회이자 CxO 고문이자 전직 임원입니다. 스티븐은 성공의 기초로서 문화와 리더십을 옹호합니다. 그는 경쟁이 치열한 데이터 기반 조직을 가능하게 하는 클라우드 혁신의 동인인 보안과 혁신을 공언합니다.

spot_img

VC 카페

라이프사이VC

최신 인텔리전스

VC 카페

라이프사이VC

spot_img