Gradient는 AWS Inferentia를 통해 LLM 벤치마킹을 비용 효율적이고 쉽게 만듭니다 | 아마존 웹 서비스

Gradient는 AWS Inferentia를 통해 LLM 벤치마킹을 비용 효율적이고 쉽게 만듭니다 | 아마존 웹 서비스

Gradient의 Michael Feil과 공동으로 작성한 게스트 포스트입니다.

LLM(대형 언어 모델)의 성능을 평가하는 것은 배포 전 사전 학습 및 미세 조정 프로세스의 중요한 단계입니다. 성능을 더 빠르고 자주 검증할수록 모델 성능을 향상할 수 있는 가능성이 높아집니다.

At 그라데이션, 우리는 맞춤형 LLM 개발을 진행하고 있으며 최근에는 AI 개발 연구실, 기업 조직에 개인 맞춤형 LLM 및 인공 지능(AI) 부조종사를 구축할 수 있는 맞춤형 엔드투엔드 개발 서비스를 제공합니다. 이 프로세스의 일환으로 우리는 개방형 및 독점 벤치마크를 기준으로 모델의 성능(조정, 훈련 및 개방형)을 정기적으로 평가합니다. AWS 팀과 협력하여 모델을 교육하는 동안 AWS 트레이닝, 우리는 LLM 평가를 위한 주류 도구에 관해서 VRAM과 GPU 인스턴스의 가용성 모두로 제한된다는 것을 깨달았습니다. 영화 평가 하네스. 이 오픈 소스 프레임워크를 사용하면 다양한 평가 작업 및 벤치마크에서 다양한 생성 언어 모델의 점수를 매길 수 있습니다. 다음과 같은 리더보드에서 사용됩니다. 포옹하는 얼굴 공개 벤치마킹을 위해.

이러한 과제를 극복하기 위해 우리는 솔루션을 구축하고 오픈 소스화하기로 결정했습니다. AWS 뉴런, 뒤에 있는 도서관 AWS 인 페렌 시아 그리고 Trainium으로 lm-evaluation-harness. 이번 통합으로 벤치마킹이 가능해졌습니다. 알바트로스 모델의 초기 버전인 v-alpha-tross, 훈련 과정 중 및 이후에 다른 공개 모델과 비교합니다.

맥락에 따라 이 통합은 lm-evaluation-harness 내에서 새로운 모델 클래스로 실행되어 실제 평가 작업에 영향을 주지 않고 토큰 추론과 시퀀스의 로그 우도 추정을 추상화합니다. 내부 테스트 파이프라인을 다음으로 이전하기로 결정했습니다. 아마존 엘라스틱 컴퓨트 클라우드 (아마존 EC2) Inf2 인스턴스 (AWS Inferentia2 제공)을 사용하면 최대 384GB의 공유 가속기 메모리에 액세스할 수 있어 현재의 모든 공용 아키텍처에 쉽게 맞출 수 있습니다. AWS 스팟 인스턴스를 사용함으로써 AWS 클라우드에서 사용되지 않은 EC2 용량을 활용하여 온디맨드 가격에서 최대 90% 할인된 비용을 절감할 수 있었습니다. 이를 통해 테스트에 소요되는 시간이 최소화되었고, 쉽게 사용할 수 있는 여러 인스턴스에 걸쳐 테스트하고 완료되면 인스턴스를 릴리스할 수 있었기 때문에 더 자주 테스트할 수 있었습니다.

이 게시물에서는 테스트에 대한 자세한 분석, 직면한 과제, AWS Inferentia에서 테스트 하네스를 사용하는 예를 제공합니다.

AWS Inferentia2에서의 벤치마킹

이 프로젝트의 목표는 다음과 같은 동일한 점수를 생성하는 것이었습니다. LLM 리더보드 열기 (Hugging Face에서 사용할 수 있는 많은 CausalLM 모델의 경우) 개인 벤치마크에 대해 실행할 수 있는 유연성을 유지합니다. 사용 가능한 모델의 더 많은 예를 보려면 다음을 참조하세요. AWS Inferentia 및 Trainium 포옹 얼굴에.

