Crea un lavoro di messa a punto delle armature - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un lavoro di messa a punto delle armature

Puoi creare un lavoro di ottimizzazione delle armature utilizzando la console o l'API Amazon Bedrock. Il processo RFT può richiedere diverse ore a seconda delle dimensioni dei dati di allenamento, del numero di epoche e della complessità delle funzioni di ricompensa.

Prerequisiti

  • Crea un ruolo di servizio IAM per accedere al bucket Amazon S3 in cui desideri archiviare i dati di addestramento RFT e gli artefatti di output. Puoi creare questo ruolo automaticamente utilizzando o manualmente. Console di gestione AWS Per le autorizzazioni specifiche di RFT, vedere. Rinforzo, ottimizzazione dell'accesso e della sicurezza

  • (Facoltativo) Crittografa i dati di input e output, il job RFT o le richieste di inferenza effettuate su modelli personalizzati. Per ulteriori informazioni, consulta Crittografia dei modelli personalizzati.

Crea il tuo lavoro RFT

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

Console

Per inviare un lavoro RFT nella console, procedi nel seguente modo:

  1. Accedi a Console di gestione AWS e apri la console Amazon Bedrock all'indirizzo https://console.aws.amazon.com/bedrock.

  2. Nel riquadro di navigazione a sinistra, scegli Modelli personalizzati in Ottimizza.

  3. Nella tabella Modelli, scegli Crea. Quindi, scegliete Create reinforcement fine-tuning job.

  4. Nella sezione Dettagli del modello, scegli Amazon Nova 2 Lite come modello base.

  5. Nella sezione Dettagli di personalizzazione, inserisci il nome della personalizzazione.

  6. Nella sezione Dati di allenamento, scegli la tua fonte di dati:

    • Usa i log delle chiamate archiviati: seleziona uno dei log delle chiamate disponibili archiviati in Amazon S3

    • Carica un nuovo set di dati: seleziona la posizione Amazon S3 del file del set di dati di allenamento o carica un file direttamente dal tuo dispositivo

    Nota

    Il tuo set di dati di allenamento dovrebbe essere nel formato dati OpenAI Chat Completions. Se fornisci i log delle chiamate nel formato Amazon Bedrock invoke o converse, Amazon Bedrock li converte automaticamente nel formato Chat Completions.

  7. Nella sezione Funzione Reward, configura il tuo meccanismo di ricompensa:

    • Model as judice (RLAIF): seleziona un modello base ospitato da Bedrock come giudice e configura le istruzioni per la valutazione. Utilizzalo per attività soggettive come la moderazione dei contenuti.

      Nota

      L'opzione Model as judge della console converte automaticamente la configurazione in una funzione Lambda durante l'allenamento.

    • Codice personalizzato (RLVR): crea funzioni di ricompensa personalizzate utilizzando il codice Python eseguito tramite le funzioni Lambda. Usalo per attività oggettive come la generazione di codice.

    Per ulteriori informazioni, consulta Impostazione delle funzioni di ricompensa.

  8. (Facoltativo) Nella sezione Iperparametri, regolate i parametri di allenamento o utilizzate i valori predefiniti.

  9. Nella sezione Dati di output, inserisci la posizione Amazon S3 in cui Bedrock deve salvare gli output del lavoro.

  10. Nella sezione Configurazione del ruolo, seleziona:

    • Scegli un ruolo esistente: seleziona dall'elenco a discesa

    • Crea un ruolo: inserisci un nome per il ruolo di servizio

  11. (Facoltativo) Nella sezione Configurazione aggiuntiva, configura:

    • Dati di convalida facendo riferimento a un bucket Amazon S3

    • Impostazioni di crittografia KMS

    • Tag Job e model

  12. Scegliete Create reinforcement fine-tuning job per iniziare il lavoro.

API

Invia una CreateModelCustomizationJob richiesta con set to. customizationType REINFORCEMENT_FINE_TUNING È necessario fornire i seguenti campi:

Campi obbligatori:

  • roleArn- ARN del ruolo di servizio con autorizzazioni RFT

  • baseModelIdentifier- ID del modello o ARN del modello di base da personalizzare

  • customModelName- Nome per il modello appena personalizzato

  • jobName- Nome del lavoro di formazione

  • customizationType: imposta il valore su REINFORCEMENT_FINE_TUNING

  • trainingDataConfig- URI Amazon S3 del set di dati di addestramento o della configurazione del registro di chiamata

  • outputDataConfig- URI Amazon S3 per scrivere dati di output

  • rftConfig- Configurazione della funzione Reward (RLVR o RLAIF) e configurazione degli iperparametri

Richiesta di esempio:

{ "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/" } }

Richiesta di esempio di API Python:

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']

Flusso di lavoro RFT

Il job RFT segue questo flusso di lavoro automatizzato:

  1. Generazione di risposte: il modello di attore genera risposte in base alle istruzioni di formazione

  2. Calcolo della ricompensa: le funzioni di ricompensa valutano le coppie di risposta rapida

  3. Actor Model Training - Il modello impara dalle coppie con punteggio utilizzando GRPO

Durante l'allenamento, puoi monitorare i progressi utilizzando grafici in tempo reale con metriche di formazione e convalida come perdita, ricompense, margine di ricompensa e precisione. Una volta ottenuto il successo, viene creato un modello RFT con un modello ARN personalizzato.

Imposta l'inferenza

Dopo il completamento del lavoro, puoi implementare il modello RFT risultante con un clic per l'inferenza su richiesta. Puoi anche utilizzare Provisioned Throughput per carichi di lavoro mission critical che richiedono prestazioni costanti. Una volta impostata l'inferenza, usa Test in Playground per valutare e confrontare in modo interattivo le risposte con il modello base. side-by-side

Per monitorare lo stato di avanzamento del lavoro in RFT, consulta. Monitora il tuo lavoro di formazione RFT

Per valutare il modello RFT completato, consulta. Valuta il tuo modello RFT