Ottimizza Nova 2.0 - Amazon SageMaker AI

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à.

Ottimizza Nova 2.0

Prerequisiti

Prima di avviare un job di addestramento, verifica i seguenti requisiti.

  • Bucket Amazon S3 per archiviare i dati di input e output dei job di addestramento. È possibile utilizzare un bucket per entrambi o bucket distinti per ogni tipo di dati. Assicurati che i tuoi bucket siano gli stessi in Regione AWS cui crei tutte le altre risorse per la formazione. Per ulteriori informazioni, consulta Creating a general purpose bucket.

  • Un ruolo IAM con autorizzazioni per eseguire un job di addestramento. Assicurati di collegare una policy IAM con AmazonSageMakerFullAccess. Per ulteriori informazioni, consulta Come utilizzare i ruoli di SageMaker esecuzione.

  • Ricette base di Amazon Nova; consulta Recupero di ricette Amazon Nova.

Che cos'è SFT?

Il Supervised Fine-Tuning (SFT) addestra un modello linguistico utilizzando coppie di input-output etichettate. Il modello apprende da esempi dimostrativi costituiti da suggerimenti e risposte, perfezionando le proprie capacità per allinearsi a attività, istruzioni o comportamenti desiderati specifici.

Preparazione dei dati

Panoramica di

I dati SFT di Nova 2.0 utilizzano lo stesso formato API Converse di Nova 1.0, con l'aggiunta di campi di contenuto opzionali di ragionamento. Per le specifiche complete del formato, consulta:

Funzionalità supportate

  • Tipi di input: testo, immagine o video nei blocchi di contenuti utente

  • Contenuti dell'assistente: risposte di solo testo e contenuti di ragionamento

  • Composizione del set di dati: deve essere omogenea. Scegli una delle seguenti opzioni:

    • Turni di solo testo

    • Testo + giri di immagini

    • Svoltare testo e video (supporta la comprensione dei documenti)

Importante

Non è possibile combinare immagini e video all'interno dello stesso set di dati o in turni diversi.

Limitazioni attuali

  • Contenuto di ragionamento multimodale: sebbene il formato Converse supporti contenuti di ragionamento basati su immagini, Nova 2.0 SFT supporta solo contenuti di ragionamento basati su testo nel campo ReasoningText.

  • Set di convalida: non è possibile fornire un set di dati di convalida per SFT con Nova 2.0. Se fornite un set di dati di convalida, questo viene ignorato durante l'addestramento. Questa limitazione si applica sia agli invii di lavoro basati sull'interfaccia utente che a quelli programmatici.

Formati multimediali supportati

  • Immagini: PNG, JPEG, GIF

  • Video: MOV, MKV, MP4

Esempi di formati di dati

Text-only (Nova 1.0 compatible)
{ "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" } ] } ] }
Text with reasoning (Nova 2.0)
{ "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." } ] } ] }
Image + text 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": [ { "reasoningContent": { "reasoningText": { "text": "I will determine the highlighted country by examining its location on the map and using my geographical knowledge" } } }, { "text": "The highlighted country is New Zealand" } ] } ] }
Video + text input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-video.mp4", "bucketOwner": "your-aws-account-id" } } } }, { "text": "What is shown in this video?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I will analyze the video content to identify key elements" } } }, { "text": "The video shows a map with New Zealand highlighted" } ] } ] }

Chiamata di strumenti

Nova 2.0 SFT supporta modelli di addestramento sui modelli di chiamata degli strumenti, consentendo al modello di apprendere quando e come richiamare strumenti o funzioni esterni.

Formato dati per la chiamata degli strumenti

I dati di addestramento sulla chiamata agli strumenti includono una toolConfig sezione che definisce gli strumenti disponibili, oltre a turni di conversazione che mostrano i modelli di utilizzo degli strumenti.

Esempio di input

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemCost", "description": "Retrieve the cost of an item from the catalog", "inputSchema": { "json": { "type": "object", "properties": { "item_name": { "type": "string", "description": "The name of the item to retrieve cost for" }, "item_id": { "type": "string", "description": "The ASIN of item to retrieve cost for" } }, "required": [ "item_id" ] } } } }, { "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": [ { "reasoningContent": { "reasoningText": { "text": "The user wants to check how many pieces of the item with ASIN id-123 are available in the zipcode 94086" } } }, { "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?" } ] } ] }

