기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
개방형 모델을 위한 데이터 준비
OpenAI 호환 APIs를 사용하여 강화 미세 조정으로 개방형 가중치 모델을 미세 조정하는 경우 용도와 함께 자체 프롬프트를 JSONL 형식으로 가져와서 훈련 데이터를 제공합니다fine-tune.
훈련 데이터는 100-20K 예제와 함께 OpenAI 채팅 완료 형식을 따라야 합니다. 각 훈련 예제에는 다음이 포함됩니다.
-
messages:이 필드에 모델에 제공된 입력 프롬프트가 포함된 사용자, 시스템 또는 어시스턴트 역할을 포함합니다.
-
reference_answer:이 필드에는 보상 함수가 모델의 응답을 채점하는 데 사용하는 예상 출력 또는 평가 기준이 포함되어야 합니다. 이는 구조화된 출력으로 제한되지 않으며 보상 함수가 품질을 평가하는 데 도움이 되는 모든 형식을 포함할 수 있습니다.
-
[선택 사항] 그레이더 Lambda가 그레이딩에 사용하는 필드를 추가할 수 있습니다.
요구 사항:
OpenAI 채팅 완료 형식의 프롬프트가 있는 JSONL 형식(줄당 프롬프트 1개)
목적은 로 설정해야 합니다. fine-tune
훈련 데이터 세트의 레코드 최소 100개
Amazon Bedrock은 훈련 데이터 세트 형식을 자동으로 검증합니다.
- Example: General question-answering
-
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
role": "user",
"content": "What is machine learning?"}
],
"reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
}
- Example: Math problem
-
{
"id": "sample-001",
"messages": [
{
"role": "system",
"content": "You are a math tutor"
},
{
"role": "user",
"content": "Solve: 2x + 5 = 13"
}
],
"reference_answer": {
"solution": "x = 4",
"steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
}
}
파일 API
OpenAI 호환 파일 API를 사용하여 미세 조정 작업을 위한 훈련 데이터를 업로드할 수 있습니다. 파일은 Amazon Bedrock에 안전하게 저장되며 미세 조정 작업을 생성할 때 사용됩니다. 전체 API 세부 정보는 OpenAI 파일 설명서를 참조하세요.
훈련 파일을 업로드하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.
- OpenAI SDK (Python)
-
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()
# Upload training file
with open(TRAINING_FILE_PATH, 'rb') as f:
file_response = client.files.create(
file=f,
purpose='fine-tune'
)
# Store file ID for next steps
training_file_id = file_response.id
print(f"✅ Training file uploaded successfully: {training_file_id}")
- HTTP request
-
에 POST 요청/v1/files:
curl https://bedrock-mantle.us-west-2.api.aws/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F purpose="fine-tune" \
-F file="@training_data.jsonl"
특정 파일에 대한 세부 정보를 검색하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.
- OpenAI SDK (Python)
-
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()
# Retrieve file details
file_details = client.files.retrieve(training_file_id)
# Print raw response
print(json.dumps(file_details.model_dump(), indent=2))
- HTTP request
-
에 GET 요청을 합니다/v1/files/{file_id}.
curl https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
-H "Authorization: Bearer $OPENAI_API_KEY"
업로드된 파일을 나열하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.
- OpenAI SDK (Python)
-
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()
# List files
files_response = client.files.list(purpose='fine-tune')
# Print raw response
print(json.dumps(files_response.model_dump(), indent=2))
- HTTP request
-
에 GET 요청을 합니다/v1/files.
curl https://bedrock-mantle.us-west-2.api.aws/v1/files?purpose=fine-tune \
-H "Authorization: Bearer $OPENAI_API_KEY"
파일을 삭제하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.
- OpenAI SDK (Python)
-
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()
# Delete file
delete_response = client.files.delete(training_file_id)
- HTTP request
-
에 대한 DELETE 요청/v1/files/{file_id}:
curl -X DELETE https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
-H "Authorization: Bearer $OPENAI_API_KEY"
효과적인 훈련 데이터의 특성
효과적인 RFT 훈련 데이터에는 세 가지 주요 특성이 필요합니다.
-
명확성 및 일관성 - 일관된 형식 지정으로 명확하고 모호하지 않은 프롬프트를 사용합니다. 모순된 레이블, 모호한 지침 또는 훈련을 오도하는 참조 답변 충돌을 방지합니다.
-
다양성 - 다양한 사용자 유형 및 시나리오의 프로덕션 사용 패턴을 반영하는 다양한 입력 형식, 엣지 케이스 및 난이도를 포함합니다.
-
효율적인 보상 함수 - 빠르게 실행되고(초, 분 아님),와 병렬화되고 AWS Lambda, 비용 효율적인 훈련을 위한 일관된 점수를 반환하는 함수를 설계합니다.
추가 속성
RFT 데이터 형식은 핵심 스키마 요구 사항(messages 및 ) 이외의 사용자 지정 필드를 지원합니다reference_answer. 이러한 유연성을 통해 보상 함수가 적절한 평가에 필요한 데이터를 추가할 수 있습니다.
레시피에서 이를 구성할 필요가 없습니다. 데이터 형식은 기본적으로 추가 필드를 지원합니다. 훈련 데이터 JSON에 포함하면 metadata 필드의 보상 함수로 전달됩니다.
일반적인 추가 속성
이러한 추가 필드는 평가 중에 보상 함수에 전달되므로 특정 사용 사례에 맞게 조정된 정교한 점수 평가 로직이 가능합니다.
추가 속성이 있는 예제
- Chemistry problem
-
{
"id": "chem-001",
"messages": [
{
"role": "system",
"content": "You are a helpful chemistry assistant"
},
{
"role": "user",
"content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
}
],
"reference_answer": {
"donor_bond_counts": 2,
"acceptor_bond_counts": 4
}
}
reference_answer 필드에는 보상 함수가 모델의 응답을 채점하는 데 사용하는 예상 출력 또는 평가 기준이 포함되어 있습니다. 구조화된 출력에만 국한되지 않습니다. 보상 함수가 품질을 평가하는 데 도움이 되는 모든 형식을 포함할 수 있습니다.
- Math problem with metadata
-
{
"messages": [
{
"role": "system",
"content": "You are a math tutor"
},
{
"role": "user",
"content": "Solve: 2x + 5 = 13"
}
],
"reference_answer": {
"solution": "x = 4",
"steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
},
"task_id": "algebra_001",
"difficulty_level": "easy",
"domain": "algebra",
"expected_reasoning_steps": 3
}