Hugging Face 변환기에서 Hugging Face로 모델을 포팅하는 데 필요한 코드 변경 최적의 뉴런 Python 라이브러리는 상당히 낮았습니다. lm-evaluation-harness는 AutoModelForCausalLM, 다음을 사용하여 교체 횟수가 감소했습니다. NeuronModelForCausalLM. 사전 컴파일된 모델이 없으면 모델이 즉시 자동으로 컴파일되므로 작업에 15~60분이 추가될 수 있습니다. 이를 통해 모든 AWS Inferentia2 인스턴스 및 지원되는 CausalLM 모델에 대한 테스트를 배포할 수 있는 유연성을 얻었습니다.

결과

벤치마크와 모델의 작동 방식으로 인해 점수가 여러 실행에서 정확히 일치할 것으로 기대하지 않았습니다. 그러나 표준편차를 기준으로 보면 매우 유사해야 하며, 다음 표에서 볼 수 있듯이 우리는 이를 일관되게 확인했습니다. AWS Inferentia2에서 실행한 초기 벤치마크는 모두 Hugging Face 리더보드에서 확인되었습니다.

In lm-evaluation-harness, 다양한 테스트에서 사용되는 두 가지 주요 스트림이 있습니다. generate_untilloglikelihood. gsm8k 테스트는 주로 generate_until 추론하는 동안처럼 응답을 생성합니다. Loglikelihood 주로 벤치마킹 및 테스트에 사용되며 다양한 출력이 생성될 확률을 검사합니다. 둘 다 Neuron에서 작동하지만 loglikelihood SDK 2.16의 메서드는 추가 단계를 사용하여 확률을 결정하므로 추가 시간이 걸릴 수 있습니다.

Lm-평가-하네스 결과
하드웨어 구성 기존 시스템 AWS Inferentia inf2.48xlarge
gsm1k에서 mistralai/Mistral-7B-Instruct-v0.1을 평가하는 데 batch_size=8인 시간 103 분 32 분
gsm8k 점수(get-answer – std와 정확한 일치) 0.3813 – 0.3874 (± 0.0134) 0.3806 – 0.3844 (± 0.0134)

Neuron 및 lm-evaluation-harness 시작하기

이 섹션의 코드는 다음을 사용하는 데 도움이 될 수 있습니다. lm-evaluation-harness Hugging Face에서 지원되는 모델에 대해 실행해 보세요. 사용 가능한 일부 모델을 보려면 다음을 방문하세요. AWS Inferentia 및 Trainium 포옹 얼굴에.

AWS Inferentia2에서 모델을 실행하는 데 익숙하다면 num_cores 설정이 전달되었습니다. 우리 코드는 사용 가능한 코어 수를 감지하고 해당 숫자를 매개 변수로 자동 전달합니다. 이를 통해 사용 중인 인스턴스 크기에 관계없이 동일한 코드를 사용하여 테스트를 실행할 수 있습니다. 또한 Neuron 컴파일 버전이 아닌 원본 모델을 참조하고 있음을 알 수 있습니다. 하네스는 필요에 따라 자동으로 모델을 컴파일합니다.

다음 단계에서는 Gradient를 배포하는 방법을 보여줍니다. gradientai/v-alpha-tross 우리가 테스트한 모델. 더 작은 인스턴스에서 더 작은 예제로 테스트하려면 다음을 사용할 수 있습니다. mistralai/Mistral-7B-v0.1 모델입니다.

  1. On-Demand Inf 인스턴스 실행을 위한 기본 할당량은 0이므로 서비스 할당량을 통해 증가를 요청해야 합니다. 스팟 인스턴스로 테스트할 수 있도록 모든 Inf 스팟 인스턴스 요청에 대해 다른 요청을 추가합니다. inf192xlarge 인스턴스를 사용하는 이 예에서는 vCPU 2.48개의 할당량이 필요하고, 기본 inf4.xlarge(Mistral 모델을 배포하는 경우)에는 vCPU 2개의 할당량이 필요합니다. 할당량은 AWS 리전에 따라 다르므로 다음 기간에 요청하세요. us-east-1 or us-west-2.
  2. 모델을 기반으로 인스턴스를 결정하세요. 왜냐하면 v-alpha-tross 70B 아키텍처이므로 inf2.48xlarge 인스턴스를 사용하기로 결정했습니다. inf2.xlarge(7B Mistral 모델용)를 배포합니다. 다른 모델을 테스트하는 경우 모델 크기에 따라 인스턴스를 조정해야 할 수도 있습니다.
  3. 다음을 사용하여 인스턴스를 배포합니다. 포옹 얼굴 DLAMI 버전 20240123, 필요한 모든 드라이버가 설치되도록 합니다. (표시된 가격에는 인스턴스 비용이 포함되어 있으며 추가 소프트웨어 비용은 없습니다.)
  4. 드라이브 크기를 600GB(Mistral 100B의 경우 7GB)로 조정합니다.
  5. 복제 및 설치 lm-evaluation-harness 인스턴스에. 테스트나 코드 변경이 아닌 모델 변경으로 인해 변동이 발생한다는 것을 알 수 있도록 빌드를 지정합니다.
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
# optional: pick specific revision from the main branch version to reproduce the exact results
git checkout 756eeb6f0aee59fc624c81dcb0e334c1263d80e3
# install the repository without overwriting the existing torch and torch-neuronx installation
pip install --no-deps -e . 
pip install peft evaluate jsonlines numexpr pybind11 pytablewriter rouge-score sacrebleu sqlitedict tqdm-multiprocess zstandard hf_transfer

  1. 달리기 lm_eval hf-neuron 모델 유형을 사용하고 Hugging Face의 모델로 돌아가는 경로에 대한 링크가 있는지 확인하세요.
