파운데이션 모델 미세 조정 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

파운데이션 모델 미세 조정

파운데이션 모델은 계산 비용이 많이 들고 레이블이 지정되지 않은 대규모 코퍼스에서 훈련됩니다. 사전 훈련된 파운데이션 모델을 미세 조정하는 것은 광범위한 기능을 활용하면서 자체 소규모 코퍼스에서 모델을 사용자 지정할 수 있는 경제적인 방법입니다. 미세 조정은 추가 훈련을 포함하는 사용자 지정 방법이며 모델의 가중치를 변경합니다.

다음과 같은 경우 미세 조정이 유용할 수 있습니다.

  • 특정 비즈니스 요구 사항에 맞게 모델을 사용자 지정

  • 업계 전문 용어, 기술 용어 또는 기타 전문 용어와 같은 도메인별 언어를 성공적으로 사용하기 위한 모델

  • 특정 작업에 대한 성능 향상

  • 애플리케이션에서의 정확하고 상대적이며 상황에 맞는 응답

  • 보다 사실적이고 독성이 적으며 특정 요구 사항에 더 잘 부합하는 대응

사용 사례와 선택한 파운데이션 모델에 따라 미세 조정을 위해 취할 수 있는 두 가지 주요 접근 방식이 있습니다.

  1. 도메인별 데이터를 기반으로 모델을 미세 조정하려면 도메인 적응 미세 조정을 참조하세요.

  2. 프롬프트 및 응답 예제를 사용한 명령어 기반 미세 조정에 관심이 있는 경우 명령어 기반 미세 조정을 참조하세요.

미세 조정이 가능한 기초 모델

다음 기초 모델 중 하나를 미세 조정할 수 있습니다. JumpStart

  • 블룸 3B

  • 블룸 7B1

  • 블룸즈 3B FP16

  • 블룸즈 B71 FP16

  • 코드 라마 13B

  • 코드 라마 13B Python

  • 코드 라마 34B

  • 코드 라마 34B Python

  • 코드 라마 70B

  • 코드 라마 70B Python

  • 코드 라마 7B

  • 코드 라마 7B Python

  • CyberAgentLM2-7B-채팅 (-7B-채팅) CALM2

  • 팔콘 40B BF16

  • 팔콘 40B 인스트럭트 BF16

  • 팔콘 7B BF16

  • 팔콘 7B 인스트럭트 BF16

  • 플란-T5 베이스

  • 플란-T5 라지

  • 플란-T5 스몰

  • 플란-T5 XL

  • 플란-T5 XXL

  • 젬마 B2

  • 젬마 2B 인스트럭트

  • 젬마 7B

  • 젬마 7B 인스트럭트

  • GPT-2 XL

  • GPT-J 6B

  • GPT-네오 1.3B

  • GPT-네오 125M

  • GPT- NEO 2.7B

  • 라이트 GPT 인스트럭트 6B

  • 라마 2 13B

  • 라마 2 13B 채팅

  • 라마 2 13B 뉴런

  • 라마 2 70B

  • 라마 2 70B 채팅

  • 라마 2 7B

  • 라마 2 7B 채팅

  • 라마 2 7B 뉴런

  • 미스트랄 7B

  • 미스트랄 8x7B

  • 미스트럴 8x7B 인스트럭트

  • RedPajama INCITE베이스 3B V1

  • RedPajama INCITE베이스 7B V1

  • RedPajama INCITE채팅: 3B V1.

  • RedPajama INCITE채팅: 7B V1.

  • RedPajama INCITE3B V1을 명령하십시오.

  • RedPajama INCITE7B V1을 명령하십시오.

  • 스테이블 디퓨전 2.1

일반적으로 지원되는 미세 조정 하이퍼파라미터

미세 조정 시 다양한 기초 모델이 다양한 하이퍼파라미터를 지원합니다. 학습 중에 모델을 추가로 사용자 정의할 수 있는 일반적으로 지원되는 하이퍼파라미터는 다음과 같습니다.

추론 파라미터 설명

epoch

훈련 중에 모델이 미세 조정 데이터세트를 통과하는 패스 횟수입니다. 1보다 큰 정수여야 합니다.

learning_rate

각 배치의 미세 조정 훈련 예제를 모두 살펴본 후 모델 가중치가 업데이트되는 비율입니다. 0보다 큰 양의 부동 소수점이어야 합니다.

instruction_tuned

모델을 명령어 트레이닝할지 여부. 'True' 또는 'False'이어야 합니다.

per_device_train_batch_size

GPU코어당 또는 CPU 학습용 배치 크기. 양의 정수여야 합니다.

per_device_eval_batch_size

GPU코어당 또는 CPU 평가용 배치 크기. 양의 정수여야 합니다.

max_train_samples

디버깅이나 학습 속도를 높이려면 훈련 예제의 개수를 이 값으로 줄이십시오. 값 -1은 모델이 모든 훈련 샘플을 사용한다는 것을 의미합니다. 양의 정수 또는 -1이어야 합니다.

max_val_samples

디버깅이나 학습 속도를 높이려면 검증 예제의 개수를 이 값으로 줄이십시오. 값 -1은 모델이 모든 검증 샘플을 사용한다는 것을 의미합니다. 양의 정수 또는 -1이어야 합니다.

max_input_length

토큰화 후의 최대 총 입력 시퀀스 길이. 이보다 긴 시퀀스는 잘립니다. -1이면 max_input_length 최소값인 1024로 설정되고 토크나이저가 model_max_length 정의합니다. 양수 값으로 설정하면 제공된 값의 최소값으로 max_input_length 설정되고 토크나이저가 model_max_length 정의한 값으로 설정됩니다. 양의 정수 또는 -1이어야 합니다.

validation_split_ratio

검증 채널이 없는 경우 훈련 데이터에서 열차 검증 비율을 분리합니다. 0에서 1 사이여야 합니다.

train_data_split_seed

검증 데이터가 없는 경우, 이렇게 하면 입력 훈련 데이터가 모델에서 사용되는 훈련 및 검증 데이터로 무작위 분할되는 문제가 해결됩니다. 정수여야 합니다.

preprocessing_num_workers

사전 처리에 사용할 프로세스 수. 만약None, 주 프로세스가 사전 처리에 사용됩니다.

lora_r

가중치 업데이트의 스케일링 요소 역할을 하는 로우 랭크 적응 (LoRa) r 값. 양의 정수여야 합니다.

lora_alpha

가중치 업데이트의 스케일링 요소 역할을 하는 로우 랭크 적응 (LoRa) 알파 값. 일반적으로 크기의 2~4배. lora_r 양의 정수여야 합니다.

lora_dropout

로우 랭크 적응 (LoRa) 레이어의 드롭아웃 값은 0과 1 사이의 양수 플로트여야 합니다.

int8_quantization

모델이 학습을 True 위해 8비트 정밀도로 로드되는 경우

enable_fsdp

IfTrue, 훈련에서는 완전 샤딩된 데이터 병렬화를 사용합니다.

Studio에서 모델을 미세 조정할 때 하이퍼파라미터 값을 지정할 수 있습니다. 자세한 내용은 Studio에서 기초 모델을 미세 조정하세요 단원을 참조하십시오.

를 사용하여 모델을 미세 조정할 때 기본 하이퍼파라미터 값을 재정의할 수도 있습니다. SageMaker Python SDK 자세한 내용은 공개적으로 사용 가능한 기초 모델을 학급에 맞게 미세 조정하십시오. JumpStartEstimator 단원을 참조하십시오.