이 게시물에서는 PEFT(Parameter-Efficient Fine-Tuning) 방법을 사용하여 Llama 2 모델을 미세 조정하고 미세 조정된 모델을 AWS 인퍼렌시아2. 우리는 AWS 뉴런 AWS Inferentia2 디바이스에 액세스하고 고성능의 이점을 누릴 수 있는 SDK(소프트웨어 개발 키트)입니다. 그런 다음 다음으로 구동되는 대규모 모델 추론 컨테이너를 사용합니다. 딥 자바 라이브러리 (DJLServing)을 모델 서비스 솔루션으로 사용합니다.
솔루션 개요
QLoRa를 사용한 효율적인 미세 조정 Llama2
Llama 2 LLM(대형 언어 모델) 제품군은 7억~70억 개의 매개변수 범위에 이르는 사전 학습되고 미세 조정된 생성 텍스트 모델 컬렉션입니다. Llama 2는 공개적으로 이용 가능한 소스에서 얻은 2조 개의 토큰 데이터를 바탕으로 사전 훈련되었습니다. AWS 고객은 다운스트림 작업에 대한 더 나은 성능을 달성하기 위해 고객 자신의 데이터를 사용하여 Llama 2 모델을 미세 조정하는 경우가 있습니다. 그러나 Llama 2 모델의 매개변수 수가 많기 때문에 전체 미세 조정에는 엄청나게 많은 비용과 시간이 소요될 수 있습니다. PEFT(Parameter-Efficient Fine-Tuning) 접근 방식은 사전 훈련된 모델의 대부분의 매개변수를 동결하면서 소수의 추가 모델 매개변수만 미세 조정하여 이 문제를 해결할 수 있습니다. PEFT에 대한 자세한 내용은 다음을 참조하세요. 게시. 이번 포스팅에서는 QLoRa Llama 2 7B 모델을 미세 조정합니다.
Amazon SageMaker를 사용하여 Inf2에 미세 조정된 모델 배포
AWS Inferentia2는 추론 워크로드용으로 특별히 설계된 ML(기계 학습) 가속기이며, AWS의 다른 추론 최적화 인스턴스에 비해 생성 AI 및 LLM 워크로드에 대해 최대 40% 저렴한 비용으로 고성능을 제공합니다. 이 게시물에서는 Amazon Elastic Compute Cloud(Amazon EC2) 2세대 Inferentia2 액셀러레이터인 AWS Inferentia2를 갖춘 InfXNUMX 인스턴스(각각 XNUMX개 포함) NeuronCores-v2. 각 NeuronCore-v2는 Tensor, Vector, Scalar 및 GPSIMD 엔진의 2가지 주요 엔진을 갖춘 독립적인 이기종 컴퓨팅 유닛입니다. 여기에는 데이터 위치성을 극대화하기 위한 온칩 소프트웨어 관리형 SRAM 메모리가 포함되어 있습니다. InfXNUMX에 대한 여러 블로그가 게시되었으므로 독자는 이 내용을 참조할 수 있습니다. 게시 & 선적 서류 비치 Inf2에 대한 자세한 내용은
Inf2에 모델을 배포하려면 Inf2 하드웨어 위에서 실행되는 소프트웨어 계층인 AWS Neuron SDK가 필요합니다. AWS Neuron은 AWS Inferentia에서 딥 러닝 워크로드를 실행하는 데 사용되는 SDK입니다. AWS 트레이닝 기반 인스턴스. 엔드투엔드 ML 개발 수명 주기에서 새 모델을 구축하고, 이러한 모델을 교육 및 최적화하고, 프로덕션을 위해 배포할 수 있습니다. AWS Neuron에는 딥 러닝이 포함되어 있습니다. 컴파일러, 런타임및 검색을 TensorFlow 및 PyTorch와 같은 널리 사용되는 프레임워크와 기본적으로 통합됩니다. 이번 블로그에서 우리가 사용할 transformers-neuronx
이는 변환기 디코더 추론 워크플로를 위한 AWS Neuron SDK의 일부입니다. 그것 지원 Llama 2를 포함한 다양한 인기 모델.
모델을 배포하려면 아마존 세이지 메이커, 우리는 일반적으로 Neuron SDK와 같은 필수 라이브러리가 포함된 컨테이너를 사용합니다. transformers-neuronx
모델 제공 구성요소도 마찬가지입니다. Amazon SageMaker는 유지 관리합니다. 딥 러닝 컨테이너 (DLC)에는 대규모 모델 호스팅을 위한 인기 있는 오픈 소스 라이브러리가 포함되어 있습니다. 이번 포스팅에서는 뉴런을 위한 대형 모델 추론 컨테이너. 이 컨테이너에는 Inf2에 Llama 2 모델을 배포하는 데 필요한 모든 것이 포함되어 있습니다. Amazon SageMaker에서 LMI를 시작하는 데 필요한 리소스는 기존 게시물(블로그 1, 블로그 2, 블로그 3) 이 주제에 대해. 즉, 추가 코드를 작성하지 않고도 컨테이너를 실행할 수 있습니다. 당신은 사용할 수 있습니다 기본 핸들러 원활한 사용자 경험을 위해 지원되는 모델 이름 중 하나와 로드 시간 구성 가능한 매개변수를 전달합니다. 이는 Inf2 인스턴스에서 LLM을 컴파일하고 제공합니다. 예를 들어 배포하려면 OpenAssistant/llama2-13b-orca-8k-3319
, 다음과 같은 구성을 제공할 수 있습니다(예: serving.properties
파일). ~ 안에 serving.properties
, 모델 유형을 다음과 같이 지정합니다. llama2-13b-orca-8k-3319
, 배치 크기는 4, 텐서 병렬도는 2, 그게 전부입니다. 구성 가능한 매개변수의 전체 목록은 다음을 참조하세요. 모든 DJL 구성 옵션.
또는 다음과 같이 고유한 모델 핸들러 파일을 작성할 수 있습니다. 예하지만 이를 위해서는 DJLServing API 간의 브리지 역할을 하는 모델 로딩 및 추론 방법을 구현해야 합니다.
사전 조건
다음 목록에는 이 블로그 게시물에 설명된 모델을 배포하기 위한 전제 조건이 간략하게 설명되어 있습니다. 다음 중 하나를 구현할 수 있습니다. AWS 관리 콘솔 또는 최신 버전을 사용하여 AWS 명령 줄 인터페이스 (AWS CLI).
연습
다음 섹션에서는 코드를 두 부분으로 나누어 살펴보겠습니다.
- Llama2-7b 모델을 미세 조정하고 모델 아티팩트를 지정된 Amazon S3 버킷 위치에 업로드합니다.
- Amazon SageMaker에서 호스팅되는 DJL 제공 컨테이너를 사용하여 Inferentia2에 모델을 배포합니다.
지침이 포함된 전체 코드 샘플은 여기에서 찾을 수 있습니다. GitHub의 저장소.
1부: PEFT를 사용하여 Llama2-7b 모델 미세 조정
최근 논문에서 소개된 방법을 사용하겠습니다. QLoRA: 언어 생성을 위한 양자화 인식 하위 어댑터 튜닝 Tim Dettmers 외. QLoRA는 성능 저하 없이 미세 조정 중에 대규모 언어 모델의 메모리 공간을 줄이는 새로운 기술입니다.
참고 : 다음에 표시된 llama2-7b 모델의 미세 조정은 Amazon에서 테스트되었습니다. SageMaker Studio 노트북 Python 2.0 GPU 최적화 커널을 사용하여 ml.g5.2xlarge 인스턴스 유형. 모범 사례로 다음을 사용하는 것이 좋습니다. 아마존 세이지 메이커 스튜디오 자체 개발 환경(IDE) 출시 아마존 가상 프라이빗 클라우드 (Amazon VPC). 이를 통해 표준 AWS 네트워킹 및 보안 기능을 사용하여 VPC 내부 및 외부의 네트워크 트래픽을 제어, 모니터링 및 검사 할 수 있습니다. 자세한 내용은 프라이빗 VPC를 사용하여 Amazon SageMaker Studio 연결 보호.
기본 모델 양자화
먼저 다음을 사용하여 4비트 양자화로 양자화된 모델을 로드합니다. 허깅페이스 트랜스포머 다음과 같이 라이브러리:
학습 데이터세트 로드
다음으로, 다음과 같이 미세 조정 단계를 위해 모델에 공급하기 위해 데이터 세트를 로드합니다.
어댑터 레이어 연결
여기에는 다음과 같이 구성된 훈련 가능한 작은 어댑터 레이어를 연결합니다. Lora구성 Hugging Face's에 정의된 페프트 도서관.
모델 훈련
위에 표시된 LoRA 구성을 사용하여 하이퍼 매개변수와 함께 Llama2 모델을 미세 조정합니다. 모델 학습을 위한 코드 조각은 다음과 같습니다.
모델 가중치 병합
위에서 실행된 미세 조정 모델은 훈련된 LoRA 어댑터 가중치를 포함하는 새로운 모델을 생성했습니다. 다음 코드 조각에서는 추론을 위해 미세 조정된 모델을 사용할 수 있도록 어댑터를 기본 모델과 병합합니다.
Amazon S3에 모델 가중치 업로드
1부의 마지막 단계에서는 병합된 모델 가중치를 지정된 Amazon S3 위치에 저장합니다. 모델 가중치는 Amazon SageMaker의 모델 제공 컨테이너에서 Inferentia2 인스턴스를 사용하여 모델을 호스팅하는 데 사용됩니다.
2부: SageMaker LMI 컨테이너를 사용하여 AWS Inf2로 추론하기 위한 QLoRA 모델 호스팅
이 섹션에서는 QLoRA 미세 조정 모델을 Amazon SageMaker 호스팅 환경에 배포하는 단계를 살펴보겠습니다. 우리는 DJL 서빙 SageMaker의 컨테이너 DLC, 이는 변압기-neuronx 이 모델을 호스팅할 라이브러리입니다. 이 설정은 모델을 AWS Inferentia2 액셀러레이터에 쉽게 로드하고, 여러 NeuronCore에서 모델을 병렬화하며, HTTP 엔드포인트를 통한 서비스 제공을 활성화합니다.
모델 아티팩트 준비
DJL은 다음을 포함하여 다양한 딥 러닝 최적화 라이브러리를 지원합니다. 딥스피드, 더 빠른 변압기 그리고 더. 모델별 구성의 경우 다음을 제공합니다. serving.properties
다음과 같은 주요 매개변수를 사용합니다. tensor_parallel_degree
및 model_id
모델 로딩 옵션을 정의합니다. 그만큼 model_id
Hugging Face 모델 ID이거나 모델 가중치가 저장되는 Amazon S3 경로일 수 있습니다. 이 예에서는 미세 조정된 모델의 Amazon S3 위치를 제공합니다. 다음 코드 스니펫은 모델 제공에 사용되는 속성을 보여줍니다.
이것을 참조하십시오 선적 서류 비치 다음을 통해 사용할 수 있는 구성 가능한 옵션에 대한 자세한 내용은 serving.properties
. 사용하고 있으니 참고해주세요 option.n_position=512
더 빠른 AWS Neuron 컴파일을 위해 이 블로그를 방문하세요. 더 큰 입력 토큰 길이를 시도하려면 독자가 미리 모델을 사전 컴파일하는 것이 좋습니다(참조 EC2의 AOT 사전 컴파일 모델). 그렇지 않으면 컴파일 시간이 너무 길어지면 시간 초과 오류가 발생할 수 있습니다.
후 serving.properties
파일이 정의되면 파일을 tar.gz
다음과 같은 형식:
그런 다음 tar.gz를 Amazon S3 버킷 위치에 업로드합니다.
Amazon SageMaker 모델 엔드포인트 생성
Inf2 인스턴스를 사용하여 제공하기 위해 Amazon을 사용합니다. SageMaker LMI 컨테이너 DJL NeuronX 지원. 이것을 참고하세요 게시 추론을 위해 DJL NeuronX 컨테이너를 사용하는 방법에 대한 자세한 내용을 확인하세요. 다음 코드는 Amazon SageMaker Python SDK를 사용하여 모델을 배포하는 방법을 보여줍니다.
테스트 모델 엔드포인트
모델이 성공적으로 배포되면 예측자에 샘플 요청을 보내 엔드포인트를 검증할 수 있습니다.
샘플 출력은 다음과 같이 표시됩니다.
데이터 분석의 맥락에서, 머신러닝(ML)은 통계의 범위를 반복적으로 좁혀 복잡성과 정확도를 높여 데이터세트에서 예측력을 추출할 수 있는 통계 기법을 말합니다.
머신러닝은 새로운 통계 기법이 아니라 기존 기법을 결합한 것입니다. 또한 특정 데이터 세트와 함께 사용하거나 특정 결과를 생성하도록 설계되지 않았습니다. 오히려 모든 데이터 세트에 적응하고 결과를 예측할 수 있을 만큼 유연하게 설계되었습니다.
정리
SageMaker 엔드포인트를 더 이상 실행하지 않기로 결정한 경우 다음을 사용하여 삭제할 수 있습니다. Python용 AWS SDK(boto3), AWS CLI 또는 Amazon SageMaker 콘솔. 또한 Amazon SageMaker Studio 리소스 종료 더 이상 필요하지 않습니다.
결론
이 게시물에서는 단일 GPU 인스턴스를 사용하여 2비트 양자화 기능이 있는 LoRA 어댑터를 사용하여 Llama7-4b 모델을 미세 조정하는 방법을 보여주었습니다. 그런 다음 DJL 제공 컨테이너를 사용하여 Amazon SageMaker에서 호스팅되는 Inf2 인스턴스에 모델을 배포했습니다. 마지막으로 SageMaker Python SDK를 사용한 텍스트 생성 예측으로 Amazon SageMaker 모델 엔드포인트를 검증했습니다. 계속해서 시도해 보십시오. 우리는 귀하의 의견을 듣고 싶습니다. AWS Inferentia의 더 많은 기능과 새로운 혁신에 대한 업데이트를 계속 지켜봐 주시기 바랍니다.
AWS Neuron에 대한 추가 예는 다음을 참조하십시오. AWS 뉴런 샘플.
저자에 관하여
웨이 테 AWS의 수석 AI/ML 전문가 솔루션 아키텍트입니다. 그는 Amazon Machine Learning 서비스와 기계 학습 기반 솔루션에 중점을 두고 고객이 AWS 여정을 발전시킬 수 있도록 돕는 데 열정을 쏟고 있습니다. 업무 외에는 가족과 함께 캠핑, 낚시, 등산 등 야외 활동을 즐깁니다.
칭웨나는 리 Amazon Web Services의 기계 학습 전문가입니다. 그는 박사 학위를 받았습니다. 그는 고문의 연구 보조금 계좌를 깨고 그가 약속 한 노벨상을 전달하지 못한 후 Operations Research에서 현재 그는 금융 서비스 및 보험 업계의 고객이 AWS에서 기계 학습 솔루션을 구축하도록 돕습니다. 여가 시간에는 읽기와 가르치기를 좋아합니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :있다
- :이다
- :아니
- :어디
- $UP
- 1
- 10
- 100
- 11
- 15%
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- 소개
- 위의
- 가속 자
- 가속기
- ACCESS
- 계정
- 달성
- 가로질러
- 방과 후 액티비티
- 각색하다
- 추가
- 또한
- 주소
- 전진
- 후
- 앞으로
- AI
- AI / ML
- AL
- 수
- 따라
- 알파
- 또한
- 아마존
- 아마존 머신 러닝
- 아마존 세이지 메이커
- 아마존 세이지 메이커 스튜디오
- Amazon Web Services
- an
- 분석
- 및
- 어떤
- API
- 신청
- 접근
- 있군요
- AS
- At
- 붙이다
- 자동
- 가능
- AWS
- AWS 인 페렌 시아
- 공
- 기지
- 기반으로
- 배치
- BE
- 된
- 이익
- BEST
- 더 나은
- 사이에
- 억원
- 블로그
- 블로그
- 다리
- 파산
- 빌드
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- 캠핑
- CAN
- 기능
- 수
- 왼쪽 메뉴에서
- 클라우드
- 암호
- 수집
- 결합
- 완전한
- 복잡성
- 구성 요소
- 계산
- 구성
- 구성
- 입/출력 라인
- 콘솔에서
- 컨테이너
- 이 포함되어 있습니다
- 문맥
- 제어
- 비용
- 수
- 만든
- 현재
- 고객
- 데이터
- 데이터 분석
- 결정하다
- 깊은
- 깊은 학습
- 태만
- 밝히다
- 한정된
- 도
- 배달하다
- 제공
- 배포
- 배포
- 배치
- 기술 된
- 설계
- 개발
- 장치
- 도커
- 아래 (down)
- 두
- ...동안
- 동적
- E & T
- 마다
- 중
- 수
- 끝으로 종료
- 종점
- 엔드 포인트
- 엔진
- 엔진
- 충분히
- 환경
- 오류
- 등
- 에테르 (ETH)
- 모두
- 예
- 예
- 처형 된
- 현존하는
- 비싼
- 경험
- 여분의
- 페이스메이크업
- 을 용이하게
- 실패한
- 그릇된
- 가족
- 빠른
- 특색
- 피드백
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 최후의
- 최종적으로
- 금융
- 금융 서비스
- 먼저,
- 어업
- 융통성있는
- 초점
- 따라
- 다음에
- 수행원
- 다음
- 발자국
- 럭셔리
- 체재
- 발견
- 사
- 프레임 워크
- 냉동
- 에
- 가득 찬
- 게다가
- 세대
- 생성적인
- 제너레이티브 AI
- 얻을
- 주기
- Go
- 가는
- GPU
- 부여
- 하드웨어
- he
- 듣다
- 도움이
- 도움이
- 여기에서 지금 확인해 보세요.
- 높은
- 고성능
- 하이킹
- 그의
- 주인
- 호스팅
- 호스팅
- 집
- 방법
- How To
- 그러나
- HTML
- HTTP
- HTTPS
- ID
- if
- 영상
- 구현
- 구현
- in
- 포함
- 포함
- 포함
- 증가
- 독립
- 산업
- 정보
- 혁신
- 입력
- 입력
- 예
- 인스턴스
- 명령
- 보험
- 보험 산업
- 통합 된
- 통합
- 으로
- 소개
- IT
- 되풀이
- 그
- 자바
- 여행
- JPG
- JSON
- 유지
- 키
- 키트
- 키트(SDK)
- 언어
- 넓은
- 큰
- 최근
- 시작
- 층
- 레이어
- 배우기
- 길이
- 레벨
- 도서관
- 도서관
- wifecycwe
- 처럼
- 좋아하는
- 라인
- 명부
- 야마
- 하중
- 로드
- 위치
- 이상
- 애정
- 절감
- 기계
- 기계 학습
- 본관
- 유지
- 확인
- 구축
- .
- 최대화
- 메모리
- 병합
- 방법
- 방법
- 수도
- ML
- 모델
- 모델
- 모듈
- 모니터
- 배우기
- 가장
- 많은
- 여러
- 이름
- 코
- 필요
- 네트워크
- 네트워크 트래픽
- 네트워킹
- 신제품
- 아니
- nobel prize
- 없음
- 주의
- 번호
- of
- on
- ONE
- 만
- 열 수
- 오픈 소스
- 행정부
- 최적화
- 최적화
- 최적화
- 선택권
- 옵션
- or
- 기타
- 그렇지 않으면
- 우리의
- 결과
- 집 밖의
- 요점
- 출력
- 외부
- 위에
- 자신의
- 꾸러미
- 서
- 평행
- 매개 변수
- 매개 변수
- 부품
- 부품
- 패스
- 열렬한
- 통로
- 성능
- 수행
- 계획
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 부디
- 인기 문서
- 게시하다
- 게시물
- 힘
- powered
- 연습
- Precision
- 예측
- 예측
- 예언하는
- Predictor
- 전제 조건
- 사설
- 상
- 확률
- 문제
- 방법
- 생산
- 생산
- 약속 한
- 속성
- 제공
- 공개적으로
- 출판
- Python
- 파이 토치
- 범위
- 이르기까지
- 차라리
- 읽기
- 리더
- 읽기
- 접수
- 최근에
- 권하다
- 감소
- 참조
- 의미
- 저장소
- 의뢰
- 요청
- 필수
- 필요
- 연구
- 제품 자료
- 응답
- 응답
- 연락해주세요
- 달리기
- 달리는
- 희생하는
- 현자
- 찜하기
- 규모
- 스케일링
- 범위
- SDK
- 원활한
- 둘째
- 두 번째 세대
- 섹션
- 보안
- 참조
- 전송
- 연장자
- 순서
- 서브
- 서비스
- 서비스
- 피복재
- 세트
- 설정
- 설치
- 몇몇의
- 짧은
- 소개
- 보여
- 표시
- 쇼
- 이후
- 단일
- 크기
- 작은
- 단편
- So
- 소프트웨어
- 소프트웨어 개발
- 소프트웨어 개발 키트
- 해결책
- 솔루션
- 때로는
- 출처
- 지우면 좋을거같음 . SM
- 전문가
- 구체적인
- 지정
- 표준
- 시작
- 통계적인
- 유지
- 단계
- 단계
- 저장
- 스튜디오
- 성공적으로
- 이러한
- SUPPORT
- 지원
- 지원
- 작업
- 교육
- 기술
- 기법
- 텐서 흐름
- 테스트
- 본문
- 텍스트 생성
- 그
- XNUMXD덴탈의
- 그들의
- 그들
- 그때
- Bowman의
- 이
- 을 통하여
- 팀
- 시간
- 에
- 토큰
- 토큰
- 너무
- 상단
- 화제
- 토치
- 교통
- Train
- 훈련 된
- 트레이닝
- 변압기
- 일조
- 참된
- 시도
- 두
- 유형
- 업데이트
- 업로드
- URI
- URL
- 사용
- 익숙한
- 사용자
- 사용자 경험
- 사용
- 보통
- 유효 기간
- 검증 된
- 버전
- 를 통해
- 온라인
- 걷다
- 연습
- 필요
- 였다
- we
- 웹
- 웹 서비스
- 무게
- 잘
- 뭐
- 어느
- 동안
- 의지
- 과
- 이내
- 없이
- 작업
- 노동자
- 워크 플로우
- 쓰다
- 쓰기
- 당신
- 너의
- 제퍼 넷