오늘날 가장 인기 있는 모델 중 하나는 XGBoost입니다. 분류 및 회귀와 같은 다양한 문제를 해결할 수 있는 기능을 갖춘 XGBoost는 트리 기반 모델 범주에 속하는 인기 있는 옵션이 되었습니다. 이 게시물에서 우리는 어떻게 아마존 세이지 메이커 다음을 사용하여 이러한 모델을 제공할 수 있습니다. NVIDIA Triton 추론 서버. 실시간 추론 워크로드는 대기 시간 및 처리량 측면에서 다양한 수준의 요구 사항 및 SLA(서비스 수준 계약)를 가질 수 있으며 SageMaker 실시간 엔드포인트를 사용하여 충족할 수 있습니다.
SageMaker는 단일 모델 끝점, 논리적 끝점에 대해 단일 기계 학습(ML) 모델을 배포할 수 있습니다. 다른 사용 사례의 경우 다음을 사용하여 비용 및 성능을 관리하도록 선택할 수 있습니다. 다중 모델 끝점, 논리적 끝점 뒤에서 호스팅할 여러 모델을 지정할 수 있습니다. 선택한 옵션에 관계없이 SageMaker 엔드포인트는 가장 까다로운 기업 고객에게도 확장 가능한 메커니즘을 제공하는 동시에 다음과 같은 다양한 기능에서 가치를 제공합니다. 그림자 변형, 자동 스케일링, 및 기본 통합 아마존 클라우드 워치 (자세한 내용은 다중 모델 엔드포인트 배포를 위한 CloudWatch 지표).
Triton은 추론을 위해 다양한 ML 모델의 실행 및 제공을 지원하는 엔진으로 다양한 백엔드를 지원합니다. 모든 Triton 배포의 경우 백엔드 동작이 워크로드에 미치는 영향과 성공을 위해 예상되는 사항을 아는 것이 중요합니다. 이 게시물에서는 FIL(Forest Inference Library) 백엔드, SageMaker의 Triton에서 지원하므로 워크로드에 대해 정보에 입각한 결정을 내리고 가능한 최고의 성능 및 비용 최적화를 얻을 수 있습니다.
FIL 백엔드 심층 분석
트리톤은 다음을 지원합니다. FIL 백엔드 다음과 같은 트리 모델을 제공하기 위해 XGBoost, 라이트GBM, 사이 킷 학습 랜덤 포레스트, RAPIDS cuML 랜덤 포레스트, 및 에서 지원하는 기타 모델 트리라이트. 이러한 모델은 오랫동안 분류 또는 회귀와 같은 문제를 해결하는 데 사용되었습니다. 이러한 유형의 모델은 전통적으로 CPU에서 실행되었지만 이러한 모델의 인기와 추론 수요로 인해 추론 성능을 향상시키기 위한 다양한 기술이 등장했습니다. FIL 백엔드는 cuML 구성을 사용하여 이러한 많은 기술을 활용하고 C++ 및 CUDA 코어 라이브러리를 기반으로 GPU 가속기에서 추론 성능을 최적화합니다.
FIL 백엔드는 cuML의 라이브러리를 사용하여 CPU 또는 GPU 코어를 사용하여 학습을 가속화합니다. 이러한 프로세서를 사용하기 위해 데이터는 호스트 메모리(예: NumPy 배열) 또는 GPU 배열(uDF, Numba, cuPY 또는 __cuda_array_interface__
) API. 데이터가 메모리에 준비되면 FIL 백엔드는 사용 가능한 모든 CPU 또는 GPU 코어에서 처리를 실행할 수 있습니다.
FIL 백엔드 스레드는 호스트의 공유 메모리를 사용하지 않고 서로 통신할 수 있지만 앙상블 워크로드에서는 호스트 메모리를 고려해야 합니다. 다음 다이어그램은 교환을 위해 Triton(C++)과 Python 프로세스(Python 백엔드) 간의 프로세스 간 통신에 사용되는 CPU 주소 지정 가능 공유 메모리를 포함하여 메모리 영역을 미세 조정할 수 있는 앙상블 스케줄러 런타임 아키텍처를 보여줍니다. FIL 백엔드가 있는 텐서(입력/출력).
Triton Inference Server는 개발자가 워크로드를 조정하고 모델 성능을 최적화할 수 있도록 구성 가능한 옵션을 제공합니다. 구성 dynamic_batching
Triton은 FIL의 병렬 계산을 효율적으로 사용하여 전체 배치를 함께 추론하기 위해 클라이언트 측 요청을 보유하고 서버 측에서 일괄 처리할 수 있습니다. 옵션 max_queue_delay_microseconds
Triton이 배치를 형성하기 위해 대기하는 시간에 대한 안전 장치 제어를 제공합니다.
다른 FIL 관련 여러 가지가 있습니다. 사용 가능한 옵션 성능과 행동에 영향을 미치는 로 시작하는 것이 좋습니다. storage_type
. GPU에서 백엔드를 실행할 때 FIL은 FIL이 성능과 공간에 영향을 미칠 수 있는 트리를 나타내는 새로운 메모리/데이터 구조를 생성합니다. 이는 환경 매개변수를 통해 구성할 수 있습니다. storage_type
고밀도, 희소 및 자동 옵션이 있습니다. 고밀도 옵션을 선택하면 더 많은 GPU 메모리를 사용하고 항상 성능이 향상되는 것은 아니므로 확인하는 것이 가장 좋습니다. 반대로 sparse 옵션은 GPU 메모리를 적게 사용하며 dense보다 성능이 같거나 더 나을 수 있습니다. 자동을 선택하면 스파스보다 훨씬 더 많은 GPU 메모리를 사용하지 않는 한 모델이 기본적으로 밀도로 설정됩니다.
모델 성능과 관련하여 다음을 강조하는 것을 고려할 수 있습니다. threads_per_tree
옵션. 실제 시나리오에서 과도하게 제공할 수 있는 한 가지는 threads_per_tree
다른 매개변수보다 처리량에 더 큰 영향을 미칠 수 있습니다. 2-1에서 32의 거듭제곱으로 설정하는 것은 합법적입니다. 이 매개변수에 대한 최적의 값은 예측하기 어렵지만 서버가 더 높은 로드를 처리하거나 더 큰 배치 크기를 처리할 것으로 예상되는 경우 한 번에 몇 개의 행을 처리할 때보다 더 큰 값을 사용하는 경향이 있습니다.
알아야 할 또 다른 매개변수는 algo
, GPU에서 실행 중인 경우에도 사용할 수 있습니다. 이 매개변수는 추론 요청을 처리하는 데 사용되는 알고리즘을 결정합니다. 이를 위해 지원되는 옵션은 다음과 같습니다. ALGO_AUTO
, NAIVE
, TREE_REORG
및 BATCH_TREE_REORG
. 이러한 옵션은 트리 내의 노드가 구성되는 방식을 결정하고 성능 향상을 가져올 수도 있습니다. 그만큼 ALGO_AUTO
옵션은 기본적으로 NAIVE
스파스 스토리지 및 BATCH_TREE_REORG
조밀한 저장을 위해.
마지막으로 FIL은 Shapley 설명자와 함께 제공되며, 이는 다음을 사용하여 활성화할 수 있습니다. treeshap_output
매개변수. 그러나 Shapley 출력은 출력 크기로 인해 성능이 저하된다는 점을 염두에 두어야 합니다.
모델 형식
현재 포리스트 기반 모델을 저장하기 위한 표준 파일 형식은 없습니다. 모든 프레임워크는 자체 형식을 정의하는 경향이 있습니다. 여러 입력 파일 형식을 지원하기 위해 FIL은 오픈 소스를 사용하여 데이터를 가져옵니다. 트리라이트 도서관. 이를 통해 FIL은 다음과 같은 인기 있는 프레임워크에서 훈련된 모델을 지원할 수 있습니다. XGBoost 및 라이트 GBM. 제공하는 모델의 형식은 model_type
에 지정된 구성 값 config.pbtxt
파일.
구성.pbtxt
각 모델은 모델 저장소 모델에 대한 필수 및 선택적 정보를 제공하는 모델 구성을 포함해야 합니다. 일반적으로 이 구성은 config.pbtxt
로 지정된 파일 ModelConfig 프로토버프. 구성 설정에 대한 자세한 내용은 다음을 참조하십시오. 모델 구성. 다음은 일부 모델 구성 매개변수입니다.
- 최대 배치 크기 – 이 모델에 전달할 수 있는 최대 배치 크기를 결정합니다. 일반적으로 FIL 백엔드로 전달되는 배치 크기에 대한 유일한 제한은 이를 처리하는 데 사용할 수 있는 메모리입니다. GPU 실행의 경우 사용 가능한 메모리는 서버를 시작할 때 명령줄 인수를 통해 설정할 수 있는 Triton의 CUDA 메모리 풀 크기에 따라 결정됩니다.
- 입력 – 이 섹션의 옵션은 Triton에게 각 입력 샘플에 대해 예상되는 기능의 수를 알려줍니다.
- 출력 – 이 섹션의 옵션은 Triton에게 각 샘플에 대해 얼마나 많은 출력 값이 있는지 알려줍니다. 만약
predict_proba
옵션이 true로 설정되면 각 클래스에 대해 확률 값이 반환됩니다. 그렇지 않으면 주어진 샘플에 대해 예측된 클래스를 나타내는 단일 값이 반환됩니다. - 인스턴스_그룹 – 생성할 이 모델의 인스턴스 수와 GPU 또는 CPU를 사용할지 여부를 결정합니다.
- 모델_유형 – 이 문자열은 모델이 어떤 형식인지 나타냅니다(
xgboost_json
이 예에서는xgboost
,lightgbm
및tl_checkpoint
형식도 유효합니다). - 예측_프로바 – true로 설정하면 클래스 예측이 아닌 각 클래스에 대한 확률 값이 반환됩니다.
- 출력_클래스 – 분류 모델의 경우 true로, 회귀 모델의 경우 false로 설정합니다.
- 임계값 – 분류를 결정하기 위한 점수 임계값입니다. 언제
output_class
true로 설정되어 있으면 제공해야 하지만 다음과 같은 경우에는 사용되지 않습니다.predict_proba
또한 true로 설정됩니다. - 스토리지_유형 – 일반적으로 이 설정에 대해 AUTO를 사용하면 대부분의 사용 사례를 충족해야 합니다. 자동 저장이 선택되면 FIL은 모델의 대략적인 크기에 따라 희소 또는 조밀한 표현을 사용하여 모델을 로드합니다. 경우에 따라 대형 모델의 메모리 사용량을 줄이기 위해 명시적으로 SPARSE로 설정할 수 있습니다.
SageMaker의 Triton 추론 서버
세이지 메이커 수 NVIDIA Triton Inference Server를 사용하여 단일 모델 및 다중 모델 엔드포인트를 모두 배포할 수 있습니다. 다음 그림은 Triton Inference Server 상위 수준 아키텍처를 보여줍니다. 그만큼 모델 저장소 Triton이 추론을 위해 사용할 수 있는 모델의 파일 시스템 기반 리포지토리입니다. 추론 요청은 서버에 도착하고 적절한 모델별 스케줄러로 라우팅됩니다. 트리톤 구현 다중 스케줄링 및 일괄 처리 알고리즘 모델별로 구성할 수 있습니다. 각 모델의 스케줄러는 선택적으로 추론 요청의 일괄 처리를 수행한 다음 요청을 백엔드 모델 유형에 해당합니다. 백엔드는 요청된 출력을 생성하기 위해 일괄 처리된 요청에 제공된 입력을 사용하여 추론을 수행합니다. 그런 다음 출력이 반환됩니다.
SageMaker 엔드포인트에 대해 Auto Scaling 그룹을 구성할 때 다음 사항을 고려할 수 있습니다. SageMakerVariantInvocationsPerInstance
Auto Scaling 그룹의 조정 특성을 결정하기 위한 기본 기준으로 사용합니다. 또한 모델이 GPU에서 실행되는지 CPU에서 실행되는지에 따라 CPUUtilization 또는 GPUUtilization을 추가 기준으로 사용할 수도 있습니다. 단일 모델 끝점의 경우 배포된 모델이 모두 동일하기 때문에 SLA를 충족하는 적절한 정책을 설정하는 것이 매우 간단합니다. 다중 모델 끝점의 경우 보다 안정적으로 예측 가능한 성능을 얻기 위해 지정된 끝점 뒤에 유사한 모델을 배포하는 것이 좋습니다. 다양한 크기와 요구 사항의 모델이 사용되는 사용 사례에서는 여러 다중 모델 엔드포인트에서 해당 워크로드를 분리하거나 Auto Scaling 그룹 정책을 미세 조정하여 최상의 비용과 성능 균형을 얻는 데 시간을 할애할 수 있습니다.
SageMaker 추론에서 지원하는 NVIDIA Triton Deep Learning Containers(DLC) 목록은 다음을 참조하십시오. 사용 가능한 딥 러닝 컨테이너 이미지.
SageMaker 노트북 둘러보기
ML 애플리케이션은 복잡하며 종종 데이터 사전 처리가 필요할 수 있습니다. 이 노트북에서는 SageMaker 다중 모델 엔드포인트에서 Triton의 FIL 백엔드를 사용하여 XGBoost와 같은 트리 기반 ML 모델을 배포하는 방법을 자세히 살펴봅니다. 또한 Triton의 앙상블 기능을 사용하여 모델에 대한 Python 기반 데이터 전처리 추론 파이프라인을 구현하는 방법도 다룹니다. 이를 통해 클라이언트 측에서 원시 데이터를 보내고 최적의 추론 성능을 위해 Triton SageMaker 끝점에서 데이터 전처리 및 모델 추론이 모두 발생하도록 할 수 있습니다.
Triton 모델 앙상블 기능
Triton Inference Server는 프로덕션 환경에서 AI 모델의 배포를 크게 단순화합니다. Triton 추론 서버는 전처리 및 후처리 파이프라인 구축을 간소화하는 편리한 솔루션과 함께 제공됩니다. Triton Inference Server 플랫폼은 효율성을 보장하고 처리량을 최적화하면서 추론 프로세스에 참여하는 파이프라인 모델을 담당하는 앙상블 스케줄러를 제공합니다. 앙상블 모델을 사용하면 중간 텐서를 전송하는 오버헤드를 피하고 Triton으로 보내야 하는 요청 수를 최소화할 수 있습니다.
이 노트북에서는 앙상블 기능을 사용하여 XGBoost 모델 추론을 통해 데이터 전처리 파이프라인을 구축하는 방법을 보여주고 이를 통해 사용자 정의 후처리를 파이프라인에 추가할 수 있습니다.
환경 설정
필요한 환경을 설정하는 것으로 시작합니다. 모델 파이프라인을 패키징하고 Triton Inference Server를 사용하여 추론을 실행하는 데 필요한 종속성을 설치합니다. 우리는 또한 AWS 자격 증명 및 액세스 관리 (IAM) 모델 아티팩트 및 NVIDIA Triton에 대한 SageMaker 액세스 권한을 부여하는 역할 Amazon Elastic Container Registry (아마존 ECR) 이미지. 다음 코드를 참조하십시오.
종속성 전처리를 위한 Conda 환경 만들기
Triton의 Python 백엔드는 다음을 사용해야 합니다. 콩다 추가 종속성에 대한 환경입니다. 이 경우 Python 백엔드를 사용하여 원시 데이터를 FIL 백엔드에서 실행 중인 XGBoost 모델에 공급하기 전에 사전 처리합니다. 원래 RAPIDS cuDF 및 cuML을 사용하여 데이터 전처리를 수행했지만 여기서는 추론 중에 Pandas 및 scikit-learn을 전처리 종속성으로 사용합니다. 다음 세 가지 이유로 이 작업을 수행합니다.
- 의존성에 대한 Conda 환경을 생성하는 방법과 이를 패키징하는 방법을 보여줍니다. 예상되는 형식 Triton의 Python 백엔드에 의해.
- XGBoost가 FIL 백엔드의 GPU에서 실행되는 동안 CPU의 Python 백엔드에서 실행되는 전처리 모델을 보여줌으로써 Triton의 앙상블 파이프라인의 각 모델이 다른 프레임워크 백엔드와 다른 하드웨어 구성에서 어떻게 실행될 수 있는지 보여줍니다.
- RAPIDS 라이브러리(cuDF, cuML)가 대응 CPU(Pandas, scikit-learn)와 어떻게 호환되는지 강조합니다. 예를 들어, 우리는 어떻게
LabelEncoders
cuML로 생성된 데이터는 scikit-learn에서 사용할 수 있으며 그 반대도 가능합니다.
우리는 트리톤 문서 Python 백엔드에서 Conda 환경 TAR 파일로 사용할 패키징 사전 처리 종속성(scikit-learn 및 Pandas). bash 스크립트 create_prep_env.sh Conda 환경 TAR 파일을 생성한 다음 전처리 모델 디렉터리로 이동합니다. 다음 코드를 참조하십시오.
앞의 스크립트를 실행하면 다음이 생성됩니다. preprocessing_env.tar.gz
, 전처리 디렉터리에 복사합니다.
Triton Python 백엔드로 전처리 설정
전처리를 위해 Triton의 파이썬 백엔드 서버로 들어오는 원시 데이터 요청에 대한 추론 중에 테이블 형식 데이터 전처리(범주 인코딩)를 수행합니다. 학습 중에 수행된 전처리에 대한 자세한 내용은 다음을 참조하십시오. 훈련 노트.
Python 백엔드는 전처리, 후처리 및 기타 사용자 지정 논리를 Python에서 구현하고 Triton과 함께 제공할 수 있도록 합니다. SageMaker에서 Triton을 사용하려면 먼저 제공하려는 모델이 포함된 모델 리포지토리 폴더를 설정해야 합니다. 우리는 이미 사전 처리라는 Python 데이터 사전 처리를 위한 모델을 설정했습니다. cpu_model_repository
및 gpu_model_repository
.
Triton에는 모델 리포지토리 레이아웃에 대한 특정 요구 사항이 있습니다. 최상위 모델 리포지토리 디렉터리 내에서 각 모델에는 해당 모델에 대한 정보가 포함된 자체 하위 디렉터리가 있습니다. Triton의 각 모델 디렉토리에는 모델 버전을 나타내는 숫자 하위 디렉토리가 하나 이상 있어야 합니다. 값 1은 Python 전처리 모델의 버전 1을 나타냅니다. 각 모델은 특정 백엔드에서 실행되므로 각 버전 하위 디렉토리에는 해당 백엔드에 필요한 모델 아티팩트가 있어야 합니다. 이 예에서는 제공하는 Python 파일이 model.py라는 Python 백엔드를 사용하고 파일은 다음을 구현해야 합니다. 특정 기능. PyTorch 백엔드를 사용한다면 model.pt 파일이 필요할 것입니다. 모델 파일의 명명 규칙에 대한 자세한 내용은 다음을 참조하십시오. 모델 파일.
XNUMXD덴탈의 모델.py 여기서 사용하는 Python 파일은 원시 데이터를 XGBoost 모델에 공급할 수 있는 기능으로 변환하는 모든 테이블 형식 데이터 전처리 논리를 구현합니다.
모든 Triton 모델은 또한 config.pbtxt
모델 구성을 설명하는 파일입니다. 구성 설정에 대한 자세한 내용은 다음을 참조하십시오. 모델 구성를 이용할 수 있습니다. 구성.pbtxt 파일은 백엔드를 Python으로 지정하고 15개의 기능으로 구성된 전처리된 출력과 함께 원시 데이터에 대한 모든 입력 열을 지정합니다. 또한 이 Python 전처리 모델을 CPU에서 실행하도록 지정합니다. 다음 코드를 참조하십시오.
FIL 백엔드용 트리 기반 ML 모델 설정
다음으로 FIL 백엔드를 사용할 XGBoost와 같은 트리 기반 ML 모델에 대한 모델 디렉터리를 설정합니다.
에 대한 예상 레이아웃 cpu_memory_repository
및 gpu_memory_repository
이전에 보여드린 것과 유사합니다.
여기 FIL
모델의 이름입니다. 다음과 같이 다른 이름을 지정할 수 있습니다. xgboost
우리가 원한다면. 1
모델 아티팩트가 포함된 버전 하위 디렉터리입니다. 이 경우, 그것은 xgboost.json
저장한 모델입니다. 예상되는 레이아웃을 만들어 보겠습니다.
구성 파일이 필요합니다. config.pbtxt
Triton의 FIL 백엔드가 제공 방법을 이해할 수 있도록 트리 기반 ML 모델의 모델 구성을 설명합니다. 자세한 내용은 최신 제네릭을 참조하십시오. 트리톤 구성 옵션 및 특정 구성 옵션 FIL 백엔드. 이 예에서는 가장 일반적이고 관련성이 높은 몇 가지 옵션에 초점을 맞춥니다.
만들기 config.pbtxt
for
model_cpu_repository
:
마찬가지로 설정 config.pbtxt
for
model_gpu_repository
(차이점은 USE_GPU = True
):
앙상블을 사용하여 데이터 전처리 Python 백엔드 및 FIL 백엔드의 추론 파이프라인 설정
이제 데이터 전처리 및 트리 기반 모델 추론을 위한 추론 파이프라인을 설정할 준비가 되었습니다. 앙상블 모델. 앙상블 모델은 하나 이상의 모델의 파이프라인과 해당 모델 간의 입력 및 출력 텐서 연결을 나타냅니다. 여기에서 우리는 앙상블 모델을 사용하여 Python 백엔드에서 데이터 전처리 파이프라인을 구축한 다음 FIL 백엔드에서 XGBoost를 구축합니다.
에 대한 예상 레이아웃 ensemble
모델 디렉토리는 이전에 보여준 것과 유사합니다:
우리는 앙상블 모델의 구성.pbtxt 의 안내에 따라 앙상블 모델. 중요한 것은 앙상블 스케줄러를 config.pbtxt
, 앙상블 내의 모델 간 데이터 흐름을 지정합니다. 앙상블 스케줄러는 각 단계에서 출력 텐서를 수집하고 사양에 따라 다른 단계의 입력 텐서로 제공합니다.
모델 리포지토리 패키징 및 Amazon S3에 업로드
마지막으로 XGBoost FIL 모델 및 모델 앙상블과 함께 Python 전처리 모델 및 해당 종속성을 포함하는 다음 모델 리포지토리 디렉토리 구조로 끝납니다.
우리는 디렉토리와 그 내용을 다음과 같이 패키징합니다. model.tar.gz
에 업로드하기 위해 아마존 단순 스토리지 서비스 (아마존 S3). 이 예제에는 CPU 기반 인스턴스 또는 GPU 기반 인스턴스를 사용하는 두 가지 옵션이 있습니다. GPU 기반 인스턴스는 더 높은 처리 능력이 필요하고 CUDA 코어를 사용하려는 경우에 더 적합합니다.
다음 코드를 사용하여 CPU 기반 인스턴스(CPU에 최적화됨)에 대한 모델 패키지를 생성하고 업로드합니다.
다음 코드를 사용하여 GPU 기반 인스턴스(GPU에 최적화됨)용 모델 패키지를 생성하고 업로드합니다.
SageMaker 엔드포인트 생성
이제 모델 아티팩트가 S3 버킷에 저장되었습니다. 이 단계에서 추가 환경 변수를 제공할 수도 있습니다. SAGEMAKER_TRITON_DEFAULT_MODEL_NAME
, Triton이 로드할 모델의 이름을 지정합니다. 이 키의 값은 Amazon S3에 업로드된 모델 패키지의 폴더 이름과 일치해야 합니다. 이 변수는 단일 모델의 경우 선택 사항입니다. 앙상블 모델의 경우 Triton이 SageMaker에서 시작하려면 이 키를 지정해야 합니다.
또한 다음을 설정할 수 있습니다. SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT
및 SAGEMAKER_TRITON_THREAD_COUNT
스레드 수를 최적화하기 위해.
이전 모델을 사용하여 끝점에서 원하는 인스턴스의 유형과 수를 지정할 수 있는 끝점 구성을 만듭니다.
이 엔드포인트 구성을 사용하여 SageMaker 엔드포인트를 생성하고 배포가 완료될 때까지 기다립니다. SageMaker MME를 사용하면 이 프로세스를 반복하여 여러 앙상블 모델을 호스팅할 수 있지만 이 예에서는 하나의 배포를 고수합니다.
상태가 다음으로 변경됩니다. InService
배포가 성공했을 때.
SageMaker 엔드포인트에서 호스팅되는 모델 호출
엔드포인트가 실행된 후 일부 샘플 원시 데이터를 사용하여 JSON을 페이로드 형식으로 사용하여 추론을 수행할 수 있습니다. 추론 요청 형식의 경우 Triton은 다음을 사용합니다. KFServing
커뮤니티 표준 추론 프로토콜. 다음 코드를 참조하십시오.
블로그에 언급된 노트북은 다음에서 찾을 수 있습니다. GitHub 저장소.
모범 사례
앞에서 언급한 FIL 백엔드의 설정을 미세 조정하는 옵션 외에도 데이터 과학자는 백엔드의 입력 데이터가 엔진 처리에 최적화되도록 할 수 있습니다. 가능할 때마다 행 주요 형식의 데이터를 GPU 배열에 입력하십시오. 다른 형식은 내부 변환이 필요하고 주기를 차지하여 성능을 저하시킵니다.
FIL 데이터 구조가 GPU 메모리에서 유지되는 방식으로 인해 트리 깊이에 유의하십시오. 트리 깊이가 깊을수록 GPU 메모리 공간이 커집니다.
사용 instance_group_count
매개변수를 사용하여 작업자 프로세스를 추가하고 FIL 백엔드의 처리량을 늘리면 CPU 및 GPU 메모리 사용량이 증가합니다. 또한 HTTP 스레드, HTTP 버퍼 크기, 배치 크기 및 최대 지연과 같이 처리량을 늘리는 데 사용할 수 있는 SageMaker 관련 변수를 고려하십시오.
결론
이 게시물에서는 SageMaker에서 Triton Inference Server가 지원하는 FIL 백엔드에 대해 자세히 살펴보았습니다. 이 백엔드는 널리 사용되는 XGBoost 알고리즘과 같은 트리 기반 모델의 CPU 및 GPU 가속을 모두 제공합니다. 배치 크기, 데이터 입력 형식 및 요구 사항에 맞게 조정할 수 있는 기타 요소와 같이 최상의 추론 성능을 얻기 위해 고려해야 할 많은 옵션이 있습니다. SageMaker를 사용하면 단일 및 다중 모델 엔드포인트와 함께 이 기능을 사용하여 성능과 비용 절감 간의 균형을 맞출 수 있습니다.
이 게시물의 정보를 살펴보고 SageMaker가 비용 절감 및 워크로드 성능에 대한 요구 사항을 충족하면서 트리 기반 모델을 제공하기 위한 호스팅 요구 사항을 충족할 수 있는지 확인하는 것이 좋습니다.
이 게시물에서 참조하는 노트북은 SageMaker 예제에서 찾을 수 있습니다. GitHub 저장소. 또한 다음에서 FIL 백엔드에 대한 최신 문서를 찾을 수 있습니다. GitHub의.
저자에 관하여
라구 라메샤 Amazon SageMaker 서비스 팀의 수석 ML 솔루션 설계자입니다. 그는 고객이 ML 프로덕션 워크로드를 대규모로 구축, 배포 및 SageMaker로 마이그레이션하도록 돕는 데 중점을 둡니다. 그는 기계 학습, AI 및 컴퓨터 비전 도메인을 전문으로 하며 UT 달라스에서 컴퓨터 과학 석사 학위를 받았습니다. 여가 시간에는 여행과 사진 촬영을 즐깁니다.
제임스 파크 Amazon Web Services의 솔루션 아키텍트입니다. 그는 Amazon.com과 협력하여 AWS에서 기술 솔루션을 설계, 구축 및 배포하며 특히 AI 및 기계 학습에 관심이 있습니다. 여가 시간에 그는 새로운 문화, 새로운 경험을 찾고 최신 기술 동향을 파악하는 것을 즐깁니다.
다왈 파텔 AWS의 수석 기계 학습 설계자입니다. 그는 분산 컴퓨팅 및 인공 지능과 관련된 문제에 대해 대기업에서 중견 스타트업에 이르는 다양한 조직과 협력했습니다. 그는 NLP 및 컴퓨터 비전 도메인을 포함한 딥 러닝에 중점을 둡니다. 그는 고객이 Amazon SageMaker에서 고성능 모델 추론을 달성하도록 돕습니다.
리우 지아 홍 NVIDIA 클라우드 서비스 제공업체 팀의 솔루션 설계자입니다. 그는 교육 및 추론 문제를 해결하기 위해 NVIDIA 가속 컴퓨팅을 활용하는 기계 학습 및 AI 솔루션을 채택하는 고객을 지원합니다. 여가 시간에는 종이접기, DIY 프로젝트, 농구를 즐깁니다.
크시티즈 굽타 NVIDIA의 솔루션 아키텍트입니다. 그는 NVIDIA가 제공해야 하는 GPU AI 기술에 대해 클라우드 고객을 교육하고 기계 학습 및 딥 러닝 애플리케이션을 가속화하도록 지원하는 것을 즐깁니다. 일 외에는 달리기, 하이킹, 야생 동물 관찰을 즐깁니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoAiStream. Web3 데이터 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 미래 만들기 w Adryenn Ashley. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/hosting-ml-models-on-amazon-sagemaker-using-triton-xgboost-lightgbm-and-treelite-models/
- :있다
- :이다
- :아니
- :어디
- $UP
- 1
- 100
- 11
- 13
- 200
- 23
- 24
- 7
- 8
- 9
- a
- 능력
- 소개
- 가속
- 가속 된
- 가속하는
- 가속기
- ACCESS
- 에 따르면
- 따라서
- 계정
- 달성
- 가로질러
- 더하다
- 또한
- 추가
- 주소
- 주소 지정 가능
- 채택
- 후
- 반대
- 계약
- AI
- 연산
- All
- 할당
- 수
- 수
- 따라
- 이미
- 또한
- 이기는하지만
- 항상
- 아마존
- 아마존 세이지 메이커
- Amazon Web Services
- Amazon.com
- 양
- an
- 및
- 어떤
- API를
- 어플리케이션
- 적당한
- 아키텍처
- 있군요
- 지역
- 논의
- 배열
- 인조의
- 인공 지능
- AS
- 어시스트
- At
- 자동
- 가능
- 피하기
- AWS
- 백엔드
- 잔액
- 기반으로
- 세게 때리다
- 기초
- 농구
- BE
- 때문에
- 가
- 된
- 전에
- 시작하다
- 뒤에
- 이하
- 이익
- BEST
- 더 나은
- 사이에
- 더 큰
- 블로그
- 몸
- 두
- 버퍼
- 빌드
- 건물
- 내장
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- C + +
- 라는
- CAN
- 카드
- 케이스
- 가지 경우
- 범주
- 원인
- 과제
- 이전 단계로 돌아가기
- 특성
- 검사
- 칩
- 왼쪽 메뉴에서
- 선택
- City
- 수업
- 분류
- 클라이언트
- 클라이언트
- 클라우드
- 암호
- 열
- COM
- 제공
- 오는
- 공통의
- 소통
- 의사 소통
- 커뮤니티
- 호환
- 복잡한
- 계산
- 컴퓨터
- 컴퓨터 과학
- 컴퓨터 비전
- 컴퓨팅
- 구성
- 연결
- 고려
- 고려
- 소비
- 소비
- 컨테이너
- 용기
- 이 포함되어 있습니다
- 내용
- 대조
- 제어
- 편리한
- 매출 상승
- 변하게 하다
- 핵심
- 동
- 비용
- 비용 절감
- 비용 절감
- 엄호
- 만들
- 만든
- 생성
- 기준
- 결정적인
- 현재
- 관습
- 고객
- 주기
- 달라스
- 데이터
- 날짜
- 일
- 거래
- 결정
- 깊은
- 깊은 학습
- 깊이
- 태만
- 기본값
- 도
- 지연
- 요구
- 요구
- 의존
- 배포
- 배포
- 배치
- 전개
- 깊이
- 디자인
- 세부설명
- 결정
- 결정된
- 결정하다
- 결정
- 개발자
- 차이
- 다른
- 분산
- 분산 컴퓨팅
- DIY
- do
- 선적 서류 비치
- 하지 않습니다
- 하기
- 도메인
- 한
- 비둘기
- 두
- ...동안
- 마다
- 이전
- 교육
- 효율성
- 효율적으로
- 중
- 강조하는
- 수
- 격려
- end
- 종점
- 엔진
- 엔진
- 확인
- 보장
- Enterprise
- 기업
- 전체의
- 환경
- 오류
- 조차
- 모든
- 예
- 예
- 교환
- 기대
- 기대하는
- 체험
- 수출
- 요인
- 꽤
- 폭포
- 그릇된
- 특색
- 특징
- 연방 준비 은행
- 먹이
- 를
- 그림
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 파일
- Find
- 마무리
- 먼저,
- 흐름
- 초점
- 집중
- 따라
- 다음에
- 수행원
- 발자국
- 럭셔리
- 형태
- 체재
- 발견
- 뼈대
- 프레임 워크
- 사기
- 무료
- 에
- 게다가
- 이익
- 일반
- 생성
- 얻을
- 주기
- 주어진
- GPU
- 매우
- 그룹
- 여러 떼
- 지도
- 발생
- 하드
- 하드웨어
- 있다
- he
- 도움
- 도움이
- 도움이
- 여기에서 지금 확인해 보세요.
- 고수준
- 고성능
- 더 높은
- 하이라이트
- 그의
- 보유
- 보유
- 주인
- 호스팅
- 호스팅
- 방법
- How To
- 그러나
- HTML
- HTTP
- HTTPS
- 상처
- 통합 인증
- 식별자
- IDX
- if
- 영상
- 영향
- 영향
- 구현
- 구현
- 구현하다
- 수입
- in
- 포함
- 포함
- 증가
- 표시
- 정보
- 정보
- 입력
- 설치
- 예
- 명령
- 완성
- 인텔리전스
- 관심
- 내부의
- 으로
- IT
- 그
- JPG
- JSON
- 다만
- 유지
- 키
- 종류
- 알아
- 넓은
- 대기업
- 큰
- 숨어 있음
- 최근
- 레이아웃
- 배우다
- 배우기
- 가장 작은
- 지도
- 합법적 인
- 적게
- 레벨
- 레벨
- 이점
- 도서관
- 도서관
- 처럼
- 제한
- 라인
- 명부
- 하중
- 논리
- 논리
- 긴
- 기계
- 기계 학습
- 확인
- 관리
- .
- 석사
- 경기
- 최대
- 최고
- XNUMX월..
- 기구
- 소개
- 회의
- 메모리
- 말하는
- 상인
- 통계
- 수도
- 이전
- 신경
- ML
- 모드
- 모델
- 모델
- 달
- 배우기
- 가장
- 가장 인기 많은
- 움직임
- 다중 모델 끝점
- 여러
- 절대로 필요한 것
- name
- 명명
- 출신
- 필요
- 요구
- 신제품
- nlp
- 아니
- 노드
- 수첩
- 지금
- 번호
- numpy
- 엔비디아
- 획득
- of
- 제공
- 제공
- 자주
- on
- ONE
- 사람
- 만
- 오픈 소스
- 최적의
- 최적화
- 최적화
- 최적화
- 최적화
- 선택권
- 옵션
- or
- 주문
- 조직
- 최
- 원래
- OS
- 기타
- 그렇지 않으면
- 우리의
- 아웃
- 출력
- 외부
- 자신의
- 꾸러미
- 포장
- 팬더
- 평행
- 매개 변수
- 매개 변수
- 참여하는
- 특별한
- 합격
- 패스
- 통로
- 수행
- 성능
- 수행하다
- 허가
- 사진술
- 관로
- 플랫폼
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 연주
- 부디
- 과다
- 정책
- 정책
- 풀
- 인기 문서
- 인기
- 가능한
- 혹시
- 게시하다
- 힘
- 예측
- 예측 가능
- 예측
- 예측
- 예측
- 이전에
- 일차
- 교장
- 문제
- 방법
- 프로세스
- 처리
- 프로세싱 파워
- 가공업자
- 생산
- 생산
- 프로젝트
- 적절한
- 프로토
- 제공
- 제공
- 공급자
- 제공
- 제공
- Python
- 파이 토치
- 닥치는대로의
- 이르기까지
- 차라리
- 살갗이 벗어 진
- 준비
- 현실 세계
- 실시간
- 이유
- 권하다
- 감소
- 참조
- 관계없이
- 지방
- 관련
- 관련된
- 교체
- 저장소
- 대표
- 대표
- 대표
- 의뢰
- 요청
- 필요
- 필수
- 요구조건 니즈
- 필요
- 응답
- 책임
- 결과
- 결과
- 직위별
- 달리기
- 달리는
- s
- 현자
- SageMaker 추론
- 같은
- 저금
- 확장성
- 규모
- 스케일링
- 시나리오
- 일정
- 과학
- 과학자
- 사이 킷 학습
- 점수
- 섹션
- 참조
- 모색
- 선택된
- 보내다
- 연장자
- 별도의
- 서브
- 서비스
- 서비스 제공 업체
- 서비스
- 피복재
- 세트
- 설정
- 설정
- 셰이프
- 공유
- 영상을
- 표시
- 쇼
- 측면
- 크게
- 비슷한
- 단순, 간단, 편리
- 단일
- 크기
- 크기
- So
- 해결책
- 솔루션
- 풀다
- 해결
- 일부
- 출처
- 전문적으로
- 구체적인
- 명세서
- 지정
- 지출
- 표준
- 스타트
- 시작 중
- 신생
- 주 정부
- Status
- 침착 한
- 단계
- 단계
- 저장
- 저장
- 저장
- 똑 바른
- 끈
- 구조
- 성공한
- 이러한
- 제안
- 적당한
- SUPPORT
- 지원
- 지원
- 받아
- 팀
- 기법
- 기술
- Technology
- 이야기
- 조건
- 보다
- 그
- XNUMXD덴탈의
- 정보
- 그들의
- 그들
- 그때
- 그곳에.
- Bowman의
- 그들
- 맡은 일
- 이
- 그
- 그래도?
- 세
- 임계값
- 처리량
- 시간
- 에
- 오늘
- 함께
- 최고 수준
- 전통적으로
- 훈련 된
- 트레이닝
- 전송
- 여행
- 나무
- 트렌드
- 소라 고둥
- 참된
- 두
- 유형
- 유형
- 일반적으로
- 이해
- 업로드
- 업로드
- us
- 사용
- 익숙한
- 사용자
- 사용
- 이용하다
- 활용
- 가치
- 마케팅은:
- 여러
- 버전
- 를 통해
- 시력
- W
- 기다리다
- 필요
- 였다
- 시청
- 방법..
- we
- 웹
- 웹 서비스
- 잘
- 했다
- 뭐
- 언제
- 때마다
- 여부
- 어느
- 동안
- 의지
- 과
- 이내
- 없이
- 작업
- 일
- 노동자
- 일
- 겠지
- XGBoost
- year
- 자신의
- 너의
- 제퍼 넷
- 지퍼