기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Nova 모델에 대한 데이터 준비
강화 미세 조정으로 Amazon Nova 모델을 미세 조정할 때 자체 프롬프트를 가져오거나 기존 Amazon Bedrock API 호출 로그를 훈련 데이터로 사용할 수 있습니다.
훈련 데이터 요구 사항 및 소스
다음 옵션 중 하나를 통해 훈련 데이터를 제공할 수 있습니다.
참고
OpenAI 채팅 완료 형식만 지원합니다.
프롬프트를 수집하여 .jsonl 파일 형식으로 저장합니다. JSONL 형식으로 사용자 지정 데이터 세트를 업로드하거나 Amazon S3에서 기존 데이터 세트를 선택할 수 있습니다. JSONL의 각 레코드는 다음 구조에서 OpenAI 채팅 완료 형식을 사용해야 합니다.
-
messages:이 필드에 모델에 제공된 입력 프롬프트가 포함된 사용자, 시스템 또는 어시스턴트 역할을 포함합니다. -
reference_answer:이 필드에는 보상 함수가 모델의 응답을 채점하는 데 사용하는 예상 출력 또는 평가 기준이 포함되어야 합니다. 이는 구조화된 출력으로 제한되지 않으며 보상 함수가 품질을 평가하는 데 도움이 되는 모든 형식을 포함할 수 있습니다. -
[선택 사항] 그레이더 Lambda가 그레이딩에 사용하는 필드를 추가할 수 있습니다.
요구 사항:
OpenAI 채팅 완료 형식의 프롬프트가 있는 JSONL 형식(줄당 프롬프트 하나)
훈련 데이터 세트의 레코드 최소 100개
Amazon Bedrock은 훈련 데이터 세트 형식을 자동으로 검증합니다.
강화 미세 조정 작업을 생성할 때 Amazon Bedrock이 S3 버킷의 기존 호출 로그를 훈련 데이터로 사용하도록 할 수 있습니다. Amazon Bedrock의 경우 간접 호출 로그는 모델 호출에 대한 자세한 레코드입니다.
Amazon S3의 고객 측 저장 Invoke/Converse API 호출 로그를 훈련에 사용할 수 있습니다.
요구 사항:
-
Amazon Bedrock 사용에 대해 API 로깅을 활성화해야 합니다.
-
로그는 지원되는 형식이어야 합니다(Amazon Bedrock Invoke/Converse API).
-
최소 100개의 프롬프트 예제
강화 미세 조정에 호출 로그를 사용하려면 모델 호출 로깅을 설정하고, 모델 호출 작업 중 하나를 사용하고, Amazon S3 버킷을 로그의 대상으로 설정했는지 확인합니다. 호출 로그 설정에 대한 자세한 내용은 CloudWatch Logs 및 Amazon S3를 사용하여 모델 호출 모니터링을 참조하세요.
S3 버킷의 호출 로그를 입력으로 사용하여 강화 미세 조정 작업을 시작하려면 먼저 S3 버킷의 로그에 액세스할 수 있는 Amazon Bedrock 권한을 제공해야 합니다. 자세한 내용은 모델 사용자 지정 액세스 및 보안 단원을 참조하십시오.
선택적으로 모델 간접 호출 작업 중 하나를 사용하여 간접 호출 로그의 프롬프트-응답 페어에 요청 메타데이터를 추가한 다음 나중에 이를 사용하여 로그를 필터링할 수 있습니다. Amazon Bedrock은 필터링된 로그를 사용하여 모델을 미세 조정할 수 있습니다.
호출 로그의 프롬프트 및 응답에 요청 메타데이터 추가
간접 호출 로그를 사용하면 간접 호출 로그에 연결된 요청 메타데이터를 사용하여 Amazon Bedrock이 강화 미세 조정에 사용할 훈련 데이터 세트 프롬프트를 식별할 수 있습니다.
다음은를 사용한 InvokeModel 호출에서 호출 로그의 예입니다requestMetadata.
{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-09-11T17:16:18Z", "accountId": "XXXXX", "identity": { "arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX" }, "region": "us-east-1", "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5", "operation": "InvokeModel", "modelId": "meta.llama3-1-405b-instruct-v1:0", "input": { "inputContentType": "application/json", "inputBodyJson": { "prompt": "story of two dogs", "max_tokens_to_sample": 300 }, "inputTokenCount": 13 }, "output": { "outputContentType": "application/json", "outputBodyJson": { "type": "completion", "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little", "stop_reason": "max_tokens", "stop": null }, "outputTokenCount": 300 }, "requestMetadata": { "project": "CustomerService", "intent": "ComplaintResolution", "priority": "High" } }
강화 미세 조정 작업을 시작할 때 호출 로그를 입력 데이터 소스로 지정할 수 있습니다. API AWS CLI또는 SDK를 사용하여 Amazon Bedrock 콘솔을 통해 강화 미세 조정 작업을 시작할 수 있습니다.
요청 메타데이터를 제공하기 위한 요구 사항
데이터 웨어하우스는 다음 요구 사항을 충족해야 합니다.
-
JSON
key:value형식으로 제공됩니다. -
키와 값 페어는 최대 256자의 문자열이어야 합니다.
-
최대 16개의 키-값 페어를 제공합니다.
메타데이터 요청 필터 사용
요청 메타데이터가 있는 호출 로그를 사용할 수 있게 되면 요청 메타데이터를 기반으로 필터를 적용하여 모델 미세 조정에 포함할 프롬프트를 선택적으로 선택할 수 있습니다. 예를 들어 및 "project": "CustomerService" "priority": "High" 요청 메타데이터가 있는 만 포함할 수 있습니다.
여러 요청 메타데이터를 사용하여 로그를 필터링하려면 단일 부울 연산자 AND 또는를 사용합니다OR. 이러한 연산자는 결합할 수 없습니다. 단일 요청 메타데이터 필터링의 경우 Equals 또는 Not Equals 연산자를 사용합니다.
효과적인 훈련 데이터의 특성
효과적인 RFT 훈련 데이터에는 세 가지 주요 특성이 필요합니다.
-
명확성 및 일관성 - 일관된 형식 지정으로 명확하고 모호하지 않은 프롬프트를 사용합니다. 모순되는 레이블, 모호한 지침 또는 훈련을 오도하는 참조 답변 충돌을 방지합니다.
-
다양성 - 다양한 사용자 유형 및 시나리오에서 프로덕션 사용 패턴을 반영하는 다양한 입력 형식, 엣지 케이스 및 난이도를 포함합니다.
-
효율적인 보상 함수 - 빠르게 실행되고(초, 분 아님),와 병렬화되고 AWS Lambda, 비용 효율적인 훈련을 위한 일관된 점수를 반환하는 함수를 설계합니다.
추가 속성
RFT 데이터 형식은 핵심 스키마 요구 사항(messages 및 ) 이외의 사용자 지정 필드를 지원합니다reference_answer. 이러한 유연성을 통해 보상 함수가 적절한 평가에 필요한 데이터를 추가할 수 있습니다.
참고
레시피에서 이를 구성할 필요가 없습니다. 데이터 형식은 기본적으로 추가 필드를 지원합니다. 훈련 데이터 JSON에 포함하면 metadata 필드의 보상 함수로 전달됩니다.
일반적인 추가 속성
task_id- 추적을 위한 고유 식별자difficulty_level- 문제 복잡성 지표domain- 주제 영역 또는 범주expected_reasoning_steps- 솔루션의 단계 수
이러한 추가 필드는 평가 중에 보상 함수에 전달되므로 특정 사용 사례에 맞게 조정된 정교한 점수 평가 로직이 가능합니다.
추가 속성이 있는 예제