인간 피드백 기반 강화 학습(RLHF)에서는 사람이 수집한 의견을 사용하여 모델을 조정합니다. RLHF는 모델 출력이 복잡하고 설명하기 어려운 경우에 권장됩니다. 인간 피드백은 여러 출력 옵션 중에서 선택할 수 있는 형식입니다. 이 같은 선택 항목은 지도 조정에 사용되는 라벨이 지정된 프롬프트보다 더 나은 데이터를 제공하여 설명하기 어려운 출력을 생성하도록 모델이 조정됩니다. 모델 출력을 정의하기 어려우면 지도 조정을 사용하여 텍스트 모델을 조정하는 것이 좋습니다.
이 페이지에서는 RLHF 조정을 사용하여 텍스트 모델을 조정하는 방법에 대한 자세한 정보를 제공합니다. RLHF 조정을 지원하는 텍스트 모델, 데이터 세트를 만드는 방법, RLHF 조정을 사용하여 텍스트 모델을 조정하는 방법에 대해 알아봅니다. RLHF 조정을 사용하여 조정된 모델을 보고 로드하는 방법도 알아봅니다. Vertex AI의 RLHF 조정에 대한 자세한 내용은 RLHF 모델 조정을 참조하세요.
지원되는 모델
다음 텍스트 모델은 RLHF 조정을 지원합니다.
- 텍스트 생성 기반 모델 버전
text-bison@001
및text-bison@002
. 자세한 내용은 텍스트 생성 모델을 참조하세요. - 채팅 생성 기반 모델
chat-bison@001
. 자세한 내용은 채팅 생성 모델을 참조하세요. t5-small
,t5-large
,t5-xl
,t5-xxl
Flan 텍스트 간 전송 Transformer(Flan-T5) 모델. Flan-T5 모델은 텍스트 분류, 언어 번역, 질문 응답과 같은 태스크를 수행하도록 미세 조정할 수 있습니다. 자세한 내용은 Flan-T5 체크포인트를 참조하세요.
RLHF 조정 데이터 세트 준비
RLHF 조정을 사용하려면 데이터 세트 두 개와 선택사항인 데이터 세트 한 개를 준비해야 합니다. 모든 데이터 세트는 JSON Lines(JSONL) 형식이며 Cloud Storage 버킷에 업로드해야 합니다. 텍스트 생성 모델을 조정하는 데 사용되는 데이터 세트 형식은 텍스트 채팅 모델을 조정하는 데 사용되는 데이터 세트 형식과 다릅니다.
프롬프트 데이터 세트
라벨이 지정되지 않은 프롬프트가 포함된 데이터 세트입니다. 프롬프트는 환경설정 데이터 세트의 동일한 프롬프트일 수도 있고 다른 프롬프트일 수도 있습니다. 프롬프트 데이터 세트의 각 줄에는 다음 필드가 포함됩니다.
text-bison 데이터 세트
텍스트 생성 데이터 세트에는 하나의 필드가 포함됩니다.
input_text
- 프롬프트가 포함된 필수 필드입니다.
예
{
"input_text": "Create a description for Plantation Palms."
}
chat-bison 데이터 세트
채팅 생성 데이터 세트에는 두 필드가 포함됩니다.
messages
- 작성자-콘텐츠 쌍의 배열입니다.author
필드는 메시지 작성자를 나타내며user
와assistant
를 번갈아 적용합니다.content
필드는 메시지의 콘텐츠입니다.content
는 비워 둘 수 없으며 첫 번째 및 마지막author
를user
로 설정해야 합니다.context
- (선택사항) 프롬프트에 응답할 때 사용할 모델에 대한 추가 컨텍스트입니다.
예
{
"context": "You are a pirate dog named Captain Barktholomew.",
"messages": [
{
"author": "user",
"content": "Hi"
},
{
"author": "assistant",
"content": "Argh! What brings ye to my ship?"
},
{
"author": "user",
"content": "What's your name?"
},
]
}
자세히 알아보려면 이 샘플 프롬프트 데이터 세트를 다운로드하여 참조하세요.
인간 선호도 데이터 세트
인간 선호도 데이터 세트에는 사람의 선호도가 포함됩니다. 인간 선호도 데이터 세트의 각 줄은 사람에게 표시된 두 옵션 중 선호 항목을 기록합니다. 인간 선호도 데이터 세트에 5,000~10,000개의 예시를 포함하는 것이 좋습니다. 인간 선호도 데이터 세트의 각 라인에는 조정 중인 모델의 프롬프트 데이터 세트 필드와 다음 필드가 포함된 하나의 예시 선호도가 포함되어 있습니다.
candidate_0
및candidate_1
- 각 필드에 2개의 응답이 포함됩니다. 사람이 두 응답 중 선호하는 하나를 선택하여 모델을 조정할 수 있습니다.choice
- 사람이 선호한 후보를 나타내는 정수인0
또는1
를 포함합니다.0
은 사람이candidate_0
을 선택했음을 나타내고1
은 사람이candidate_1
을 선택했음을 나타냅니다.
인간 선호도 데이터 세트의 행에 대한 예시는 다음과 같습니다.
{"input_text": "Create a description for Plantation Palms.", "candidate_0":
"Enjoy some fun in the sun at Gulf Shores.", "candidate_1": "A Tranquil Oasis of
Natural Beauty.", "choice": 0}
자세한 내용은 이 샘플 인간 선호도 데이터 세트를 다운로드하여 참조하세요.
평가 데이터 세트(선택사항)
모델이 조정된 후 라벨이 지정되지 않은 예측용 프롬프트를 포함하는 데이터 세트입니다. 평가 데이터 세트가 제공되면 조정 작업이 완료된 후 추론이 수행됩니다. 평가 데이터 세트의 형식은 프롬프트 데이터 세트의 형식과 동일합니다. 그러나 평가 데이터 세트의 프롬프트는 프롬프트 데이터 세트의 프롬프트와 달라야 합니다.
자세한 내용은 샘플 평가 데이터 세트를 다운로드하여 참조하세요.
보상 모델
인간 선호도 데이터 세트는 보상 모델을 학습시키는 데 사용됩니다. Vertex AI는 RLHF 조정 중에 보상 모델을 만든 후 사용합니다. 보상 모델은 고객 테넌트 프로젝트의 비공개 Cloud Storage 버킷에 생성됩니다. 고객 테넌트 프로젝트는 고객별로 고유한 내부 프로젝트입니다. 사용자는 보상 모델에 액세스할 수 없으며 보상 모델은 조정 작업이 완료되면 삭제됩니다. 자세한 내용은 테넌트 프로젝트를 참조하세요.
프로덕션 데이터와 일관성 유지
데이터 세트의 예는 예상되는 프로덕션 트래픽과 일치해야 합니다. 데이터 세트에 특정 형식, 키워드, 안내 또는 정보가 포함된 경우 프로덕션 데이터의 형식이 동일한 방식으로 지정되어야 하며 동일한 안내를 포함해야 합니다.
예를 들어 데이터 세트의 예시에 "question:"
과 "context:"
가 포함된 경우 프로덕션 트래픽 형식 지정 시 "question:"
과 "context:"
가 데이터 세트 예시를 표시하는 것과 동일한 순서로 포함되어야 합니다. 컨텍스트를 제외하면 데이터 세트 예시에 정확한 질문이 있더라도 모델이 패턴을 인식하지 못합니다.
Cloud Storage에 조정 데이터 세트 업로드
조정 작업을 실행하려면 Cloud Storage 버킷에 하나 이상의 데이터 세트를 업로드해야 합니다. 새 Cloud Storage 버킷을 만들거나 기존 버킷을 사용하여 데이터 세트 파일을 저장할 수 있습니다. 버킷의 리전은 중요하지 않지만 모델을 조정하려는 동일한 Google Cloud 프로젝트에 있는 버킷을 사용하는 것이 좋습니다.
버킷이 준비되면 데이터 세트 파일을 버킷에 업로드합니다.
RLHF 조정 작업 만들기
Google Cloud 콘솔 또는 Python용 Vertex AI SDK를 사용하여 RLHF 조정을 수행할 수 있습니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 사용하여 RLHF로 모델을 조정하는 방법을 알아보려면 Colab, GitHub, Vertex AI Workbench로 다음 노트북을 열고 실행합니다.
Google Cloud 콘솔
RLHF 조정을 사용하여 Google Cloud 콘솔에서 텍스트 모델을 조정하려면 다음 단계를 수행하세요.
- Google Cloud 콘솔의 Vertex AI 섹션에서 Vertex AI 스튜디오 페이지로 이동합니다.
- 조정 및 정제 탭을 클릭합니다.
- 조정된 모델 만들기를 클릭합니다.
- 인간 피드백 기반 강화 학습(RLHF)을 선택합니다.
- 모델 세부정보를 구성합니다.
- 모델 이름 조정: 조정된 모델의 이름을 입력합니다.
- 기본 모델: 조정하려는 기반 모델을 선택합니다.
- 리전: 모델 조정이 수행되는 리전을 입력합니다. 지원되는 리전은 다음과 같습니다.
us-central1
: Nvidia A100 80GB GPU 8개를 사용합니다.europe-west4
: TPU v3 포드의 64개 코어를 사용합니다.
- 출력 디렉터리: 모델을 조정할 때 아티팩트가 저장되는 Cloud Storage 위치를 입력합니다.
- 고급 설정을 구성하려면 고급 옵션을 확장합니다.
- 보상 학습 단계: 보상 모델을 학습시킬 때 사용할 단계 수를 입력합니다. 보상 모델은 모델을 조정하는 데 사용됩니다. 기본값은 1,000입니다.
- 보상 학습률 배수: 보상 모델을 학습시킬 때 학습률에 영향을 주는 부동 소수점 값을 입력합니다. 기본 학습률을 늘리려면 더 높은 값을 입력합니다. 기본 학습률을 줄이려면 더 낮은 값을 입력합니다. 기본값은 1.0입니다.
- 강화 학습 단계: 강화 학습을 사용하여 기본 모델을 조정할 때 수행할 단계 수를 입력합니다. 기본값은 1,000입니다.
- 강화 학습률 배수: 강화 모델을 학습시킬 때 학습률에 영향을 주는 부동 소수점 값을 입력합니다. 기본 학습률을 늘리려면 더 높은 값을 입력합니다. 기본 학습률을 줄이려면 더 낮은 값을 입력합니다. 기본값은 1.0입니다.
- 계속을 클릭합니다.
- 인간 선호도 데이터 세트에서 보상 모델을 만드는 데 사용되는 인간 선호도 데이터 세트를 업로드하거나 선택합니다.
데이터 세트 파일을 업로드하려면 Cloud Storage에 JSONL 파일 업로드를 선택합니다. 데이터 세트 파일이 Cloud Storage 버킷에 이미 있으면 Cloud Storage의 기존 JSONL 파일을 선택합니다.
JSONL 파일 업로드
- JSONL 파일 선택에서 찾아보기를 클릭하고 데이터 세트 파일을 선택합니다.
- 데이터 세트 위치에서 찾아보기를 클릭하고 데이터 세트 파일을 저장할 Cloud Storage 버킷을 선택합니다.
기존 JSONL 파일 사용
Cloud Storage 파일 경로에서 찾아보기를 클릭한 후 데이터 세트 파일이 있는 Cloud Storage 버킷을 선택합니다.
- 프롬프트 데이터 세트에서 데이터 세트 파일을 업로드하려면
JSONL 파일 업로드
- JSONL 파일 선택에서 찾아보기를 클릭하고 데이터 세트 파일을 선택합니다.
- 데이터 세트 위치에서 찾아보기를 클릭하고 데이터 세트 파일을 저장할 Cloud Storage 버킷을 선택합니다.
기존 JSONL 파일 사용
Cloud Storage 파일 경로에서 찾아보기를 클릭한 후 데이터 세트 파일이 있는 Cloud Storage 버킷을 선택합니다.
Cloud Storage에 JSONL 파일 업로드를 선택합니다. 그렇지 않고 프롬프트 데이터 세트 파일이 Cloud Storage 버킷에 이미 있으면 Cloud Storage의 기존 JSONL 파일을 선택합니다.
- (선택사항) 조정된 모델을 평가하려면 다음을 수행합니다.
- 모델 평가 사용 설정을 클릭합니다.
- 평가 데이터 세트에서 찾아보기를 클릭합니다.
- 평가 데이터 세트가 포함된 Cloud Storage 버킷으로 이동하고 평가 데이터 세트를 선택합니다.
- 조정 시작을 클릭합니다.
조정 작업 상태 확인
모델 조정 작업의 상태를 확인하려면 Google Cloud 콘솔에서 Vertex AI Pipelines 페이지로 이동합니다. 이 페이지에는 텍스트 및 코드 모델 조정 작업의 상태가 표시됩니다.
또는 모델 조정 작업이 완료되거나 실패될 때 이메일 알림을 받을 수 있도록 Vertex AI Pipelines에 대해 이메일 알림을 구성할 수 있습니다.
다음 단계
- Vertex AI Pipelines를 사용하여 Llama 2에 대해 자체 관리 RLHF 조정 작업을 실행하는 방법 알아보기
- 책임감 있는 AI 권장사항 및 Vertex AI 안전 필터 알아보기
- 엔드포인트에 데이터 액세스 감사 로그 사용 설정 방법 알아보기
- 조정된 모델 평가 방법 알아보기