Requisiti di chiamata degli strumenti

Quando create dati di addestramento per le chiamate agli strumenti, attenetevi ai seguenti requisiti:

Requisito Description
ToolUse collocamento ToolUse deve apparire solo nei turni degli assistenti
ToolResult collocamento ToolResult deve apparire solo nei turni degli utenti
ToolResult formato ToolResult deve essere solo testo o JSON. Altre modalità non sono supportate per i modelli Nova
Formato InputSchema L'inputSchema all'interno di ToolSpec deve essere un oggetto Schema JSON valido
toolUseId corrispondente Ciascuno ToolResult deve fare riferimento a un assistente valido toolUseId di un precedente ToolUse, e ognuno deve toolUseId essere usato esattamente una volta per conversazione

Note importanti

  • Assicurati che le definizioni degli strumenti siano coerenti in tutti gli esempi di formazione

  • Il modello apprende i modelli di invocazione degli strumenti dalle dimostrazioni fornite

  • Includi diversi esempi di quando usare ogni strumento e quando non usare gli strumenti

Comprensione dei documenti

Nova 2.0 SFT supporta la formazione sulle attività basate su documenti, consentendo al modello di imparare ad analizzare e rispondere alle domande sui documenti PDF.

Formato dei dati per la comprensione dei documenti

I dati di formazione sulla comprensione dei documenti includono riferimenti ai documenti nei blocchi di contenuti utente, mentre il modello impara a estrarre e ragionare sul contenuto del documento.

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?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the document to answer the question.", "type": "text" } ] } ] }

Limiti alla comprensione dei documenti

Limitazione Informazioni
Formato supportato Solo file PDF
Dimensione massima del documento 10 MB
Miscelazione delle modalità Un campione può contenere documenti e testo, ma non può contenere documenti mescolati con altre modalità (immagini, video)

Le migliori pratiche per la comprensione dei documenti

  • Assicurati che i documenti siano formattati in modo chiaro e che il testo sia estraibile

  • Fornisci diversi esempi che coprono diversi tipi di documenti e formati di domande

  • Includi contenuti di ragionamento per aiutare il modello ad apprendere i modelli di analisi dei documenti

Comprensione dei video

Nova 2.0 SFT supporta la formazione sulle attività basate su video, consentendo al modello di imparare ad analizzare e rispondere alle domande sui contenuti video.

Formato dei dati per la comprensione dei video

I dati di formazione sulla comprensione dei video includono riferimenti video nei blocchi di contenuti utente, mentre il modello impara a estrarre informazioni e ragionare sui contenuti video.

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?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the video to answer the question.", "type": "text" } ] } ] }

Limitazioni sulla comprensione dei video

Limitazione Informazioni
Dimensione massima del video 50 MB
Durata massima del video 15 minuti
Video per campione È consentito un solo video per campione. Non sono supportati più video nello stesso campione
Miscelazione delle modalità Un campione può contenere video e testo, ma non può combinare video con altre modalità (immagini, documenti)

Formati video supportati

  • MOV

  • MKV

  • MP4

Le migliori pratiche per la comprensione dei video

  • Mantieni i video concisi e incentrati 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 dei contenuti video

  • Includi diversi esempi che coprono diversi tipi di video e formati di domande

Modalità di ragionamento e non ragionamento

Comprensione del contenuto del ragionamento

Il contenuto del ragionamento (chiamato anche chain-of-thought) cattura le fasi di pensiero intermedie del modello prima di generare una risposta finale. A assistant sua volta, usa il reasoningContent campo per includere queste tracce di ragionamento.

Come viene calcolata la perdita

  • Con contenuto 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

Puoi includere più turni di assistente reasoningContent in conversazioni a turni multipli.

