Ajusta con precisión Nova 2.0 - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ajusta con precisión Nova 2.0

Requisitos previos

Antes de empezar un trabajo de entrenamiento, tenga en cuenta lo siguiente.

  • Buckets de Amazon S3 para almacenar sus datos de entrada y la salida de los trabajos de entrenamiento. Puede utilizar un bucket para ambos o buckets separados para cada tipo de datos. Asegúrese de que sus cubos estén en el mismo Región de AWS lugar donde creó todos los demás recursos de formación. Para obtener más información, consulte Creación de un bucket de uso general.

  • Un rol de IAM con permisos para ejecutar un trabajo de entrenamiento. Asegúrese de asociar una política de IAM con AmazonSageMakerFullAccess. Para obtener más información, consulte Cómo utilizar las funciones de SageMaker ejecución.

  • Fórmulas básicas de Amazon Nova, consulte Obtención de fórmulas de Amazon Nova.

¿Qué es SFT?

El ajuste fino supervisado (SFT) entrena un modelo de lenguaje mediante pares de entrada y salida etiquetados. El modelo aprende a partir de ejemplos de demostración que consisten en indicaciones y respuestas, y perfecciona sus capacidades para alinearlas con tareas, instrucciones o comportamientos deseados específicos.

Preparación de datos

Descripción general de

Los datos SFT de Nova 2.0 utilizan el mismo formato de API de Converse que Nova 1.0, con la adición de campos de contenido de razonamiento opcionales. Para ver las especificaciones de formato completas, consulte:

Características admitidas

  • Tipos de entrada: texto, imagen o vídeo en bloques de contenido de usuario

  • Contenido de asistente: respuestas y contenido de razonamiento solo de texto

  • Composición del conjunto de datos: debe ser homogéneo. Elija una de las siguientes opciones:

    • Giros de solo texto

    • Giros de texto e imagen

    • El texto y el vídeo giran (facilita la comprensión de los documentos)

importante

No se pueden mezclar imágenes y vídeos en el mismo conjunto de datos ni en turnos diferentes.

Limitaciones actuales

  • Contenido de razonamiento multimodal: aunque el formato Converse admite contenido de razonamiento basado en imágenes, Nova 2.0 SFT solo admite contenido de razonamiento basado en texto en el campo ReasoningText.

  • Conjuntos de validación: con Nova 2.0 no se puede proporcionar un conjunto de datos de validación para SFT. Si proporciona un conjunto de datos de validación, se ignorará durante el entrenamiento. Esta limitación se aplica tanto a las solicitudes de trabajo basadas en la interfaz de usuario como a las programáticas.

Formatos multimedia compatibles

  • Imágenes: PNG, JPEG, GIF

  • Vídeos: MOV, MKV, MP4

Ejemplos de formatos de datos

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" } ] } ] }

Llamada a herramientas

Nova 2.0 SFT admite modelos de entrenamiento sobre patrones de uso de herramientas, lo que le permite a su modelo aprender cuándo y cómo invocar herramientas o funciones externas.

Formato de datos para la llamada a herramientas

Los datos de capacitación sobre las llamadas con herramientas incluyen una toolConfig sección que define las herramientas disponibles, junto con turnos de conversación que muestran los patrones de uso de las herramientas.

Ejemplo de entrada

{ "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?" } ] } ] }

Requisitos de uso de herramientas

A la hora de crear los datos de formación sobre llamadas desde herramientas, sigue estos requisitos:

Requisito Description (Descripción)
ToolUse colocación ToolUse debe aparecer únicamente en los turnos de asistente
ToolResult colocación ToolResult debe aparecer únicamente en los turnos de los usuarios
ToolResult formato ToolResult debe ser solo texto o JSON. Los modelos Nova no admiten otras modalidades
Formato de esquema de entrada El InputSchema del ToolSpec debe ser un objeto de esquema JSON válido
toolUseId coincidente Cada uno ToolResult debe hacer referencia a un asistente válido toolUseId de uno anterior ToolUse, y cada uno debe toolUseId usarse exactamente una vez por conversación

Notas importantes

  • Asegúrese de que las definiciones de las herramientas sean coherentes en todos los ejemplos de formación

  • El modelo aprende los patrones de invocación de las herramientas a partir de las demostraciones que usted proporciona

  • Incluya diversos ejemplos de cuándo usar cada herramienta y cuándo no usarla

Comprensión de documentos

Nova 2.0 SFT apoya la formación sobre tareas basadas en documentos, lo que permite a su modelo aprender a analizar y responder a las preguntas sobre los documentos PDF.

Formato de datos para la comprensión de los documentos

Los datos de formación sobre la comprensión de documentos incluyen referencias a los documentos en los bloques de contenido del usuario, y el modelo aprende a extraer y razonar sobre el contenido del documento.

Ejemplo de entrada

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

Limitaciones de comprensión de documentos