# e.g use mistralai/Mistral-7B-v0.1 if you are on inf2.xlarge
MODEL_ID=gradientai/v-alpha-tross

python -m lm_eval --model "neuronx" --model_args "pretrained=$MODEL_ID,dtype=bfloat16" --batch_size 1 --tasks gsm8k

Mistral을 사용하여 앞의 예제를 실행하면 다음과 같은 출력이 표시됩니다(더 작은 inf2.xlarge에서는 실행하는 데 250분이 걸릴 수 있음).

███████████████████████| 1319/1319 [32:52<00:00,  1.50s/it]
neuronx (pretrained=mistralai/Mistral-7B-v0.1,dtype=bfloat16), gen_kwargs: (None), limit: None, num_fewshot: None, batch_size: 1
|Tasks|Version|  Filter  |n-shot|  Metric   |Value |   |Stderr|
|-----|------:|----------|-----:|-----------|-----:|---|-----:|
|gsm8k|      2|get-answer|     5|exact_match|0.3806|±  |0.0134|

정리

완료되면 Amazon EC2 콘솔을 통해 EC2 인스턴스를 중지하십시오.

결론

Gradient 및 Neuron 팀은 이번 릴리스를 통해 LLM 평가가 더욱 광범위하게 채택될 수 있게 되어 기쁘게 생각합니다. 직접 사용해 보고 AWS Inferentia2 인스턴스에서 가장 널리 사용되는 평가 프레임워크를 실행해 보세요. 이제 AWS Inferentia2를 사용하면 온디맨드 가용성의 이점을 누릴 수 있습니다. Gradient의 맞춤형 LLM 개발. 다음을 사용하여 AWS Inferentia에서 모델 호스팅을 시작해 보세요. 자습서.


저자에 관하여

Gradient는 AWS Inferentia를 통해 LLM 벤치마킹을 비용 효율적이고 쉽게 만듭니다 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.마이클 페일 Gradient의 AI 엔지니어이며 이전에는 Rodhe & Schwarz의 ML 엔지니어, Max-Plank Institute for Intelligent Systems 및 Bosch Rexroth의 연구원으로 근무했습니다. Michael은 LLM을 위한 다양한 오픈 소스 추론 라이브러리와 StarCoder와 같은 오픈 소스 프로젝트의 주요 기여자입니다. Michael은 KIT에서 메카트로닉스 및 IT 학사 학위를, 뮌헨 공과대학에서 로봇공학 석사 학위를 취득했습니다.

Gradient는 AWS Inferentia를 통해 LLM 벤치마킹을 비용 효율적이고 쉽게 만듭니다 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.짐 버튼프트 AWS의 수석 스타트업 솔루션 아키텍트이며 Gradient와 같은 스타트업과 직접 협력하고 있습니다. Jim은 AWS AI/ML 기술 필드 커뮤니티의 일부인 CISSP이자 Neuron 홍보대사이며 오픈 소스 커뮤니티와 협력하여 Inferentia 및 Trainium을 사용할 수 있도록 지원합니다. Jim은 카네기 멜론 대학교에서 수학 학사 학위를, 버지니아 대학교에서 경제학 석사 학위를 취득했습니다.

타임 스탬프 :

더보기 AWS 기계 학습