Linee guida per la formattazione

  • Usa testo semplice per ragionare i contenuti

  • Evita i tag di markup come <thinking> e </thinking> a meno che non siano specificamente richiesti dalla tua attività

  • Assicurati che il contenuto del ragionamento sia chiaro e pertinente al processo di risoluzione dei problemi

Quando abilitare la modalità di ragionamento

Imposta reasoning_enabled: true nella configurazione di allenamento quando:

  • I tuoi dati di allenamento contengono token di ragionamento

  • Volete che il modello generi token di pensiero prima di produrre gli output finali

  • È necessario migliorare le prestazioni in attività di ragionamento complesse

È consentito addestrare Nova su un set di dati non ragionevoli con. reasoning_enabled = true Tuttavia, così facendo il modello potrebbe perdere le sue capacità di ragionamento, poiché Nova impara principalmente a generare le risposte presentate nei dati senza applicare il ragionamento. Se vuoi addestrare Nova su un set di dati non ragionante ma ti aspetti comunque un ragionamento durante l'inferenza, puoi disabilitare il ragionamento durante l'addestramento () ma abilitarlo per l'inferenza. reasoning_enabled = false Sebbene questo approccio consenta di utilizzare il ragionamento in fase di inferenza, non garantisce prestazioni migliori rispetto all'inferenza senza 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.

Imposta quando: reasoning_enabled: false

  • I tuoi dati di allenamento non dispongono di token di ragionamento

  • Ti stai allenando su attività semplici che non traggono vantaggio da passaggi di ragionamento espliciti

  • Vuoi ottimizzare la velocità e ridurre l'utilizzo dei token

Generazione di dati di ragionamento

Se il tuo set di dati non contiene tracce di ragionamento, puoi crearle utilizzando un modello in grado di ragionare come Nova Premier. Fornisci le tue coppie di input-output al modello e acquisisci il relativo processo di ragionamento per creare un set di dati basato sul ragionamento.

Utilizzo di token di ragionamento per la formazione

Quando si allena con la modalità di ragionamento abilitata, il modello impara a separare il ragionamento interno dalla risposta finale. Il processo di formazione:

  • Organizza i dati in tre parti: input, ragionamento e risposta

  • Ottimizza l'utilizzo della previsione standard del token successivo (perdita derivante sia dai token di ragionamento che da quelli di risposta)

  • Incoraggia il modello a ragionare internamente prima di generare risposte

Contenuti di ragionamento efficaci

I contenuti di ragionamento di alta qualità dovrebbero includere:

  • Pensieri e analisi intermedi

  • Deduzioni logiche e fasi di inferenza

  • Step-by-step approcci per la risoluzione dei problemi

  • Connessioni esplicite tra fasi e conclusioni

Questo aiuta il modello a sviluppare la capacità di «pensare prima di rispondere».

Linee guida per la preparazione dei dataset

Dimensioni e qualità

  • Dimensione consigliata: 2.000-10.000 campioni

  • Campioni minimi: 200

  • Priorità: qualità rispetto alla quantità. Assicurati che gli esempi siano accurati e ben annotati

  • Allineamento delle applicazioni: il set di dati deve rispecchiare fedelmente i casi d'uso in produzione

Diversità

Includi diversi esempi che:

  • Copre l'intera gamma di input previsti

  • Rappresenta diversi livelli di difficoltà

  • Includi casi limite e varianti

  • Evita l'eccessivo adattamento a modelli ristretti

Formattazione dell'output

Specificate chiaramente il formato di output desiderato nelle risposte dell'assistente:

  • Strutture JSON

  • Tabelle

  • Formato CSV

  • Formati personalizzati specifici per la tua applicazione

Conversazioni a più turni

Per set di dati a turni multipli, ricorda:

  • La perdita viene calcolata solo in base ai turni degli assistenti, non ai turni degli utenti

  • Ogni risposta dell'assistente deve essere formattata correttamente

  • Mantieni la coerenza nei turni di conversazione

Lista di controllo della qualità

  • Dimensioni sufficienti del set di dati (campioni da 2K-10K)

  • Diversi esempi che coprono tutti i casi d'uso

  • Formattazione di output chiara e coerente

  • Etichette e annotazioni accurate

  • Rappresentante degli scenari di produzione

  • Liberi da contraddizioni o ambiguità