Limitación Details
Formato compatible Solo archivos PDF
Tamaño máximo del documento 10 MB
Modalidad: mezcla Una muestra puede tener documentos y texto, pero no puede tener documentos mezclados con otras modalidades (imágenes, vídeos)

Mejores prácticas para la comprensión de los documentos

  • Asegúrese de que los documentos tengan un formato claro y que el texto sea extraíble

  • Proporcione diversos ejemplos que abarquen diferentes tipos de documentos y formatos de preguntas

  • Incluya contenido de razonamiento para ayudar al modelo a aprender los patrones de análisis de documentos

Comprensión de videos

Nova 2.0 SFT apoya la formación en tareas basadas en vídeo, lo que permite que su modelo aprenda a analizar y responder a preguntas sobre el contenido de vídeo.

Formato de datos para la comprensión del vídeo

Los datos de formación sobre comprensión por vídeo incluyen referencias de vídeo en los bloques de contenido del usuario, y el modelo aprende a extraer información y razonar sobre el contenido del vídeo.

Ejemplo de entrada

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

Limitaciones de la comprensión de video

Limitación Details
Tamaño máximo de vídeo 50 MB
Duración máxima del vídeo 15 minutos
Vídeos por muestra Solo se permite un vídeo por muestra. No se admiten varios vídeos en la misma muestra
Modalidad de mezcla Una muestra puede tener vídeo y texto, pero no puede combinarse el vídeo con otras modalidades (imágenes, documentos)

Formatos de vídeo compatibles

  • MOV

  • MKV

  • MP4

Prácticas recomendadas para comprender el vídeo

  • Mantén los vídeos concisos y centrados en el contenido relevante para tu tarea

  • Asegúrese de que la calidad del vídeo sea suficiente para que el modelo extraiga información significativa

  • Proporcione preguntas claras que hagan referencia a aspectos específicos del contenido del vídeo

  • Incluye diversos ejemplos que abarquen diferentes tipos de vídeo y formatos de preguntas

Modos de razonamiento frente a modos de no razonar

Comprender el contenido del razonamiento

El contenido de razonamiento (también denominado chain-of-thought) captura los pasos intermedios del pensamiento del modelo antes de generar una respuesta final. assistantA su vez, usa el reasoningContent campo para incluir estas pistas de razonamiento.

¿Cómo se calcula la pérdida

  • Con contenido de razonamiento: la pérdida por entrenamiento incluye tanto las fichas de razonamiento como las de resultado final

  • Sin contenido razonado: la pérdida de entrenamiento se calcula únicamente sobre las fichas de producción final

Puedes incluir reasoningContent varios turnos de asistente en conversaciones de varios turnos.

Pautas de formato

  • Usa texto plano para razonar el contenido

  • Evite las etiquetas de marcado como <thinking> y </thinking> a menos que su tarea lo requiera específicamente

  • Asegúrese de que el contenido del razonamiento sea claro y relevante para el proceso de resolución de problemas

¿Cuándo activar el modo de razonamiento

Establece reasoning_enabled: true tu configuración de entrenamiento cuando:

  • Tus datos de entrenamiento tienen símbolos de razonamiento

  • Quieres que el modelo genere señales de reflexión antes de producir los resultados finales

  • Necesita mejorar el rendimiento en tareas de razonamiento complejas

Se permite entrenar a Nova con un conjunto de datos que no reasoning_enabled = true sea racional. Sin embargo, hacerlo puede provocar que el modelo pierda sus capacidades de razonamiento, ya que Nova aprende principalmente a generar las respuestas presentadas en los datos sin aplicar el razonamiento. Si quieres entrenar a Nova con un conjunto de datos que no razona, pero aun así esperas razonar durante la inferencia, puedes deshabilitar el razonamiento durante el entrenamiento (reasoning_enabled = false) pero habilitarlo para la inferencia. Si bien este enfoque permite utilizar el razonamiento en el momento de la inferencia, no garantiza un rendimiento mejorado en comparación con la inferencia sin razonamiento. En general, habilite el razonamiento tanto para el entrenamiento como para la inferencia cuando utilice conjuntos de datos de razonamiento y desactívelo para ambos cuando utilice conjuntos de datos que no razonan.

Establece cuándo: reasoning_enabled: false

  • Tus datos de entrenamiento no tienen indicadores de razonamiento

  • Te estás entrenando en tareas sencillas que no se benefician de pasos de razonamiento explícitos

  • Quieres optimizar la velocidad y reducir el uso de fichas

Generar datos de razonamiento

Si su conjunto de datos carece de trazas de razonamiento, puede crearlas utilizando un modelo con capacidad de razonamiento como Nova Premier. Proporcione sus pares de entrada-salida al modelo y capture su proceso de razonamiento para crear un conjunto de datos con razonamiento aumentado.

Uso de fichas de razonamiento para el entrenamiento

