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 la messa a punto multimodale
Importante
Prima di iniziare a preparare il set di dati, assicuratevi che il supervised fine-tuning (SFT) sia l'approccio giusto per il vostro caso d'uso. SFT insegna al modello nuovi comportamenti, formati di risposta e modelli di ragionamento. Non insegna al modello nuove conoscenze fattuali. Se il tuo obiettivo principale è introdurre fatti, terminologia o conoscenze specifici di un dominio che il modello non ha mai visto, prendi in considerazione la generazione aumentata per il recupero (RAG) per fornire quel contesto al momento dell'inferenza. Per indicazioni sulla scelta tra SFT, Reinforcement Fine-Tuning (RFT) e RAG, vedi. Personalizzazione di Amazon Nova su SageMaker Training Jobs
Di seguito sono riportate le linee guida e i requisiti per la preparazione dei dati per il fine-tuning dei modelli di comprensione:
-
La dimensione minima dei dati per il fine-tuning dipende dall’attività (se complessa o semplice), ma ti consigliamo di disporre di almeno 100 esempi per ogni attività che deve imparare il modello.
-
Ti consigliamo di utilizzare il prompt ottimizzato con un’impostazione zero-shot durante l’addestramento e l’inferenza per ottenere i migliori risultati.
-
I set di dati di addestramento e convalida devono essere file JSONL, in cui ogni riga è un oggetto JSON corrispondente a un record. Questi nomi di file possono essere composti solo da caratteri alfanumerici, trattini, trattini bassi, barre e punti.
-
Limitazioni di immagini e video
-
Il set di dati non può contenere diverse modalità multimediali. In altre parole, il set di dati può essere testo con immagini o testo con video.
-
Un campione (singolo record nei messaggi) può contenere più immagini
-
Un campione (record singolo nei messaggi) può contenere solo 1 video
-
-
schemaVersionpuò essere qualsiasi valore di stringa -
Il turno
system(opzionale) può essere un prompt di sistema personalizzato fornito dal cliente. -
I ruoli supportati sono
usereassistant. -
Il primo turno in
messagesdeve sempre iniziare con"role": "user". L'ultimo turno è la risposta del bot, indicata da."role": "assistant" -
Il
image.source.s3Location.urie ilvideo.source.s3Location.uridevono essere accessibili ad Amazon Bedrock. -
Il tuo ruolo di servizio Amazon Bedrock deve essere in grado di accedere ai file di immagine in Amazon S3. Per ulteriori informazioni sulla concessione dell’accesso, consulta Create a service role for model customization
-
Le immagini o i video devono 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 ins3://amzn-s3-demo-bucket -
I termini
User:,Bot:,Assistant:,System:,<image>,<video>e[EOS]sono parole chiave riservate. Se un prompt utente o un prompt di sistema inizia con una di queste parole chiave o contiene queste parole chiave in qualsiasi punto del prompt, il processo di formazione avrà esito negativo a causa di problemi relativi ai dati. Se è necessario utilizzare queste parole chiave per il proprio caso d'uso, è necessario sostituirle con parole chiave diverse con significati simili in modo che la formazione possa continuare.
Progettazione di esempi di formazione efficaci
I dati di addestramento devono dimostrare il comportamento che desiderate che il modello mostri. SFT insegna al modello come rispondere, non cosa sapere. Se vi trovate a creare esempi di formazione principalmente per fornire conoscenze fattuali (ad esempio, «Cosa significa codice E-45 di errore?» con la risposta "E-45 indica un timeout del sensore»), valutate se RAG o Prompt Engineering potrebbero ottenere lo stesso risultato senza una regolazione precisa.
Quando converti i dati di origine nel formato conversazionale, segui questi principi:
-
Inizia dalle domande degli utenti reali. Write user rispecchia 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 da assistente di alto livello. Ogni turno di 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 persistenti come il formato di output, la persona e il contesto del dominio nel turno di sistema. Utilizza lo stesso prompt di sistema durante l'addestramento e l'inferenza per ottenere i migliori risultati.
-
Mantieni gli esempi incentrati su un'abilità per campione. Se hai bisogno del modello per classificare, rispondere a domande e riepilogare, crea set di esempi separati per ogni abilità anziché combinare più abilità 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 dati prima dell'addestramento.
Modelli comuni di trasformazione dei dati
I modelli seguenti illustrano come convertire i formati di dati aziendali comuni in esempi di formazione SFT efficaci.
Modello 1: record strutturati da classificare o cercare
Se i dati di origine sono una tabella o un database di record con campi quali, eissue, e 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." } ] } ] }
Modello 2: dati gerarchici o tassonomici per domande e risposte strutturate
Se i dati di origine sono costituiti da una gerarchia di codici o da una tassonomia, ad esempio alberi di categorie di prodotti o sistemi di classificazione, genera domande che chiedano al modello di spostarsi all'interno della gerarchia. Includi il contesto di classificazione nel prompt di 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." } ] } ] }
Modello 3: dai documenti procedurali al dialogo didattico
Se 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, prendi in considerazione l'utilizzo di RAG per fornire queste informazioni al momento dell'inferenza anziché affidarti esclusivamente a SFT per memorizzarle. L'SFT è più efficace per insegnare al modello il formato di risposta e lo schema di ragionamento, mentre RAG gestisce i fondamenti fattuali.
Esempi di formati di set di dati
I seguenti formati di set di dati di esempio forniscono una guida da seguire.
L’esempio seguente riguarda il fine-tuning personalizzato solo sul testo.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What is the capital of Mars?" } ] }, { "role": "assistant", "content": [ { "text": "Mars does not have a capital. Perhaps it will one day." } ] } ] }
L’esempio seguente riguarda il fine-tuning personalizzato sul testo e su una singola immagine.
// train.jsonl{ "schemaVersion": "bedrock-conversation-2024", "system": [{ "text": "You are a smart assistant that answers questions respectfully" }], "messages": [{ "role": "user", "content": [{ "text": "What does the text in this image say?" }, { "image": { "format": "png", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.png", "bucketOwner": "your-aws-account-id" } } } } ] }, { "role": "assistant", "content": [{ "text": "The text in the attached image says 'LOL'." }] } ] }
L’esempio seguente riguarda il fine-tuning personalizzato sul testo e sul video.
{ "schemaVersion": "bedrock-conversation-2024", "system": [{ "text": "You are a helpful assistant designed to answer questions crisply and to the point" }], "messages": [{ "role": "user", "content": [{ "text": "How many white items are visible in this video?" }, { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-video.mp4", "bucketOwner": "your-aws-account-id" } } } } ] }, { "role": "assistant", "content": [{ "text": "There are at least eight visible items that are white" }] } ] }
Vincoli dei set di dati
Amazon Nova applica i seguenti vincoli alle personalizzazioni dei modelli per i modelli di comprensione.
Modello |
Numero minimo di campioni |
Numero massimo di campioni |
Lunghezza del contesto |
|---|---|---|---|
Amazon Nova Micro |
8 |
20.000 |
32.000 |
Amazon Nova Lite |
8 |
20.000 |
32.000 |
Amazon Nova Pro |
8 |
20.000 |
32.000 |
Numero massimo di immagini |
10/sample |
Dimensione massima dei file di immagine |
10 MB |
Numero massimo di video |
1/sample |
Video massimo length/duration |
90 secondi |
Dimensione massima dei file video |
50 MB |
Formati multimediali supportati
-
Immagine:
png,jpeg,gif,webp -
Video:
mov,mkv,mp4,webm