Caricamento dei dati

I set di dati devono essere caricati in un bucket accessibile dai corsi di formazione. SageMaker Per informazioni sull'impostazione delle autorizzazioni corrette, consulta Prerequisiti.

Avvio di un lavoro di formazione

Selezione degli iperparametri e aggiornamento della ricetta

La configurazione di Nova 2.0 è in gran parte la stessa di Nova 1.0. Una volta caricati i dati di input su S3, usa la ricetta di SageMaker Hyperpod Recipes nella cartella Fine tuning. Per Nova 2.0, di seguito sono riportati alcuni degli iperparametri chiave che è possibile aggiornare in base al caso d'uso. Di seguito è riportato un esempio della ricetta Nova 2.0 SFT PEFT.

Utilizza la versione 2.254.1 di PySDK per una stretta compatibilità con la SageMaker formazione Nova. L'aggiornamento dell'SDK alla versione v3.0 comporterà modifiche sostanziali. Il supporto per la v3 di SageMaker PySDK sarà presto disponibile.

Esempio di input

!pip install sagemaker==2.254.1
run: name: {peft_recipe_job_name} model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: {peft_model_name_or_path} data_s3_path: {train_dataset_s3_path} # SageMaker Hyperpod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: "" # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job training_config: max_steps: 10 # Maximum training steps. Minimal is 4. save_steps: 10 # How many training steps the checkpoint will be saved. Should be less than or equal to max_steps save_top_k: 1 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0

La ricetta contiene anche in gran parte gli stessi iperparametri di Nova 1.0. Gli iperparametri importanti sono:

  • max_steps— Il numero di passaggi per i quali si desidera eseguire il processo. In genere, per un'epoca (una analisi dell'intero set di dati), il numero di passaggi = numero di campioni di dati/dimensione globale del batch. Maggiore è il numero di passaggi e minore è la dimensione del batch globale, maggiore sarà il tempo necessario per l'esecuzione del processo.

  • reasoning_enabled— Controlla la modalità di ragionamento per il set di dati. Opzioni:

    • true: abilita la modalità di ragionamento (equivalente al ragionamento elevato)

    • false: disabilita la modalità di ragionamento

    Nota: per SFT, non esiste un controllo granulare sui livelli di sforzo di ragionamento. L'impostazione reasoning_enabled: true consente la piena capacità di ragionamento.

  • peft.peft_scheme— L'impostazione su «lora» consente la regolazione fine basata su PEFT. L'impostazione su null (senza virgolette) abilita la regolazione fine Full-Rank.

Inizia il lavoro di formazione

from sagemaker.pytorch import PyTorch # define OutputDataConfig path if default_prefix: output_path = f"s3://{bucket_name}/{default_prefix}/{sm_training_job_name}" else: output_path = f"s3://{bucket_name}/{sm_training_job_name}" recipe_overrides = { "run": { "replicas": instance_count, # Required "output_s3_path": output_path }, } estimator = PyTorch( output_path=output_path, base_job_name=sm_training_job_name, role=role, disable_profiler=True, debugger_hook_config=False, instance_count=instance_count, instance_type=instance_type, training_recipe=training_recipe, recipe_overrides=recipe_overrides, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, tags=[ {'Key': 'model_name_or_path', 'Value': model_name_or_path}, ] ) print(f"\nsm_training_job_name:\n{sm_training_job_name}\n") print(f"output_path:\n{output_path}")
from sagemaker.inputs import TrainingInput train_input = TrainingInput( s3_data=train_dataset_s3_path, distribution="FullyReplicated", s3_data_type="Converse", ) estimator.fit(inputs={"validation": val_input}, wait=False)
Nota

Il passaggio di un set di dati di convalida non è supportato per la regolazione fine supervisionata di Nova 2.0.

Per dare il via al lavoro:

  • Aggiorna la ricetta con i percorsi e gli iperparametri del set di dati

  • Esegui le celle specificate nel notebook per inviare il lavoro di formazione

Il notebook gestisce l'invio dei lavori e ne monitora lo stato.