고속 5G 모바일 네트워크의 출현으로 기업은 통신 네트워크와 클라우드의 융합을 활용할 수 있는 기회를 통해 그 어느 때보다 쉽게 포지셔닝할 수 있습니다. 지금까지 가장 눈에 띄는 사용 사례 중 하나인 에지의 머신 러닝(ML)을 통해 기업은 ML 모델을 최종 고객에게 더 가깝게 배포하여 대기 시간을 줄이고 애플리케이션의 응답성을 높일 수 있습니다. 예로서, 스마트 행사장 솔루션 온프레미스 하드웨어 네트워킹 장비에 대한 투자를 최소화하면서 5G 네트워크를 통한 군중 분석에 실시간에 가까운 컴퓨터 비전을 사용할 수 있습니다. 소매업체는 자연어 처리(NLP), 실시간 추천 시스템 및 사기 탐지를 통해 이동 중에 더 원활한 경험을 제공할 수 있습니다. 심지어 지상 및 공중 로봇 ML을 사용하여 보다 안전하고 자율적인 작업을 수행할 수 있습니다.
에지에서 ML 진입 장벽을 줄이기 위해 사전 훈련된 모델을 배포하는 예를 보여주고 싶었습니다. 아마존 세이지 메이커 에 AWS 파장, 모두 100줄 미만의 코드입니다. 이 게시물에서는 SageMaker 모델을 AWS Wavelength에 배포하여 5G 네트워크 기반 애플리케이션의 모델 추론 지연 시간을 줄이는 방법을 시연합니다.
솔루션 개요
빠르게 확장되는 AWS의 글로벌 인프라 전반에서 AWS Wavelength는 클라우드 컴퓨팅 및 스토리지의 성능을 5G 네트워크의 에지에 제공하여 더 뛰어난 성능의 모바일 경험을 제공합니다. AWS Wavelength를 사용하면 Virtual Private Cloud(VPC)를 통신 사업자의 네트워크 에지에 해당하는 Wavelength Zone으로 확장할 수 있습니다. 29 도시 지구 반대편. 다음 다이어그램은 이 아키텍처의 예를 보여줍니다.
다음을 통해 특정 지역 내의 Wavelength Zone을 선택할 수 있습니다. AWS 관리 콘솔 또는 AWS 명령 줄 인터페이스 (AWS CLI). AWS Wavelength에서 지리적으로 분산된 애플리케이션을 배포하는 방법에 대해 자세히 알아보려면 다음을 참조하십시오. AWS Wavelength에 지리적으로 분산된 Amazon EKS 클러스터 배포.
이 게시물에서 논의된 기본 사항을 기반으로 AWS Wavelength에 배포할 샘플 워크로드로 에지에서 ML을 살펴봅니다. 샘플 워크로드로 사전 훈련된 모델을 배포합니다. Amazon SageMaker 점프스타트.
SageMaker는 개발자가 ML 모델을 AWS 환경에 쉽게 배포할 수 있는 완전 관리형 ML 서비스입니다. AWS는 모델 교육을 위한 다양한 옵션을 제공하지만 AWS Marketplace 모델 및 SageMaker 내장 알고리즘 - 오픈 소스 ML 모델을 배포하는 여러 기술이 있습니다.
JumpStart는 SageMaker 엔드포인트에 원활하게 배포할 수 있는 사전 훈련된 모델과 함께 수백 개의 기본 제공 알고리즘에 대한 액세스를 제공합니다. 예측 유지 관리 및 컴퓨터 비전에서 자율 주행 및 사기 탐지에 이르기까지 JumpStart는 콘솔에서 클릭 한 번으로 배포하여 널리 사용되는 다양한 사용 사례를 지원합니다.
SageMaker는 Wavelength Zone에서 기본적으로 지원되지 않기 때문에 리전에서 모델 아티팩트를 추출하고 에지에 재배포하는 방법을 시연합니다. 이렇게 하려면 다음을 사용합니다. Amazon Elastic Kubernetes 서비스 (Amazon EKS) 클러스터 및 노드 그룹을 Wavelength Zone에 저장한 후 JumpStart에서 생성한 컨테이너 이미지로 배포 매니페스트를 생성합니다. 다음 다이어그램은 이 아키텍처를 보여줍니다.
사전 조건
이 작업을 최대한 쉽게 수행하려면 AWS 계정에 Wavelength Zone이 활성화되어 있는지 확인하십시오. 이 통합은 us-east-1
및 us-west-2
, 그리고 당신은 사용할 것입니다 us-east-1
데모 기간 동안.
AWS Wavelength를 옵트인하려면 다음 단계를 완료하십시오.
- Amazon VPC 콘솔에서 영역 아래에 설정 선택하고 미국 동부(Verizon) / us-east-1-wl1.
- 왼쪽 메뉴에서 관리.
- 선택 옵트인.
- 왼쪽 메뉴에서 영역 업데이트.
AWS Wavelength 인프라 생성
로컬 SageMaker 모델 추론 엔드포인트를 Kubernetes 배포로 변환하기 전에 Wavelength Zone에서 EKS 클러스터를 생성할 수 있습니다. 이렇게 하려면 AWS Wavelength 노드 그룹과 함께 Amazon EKS 클러스터를 배포합니다. 자세한 내용은 다음을 참조하십시오. AWS 컨테이너 블로그의 이 가이드 or Verizon의 5GEdgeTutorials 저장소 그러한 예를 들어.
다음으로 AWS 클라우드9 환경 또는 대화형 개발 환경(IDE) 선택, 필수 SageMaker 패키지 다운로드 및 도커 작성, JumpStart의 핵심 종속성입니다.
JumpStart를 사용하여 모델 아티팩트 생성
먼저, 당신이 가지고 있는지 확인 AWS 자격 증명 및 액세스 관리 (IAM) SageMaker에 대한 실행 역할. 자세한 내용을 보려면 다음을 방문하십시오. SageMaker 역할.
- 사용 이 예, SageMaker 소프트웨어 개발 키트(SDK)를 사용하여 사전 구축된 모델을 검색하는 train_model.py라는 파일을 생성합니다(대체 SageMaker 실행 역할의 Amazon 리소스 이름(ARN)으로 변경). 이 파일에서 다음을 사용하여 모델을 로컬로 배포합니다.
instance_type
속성의model.deploy()
정의한 모든 필수 모델 아티팩트를 사용하여 IDE 내에서 Docker 컨테이너를 시작하는 함수:
- 다음으로 설정
infer_model_id
사용하려는 SageMaker 모델의 ID에.
전체 목록은 다음을 참조하십시오. 사전 훈련된 모델 테이블이 있는 내장 알고리즘. 이 예에서는 자연어 처리에 일반적으로 사용되는 BERT(Bidirectional Encoder Representations from Transformers) 모델을 사용합니다.
- 실행
train_model.py
JumpStart 모델 아티팩트를 검색하고 사전 학습된 모델을 로컬 시스템에 배포하는 스크립트:
이 단계가 성공하면 출력은 다음과 유사할 수 있습니다.
출력에는 TensorFlow 추론을 위한 기본 이미지, 모델을 제공하는 추론 스크립트 및 훈련된 모델을 포함하는 아티팩트의 세 가지 아티팩트가 순서대로 표시됩니다. 이러한 아티팩트를 사용하여 사용자 지정 Docker 이미지를 생성할 수 있지만 다른 접근 방식은 SageMaker 로컬 모드에서 Docker 이미지를 생성하도록 하는 것입니다. 후속 단계에서는 로컬에서 실행 중인 컨테이너 이미지를 추출하여 다음 위치에 배포합니다. Amazon Elastic Container Registry (Amazon ECR)뿐만 아니라 모델 아티팩트를 별도로 푸시하여 아마존 단순 스토리지 서비스 (아마존 S3).
로컬 모드 아티팩트를 원격 Kubernetes 배포로 변환
이제 SageMaker가 로컬에서 작동하는지 확인했으므로 실행 중인 컨테이너에서 배포 매니페스트를 추출해 보겠습니다. 다음 단계를 완료하십시오.
SageMaker 로컬 모드 배포 매니페스트의 위치 식별: 이렇게 하려면 루트 디렉터리에서 이름이 지정된 파일을 검색합니다. docker-compose.yaml
.
docker_manifest=$( find /tmp/tmp* -name "docker-compose.yaml" -printf '%T+ %pn' | sort | tail -n 1 | cut -d' ' -f2-)
echo $docker_manifest
SageMaker 로컬 모드 모델 아티팩트의 위치 식별: 다음으로 로컬 SageMaker 추론 컨테이너에 마운트된 기본 볼륨을 찾습니다. 이 볼륨은 Amazon s3에 아티팩트를 업로드한 후 각 EKS 작업자 노드에서 사용됩니다.
model_local_volume = $(grep -A1 -w "volumes:" $docker_manifest | tail -n 1 | tr -d ' ' | awk -F: '{print $1}' | cut -c 2-) # Returns something like: /tmp/tmpcr4bu_a7</p>
실행 중인 SageMaker 추론 컨테이너의 로컬 복사본 생성: 다음으로 기계 학습 추론 모델을 실행 중인 현재 실행 중인 컨테이너 이미지를 찾아 컨테이너의 복사본을 로컬로 만듭니다. 이렇게 하면 Amazon ECR에서 가져올 컨테이너 이미지의 자체 복사본을 갖게 됩니다.
# Find container ID of running SageMaker Local container
mkdir sagemaker-container
container_id=$(docker ps --format "{{.ID}} {{.Image}}" | grep "tensorflow" | awk '{print $1}')
# Retrieve the files of the container locally
docker cp $my_container_id:/ sagemaker-container/
행동하기 전에 model_local_volume
, Amazon S3로 푸시할 것입니다. 이제 실행 중인 Docker 이미지의 복사본을 푸시합니다. sagemaker-container
Amazon Elastic Container Registry로 이동합니다. 반드시 교체 region
, aws_account_id
, docker_image_id
및 my-repository:tag
또는 Amazon ECR 사용 설명서. 또한 최종 ECR 이미지 URL(aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
), EKS 배포에 사용할 것입니다.
이제 추론 엔드포인트에 해당하는 ECR 이미지가 있으므로 새 Amazon S3 버킷을 생성하고 SageMaker Local 아티팩트(model_local_volume
) 이 버킷에. 동시에 Amazon EC2 인스턴스에 버킷 내의 객체를 읽을 수 있는 액세스 권한을 제공하는 IAM(Identity Access Management)을 생성합니다. 반드시 교체 Amazon S3 버킷에 대해 전역적으로 고유한 이름을 사용합니다.
다음으로 각 EC2 인스턴스가 시작 시 모델 아티팩트의 복사본을 가져오도록 하려면 EKS 작업자 노드에 대한 사용자 데이터를 편집합니다. 사용자 데이터 스크립트에서 시작 시 각 노드가 S3 API를 사용하여 모델 아티팩트를 검색하는지 확인하십시오. 반드시 교체 Amazon S3 버킷에 대해 전역적으로 고유한 이름을 사용합니다. 노드의 사용자 데이터에 EKS 부트스트랩 스크립트도 포함된다는 점을 감안할 때 전체 사용자 데이터는 다음과 같을 수 있습니다.
이제 기존 Docker 매니페스트를 검사하고 다음을 사용하여 Kubernetes 친화적인 매니페스트 파일로 변환할 수 있습니다. 작곡, 잘 알려진 변환 도구입니다. 참고: 버전 호환성 오류가 발생하면 version
docker-compose.yml의 27행에 있는 속성을 “2”
.
Kompose를 실행하면 XNUMX개의 새 파일이 표시됩니다. Deployment
목적, Service
목적, PersistentVolumeClaim
개체, 그리고 NetworkPolicy
물체. 이제 에지에서 Kubernetes로의 진출을 시작하는 데 필요한 모든 것이 있습니다!
SageMaker 모델 아티팩트 배포
kubectl 및 aws-iam-authenticator가 AWS Cloud9 IDE에 다운로드되었는지 확인하십시오. 그렇지 않은 경우 설치 가이드를 따르십시오.
이제 다음 단계를 완료하십시오.
을 수정 service/algo-1-ow3nv
서비스 유형을 전환할 객체 ClusterIP
에 NodePort
. 이 예에서는 포트 30,007을 NodePort
:
다음으로 노드의 보안 그룹에서 NodePort를 허용해야 합니다. 이렇게 하려면 보안 그룹 ID를 검색하고 NodePort를 허용 목록에 추가합니다.
다음으로 수정 algo-1-ow3nv-deployment.yaml
마운트하기 위한 매니페스트 /tmp/model hostPath
컨테이너에 대한 디렉토리. 바꾸다 이전에 생성한 ECR 이미지로:
Kompose에서 만든 매니페스트 파일로 kubectl을 사용하여 구성을 클러스터에 적용합니다.
5G 에지 모델에 연결
모델에 연결하려면 다음 단계를 완료하십시오.
Amazon EC2 콘솔에서 EKS 작업자 노드의 통신사 IP를 검색하거나 AWS CLI를 사용하여 통신사 IP 주소를 직접 쿼리합니다.
이제 캐리어 IP 주소가 추출되었으므로 NodePort를 사용하여 모델에 직접 연결할 수 있습니다. 라는 파일을 만듭니다. invoke.py
감정 분석기에 대해 실행될 텍스트 기반 입력을 제공하여 BERT 모델을 직접 호출하여 어조가 긍정적인지 부정적인지 결정합니다.
출력은 다음과 유사해야 합니다.
정리
생성된 모든 애플리케이션 리소스를 삭제하려면 AWS Wavelength 작업자 노드, EKS 제어 플레인 및 VPC 내에서 생성된 모든 리소스를 삭제합니다. 또한 컨테이너 이미지를 호스팅하는 데 사용되는 ECR 리포지토리, SageMaker 모델 아티팩트를 호스팅하는 데 사용되는 S3 버킷 및 sagemaker-demo-app-s3 IAM
정책.
결론
이 게시물에서는 Amazon EKS 및 AWS Wavelength를 사용하여 SageMaker 모델을 네트워크 에지에 배포하는 새로운 접근 방식을 시연했습니다. AWS Wavelength의 Amazon EKS 모범 사례에 대해 알아보려면 다음을 참조하십시오. AWS Wavelength에 지리적으로 분산된 Amazon EKS 클러스터 배포. 또한 Jumpstart에 대해 자세히 알아보려면 Amazon SageMaker JumpStart 개발자 안내서 또는 JumpStart 사용 가능한 모델 테이블.
저자에 관하여
로버트 벨슨 AWS Edge Computing을 전문으로 하는 AWS Worldwide Telecom Business Unit의 Developer Advocate입니다. 그는 자동화, 하이브리드 네트워킹 및 에지 클라우드를 사용하여 비즈니스 문제를 해결하기 위해 개발자 커뮤니티 및 대기업 고객과 협력하는 데 중점을 둡니다.
모하메드 알메다르 AWS Worldwide Telecom Business Unit의 선임 솔루션 아키텍트입니다. 그의 주요 초점은 고객이 AWS에서 Telco 및 엔터프라이즈 IT 워크로드를 구축하고 배포할 수 있도록 지원하는 것입니다. AWS에 합류하기 전에 Mohammed는 13년 이상 통신 업계에서 일해 왔으며 LTE 패킷 코어, 5G, IMS 및 WebRTC 분야에서 풍부한 경험을 제공합니다. Mohammed는 Concordia University에서 통신 공학 학사 학위를 받았습니다.
에반 크라비츠 SageMaker JumpStart에서 일하는 Amazon Web Services의 소프트웨어 엔지니어입니다. 그는 요리를 즐기고 뉴욕시에서 달리기를 즐깁니다.
저스틴 세인트 아놀드 IT 업계에서 15년 이상의 경험을 가진 Verizon의 공공 부문 솔루션 아키텍트 부이사입니다. 그는 에지 컴퓨팅 및 5G 네트워크의 힘을 열정적으로 옹호하며 이러한 기술을 활용하는 혁신적인 기술 솔루션을 개발하는 전문가입니다. Justin은 고객에게 최첨단 솔루션을 제공하는 Amazon Web Services(AWS)의 기능에 특히 열정적입니다. 여가 시간에 Justin은 최신 기술 동향을 파악하고 자신의 지식과 통찰력을 업계의 다른 사람들과 공유하는 것을 즐깁니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- 플라토 블록체인. Web3 메타버스 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/deploy-pre-trained-models-on-aws-wavelength-with-5g-edge-using-amazon-sagemaker-jumpstart/
- :이다
- 1
- 10
- 100
- 11
- 15년
- 5G
- 7
- 8
- 9
- a
- 소개
- 수락
- ACCESS
- 계정
- 가로질러
- 동작
- 또한
- 주소
- 출현
- 변호사
- 후
- 반대
- 알고리즘
- All
- 수
- 이기는하지만
- 항상
- 아마존
- Amazon EC2
- 아마존 세이지 메이커
- Amazon SageMaker 점프스타트
- Amazon Web Services
- Amazon Web Services (AWS)
- 분석
- 및
- 다른
- API를
- 어플리케이션
- 어플리케이션
- 신청
- 접근
- 아키텍처
- 있군요
- 지역
- AS
- 준
- 협회
- At
- 자동화
- 자발적인
- 가능
- AWS
- AWS 클라우드9
- 장벽
- 기지
- BE
- 시작하다
- BEST
- 모범 사례
- 부트 스트랩
- 돋보이게
- 빌드
- 내장
- 사업
- by
- 라는
- CAN
- 기능
- 가지 경우
- CAT
- CD
- 과제
- 이전 단계로 돌아가기
- 선택
- 왼쪽 메뉴에서
- City
- 클라이언트
- 자세히
- 클라우드
- Cloud9
- 클러스터
- 암호
- COM
- 일반적으로
- 커뮤니티
- 호환성
- 완전한
- 계산
- 컴퓨터
- 컴퓨터 비전
- 컴퓨팅
- 확인 됨
- 연결하기
- 콘솔에서
- 컨테이너
- 용기
- 제어
- 수렴
- 매출 상승
- 변하게 하다
- 핵심
- 동
- 수
- 만들
- 만든
- 만들기
- 군중
- 현재
- 관습
- 고객
- 절단
- 최첨단
- 데이터
- 날짜
- 한정된
- 도
- 배달하다
- 배달
- 보여
- 시연
- 의존
- 배포
- 배포
- 배치
- 전개
- 파괴
- Detection System
- 결정
- 개발자
- 개발자
- 개발
- 개발
- 직접
- 책임자
- 논의 된
- 도커
- 다운로드
- 운전
- 마다
- 이전
- 용이하게
- 동쪽
- 에코
- Edge
- 에지 컴퓨팅
- 효과
- 가능
- 사용 가능
- 종점
- 기사
- 엔지니어링
- 확인
- Enterprise
- 기업
- 열광적 인
- 항목
- 환경
- 환경
- 장비
- 오류
- 조차
- EVER
- 모두
- 예
- 실행
- 현존하는
- 확대
- 경험
- 체험
- 전문가
- 확장
- 추출물
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 파일
- 최후의
- Find
- 초점
- 집중
- 따라
- 다음에
- 수행원
- 럭셔리
- 침략
- 사기
- 사기 탐지
- 무료
- 마찰이 없는
- 에
- 충분히
- 기능
- 기초
- 생성
- 얻을
- 주어진
- 글로벌
- 세계적으로
- 공
- Go
- 가는
- 그룹
- 여러 떼
- 안내
- 안내서
- 하드웨어
- 마구
- 있다
- 도움
- 보유
- 주인
- 방법
- How To
- HTML
- HTTP
- HTTPS
- 수백
- 잡종
- ID
- 통합 인증
- 영상
- import
- in
- 포함
- 증가
- 산업
- 인프라
- 혁신적인
- 혁신적인 기술
- 입력
- 통찰력
- 설치
- 예
- 완성
- 대화형
- 투자
- IP
- IP 주소
- IT
- IT 산업
- 가입
- JPG
- JSON
- Justin
- 유지
- 키
- 종류
- 키트(SDK)
- 지식
- 레이블
- 언어
- 넓은
- 숨어 있음
- 최근
- 시작
- 배우다
- 배우기
- 이점
- 처럼
- 라인
- 라인
- 명부
- 지방의
- 장소 상에서
- 위치
- 보기
- 기계
- 기계 학습
- 본관
- 유지
- 확인
- 관리
- 구축
- 메타 데이터
- 최소화
- ML
- 모바일
- 모바일 네트워크
- 모드
- 모델
- 모델
- 수정
- 배우기
- 가장
- 산
- name
- 이름
- 자연의
- 자연 언어 처리
- 필요
- 부정
- 네트워크
- 네트워크 기반
- 네트워킹
- 네트워크
- 신제품
- 뉴욕
- 뉴욕시
- 다음 것
- nlp
- 노드
- 노드
- 소설
- 번호
- 대상
- 사물
- of
- 제공
- 제공
- on
- ONE
- 오픈 소스
- 행정부
- 기회
- 옵션
- 주문
- 기타
- 출력
- 자신의
- 패키지
- 평행
- 특별히
- 열렬한
- 통로
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 정책
- 인기 문서
- 위치하는
- 긍정적인
- 가능한
- 게시하다
- 힘
- 사례
- Predictor
- 이전에
- 사설
- 처리
- 현저한
- 제공
- 제공
- 공개
- 했었어요
- 푸시
- 빠르게
- 읽기
- 실시간
- 추천
- 감소
- 지방
- 레지스트리
- 먼
- 교체
- 요청
- 필요한
- 의지
- 제품 자료
- 소매
- 반품
- 직위별
- 뿌리
- 달리기
- 달리는
- 안전
- 현자
- SageMaker 추론
- SDK
- 완벽하게
- 검색
- 부문
- 보안
- 선택된
- 연장자
- 서브
- 봉사하다
- 서비스
- 서비스
- 세트
- 공유
- 영상을
- 쇼
- 단순, 간단, 편리
- 간단히
- So
- 소프트웨어
- 소프트웨어 개발
- 소프트웨어 엔지니어
- 해결책
- 솔루션
- 풀다
- 무언가
- 전문
- 시작
- 성명서
- Status
- 단계
- 단계
- 저장
- 전략
- 후속의
- 성공
- 이러한
- 지원
- 지원
- 스위치
- 시스템은
- TAG
- 받아
- 기법
- 기술
- Technology
- 통신
- 통신
- 통신
- 통신 공학
- 이 템플릿
- 텐서 흐름
- 그
- XNUMXD덴탈의
- 그들의
- Bowman의
- 세
- 시간
- 에
- TONE
- 수단
- 훈련 된
- 변압기
- 번역
- 트렌드
- 참된
- 아래에
- 밑에 있는
- 유일한
- 단위
- 대학
- 잠금을 해제
- 잠금 해제
- 최신의
- URL
- 사용
- 사용자
- v1
- 가치
- 종류
- 장소
- 버라이존
- 버전
- 를 통해
- 온라인
- 시력
- 방문
- 음량
- 볼륨
- 원
- 재산
- 웹
- 웹 서비스
- 잘
- 잘 알려진
- 여부
- 어느
- 동안
- 의지
- 과
- 이내
- 노동자
- 일하는
- 전세계적인
- 겠지
- 얌
- 년
- 자신의
- 너의
- 유튜브
- 제퍼 넷
- 지역