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à.
Preparazione dei dati per SFT su Amazon Nova 2
SFT su Amazon Nova 2 supporta la comprensione di testo, immagini, video e documenti, nonché la chiamata agli strumenti, con o senza supporto di motivazione. Questa pagina descrive i vincoli, i formati supportati e le best practice per la preparazione dei dati di formazione SFT per i modelli Amazon Nova 2 Understanding.
Suggerimento
Per convalidare il formato del set di dati prima di iniziare un processo di formazione, consulta. Strumenti di convalida
Argomenti
Formato dei dati
I dati SFT di Amazon Nova 2 utilizzano lo stesso formato API Converse di Amazon Nova 1, con l'aggiunta di campi opzionali di ragionamento.
Ogni riga del file di training JSONL è un oggetto JSON con i seguenti campi di primo livello. Espandi una sezione per saperne di più:
Obbligatorio. Il messages campo è una serie di oggetti messaggio, ognuno dei quali definisce una svolta nella conversazione. Un oggetto messaggio contiene i seguenti campi:
-
ruolo — Obbligatorio. Definisce se il messaggio proviene da
user(il prompt inviato al modello) oassistant(la risposta del modello). Il primo turno deve essereuser, l'ultimo deve essere eassistanti turni devono alternarsi. -
contenuto: obbligatorio. Una serie di blocchi di contenuto per questo turno.
Il content campo è mappato a una serie di blocchi di contenuto. I dati SFT di Amazon Nova 2 supportano i seguenti blocchi:
Un array opzionale che definisce un prompt di sistema: istruzioni o contesto per il modello sull'attività che deve eseguire o sulla persona che deve adottare. Utilizzate lo stesso prompt di sistema sia durante l'addestramento che durante l'inferenza per ottenere i migliori risultati.
"system": [ { "text": "You are a helpful assistant." } ]
Un oggetto opzionale che definisce gli strumenti disponibili per il modello da utilizzare durante la conversazione. Ogni strumento è definito con un nome, una descrizione e uno schema JSON per i suoi parametri di input.
"toolConfig": { "tools": [ { "toolSpec": { "name": "tool-name", "description": "tool-description", "inputSchema": { "json": { "type": "object", "properties": { "param": { "type": "string", "description": "param-description" } }, "required": ["param"] } } } } ] }
Obbligatorio. Un campo stringa che identifica la versione dello schema. Può essere qualsiasi valore di stringa.
"schemaVersion": "bedrock-conversation-2024"
Convalida dei dati
Prima di inviare il lavoro di formazione, convalida il set di dati per individuare tempestivamente i problemi di formattazione. Per gli strumenti di convalida disponibili, vedere. Strumenti di convalida
Input di esempio
I seguenti sono oggetti JSON di esempio completi che mostrano come combinare i campi e i blocchi di contenuto per diverse modalità.
Funzionalità supportate
La tabella seguente confronta il supporto delle funzionalità per SFT tra le versioni del modello Nova.
| Funzionalità | SFT su Nova 2.0 |
|---|---|
| Comprensione del testo | Supportato su Nova 2.0 Lite. Consulta General/Text comprensione. |
| Comprensione delle immagini | Supportato su Nova 2.0 Lite. Consulta Comprensione delle immagini. |
| Comprensione dei video | Supportato su Nova 2.0 Lite. Consulta Comprensione dei video. |
| Comprensione dei documenti | Supportato su Nova 2.0 Lite. Consulta Comprensione dei documenti. |
| Chiamata tramite strumenti | Supportato su Nova 2.0 Lite. Consulta Chiamata dello strumento. |
| Ragionamento | Supportato su Nova 2.0 Lite. Consulta Ragionamento. |
General/Text comprensione
Questa sezione riassume i vincoli generali per la preparazione dei dati di formazione SFT su Amazon Nova 2.
Vincoli
| Vincolo | Informazioni |
|---|---|
| Formato del set di dati | JSONL (un oggetto JSON per riga). I nomi dei file possono essere composti solo da caratteri alfanumerici, trattini bassi, trattini, barre e punti. |
| Numero minimo di campioni | 8 |
| Numero massimo di campioni | 20.000 |
| Lunghezza del contesto | 32.000 |
| Omogeneità del set di dati | Un set di dati non può combinare diverse modalità multimediali. Usa testo con immagini, testo con video o testo con documenti, ma non una combinazione. |
| Parole chiave riservate | User:,Bot:,Assistant:,System:,<image>,<video>,[EOS]. I prompt contenenti queste parole chiave causeranno il fallimento del processo di formazione. Sostituiscili con parole chiave diverse con significati simili. |
Best practice
La dimensione minima dei dati per l'ottimizzazione dipende dall'attività (complessa o semplice), ma ti consigliamo di avere almeno 200 campioni per ogni attività che desideri che il modello apprenda.
Ti consigliamo di utilizzare il prompt ottimizzato con un’impostazione zero-shot durante l’addestramento e l’inferenza per ottenere i migliori risultati.
Dai priorità alla qualità rispetto alla quantità. Alcune centinaia di esempi coerenti e di alta qualità in genere superano migliaia di esempi rumorosi o contraddittori.
Esempio di input
schemaVersionpuò essere qualsiasi valore di stringaI ruoli supportati sono
usereassistant. Il turnosystem(opzionale) può essere un prompt di sistema personalizzato fornito dal cliente.Il primo turno in
messagesdeve sempre iniziare con"role": "user". L'ultimo turno è la risposta del bot, indicata con"role": "assistant".
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "text": "The closest country is New Zealand" } ] } ] }
Comprensione delle immagini
SFT supporta la formazione su attività basate su immagini, consentendo al modello di imparare ad analizzare e rispondere alle domande sulle immagini.
Vincoli
| Vincolo | Informazioni |
|---|---|
| Formati supportati | PNG, JPEG, GIF, WebP |
| Numero massimo di immagini per campione | 10 |
| Dimensione massima dei file di immagine | 10 MB |
| Omogeneità del set di dati | Un campione può contenere immagini e testo, ma non può avere immagini combinate con altre modalità (video, documenti). |
| Percorso S3 | image.source.s3Location.uriDeve trovarsi nello stesso bucket Amazon S3 del set di dati. Ad esempio, se il set di dati si trova in s3://amzn-s3-demo-bucket/train/train.jsonl, le immagini o i video devono essere in s3://amzn-s3-demo-bucket |
Best practice
Assicurati che le immagini siano di alta qualità e pertinenti all'attività.
Fornisci diversi esempi riguardanti diversi tipi di immagini e formati di domande.
Includi domande chiare che facciano riferimento ad aspetti specifici del contenuto dell'immagine.
Esempio di input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } }, { "text": "Which country is highlighted in the image?" } ] }, { "role": "assistant", "content": [ { "text": "The highlighted country is New Zealand" } ] } ] }
Comprensione dei video
SFT supporta la formazione su attività basate su video, consentendo al modello di imparare ad analizzare e rispondere alle domande sui contenuti video.
Vincoli
| Vincolo | Informazioni |
|---|---|
| Formati supportati | MOV, MKV, MP4, WebM |
| Numero massimo di video per campione | 1 |
| Dimensione massima dei file video | 50 MB |
| Durata massima del video | 15 minuti |
| Omogeneità del set di dati | Un campione può contenere video e testo, ma non può avere video combinato con altre modalità (immagini, documenti). |
| Percorso S3 | video.source.s3Location.uriDeve trovarsi nello stesso bucket Amazon S3 del set di dati. Ad esempio, se il tuo set di dati è presentes3://amzn-s3-demo-bucket/train/train.jsonl, allora i tuoi video devono esserci s3://amzn-s3-demo-bucket |
Best practice
Mantieni i video concisi e concentrati sui contenuti pertinenti alla tua attività.
Assicurati che la qualità video sia sufficiente per consentire al modello di estrarre informazioni significative.
Fornisci domande chiare che facciano riferimento ad aspetti specifici del contenuto video.
Includi diversi esempi riguardanti diversi tipi di video e formati di domande.
Esempio di input
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/videos/customer_service_debugging.mp4", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }
Comprensione dei documenti
SFT supporta la formazione sulle attività basate sui documenti, consentendo al modello di imparare ad analizzare e rispondere alle domande sui documenti PDF.
Vincoli
| Vincolo | Informazioni |
|---|---|
| Formato supportato | |
| Dimensione massima del documento | 10 MB |
| Omogeneità del set di dati | Un campione può contenere documenti e testo, ma non può contenere documenti mescolati con altre modalità (immagini, video). |
| Percorso S3 | document.source.s3Location.uriDeve trovarsi nello stesso bucket Amazon S3 del set di dati. Ad esempio, se il tuo set di dati è presentes3://amzn-s3-demo-bucket/train/train.jsonl, i tuoi documenti devono essere presenti s3://amzn-s3-demo-bucket |
Best practice
Assicurati che i documenti siano formattati in modo chiaro e che il testo sia estraibile.
Fornisci diversi esempi riguardanti diversi tipi di documenti e formati di domande.
Includi contenuti di ragionamento per aiutare il modello ad apprendere i modelli di analisi dei documenti.
Esempio di input
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "document": { "format": "pdf", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }
Chiamata dello strumento
SFT supporta i modelli di addestramento sui modelli di chiamata degli strumenti, consentendo al modello di apprendere quando e come richiamare strumenti o funzioni esterni.
Vincoli
| Vincolo | Informazioni |
|---|---|
| Formati supportati | Testo o JSON per i contenuti ToolResult |
| ToolUse posizionamento | ToolUse deve comparire solo nei turni di assistente |
| ToolResult collocamento | ToolResult deve apparire solo nei turni dell'utente |
| Formato InputSchema | L'InputSchema all'interno di ToolSpec deve essere un oggetto JSON Schema valido |
| UseId corrispondenza degli strumenti | Ciascuno ToolResult deve fare riferimento a uno strumento valido fornito UseId dall'assistente ToolUse precedente e ogni strumento deve UseId essere utilizzato esattamente una volta per conversazione |
Best practice
Assicurati che le definizioni degli strumenti siano coerenti in tutti gli esempi di formazione.
Il modello apprende i modelli di richiamo degli strumenti dalle dimostrazioni fornite.
Includi diversi esempi di quando usare ogni strumento e quando non usarlo.
Esempio di input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemAvailability", "description": "Retrieve whether an item is available in a given location", "inputSchema": { "json": { "type": "object", "properties": { "zipcode": { "type": "string", "description": "The zipcode of the location to check in" }, "quantity": { "type": "integer", "description": "The number of items to check availability for" }, "item_id": { "type": "string", "description": "The ASIN of item to check availability for" } }, "required": ["item_id", "zipcode"] } } } } ] }, "messages": [ { "role": "user", "content": [ { "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086" } ] }, { "role": "assistant", "content": [ { "toolUse": { "toolUseId": "getItemAvailability_0", "name": "getItemAvailability", "input": { "zipcode": "94086", "quantity": 20, "item_id": "id-123" } } } ] }, { "role": "user", "content": [ { "toolResult": { "toolUseId": "getItemAvailability_0", "content": [ { "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]" } ] } } ] }, { "role": "assistant", "content": [ { "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?" } ] } ] }
Ragionamento
Il contenuto del ragionamento (chiamato anche catena di pensiero) cattura le fasi di pensiero intermedie del modello prima di generare una risposta definitiva.
Vincoli
| Vincolo | Informazioni |
|---|---|
| Formato supportato | Solo testo. Image-based i contenuti di ragionamento non sono supportati. |
| Placement | L'assistente si limita a turni, tramite il reasoningContent campo. |
| Formattazione | Usa testo semplice. Evita i tag di markup come <thinking> e </thinking> a meno che non siano specificamente richiesti dalla tua attività. |
Best practice
High-quality il contenuto del ragionamento dovrebbe includere pensieri intermedi, deduzioni logiche, approcci dettagliati per la risoluzione dei problemi e connessioni esplicite tra fasi e conclusioni.
Puoi includere più turni di assistente in conversazioni a più turni.
reasoningContentSe il tuo set di dati è privo di tracce di ragionamento, puoi crearle utilizzando un modello in grado di ragionare come Nova Premier.
Esempio di input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I need to use my world knowledge of geography to answer this question" } } }, { "text": "The closest country to Australia is New Zealand, located to the southeast across the Tasman Sea." } ] } ] }
Note aggiuntive
Come viene calcolata la perdita:
Con contenuti di ragionamento: la perdita di formazione include sia i token di ragionamento che i token di output finale.
Senza contenuti di ragionamento: la perdita di formazione viene calcolata solo sui token di output finali.
Imposta reasoning_enabled: true nella tua configurazione di addestramento quando i dati di addestramento contengono token di ragionamento, vuoi che il modello generi token di pensiero prima di produrre i risultati finali o hai bisogno di prestazioni migliorate in attività di ragionamento complesse.
Imposta reasoning_enabled: false quando i tuoi dati di allenamento non dispongono di token di ragionamento, ti stai allenando su attività semplici che non traggono beneficio da passaggi di ragionamento espliciti, oppure desideri ottimizzare la velocità e ridurre l'uso dei token.
È consentito addestrare Nova su un set di dati non razionale con. reasoning_enabled = true Tuttavia, ciò potrebbe far perdere al modello le sue capacità di ragionamento, poiché Nova impara principalmente a generare le risposte presentate nei dati senza applicare il ragionamento. In generale, abilita il ragionamento sia per l'addestramento che per l'inferenza quando si utilizzano set di dati di ragionamento e disabilitalo per entrambi quando si utilizzano set di dati non di ragionamento.
Progettazione di esempi di formazione efficaci
I dati di addestramento dovrebbero dimostrare il comportamento che desideri che il modello mostri. SFT insegna al modello come rispondere, non cosa sapere. Se ti ritrovi a creare esempi di formazione principalmente per inserire conoscenze fattuali (ad esempio, «Cosa significa codice di errore?» E-45 con la risposta "E-45 indica un timeout del sensore»), valutate se RAG o Prompt Engineering potrebbero ottenere lo stesso risultato senza una messa a punto.
Quando converti i dati di origine nel formato conversazionale, segui questi principi:
-
Inizia da domande di utenti reali. L'utente di scrittura fa sì che rispecchi il modo in cui gli utenti finali richiederanno effettivamente il modello in produzione. Evita domande artificiali o eccessivamente semplificate che non riflettono modelli di utilizzo reali.
-
Scrivi risposte di assistenza all'avanguardia. Ogni turno dell'assistente dovrebbe essere la risposta ideale che desideri che il modello produca: corretta, ben formattata e coerente nel tono e nella struttura in tutti gli esempi.
-
Usa il prompt del sistema in modo strategico. Inserisci istruzioni permanenti come il formato di output, la persona e il contesto del dominio nel turno di sistema. Utilizzate lo stesso prompt di sistema sia durante l'addestramento che durante l'inferenza per ottenere i migliori risultati.
-
Mantieni gli esempi concentrati su un'abilità per campione. Se hai bisogno del modello per classificare, rispondere alle domande e riepilogare, crea set di esempi separati per ciascuna abilità anziché combinare più competenze in un unico campione.
-
Dai priorità alla qualità rispetto alla quantità. Alcune centinaia di esempi coerenti e di alta qualità in genere superano migliaia di esempi rumorosi o contraddittori. Deduplica e rivedi i tuoi dati prima dell'allenamento.
Schemi comuni di trasformazione dei dati
I modelli seguenti illustrano come convertire i formati di dati aziendali comuni in efficaci esempi di formazione SFT.
Modello 1: record strutturati per la classificazione o la ricerca
Quando i dati di origine sono una tabella o un database di record con campi quali, e issue causeresolution, inquadra ogni record come una domanda dell'utente con i campi di input pertinenti e la risposta dell'assistente come campi di output di destinazione.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a technical support assistant. Given an issue description, identify the most likely root cause and recommended resolution." } ], "messages": [ { "role": "user", "content": [ { "text": "A user reports: 'Application crashes on startup after the latest update.' What is the likely cause and resolution?" } ] }, { "role": "assistant", "content": [ { "text": "Cause: Incompatible configuration file from the previous version.\nResolution: Delete the local configuration cache and restart the application to regenerate default settings." } ] } ] }
Schema 2: dati gerarchici o tassonomici su Q A strutturato &
Quando i dati di origine sono una gerarchia di codice o una tassonomia, ad esempio alberi di categorie di prodotti o sistemi di classificazione, genera domande che chiedano al modello di navigare nella gerarchia. Includete il contesto di classificazione nel prompt del sistema o nel turno dell'utente.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a product catalog assistant. Answer questions about product categories and classifications accurately." } ], "messages": [ { "role": "user", "content": [ { "text": "What top-level category does product code 'EL-4520' belong to, and what subcategories does it include?" } ] }, { "role": "assistant", "content": [ { "text": "Product code EL-4520 belongs to the Electronics category. It includes the subcategories: Audio Equipment, Portable Speakers, and Wireless Accessories." } ] } ] }
Schema 3: dai documenti procedurali al dialogo didattico
Quando i dati di origine sono costituiti da procedure operative standard, runbook o guide dettagliate, converti le procedure in domande orientate alle attività. L'utente chiede come eseguire un'operazione e l'assistente fornisce i passaggi in un formato coerente.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an IT operations assistant. Provide step-by-step instructions based on approved runbooks and standard operating procedures." } ], "messages": [ { "role": "user", "content": [ { "text": "How do I reset a user's multi-factor authentication when they have lost access to their device?" } ] }, { "role": "assistant", "content": [ { "text": "Follow these steps to reset a user's multi-factor authentication:\n1. Verify the user's identity using the approved verification procedure.\n2. Disable the existing MFA configuration in the identity management console.\n3. Generate a new temporary access code and send it to the user's verified email.\n4. Instruct the user to log in with the temporary code and re-enroll their new device.\n5. Confirm the new MFA device is working by requesting a test authentication.\n6. Document the reset in the support ticket." } ] } ] }
Nota
Nei modelli 1 e 2, se il contenuto fattuale (come codici, categorie o risoluzioni) non è già presente nei dati di pre-addestramento del modello, valuta la possibilità di utilizzare RAG per fornire queste informazioni al momento dell'inferenza anziché affidarsi esclusivamente a SFT per memorizzarle. La SFT è più efficace per insegnare al modello il formato di risposta e il modello di ragionamento, mentre RAG si occupa della base fattuale.