강화 미세 조정 작업 생성 - Amazon Bedrock

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

강화 미세 조정 작업 생성

Amazon Bedrock 콘솔 또는 API를 사용하여 강화 미세 조정 작업을 생성할 수 있습니다. RFT 작업은 훈련 데이터의 크기, epoch 수, 보상 함수의 복잡성에 따라 몇 시간이 걸릴 수 있습니다.

사전 조건

  • IAM 서비스 역할을 생성하여 RFT 훈련 데이터 및 출력 아티팩트를 저장하려는 Amazon S3 버킷에 액세스합니다. AWS Management 콘솔를 사용하거나 수동으로이 역할을 자동으로 생성할 수 있습니다. RFT 관련 권한은 섹션을 참조하세요강화 미세 조정 액세스 및 보안.

  • (선택 사항) 입력 및 출력 데이터, RFT 작업 또는 사용자 지정 모델에 대한 추론 요청을 암호화합니다. 자세한 내용은 사용자 지정 모델 암호화를 참조하세요.

RFT 작업 생성

원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

Console

콘솔에서 RFT 작업을 제출하려면 다음 단계를 수행합니다.

  1. 에 로그인AWS Management 콘솔하고 https://console.aws.amazon.com/bedrock Amazon Bedrock 콘솔을 엽니다.

  2. 왼쪽 탐색 창의 조정에서 사용자 지정 모델을 선택합니다.

  3. 모델 테이블에서 생성을 선택합니다. 그런 다음 강화 미세 조정 작업 생성을 선택합니다.

  4. 모델 세부 정보 섹션에서 Amazon Nova 2 Lite를 기본 모델로 선택합니다.

  5. 사용자 지정 세부 정보 섹션에서 사용자 지정 이름을 입력합니다.

  6. 훈련 데이터 섹션에서 데이터 소스를 선택합니다.

    • 저장된 호출 로그 사용 - Amazon S3에 저장된 사용 가능한 호출 로그 중에서 선택합니다.

    • 새 데이터 세트 업로드 - 훈련 데이터 세트 파일의 Amazon S3 위치를 선택하거나 디바이스에서 직접 파일을 업로드합니다.

    참고

    훈련 데이터 세트는 OpenAI Chat Completions 데이터 형식이어야 합니다. Amazon Bedrock 간접 호출 또는 대화 형식으로 간접 호출 로그를 제공하는 경우 Amazon Bedrock은 자동으로 이를 채팅 완료 형식으로 변환합니다.

  7. 보상 함수 섹션에서 보상 메커니즘을 설정합니다.

    • 판단형 모델(RLAIF) - Bedrock 호스팅 기본 모델을 판단형으로 선택하고 평가 지침을 구성합니다. 콘텐츠 조정과 같은 주관적 작업에 사용합니다.

      참고

      콘솔의 판단형 모델 옵션은 훈련 중에 구성을 Lambda 함수로 자동 변환합니다.

    • 사용자 지정 코드(RLVR) - Lambda 함수를 통해 실행되는 Python 코드를 사용하여 사용자 지정 보상 함수를 생성합니다. 코드 생성과 같은 목표 작업에 사용합니다.

    자세한 내용은 보상 함수 설정 단원을 참조하십시오.

  8. (선택 사항) 하이퍼파라미터 섹션에서 훈련 파라미터를 조정하거나 기본값을 사용합니다.

  9. 출력 데이터 섹션에서 Bedrock이 작업 출력을 저장해야 하는 Amazon S3 위치를 입력합니다.

  10. 역할 구성 섹션에서 다음을 선택합니다.

    • 기존 역할 선택 - 드롭다운 목록에서 선택

    • 역할 생성 - 서비스 역할의 이름을 입력합니다.

  11. (선택 사항) 추가 구성 섹션에서 다음을 구성합니다.

    • Amazon S3 버킷을 가리키는 검증 데이터

    • KMS 암호화 설정

    • 작업 및 모델 태그

  12. 강화 미세 조정 작업 생성을 선택하여 작업을 시작합니다.

API

를 로 customizationType 설정하여 CreateModelCustomizationJob 요청을 보냅니다REINFORCEMENT_FINE_TUNING. 다음 필드를 제공해야 합니다.

