기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon을 사용한 모델 추론 최적화 SageMaker
Amazon 를 사용하면 추론 최적화 기술을 적용하여 생성형 AI 모델의 성능을 개선할 SageMaker수 있습니다. 모델을 최적화하면 사용 사례에 대해 더 나은 비용 성능을 얻을 수 있습니다. 모델을 최적화할 때 퀀타이즈, 투기 디코딩, 컴파일을 포함하여 적용할 지원되는 최적화 기술을 선택합니다. 모델이 최적화되면 평가를 실행하여 지연 시간, 처리량 및 요금에 대한 성능 지표를 확인할 수 있습니다.
많은 모델의 경우 는 지연 시간 및 처리량에 대한 다양한 애플리케이션 요구 사항을 각각 충족하는 여러 가지 사전 최적화 버전 SageMaker 도 제공합니다. 이러한 모델의 경우 먼저 모델을 직접 최적화하지 않고도 최적화된 버전 중 하나를 배포할 수 있습니다.
최적화 기법
Amazon은 다음과 같은 최적화 기술을 SageMaker 지원합니다.
투기 디코딩
투기 디코딩은 대규모 의 디코딩 프로세스를 가속화하는 기법입니다LLMs. 생성된 텍스트의 품질을 저하시키지 않고 지연 시간을 위해 모델을 최적화합니다.
이 기법은 초안 모델이라는 더 작지만 더 빠른 모델을 사용합니다. 초안 모델은 후보 토큰을 생성한 다음 더 크지만 느린 대상 모델에 의해 검증됩니다. 각 반복 시 초안 모델은 여러 후보 토큰을 생성합니다. 대상 모델은 토큰을 확인하고 특정 토큰이 허용되지 않는 것으로 확인되면 토큰을 거부하고 재생성합니다. 따라서 대상 모델은 토큰을 검증하고 소량의 토큰을 생성합니다.
초안 모델은 대상 모델보다 훨씬 빠릅니다. 모든 토큰을 빠르게 생성한 다음 확인을 위해 해당 토큰의 배치를 대상 모델로 보냅니다. 대상 모델은 이 모든 것을 병렬로 평가하여 최종 응답을 가속화합니다.
SageMaker 는 사용할 수 있는 사전 구축된 초안 모델을 제공하므로 자체 초안 모델을 구축할 필요가 없습니다. 자체 사용자 지정 초안 모델을 사용하려는 경우 는 이 옵션 SageMaker 도 지원합니다.
퀀타이즈
퀀타이즈는 가중치 및 활성화에 덜 정확한 데이터 유형을 사용하여 모델의 하드웨어 요구 사항을 줄이는 기법입니다. 퀀타이즈로 모델을 최적화한 후에는 비용이 저렴하고 사용 가능한 에서 모델을 호스팅할 수 있습니다GPUs. 그러나 양자화된 모델은 최적화한 소스 모델보다 정확도가 낮을 수 있습니다.
SageMaker 는 에 대한 활성화 인식 가중치 정량화(AWQ)를 지원합니다GPUs. AWQ 는 에 대한 퀀타이즈 기법으로, 효율적이고 정확하며 비트가 적고 무게만 LLMs 있습니다.
컴파일
컴파일은 정확도 손실 없이 선택한 하드웨어 유형에서 사용 가능한 최상의 성능을 위해 모델을 최적화합니다. 모델 컴파일을 적용하여 Trainium 또는 AWS Inferentia와 같은 AWS 가속화된 하드웨어LLMs를 최적화할 수 있습니다.
컴파일로 모델을 최적화하면 컴파일의 ahead-of-time 이점을 누릴 수 있습니다. 모델이 새 인스턴스에 배포될 때 모델 가중치에 컴파일이 필요하지 just-in-time 않으므로 모델의 배포 시간과 자동 크기 조정 지연 시간을 줄일 수 있습니다.
추론 성능 평가에 대한 지표 참조
최적화된 모델의 성능을 성공적으로 평가하면 Studio의 평가 세부 정보 페이지에 다음 지표가 표시됩니다.
지연 시간 지표
지연 시간 섹션에는 다음 지표가 표시됩니다.
- 동시성
-
엔드포인트를 동시에 호출하기 위해 평가를 시뮬레이션한 동시 사용자 수입니다.
- 첫 번째 토큰까지의 시간(ms)
-
요청이 전송된 시점과 스트리밍 응답의 첫 번째 토큰이 수신된 시점 사이에 경과한 시간입니다.
- 토큰 간 지연 시간(ms)
-
각 요청에 대한 출력 토큰을 생성하는 시간입니다.
- 클라이언트 지연 시간(ms)
-
요청이 전송된 시점부터 전체 응답이 수신된 시점까지의 요청 지연 시간입니다.
- 입력 토큰/초(카운트)
-
모든 요청에서 생성된 입력 토큰의 총 수를 동시성의 총 지속 시간으로 나눈 값입니다.
- 출력 토큰/초(카운트)
-
모든 요청에서 생성된 출력 토큰의 총 수를 동시성에 대해 초 단위로 나눈 값입니다.
- 클라이언트 호출(개수)
-
동시에 모든 사용자에 걸쳐 엔드포인트로 전송된 추론 요청의 총 수입니다.
- 클라이언트 호출 오류(개수)
-
지정된 동시성에 모든 사용자에 걸쳐 엔드포인트로 전송된 총 추론 요청 수로, 호출 오류가 발생했습니다.
- 토큰화 실패(개수)
-
토큰화기가 요청 또는 응답을 구문 분석하지 못한 총 추론 요청 수입니다.
- 빈 추론 응답(개수)
-
출력 토큰이 0이거나 토큰화기가 응답을 구문 분석하지 못한 추론 요청의 총 수입니다.
처리량 지표
처리량 섹션에는 다음 지표가 표시됩니다.
- 동시성
-
엔드포인트를 동시에 호출하기 위해 평가를 시뮬레이션한 동시 사용자 수입니다.
- 입력 토큰/sec/req(개수)
-
요청당 초당 생성된 입력 토큰의 총 수입니다.
- 출력 토큰/sec/req(개수)
-
요청당 초당 생성된 출력 토큰의 총 수입니다.
- 입력 토큰(개수)
-
요청당 생성된 입력 토큰의 총 수입니다.
- 출력 토큰(개수)
-
요청당 생성된 출력 토큰의 총 수입니다.
가격 지표
요금 섹션에는 다음 지표가 표시됩니다.
- 동시성
-
엔드포인트를 동시에 호출하기 위해 평가를 시뮬레이션한 동시 사용자 수입니다.
- 입력 토큰 백만 개당 가격
-
1M 입력 토큰 처리 비용.
- 출력 토큰 백만 개당 가격
-
1M 출력 토큰 생성 비용.
지원되는 모델 참조
다음 표에는 추론 최적화를 SageMaker 지원하는 모델과 지원되는 최적화 기술이 나와 있습니다.
모델 이름 | JumpStart 모델 ID | 퀀타이즈 지원 | 투기 디코딩 지원 | SageMaker Draft 모델을 사용한 투기 디코딩 |
---|---|---|---|---|
Falcon | huggingface-llm-falcon-40b-bf16 | 예 | 예 | 아니요 |
huggingface-llm-falcon-40b-instruct-bf16 | 예 | 예 | 아니요 | |
huggingface-llm-falcon-180b-chat-bf16 | 아니요 | 예 | 아니요 | |
huggingface-llm-falcon-180b-bf16 | 아니요 | 예 | 아니요 | |
huggingface-llm-amazon-falconlite | 예 | 예 | 아니요 | |
huggingface-llm-amazon-falconlite2 | 예 | 예 | 아니요 | |
huggingface-llm-tiiuae-falcon-rw-1b | 예 | 예 | 아니요 | |
huggingface-llm-falcon-7b-bf16 | 예 | 예 | 아니요 | |
huggingface-llm-falcon-7b-instruct-bf16 | 예 | 예 | 아니요 | |
huggingface-llm-falcon2-11b | 예 | 예 | 아니요 | |
gpt-neox | huggingface-textgeneration2-gpt-neoxt-chat-base-20b-fp16 | 예 | 예 | 아니요 |
huggingface-textgeneration2-gpt-neox-20b-fp16 | 예 | 예 | 아니요 | |
LLaMA | meta-textgeneration-llama-3-70b-지시 | 예 | 예 | 예 |
meta-textgeneration-llama-3~70b | 예 | 예 | 예 | |
meta-textgeneration-llama-3-8b | 예 | 예 | 예 | |
meta-textgeneration-llama-3-8b-지시 | 예 | 예 | 예 | |
meta-textgeneration-llama-2-7b | 예 | 예 | 예 | |
meta-textgeneration-llama-2-7b-f | 예 | 예 | 예 | |
meta-textgeneration-llama-2~13b | 예 | 예 | 예 | |
meta-textgeneration-llama-2-13b-f | 예 | 예 | 예 | |
meta-textgeneration-llama-2~70b | 예 | 예 | 예 | |
meta-textgeneration-llama-2-70b-f | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-7b | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-7b-지시 | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-7b-파이톤 | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-13b | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-13b-지시 | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-13b-python | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-34b | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-34b-instruct | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-34b-python | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-70b | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-70b-지시 | 예 | 예 | 예 | |
meta-textgeneration-llama-codellama-70b-python | 예 | 예 | 예 | |
meta-textgeneration-llama-guard-7b | 예 | 예 | 예 | |
Bloom | huggingface-textgeneration-bloom-1b7 | 예 | 예 | 아니요 |
huggingface-textgeneration-bloom-1b1 | 예 | 예 | 아니요 | |
huggingface-textgeneration-bloom-560m | 예 | 예 | 아니요 | |
huggingface-textgeneration-bloomz-560m | 예 | 예 | 아니요 | |
huggingface-textgeneration-bloomz-1b1 | 예 | 예 | 아니요 | |
huggingface-textgeneration-bloomz-1b7 | 예 | 예 | 아니요 | |
huggingface-textgeneration1-bloomz-7b1-fp16 | 예 | 예 | 아니요 | |
huggingface-textgeneration1-bloom-7b1 | 예 | 예 | 아니요 | |
huggingface-textgeneration1-bloomz-3b-fp16 | 예 | 예 | 아니요 | |
huggingface-textgeneration1-bloom-3b | 예 | 예 | 아니요 | |
huggingface-textembedding-bloom-7b1 | 예 | 예 | 아니요 | |
huggingface-textembedding-bloom-7b1-fp16 | 예 | 예 | 아니요 | |
Cohere | huggingface-llm-cohereforai-c4ai-command-r-plus | 예 | ||
Gemma | huggingface-llm-gemma-7b | 예 | 예 | 아니요 |
huggingface-llm-gemma-7b-지시 | 예 | 예 | 아니요 | |
huggingface-llm-gemma-2b | 예 | 예 | 아니요 | |
huggingface-llm-gemma-2b-지시 | 예 | 예 | 아니요 | |
huggingface-llm-zephyr-7b-gemma | 예 | 예 | 아니요 | |
gpt2 | huggingface-textgeneration-gpt2 | 예 | 아니요 | 아니요 |
huggingface-textgeneration-distilgpt2 | 예 | 아니요 | 아니요 | |
임스랄 | huggingface-llm-mistral-7b | 예 | 예 | 예 |
huggingface-llm-mistral-7b-지시 | 예 | 예 | 예 | |
huggingface-llm-mistral-7b-openorca-gptq | 예 | 예 | 예 | |
huggingface-llm-amazon-mistrallite | 예 | 예 | 예 | |
huggingface-llm-thebloke-mistral-7b-openorca-awq | 예 | 예 | 예 | |
huggingface-llm-huggingfaceh4-미스랄-7b-sft-beta | 예 | 예 | 예 | |
huggingface-llm-huggingfaceh4-미스랄-7b-sft-alpha | 예 | 예 | 예 | |
huggingface-llm-teknium-openhermes-2-미스랄-7b | 예 | 예 | 예 | |
huggingface-llm-nousresearch-yarn-미스랄-7b-128k | 예 | 예 | 예 | |
huggingface-llm-dolphin-2-2-1-수중-7b | 예 | 예 | 예 | |
huggingface-llm-cultrix-mistraltrix-v1 | 예 | 예 | 예 | |
혼합 | huggingface-llm-mixtral-8x7b-지시 | 예 | 예 | 예 |
huggingface-llm-mixtral-8x7b-instruct-gptq | 예 | 예 | 예 | |
huggingface-llm-mixtral-8x7b | 예 | 예 | 예 | |
huggingface-llm-mistralai-mixtral-8x22B-instruct-v0-1 | 예 | 예 | 예 | |
huggingface-llm-dolphin-2-5-mixtral-8x7b | 예 | 예 | 예 | |
huggingface-llm-dolphin-2-7-mixtral-8x7b | 예 | 예 | 예 | |
Phi | huggingface-llm-phi-2 | 예 |
사전 최적화된 JumpStart 모델
다음은 사전 최적화된 구성이 있는 JumpStart 모델입니다.
Meta
-
Llama 3 8B 지침
-
Llama 3 8B
-
Llama 3 70B 지침
-
Llama 3 70B
-
Llama 2 70B 채팅
-
Llama 2 7B 채팅
-
Llama 2 13B 채팅
HuggingFace
-
Mixtral 8x7B 지침
-
혼합 8x7B
-
Mistral 7B 지침
-
미스랄 7B
사전 컴파일된 JumpStart 모델
일부 모델 및 구성의 경우 특정 AWS Inferentia 및 AWS Trainium 인스턴스에 대해 미리 컴파일된 모델을 SageMaker 제공합니다. 이를 위해 컴파일 또는 최적화 작업을 생성하고 배포 인스턴스 유형으로 ml.inf2.48xlarge 또는 ml.trn1.32xlarge를 선택하면 컴파일된 아티팩트를 SageMaker 가져옵니다. 작업은 이미 컴파일된 모델을 사용하기 때문에 컴파일을 처음부터 실행하지 않고도 빠르게 완료됩니다.
다음은 에 사전 컴파일된 JumpStart 모델 SageMaker 이 있는 모델입니다.
Meta
-
Llama3 8B
-
Llama3 70B
-
Llama2 7B
-
Llama2 70B
-
Llama2 13B
-
코드 Llama 7B
-
코드 Llama 70B
HuggingFace
-
미스랄 7B