Cuando se entrena con el modo de razonamiento activado, el modelo aprende a separar el razonamiento interno de la respuesta final. El proceso de formación:

  • Organiza los datos en tres grupos: entrada, razonamiento y respuesta

  • Optimiza el uso de la pérdida de predicción estándar del siguiente token, tanto en el token de razonamiento como en el de respuesta

  • Alienta al modelo a razonar internamente antes de generar respuestas

Contenido de razonamiento efectivo

El contenido de razonamiento de alta calidad debe incluir:

  • Pensamientos y análisis intermedios

  • Deducciones lógicas y pasos de inferencia

  • Step-by-step enfoques de resolución de problemas

  • Conexiones explícitas entre los pasos y las conclusiones

Esto ayuda al modelo a desarrollar la capacidad de «pensar antes de responder».

Directrices de preparación del conjunto de datos

Tamaño y calidad

  • Tamaño recomendado: entre 2.000 y 10.000 muestras

  • Muestras mínimas: 200

  • Prioridad: calidad por encima de cantidad. Asegúrese de que los ejemplos sean precisos y estén bien anotados

  • Alineación de aplicaciones: el conjunto de datos debe reflejar de cerca sus casos de uso de producción

Diversidad

Incluya diversos ejemplos que:

  • Cubra la gama completa de entradas esperadas

  • Representa diferentes niveles de dificultad

  • Incluye casos extremos y variaciones

  • Evite el sobreajuste a patrones estrechos

Formateo de salida

Especifique claramente el formato de salida deseado en las respuestas del asistente:

  • estructuras JSON

  • Tablas

  • formato CSV

  • Formatos personalizados específicos para su aplicación

Conversaciones de varios turnos

Para conjuntos de datos de varias vueltas, recuerde:

  • La pérdida se calcula solo en los turnos del asistente, no en los del usuario

  • La respuesta de cada asistente debe tener el formato correcto

  • Mantenga la coherencia en todos los turnos de conversación

Lista de control de calidad

  • Tamaño de conjunto de datos suficiente (entre 2 000 y 10 000 muestras)

  • Diversos ejemplos que cubren todos los casos de uso

  • Formato de salida claro y coherente

  • Etiquetas y anotaciones precisas

  • Representativo de los escenarios de producción

  • Libre de contradicciones o ambigüedades

Cargar los datos

Los conjuntos de datos deben cargarse en un depósito al que se pueda acceder mediante SageMaker trabajos de formación. Para obtener información sobre cómo configurar los permisos correctos, consulte Requisitos previos.

Comenzar un trabajo de formación

Selección de hiperparámetros y actualización de la receta

La configuración de Nova 2.0 es prácticamente la misma que la de Nova 1.0. Una vez que los datos de entrada se hayan cargado en S3, utilice la receta de SageMaker Hyperpod Recipes, en la carpeta de ajustes precisos. En el caso de Nova 2.0, los siguientes son algunos de los hiperparámetros clave que puede actualizar en función del caso de uso. El siguiente es un ejemplo de la receta Nova 2.0 SFT PEFT.

Utilice la versión 2.254.1 de SageMaker PySDK para garantizar una compatibilidad estricta con la formación de Nova. La actualización del SDK a la versión 3.0 provocará cambios importantes. El soporte para la versión 3 de SageMaker PySDK estará disponible próximamente.

Ejemplo de entrada

!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 receta también contiene en gran medida los mismos hiperparámetros que Nova 1.0. Los hiperparámetros más destacables son:

  • max_steps— El número de pasos durante los que desea ejecutar el trabajo. Por lo general, para una época (una revisión de todo el conjunto de datos), el número de pasos es igual al número de muestras de datos o al tamaño del lote global. Cuanto mayor sea el número de pasos y menor sea el tamaño del lote global, más tardará en ejecutarse el trabajo.

  • reasoning_enabled— Controla el modo de razonamiento de su conjunto de datos. Opciones:

    • true: Habilita el modo de razonamiento (equivalente a un razonamiento alto)

    • false: Desactiva el modo de razonamiento

    Nota: En el caso de la SFT, no existe un control detallado sobre los niveles de esfuerzo de razonamiento. reasoning_enabled: trueLa configuración permite una capacidad de razonamiento completa.

  • peft.peft_scheme— Si se establece en «lora», se permite un ajuste preciso basado en PEFT. Si se establece en nulo (sin comillas), se permite un ajuste preciso de rango completo.

Comience el trabajo de formación

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

No se admite la aprobación de un conjunto de datos de validación para el ajuste supervisado de Nova 2.0.

Para empezar el trabajo:

  • Actualice la receta con las rutas e hiperparámetros de su conjunto de datos

  • Ejecute las celdas especificadas en el cuaderno para enviar el trabajo de formación

El cuaderno gestiona el envío de los trabajos y proporciona un seguimiento del estado.