필수 필드:

  • roleArn - RFT 권한이 있는 서비스 역할의 ARN

  • baseModelIdentifier - 사용자 지정할 파운데이션 모델의 모델 ID 또는 ARN

  • customModelName - 새로 사용자 지정된 모델의 이름

  • jobName - 훈련 작업의 이름

  • customizationType - REINFORCEMENT_FINE_TUNING으로 설정됨

  • trainingDataConfig - 훈련 데이터 세트 또는 호출 로그 구성의 Amazon S3 URI

  • outputDataConfig - 출력 데이터를 쓰기 위한 Amazon S3 URI

  • rftConfig - 보상 함수 구성(RLVR 또는 RLAIF) 및 하이퍼 파라미터 구성

요청 예제:

{ "roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole", "baseModelIdentifier": "amazon.nova-2.0", "customModelName": "my-rft-model", "jobName": "my-rft-job", "customizationType": "REINFORCEMENT_FINE_TUNING", "trainingDataConfig": { "s3Uri": "s3://my-bucket/training-data.jsonl" }, "customizationConfig": { "rftConfig" : { "graderConfig": { "lambdaGrader": { "lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name" } }, "hyperParameters": { "batchSize": 64, "epochCount": 2, "evalInterval": 10, "inferenceMaxTokens": 8192, "learningRate": 0.00001, "maxPromptLength": 4096, "reasoningEffort": "high", "trainingSamplePerPrompt": 4 } } }, "outputDataConfig": { "s3Uri": "s3://my-bucket/rft-output/" } }

Python API 샘플 요청:

import boto3 bedrock = boto3.client(service_name='bedrock') # Set parameters customizationType = "REINFORCEMENT_FINE_TUNING" baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k" roleArn = "${your-customization-role-arn}" jobName = "MyFineTuningJob" customModelName = "MyCustomModel" customizationConfig = { 'rftConfig' : { 'graderConfig': { 'lambdaGrader': { 'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name' } }, 'hyperParameters': { 'batchSize': 64, 'epochCount': 2, 'evalInterval': 10, 'inferenceMaxTokens': 8192, 'learningRate':0.00001, 'maxPromptLength': 4096, 'reasoningEffort': 'high', 'trainingSamplePerPrompt':4 } } } trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"} outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"} # Create job response_ft = bedrock.create_model_customization_job( jobName=jobName, customModelName=customModelName, roleArn=roleArn, baseModelIdentifier=baseModelIdentifier, customizationConfig=customizationConfig, trainingDataConfig=trainingDataConfig, outputDataConfig=outputDataConfig, customizationType=customizationType ) jobArn = response_ft['jobArn']

RFT 작업 워크플로

RFT 작업은 다음 자동 워크플로를 따릅니다.

  1. 응답 생성 - 액터 모델은 훈련 프롬프트에서 응답을 생성합니다.

  2. 보상 계산 - 보상 함수는 프롬프트-응답 페어를 평가합니다.

  3. 액터 모델 훈련 - 모델은 GRPO를 사용하여 점수가 매겨진 페어에서 학습합니다.

훈련 중에 손실, 보상, 보상 마진 및 정확도와 같은 훈련 및 검증 지표와 함께 실시간 그래프를 사용하여 진행 상황을 모니터링할 수 있습니다. 성공하면 사용자 지정 모델 ARN을 사용하여 RFT 모델이 생성됩니다.

추론 설정

작업 완료 후 온디맨드 추론을 위해 클릭 한 번으로 결과 RFT 모델을 배포할 수 있습니다. 일관된 성능이 필요한 미션 크리티컬 워크로드에도 프로비저닝된 처리량을 사용할 수 있습니다. 추론이 설정되면 플레이그라운드에서 테스트를 사용하여 응답을 대화형으로 평가하고 기본 모델 side-by-side과 비교합니다.

RFT 작업 진행 상황을 모니터링하려면 섹션을 참조하세요RFT 훈련 작업 모니터링.

완료된 RFT 모델을 평가하려면 섹션을 참조하세요RFT 모델 평가.