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à.
Preparare i dati per i modelli Amazon Nova
Quando ottimizzi un modello Amazon Nova con la messa a punto del rinforzo, puoi inserire le tue istruzioni o utilizzare i log di chiamata dell'API Amazon Bedrock esistenti come dati di addestramento.
Requisiti e fonti dei dati di formazione
È possibile fornire dati di formazione tramite una delle seguenti opzioni:
Nota
Supportiamo solo il formato di completamento della chat OpenAI.
Raccogli i prompt e archiviali in un file in formato .jsonl. Puoi caricare set di dati personalizzati in formato JSONL o selezionare set di dati esistenti da Amazon S3. Ogni record in JSONL deve utilizzare il formato di completamento della chat OpenAI nella seguente struttura:
-
messages: In questo campo, includi il ruolo utente, di sistema o di assistente contenente il prompt di input fornito al modello. -
reference_answer: In questo campo, deve contenere l'output previsto o i criteri di valutazione utilizzati dalla funzione di ricompensa per assegnare un punteggio alla risposta del modello. Non si limita agli output strutturati, ma può contenere qualsiasi formato che aiuti la funzione di ricompensa a valutare la qualità. -
[Facoltativo] È possibile aggiungere campi utilizzati da grader Lambda per la valutazione.
Requisiti:
Formato JSONL con istruzioni nel formato di completamento della chat OpenAI (un prompt per riga)
Un minimo di 100 record nel set di dati di addestramento
Amazon Bedrock convalida automaticamente il formato del set di dati di addestramento
Quando crei un processo di ottimizzazione del rinforzo, puoi fare in modo che Amazon Bedrock utilizzi i log di invocazione esistenti dal tuo bucket S3 come dati di addestramento. Per Amazon Bedrock, un log delle invocazioni è un registro dettagliato delle invocazioni del modello.
Puoi utilizzare i log di invocazione delle Invoke/Converse API archiviati sul lato cliente da Amazon S3 per la formazione.
Requisiti:
-
La registrazione delle API deve essere abilitata per l'utilizzo di Amazon Bedrock
-
I log devono essere in un formato supportato (Amazon Bedrock API Invoke/Converse )
-
Un minimo di 100 esempi di prompt
Per utilizzare i log di invocazione per l'ottimizzazione del rinforzo, imposta la registrazione delle chiamate del modello, utilizza una delle operazioni di invocazione del modello e assicurati di aver impostato un bucket Amazon S3 come destinazione per i log. Per ulteriori informazioni sulla configurazione dei log delle chiamate, consulta Monitorare l'invocazione del modello utilizzando Logs CloudWatch e Amazon S3.
Prima di iniziare il processo di ottimizzazione del rinforzo con i log di chiamata da un bucket S3 come input, devi fornire le autorizzazioni di Amazon Bedrock per accedere ai log da un bucket S3. Per ulteriori informazioni, consulta Accesso e sicurezza per la personalizzazione del modello.
Facoltativamente, è possibile aggiungere i metadati delle richieste alle coppie di prompt-risposta nel log delle invocazioni utilizzando una delle operazioni di invocazione del modello e utilizzarli in seguito per filtrare i log. Amazon Bedrock può utilizzare i log filtrati per ottimizzare il modello.
Aggiungi i metadati delle richieste ai prompt e alle risposte nei log delle chiamate
Con i log di invocazione, puoi identificare i prompt dei set di dati di addestramento che desideri che Amazon Bedrock utilizzi per la messa a punto del rinforzo utilizzando i metadati di richiesta allegati ai log di chiamata.
Di seguito è riportato un esempio di registro delle chiamate da una chiamata con: 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" } }
È possibile specificare il registro delle chiamate come fonte di dati di input quando si avvia un processo di ottimizzazione del rinforzo. Puoi avviare un lavoro di ottimizzazione del rinforzo tramite la console Amazon Bedrock, utilizzando l'API o l'SDK. AWS CLI
Requisiti per fornire i metadati delle richieste
I metadati delle richieste devono soddisfare i seguenti requisiti:
-
Devono essere nel formato
key:valuedi JSON. -
La coppia chiave-valore deve essere una stringa al massimo di 256 caratteri.
-
Devono fornire al massimo 16 coppie chiave-valore.
Utilizzo di filtri per metadati delle richieste
Una volta disponibili i log di chiamata con i metadati delle richieste, puoi applicare filtri basati sui metadati della richiesta per scegliere selettivamente quali prompt includere per la messa a punto del modello. Ad esempio, potreste voler includere solo quelli che contengono e richiedono i metadati. "project": "CustomerService" "priority": "High"
Per filtrare i log utilizzando più metadati di richiesta, utilizzate un singolo operatore booleano o. AND OR Non è possibile combinare questi operatori. Per il filtraggio dei metadati a richiesta singola, utilizzate l'operatore Equals orNot Equals.
Caratteristiche dei dati di addestramento efficaci
Dati di addestramento RFT efficaci richiedono tre caratteristiche chiave:
-
Chiarezza e coerenza: utilizza istruzioni chiare e inequivocabili con una formattazione coerente. Evita etichette contraddittorie, istruzioni ambigue o risposte di riferimento contrastanti che fuorviano la formazione.
-
Diversità: includi diversi formati di input, casi limite e livelli di difficoltà che riflettono i modelli di utilizzo della produzione in diversi tipi di utenti e scenari.
-
Funzioni di ricompensa efficienti: progetta funzioni che vengano eseguite rapidamente (secondi, non minuti), parallelizzino e restituiscano AWS Lambda punteggi costanti per una formazione conveniente.
Proprietà aggiuntive
Il formato di dati RFT supporta campi personalizzati oltre ai requisiti di base dello schema (e). messages reference_answer Questa flessibilità consente di aggiungere tutti i dati aggiuntivi necessari alla funzione di ricompensa per una corretta valutazione.
Nota
Non è necessario configurarlo nella ricetta. Il formato dei dati supporta intrinsecamente campi aggiuntivi. Basta includerli nei dati di allenamento JSON e verranno passati alla funzione di ricompensa sul campo. metadata
Proprietà aggiuntive comuni
task_id— Identificatore univoco per il tracciamentodifficulty_level— Indicatore di complessità del problemadomain— Area o categoria tematicaexpected_reasoning_steps— Numero di passaggi della soluzione
Questi campi aggiuntivi vengono trasferiti alla funzione di ricompensa durante la valutazione, abilitando una sofisticata logica di punteggio personalizzata in base al caso d'uso specifico.
Esempi con proprietà aggiuntive