Refinamiento supervisado
Introducción
El refinamiento supervisado utiliza un conjunto de datos con pares de entrada-salida para la tarea de interés. En otras palabras, se proporcionan ejemplos de peticiones (preguntas, instrucciones, etc.) junto con las respuestas correctas o deseadas y se usan para seguir entrenando el modelo. Las ponderaciones del modelo se ajustan para minimizar una pérdida supervisada, que suele ser una entropía cruzada entre sus predicciones y los tokens de respuesta objetivo.
¿Cuándo se debe usar SFT?
SFT es mejor cuando tiene una tarea bien definida con los resultados deseados claros. Si puede decir explícitamente “Con una entrada X, la salida correcta o deseada es Y” y puede recopilar ejemplos de este tipo de asignaciones X-Y, entonces el refinamiento supervisado es una buena opción. Algunos escenarios en los que el SFT sobresale son los siguientes:
-
Tareas de clasificación estructuradas o complejas: por ejemplo, clasificar los documentos internos o los contratos en muchas categorías personalizadas. Con el SFT, el modelo puede aprender estas categorías específicas mucho mejor que con peticiones por sí solas.
-
Tareas de respuesta a preguntas o de transformación con respuestas conocidas: por ejemplo, refinar un modelo para que responda a preguntas de la base de conocimientos de una empresa o convertir datos de un formato a otro, en el que cada entrada tenga una respuesta correcta.
-
Formato y estilo consistentes: si necesita que el modelo responda siempre en un formato o tono determinado, puede refinar los ejemplos del formato o tono correctos. Por ejemplo, si se entrena con pares de petición-respuesta que reflejan la voz o el estilo de una marca en particular, se puede enseñar al modelo a que use ese estilo en sus resultados. El comportamiento orientado al seguimiento de instrucciones suele enseñarse inicialmente con el SFT, usando ejemplos seleccionados que demuestran cómo debe comportarse un buen asistente.
El SFT es la forma más directa de enseñarle a un LLM una nueva habilidad o comportamiento cuando se puede especificar cuál es el comportamiento correcto. Aprovecha la comprensión lingüística existente del modelo y la centra en la tarea. No utilice el SFT cuando la brecha se deba al conocimiento y no al comportamiento; no hará que el modelo aprenda nuevos datos, jerga o eventos recientes. En esos casos, es preferible el entrenamiento previo continuo con grandes corpus propios del dominio o generación aumentada con recuperación para integrar conocimiento externo durante el proceso de inferencia. Si se puede medir la calidad, pero no se puede etiquetar una sola respuesta correcta, el refinamiento por refuerzo con recompensas verificables o con LLM como juez puede ser preferible en lugar del SFT.
En función de la complejidad de las tareas y del rendimiento del modelo de Nova sin necesidad de realizar ajustes, planifique entre miles y decenas de miles de demostraciones por tarea, en las que la calidad, la coherencia y la diversidad de los datos sean más importantes que el volumen bruto.
¿Cuándo usar un SFT que haga un uso eficiente de los parámetros y cuándo usar un SFT de rango completo?
Las fórmulas de personalización de Nova le permiten hacer un uso eficiente de los parámetros, en particular en el SFT LoRA o de rango completo. Si desea actualizar el modelo de forma sencilla y rentable, o si dispone de muy pocos datos, opte por métodos eficientes en cuanto a parámetros, de forma que se entrenen adaptadores pequeños y se deje intacta la mayor parte de la estructura básica (el SFT de rango completo actualiza todos los parámetros del modelo).
Mezcla de datos para el SFT
La mezcla de datos le permite combinar sus conjuntos de datos de entrenamiento personalizados con los datos de entrenamiento patentados de Nova. Esta característica está disponible para los modelos de Nova 1.0 y Nova 2.0.
Tipo de datos patentados de Nova: Nova admite tipos de datos multimodales y de texto para el SFT. Se organizan en varias categorías de datos, cada una de las cuales contiene una combinación de tareas relevantes para la categoría correspondiente.
Categorías de datos propias patentados de Nova: los conjuntos de datos de texto incluyen varias categorías, como: toma de decisiones autónoma, finalización de tareas, conjuntos de datos orientados a objetivos (agentes), conjuntos de datos de finalización de tareas precisas tanto con razonamiento como sin razonamiento (reasoning-instruction-following, instruction-following), secuencias que demuestran el pensamiento estratégico y el desglose paso a paso de tareas (planificación), IA responsable (rai), contexto largo, factualidad, matemáticas, STEM y muchas más. Del mismo modo, los conjuntos de datos multimodales incluyen video, captura de pantalla, gráficos y muchos más.
La característica de mezcla de datos le permite combinar sus propias muestras de entrenamiento con refinamiento con muestras de los conjuntos de datos de Nova que se utilizan para refinar el modelo de Nova. Esto puede evitar el sobreajuste en el entrenamiento personalizado y el “olvido catastrófico” de las capacidades de Nova, o ser de ayuda para desarrollar capacidades cuando entrene desde un nuevo punto de control previamente entrenado.
Para mezclar los datos de Nova, solo tiene que agregar un bloque data_mixing al archivo YAML de su fórmula, en la sección training_config. Los bloques de mezcla de datos de texto y multimodales tienen un contenido diferente, y los bloques de mezcla de datos son algo diferentes para Nova 1.0 y Nova 2.0. Consulte las fórmulas correspondientes.
Modelos compatibles
Nova 1.0 (Micro, Lite, Pro)
Nova 2.0 Lite
Modalidad admitida
Texto
Multimodal
Ejemplos de configuración de YAML
Ejemplo de bloque de mezcla de datos de texto en Nova 1.0
## Run config run: name: "my-lora-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path: "" # Customer data path output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: max_length: 32768 # Maximum context window size (tokens). global_batch_size: 64 # Global batch size, allowed values are 16, 32, 64 trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate peft: peft_scheme: "lora" # Enable LoRA for parameter-efficient fine-tuning lora_tuning: loraplus_lr_ratio: 8.0 # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0 alpha: 32 # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192 adapter_dropout: 0.01 # Regularization for LoRA parameters. Must be between 0.0 and 1.0 data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # science, technology, engineering, and mathematics content planning: 2 # sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # logical problem-solving and analytical thinking demonstrations rag: 1 # retrieval-augmented generation examples translation: 9 # language translation tasks
Ejemplo de configuración de Nova 2.0
run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl replicas: 4 output_s3_path: s3://my-bucket-name/outputs/ mlflow_tracking_uri: "" mlflow_experiment_name: "my-lora-sft-experiment" mlflow_run_name: "my-lora-sft-run" training_config: max_steps: 100 save_steps: 10 save_top_k: 5 max_length: 32768 global_batch_size: 32 reasoning_enabled: true lr_scheduler: warmup_steps: 15 min_lr: 1e-6 optim_config: lr: 1e-5 weight_decay: 0.0 adam_beta1: 0.9 adam_beta2: 0.95 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0
Mezcla de datos de texto de Nova 2.0
data_mixing: dataset_catalog: sft_1p5_text_chat sources: customer_data: percent: 50 nova_data: agents: 1 baseline: 10 chat: 0.5 code: 10 factuality: 0.1 identity: 1 long-context: 1 math: 2 rai: 1 instruction-following: 13 stem: 0.5 planning: 10 reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 translation: 0.1
Mezcla de datos multimodales de Nova 1.0
data_mixing: dataset_catalog: sft_mm sources: customer_data: percent: 50 nova_data: agents: 11 docs: 17 perception: 10 rag: 4 rai: 3 reasoning: 10 stem: 17 text: 10 video: 18
Mezcla de datos multimodales de Nova 2.0
data_mixing: dataset_catalog: sft_1p5_mm_chat sources: customer_data: percent: 50 nova_data: charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15
Puntos de control del modelo
Puntos de control de Nova 1.0
-
PRE-TRAINED [
nova-<micro/lite/pro>/pretraining-text-partial]: punto de control después de la etapa de aprendizaje constante del entrenamiento previo de Nova, en la que el modelo se entrena con billones de tokens de texto. [Resultado de la etapa 1] -
MID-TRAINED [
nova-<micro/lite/pro>/pretraining-text-full]: punto de control solo de texto una vez finalizadas todas las etapas del entrenamiento previo e intermedio de Nova con billones de tokens de texto. Use estos puntos de control si no quiere que el modelo vea ningún dato multimodal. [Resultado de la etapa 3] -
MID-TRAINED [
nova-<lite/pro>/pretraining-mm-full]: punto de control después de que se hayan procesado todas las etapas del entrenamiento previo e intermedio de Nova, incluidos los datos multimodales, con billones de tokens. [Resultado de la etapa 3 con datos multimodales] -
FINAL [
nova-<micro/lite/pro>/prod]: punto de control final totalmente adaptado que ha pasado por todas las etapas de entrenamiento previo y posterior. [Resultado de la etapa 4]
Puntos de control de Nova 2.0
-
PRE-TRAINED [
nova-lite-2/pretraining-text-RD]: punto de control tras el ritmo de aprendizaje constante y las etapas de reducción en las que el modelo se entrena con billones de tokens. [Resultado de la etapa 2] -
MID-TRAINED [
nova-lite-2/pretraining-text-CE]: permite a los clientes con volúmenes intermedios de datos no estructurados introducir sus datos con un ritmo de aprendizaje más conservador que el del entrenamiento previo, lo que permite integrar conocimiento específico del dominio y evitar el olvido catastrófico. [Resultado de la etapa 3] -
FINAL [
nova-lite-2/prod]: punto de control final totalmente adaptado que ha pasado por todas las etapas de entrenamiento previo y posterior. [Resultado de la etapa 4]
Etapas de entrenamiento:
Etapa 1: punto de control de entrenamiento previo, entrenamiento previo inicial con un ritmo de aprendizaje constante
Etapa 2: punto de control de entrenamiento previo, reducción del ritmo de aprendizaje
Etapa 3: punto de control de entrenamiento previo, entrenamiento con ampliación del contexto
Etapa 4: adaptación orientada al seguimiento de instrucciones y entrenamiento en seguridad
Estrategias de entrenamiento
| Tipo de datos | Volumen de datos | Realización | Con punto de control |
|---|---|---|---|
| Datos de dominio sin procesar no estructurados a gran escala (documentos, registros, artículos, código, etc.) | Más de 1 billón de tokens | Entrenamiento previo continuo | Fin del ritmo de aprendizaje constante (CLR) |
| Datos de dominio sin procesar no estructurados a gran escala | Más de 100 000 millones de tokens | Entrenamiento intermedio | Fin del CLR |
| Volúmenes más pequeños de datos sin procesar no estructurados; trazas de razonomiento estructurado y datos de CoT | Más de 1000 millones de tokens | Entrenamiento intermedio | Modelo base de Nova |
| Demostraciones estructuradas (pares de entradas y salidas de alta calidad, instrucciones de tareas seleccionadas, diálogos de varios turnos) | Más de 1000 ejemplos | Refinamiento supervisado (SFT) | Modelo base de Nova |
Requisitos previos antes de empezar
-
Supongamos que ya configuró un clúster de SMHP con un grupo de instancias restringido (RIG) que tiene capacidad activa. De lo contrario, consulte aquí para completar la configuración del clúster y el RIG de SMHP [enlace a la documentación, enlace al taller
] -
Necesitará instancias de EC2 p5.48xlarge para usar esta fórmula. El número mínimo de instancias necesario para usar esta fórmula de manera eficiente es el siguiente:
Nova Lite 2.0: 4 p5.48xlarge
Nova Lite 1.0: 4 p5.48xlarge
Nova Micro 1.0: 4 p5.48xlarge
Nova Pro 1.0: 6 p5.48xlarge
-
Instale la CLI de SageMaker HyperPod específica de Forge siguiendo estas instrucciones
. -
Confirme que puede conectarse al clúster mediante
hyperpod get-clusters.Tenga en cuenta que este comando mostrará una lista de todos los clústeres de SMHP de su cuenta.
-
Confirme que sus datos de entrenamiento y, opcionalmente, de validación, estén disponibles en un bucket de S3 al que pueda acceder el rol de puesta en marcha de su clúster de SMHP. Para la preparación de los datos, consulte la siguiente sección.
-
Complete la configuración. Si no ha completado la configuración, siga esta guía.
-
Verificación: después de completar la configuración, confirme que puede usar correctamente los siguientes comandos:
aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region> hyperpod connect-cluster --cluster-name cluster-name
Un enfoque sistemático para lograr un SFT exitoso
-
Preparación de datos: siga las pautas establecidas para crear, limpiar o reformatear conjuntos de datos para adaptarlos a la estructura requerida. Asegúrese de que las entradas, las salidas y la información auxiliar (como las pistas de razonamiento o los metadatos) estén adaptadas y formateadas correctamente.
-
Configuración del entrenamiento: defina cómo se entrenará el modelo. Cuando se usa Amazon SageMaker HyperPod, esta configuración se escribe en un archivo de fórmulas YAML que incluye:
Rutas de orígenes de datos (conjuntos de datos de entrenamiento y validación)
Hiperparámetros clave (número de pasos de entrenamiento, ritmo de aprendizaje, tamaño del lote)
Componentes opcionales (parámetros de entrenamiento distribuidos, etc.)
Configuración de mezcla de datos (define las proporciones de las categorías de datos de clientes y Nova)
-
Optimización de los hiperparámetros del SFT: los valores de los parámetros de la fórmula del SFT que recomendamos son un buen punto de partida y una opción sólida. Si desea optimizarlos aún más para su caso de uso, lleve a cabo varios SFT con diferentes combinaciones de parámetros y elija la mejor. Puede seleccionar combinaciones de parámetros siguiendo el método de optimización de hiperparámetros que prefiera. Un enfoque sencillo consiste en variar el valor de un parámetro (predeterminado * 0,5, predeterminado, predeterminado * 2) y conservar el otro valor predeterminado para los demás parámetros; repita esta operación para cada parámetro que desee optimizar e iterar si es necesario. Los parámetros más relevantes para LoRA son el ritmo de aprendizaje, el alfa (parámetro de escalado), el número de épocas que se debe entrenar y los pasos de preparación; en el caso del rango completo, los principales son el ritmo de aprendizaje, el número de épocas y los pasos de preparación.
Experimentación con el orden y la mezcla de datos
-
Si solo tiene datos del SFT (entrenamiento/desarrollo/pruebas) para un conjunto de tareas y solo le importa el rendimiento de las pruebas en estas tareas:
Lleve a cabo el SFT sin mezclar en el punto de control [FINAL] de Nova. Utilice los hiperparámetros del SFT predeterminados y, si lo desea, optimícelos para su caso de uso. Supervise las métricas de validación p evalúe los puntos de control intermedios para conjuntos de datos más grandes.
-
Si solo tiene datos del SFT (entrenamiento/desarrollo/pruebas) para un conjunto de tareas y le importa el rendimiento de las pruebas en estas tareas y las pruebas comparativas generales en el ámbito de interés:
Comience por llevar a cabo el SFT con la mezcla de datos de Nova en un punto de control de entrenamiento previo (punto de control PRE-TRAINED o MID-TRAINED, no FINAL). El uso de un punto de control intermedio permite al modelo integrar mejor sus datos personalizados con los datos patentados de Nova y, al mismo tiempo, conservar unas buenas capacidades generales.
Realice sesiones de entrenamiento con SFT más cortas con una cantidad variable de datos de Nova (por ejemplo, el 10 %, el 25 %, el 50 % o el 75 %) y selecciones de categorías de datos de Nova que complementen su caso de uso (por ejemplo, elija la categoría de seguimiento de instrucciones si le interesa la habilidad de seguir instrucciones generales). Supervise las métricas de validación y evalúe si la mezcla mejora el rendimiento en las pruebas comparativas generales. Seleccione la combinación de entrenamiento y el punto de control que logren el mejor rendimiento, tanto en general como para una tarea específica. Según el caso de uso, tanto el rendimiento general como el específico para ciertas tareas se pueden mejorar aún más mediante el refinamiento por refuerzo (RFT).
Preparación del conjunto de datos para el SFT
Nova 1.0: la preparación de datos se describe en https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html
Nova 2.0: utilice el formato de la API Converse como en Nova 1.0 https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html. El formato de datos de Nova 2.0 puede contener campos de razonamiento adicionales: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html
El contenido de razonamiento captura los pasos de pensamiento intermedios del modelo antes de generar una respuesta final. En el turno de assistant, use el campo reasoningContent para incluir los rastros de razonamiento. Use texto sin formato para el contenido de razonamiento, evite las etiquetas de marcado como <thinking> y </thinking> (a menos que la tarea las requiera específicamente) y asegúrese de que el contenido de razonamiento sea claro y relevante para el proceso de resolución de problemas.
Kit de herramientas de IA responsable y moderación de contenido
Configuración de moderación de contenido: los clientes de Nova Forge tienen acceso a la configuración de moderación de contenido personalizable (CCMS) para los modelos de Nova Lite 1.0 y Pro 1.0. La CCMS le permite ajustar los controles de moderación de contenido para adaptarlos a sus requisitos empresariales específicos y, al mismo tiempo, mantener las medidas de protección esenciales y específicas de la IA responsable. Para determinar si su caso de uso empresarial cumple los requisitos de la CCMS, póngase en contacto con su administrador de cuentas de Amazon Web Services.
Nova Forge proporciona un kit de herramientas de IA responsable que incluye datos de entrenamiento, pruebas comparativas de evaluación y controles de tiempo de ejecución para que sus modelos se adhieran a las directrices de IA responsable de Nova.
Datos de entrenamiento: la categoría “RAI” de mezcla de datos incluye casos y escenarios que hacen hincapié en los principios de la IA responsable, los aspectos importantes en materia de seguridad y la implementación responsable de tecnología. Úselos para adaptar sus modelos de forma responsable durante el entrenamiento previo continuo.
Evaluaciones: las tareas de prueba comparativa sirven para probar la capacidad de su modelo para detectar y rechazar contenido inapropiado, dañino o incorrecto. Utilice estas evaluaciones para medir la diferencia entre el rendimiento del modelo base y el rendimiento del modelo personalizado.
Controles de tiempo de ejecución: de forma predeterminada, el tiempo de ejecución de Nova controla las respuestas moderadas del modelo durante la inferencia. Para modificar estos controles y así adaptarlos a su modelo empresarial específico, solicite una configuración de moderación de contenido personalizable (CCMS) poniéndose en contacto con su administrador de cuentas de Amazon Web Services.
Responsabilidad compartida en materia de seguridad
La seguridad es una responsabilidad compartida entre Amazon Web Services y nuestros clientes. Cambiar el modelo base o utilizar el entrenamiento previo continuo para mejorar el rendimiento en un caso de uso específico puede repercutir en la seguridad, la imparcialidad y otras propiedades del nuevo modelo.
Usamos un método de adaptación sólido para minimizar los cambios en la seguridad, la equidad y otras protecciones integradas en nuestros modelos base, minimizando además el impacto en el rendimiento del modelo en tareas fuera del ámbito de personalización.
Su responsabilidad incluye:
La realización de pruebas integrales de sus aplicaciones con conjuntos de datos representativos de sus casos de uso.
La evaluación de si los resultados de las pruebas cumplen las expectativas específicas de seguridad, equidad y demás propiedades, además de la eficacia global.
Para obtener más información, consulte la Guía de uso responsable de la IA de Amazon Web Services, la Política de IA responsable de Amazon Web Services, la Política de uso aceptable de AWS y los Términos de servicio de AWS de los servicios que planea utilizar.
Configuración de moderación de contenido personalizable (CCMS)
La CCMS le permite ajustar los controles en función de los requisitos empresariales y, al mismo tiempo, mantener los controles esenciales y no configurables que garantizan un uso responsable de la IA.
Estos ajustes permiten la generación de contenido por medio de tres configuraciones disponibles:
Solo seguridad
Combinación de seguridad, contenido confidencial y equidad
Todas las categorías combinadas
Las cuatro categorías de moderación de contenido son las siguientes:
Seguridad: abarca las actividades peligrosas, las armas y las sustancias controladas.
Contenido confidencial: incluye blasfemias, desnudos e intimidación.
Equidad: aborda los sesgos y los factores culturales.
Seguridad: implica ciberdelincuencia, malware y contenido malicioso.
Independientemente de la configuración de CCMS, Amazon Nova aplica controles esenciales y no configurables para garantizar el uso responsable de la IA, como los controles para evitar daños a los niños y preservar la privacidad.
Recomendaciones para el uso de la CCMS
Con la CCMS, recomendamos utilizar el entrenamiento previo continuo (CPT) y partir de un punto de control de adaptación previo a la RAI (PRE-TRAINING-Early, PRE-TRAINING-Mid o PRE-TRAINING-Final) en lugar del punto de control GA/FINAL. Estos puntos de control no han pasado por procesos de entrenamiento en materia de seguridad ni han sido ajustados para adoptar comportamientos específicos de RAI, lo que le permite personalizarlos de forma más eficaz para adaptarlos a sus requisitos de moderación de contenido.
Consejo: Cuando utilice la CCMS para mezclar datos, considere la posibilidad de ajustar el porcentaje de la categoría “rai” en la configuración de nova_data para adaptarlo a sus requisitos específicos de moderación de contenido.
Disponibilidad
Actualmente, la CCMS está disponible para clientes aprobados que usan:
Modelos Nova Lite 1.0 y Pro 1.0
Inferencia bajo demanda de Amazon Bedrock
La región us-east-1 (Norte de Virginia).
Para habilitar la CCMS para sus modelos de Forge, póngase en contacto con su administrador de cuentas de Amazon Web Services.
Métodos de evaluación
Requisitos previos
URI del punto de control de S3 del archivo
manifest.jsonde su trabajo de entrenamiento (para modelos entrenados)Conjunto de datos de evaluación cargado en S3 en el formato correcto
Ruta de S3 para ver los resultados de la evaluación
Pruebas comparativas listas para usar: utilice pruebas comparativas listas para usar para validar el rendimiento en tareas generales. Para obtener más información, consulte: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html
Uso de sus propios datos
También puede usar sus datos personalizados editándolos para que sigan el formato que se muestra más abajo y, luego, utilizando los contenedores mencionados a continuación para obtener los resultados de las inferencias junto con las probabilidades logarítmicas de las calibraciones, si es necesario.
Cree jsonl por tarea con la siguiente estructura:
{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }
Los resultados generados durante la fase de inferencia del trabajo de evaluación tendrán la siguiente estructura:
{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }
Descripción de campos:
prompt: entrada formateada enviada al modeloinference: respuesta generada por el modelogold: respuesta correcta esperada del conjunto de datos de entrada, campo de respuesta de la entradametadata: metadatos opcionales transferidos desde la entrada
Preparación de la configuración de evaluación
Comando para iniciar el trabajo de evaluación. Use "--override-parameters" para modificar cualquier entrada de la fórmula.
hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'
Prácticas recomendadas
-
Priorice la calidad de los datos por encima del volumen: los datos de entrenamiento de alta calidad, diversos y representativos son más valiosos que las grandes cantidades de datos de baja calidad.
-
Incluya la categoría reasoning-instruction-following: cuando utilice la combinación de datos, incluya la categoría para mantener un rendimiento genérico sólido en todas las tareas.
-
Use ritmos de aprendizaje predeterminados: comience con los ritmos de aprendizaje predeterminados (1e-5 para LoRA, 5e-6 para el SFT de rango completo) y ajústelos solo si es necesario en función de las métricas de validación.
-
Equilibre la mezcla de datos de Nova: mezcle un máximo del 50 % de los datos de Nova para lograr un equilibrio óptimo entre latencia y rendimiento. Los porcentajes más altos pueden mejorar las capacidades generales, pero también pueden aumentar el tiempo de entrenamiento.
-
Supervise las métricas de validación: evalúe periódicamente los puntos de control intermedios durante el entrenamiento para detectar el sobreajuste o la degradación del rendimiento de forma temprana.
-
Realice pruebas con conjuntos de datos representativos: asegúrese de que los conjuntos de datos de evaluación representen con precisión sus casos de uso de producción para evaluar el rendimiento de manera significativa.
Configuración de la preparación de trabajos de entrenamiento
Hiperparámetros
Conjunto completo de hiperparámetros distintos de la mezcla de datos:
## Run config run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # 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: s3://my-bucket-name/outputs/ # 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 ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4) save_top_k: 5 # 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 # Golbal 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 # LoRA+ learning rate scaling factor (0.0–100.0)
Los parámetros más relevantes para LoRA son el ritmo de aprendizaje, el alfa (parámetro de escalado), el número de épocas que se debe entrenar y los pasos de preparación; en el caso del rango completo, los principales son el ritmo de aprendizaje, el número de épocas y los pasos de preparación. Las fórmulas se rellenan automáticamente con los valores predeterminados recomendados.
Configuración del bloque de mezcla de datos
Agregue la sección data_mixing a la fórmula con la distribución porcentual adecuada entre las categorías del conjunto de datos.
A continuación, describimos cada categoría de datos de Nova disponible.
Configuración de Nova 1.0 con la mezcla de datos
data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # Technical content covering science, technology, engineering, and mathematics planning: 2 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # Logical deduction, critical thinking, and analytical problem-solving scenarios rag: 1 # combining retrieved external knowledge with generated responses translation: 9 # Multi-language content pairs showing accurate translation
¿Qué significan estas categorías?
| Nombre de la categoría | Información |
|---|---|
| agentes | Datos de entrenamiento centrados en la toma de decisiones autónoma, la finalización de tareas y el comportamiento orientado a los objetivos en los sistemas de IA. |
| chat | Intercambios conversacionales que muestran el flujo natural del diálogo, un contexto coherente a lo largo de todo el intercambio y las interacciones sociales apropiadas. |
| code | Ejemplos y soluciones de programación que abarcan varios lenguajes, escenarios de depuración y prácticas recomendadas en materia de desarrollo de software. |
| rai | Casos y escenarios que enfatizan los principios de la IA ética, los aspectos que se deben tener en cuenta en materia de seguridad y la implementación responsable de la tecnología. |
| instruction-following | Ejemplos de pasos precisos para completar tareas en función de distintos niveles de peticiones e indicaciones del usuario. |
| raíz (semántica) | Contenido técnico sobre ciencia, tecnología, ingeniería y matemáticas, incluidos conceptos teóricos y de resolución de problemas. |
| planificación | Secuencias que demuestran el pensamiento estratégico, el desglose paso a paso de las tareas y la asignación eficiente de los recursos. |
| Razonamiento | Escenarios de deducción lógica, pensamiento crítico y resolución analítica de problemas con cadenas de razonamiento claras. |
| rag | Ejemplos de cómo combinar eficazmente el conocimiento externo recuperado con las respuestas generadas para proporcionar información contextual precisa. |
| traducción | Combinaciones de contenido multilingüe que muestran una traducción precisa y, al mismo tiempo, conservan el contexto, el tono y los matices culturales. |
Mezcla de datos multimodales (Nova 1.0)
data_mixing: dataset_catalog: sft_mm # Nova multi-modal dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 11 # Combining visual and textual inputs docs: 17 # Document-centric data combining text, images, layouts, and formatting perception: 10 # Visual-linguistic pairs t rag: 4 # Combining retrieved external knowledge with generated responses rai: 3 # Ethical AI principles, safety considerations, and responsible technology deployment reasoning: 10 # Logical analysis, problem-solving, and drawing conclusions stem: 17 # Technical content pairing visual elements (diagrams, charts, equations) with text text: 10 # A balanced pool of contextual text data create from the text-only SFT datasets video: 18 # Video datasets
¿Qué significan estas categorías?
| Nombre de la categoría | Información |
|---|---|
| agentes | El entrenamiento combina elementos visuales y textuales para demostrar cómo los sistemas de IA deben interpretar la información ambiental multisensorial, actuar en consonancia e interactuar con ella. |
| docs | Datos centrados en los documentos que combinan texto, imágenes, diseños y formatos para entrenar a los modelos con el objetivo de que comprendan y procesen varios tipos y estructuras de documentos a fin de facilitar conceptos como el reconocimiento del contenido de un PDF. |
| perception | Combinaciones de elementos visuales y lingüísticos que enseñan a los modelos a describir, interpretar y razonar con precisión sobre imágenes, videos y otras entradas visuales en lenguaje natural. |
| rag | Ejemplos de recuperación multimodal que muestran cómo combinar y referenciar eficazmente el conocimiento externo visual y textual para generar respuestas contextuales precisas. |
| Razonamiento | Casos que combinan elementos visuales y textuales que enseñan a hacer un análisis lógico, resolver problemas y sacar conclusiones en varias modalidades. |
| raíz (semántica) | Contenido técnico que combina elementos visuales (diagramas, tablas, ecuaciones) con texto para instruir en conceptos científicos, matemáticos y técnicos y enseñar a resolver problemas. |
| text | Un conjunto equilibrado de datos textuales contextuales creados a partir de las categorías del conjunto de datos de solo texto de Nova del SFT para enseñar habilidades generales. |
| video | Contenido visual basado en el movimiento centrado en la comprensión temporal y la comprensión visual-narrativa secuencial. |
Configuración de Nova 2.0 con la mezcla de datos
data_mixing: dataset_catalog: sft_1p5_text_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems baseline: 10 # [New in Nova 1.5] chat: 0.5 # Conversational exchanges demonstrating natural dialogue flow code: 10 # Programming examples and solutions spanning multiple languages factuality: 0.1 # [New in Nova 1.5] identity: 1 # [New in Nova 1.5] long-context: 1 # [New in Nova 1.5] math: 2 # [New in Nova 1.5] rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 0.5 # Technical content covering science, technology, engineering, and mathematics planning: 10 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 # combining retrieved external knowledge with generated responses translation: 0.1
¿Qué significan estas categorías?
| Nombre de la categoría | Información |
|---|---|
| agentes | Datos de entrenamiento centrados en la toma de decisiones autónoma, la finalización de tareas y el comportamiento orientado a los objetivos en los sistemas de IA. |
| referencia | Datos lingüísticos fundamentales centrados en la comprensión general, la comunicación básica y las capacidades lingüísticas troncales. |
| chat | Intercambios conversacionales que muestran el flujo natural del diálogo, un contexto coherente a lo largo de todo el intercambio y las interacciones sociales apropiadas. |
| code | Código fuente de programación, documentación y debates técnicos que abarcan diversos lenguajes de programación y plataformas. |
| factuality | Información verificada y materiales de referencia centrados en la precisión, la validación de fuentes y la evaluación de la veracidad. |
| identidad | Marcos de personalidad y patrones de comportamiento centrados en rasgos de carácter, valores y estilos de interacción consistentes. |
| long-context | Narrativas complejas y textos extensos centrados en mantener la coherencia y la relevancia en largos intercambios. |
| math | Contenido matemático que incluye libros de texto, problemas, soluciones y debates matemáticos. |
| rai | Casos y escenarios que enfatizan los principios de la IA ética, los aspectos que se deben tener en cuenta en materia de seguridad y la implementación responsable de la tecnología. |
| instruction-following | Ejemplos de pasos precisos para completar tareas en función de distintos niveles de peticiones e indicaciones del usuario. |
| raíz (semántica) | Contenido técnico sobre ciencia, tecnología, ingeniería y matemáticas, incluidos conceptos teóricos y de resolución de problemas. |
| planificación | Secuencias que demuestran el pensamiento estratégico, el desglose paso a paso de las tareas y la asignación eficiente de los recursos. |
| reasoning-chat | Escenarios de diálogo analítico centrados en el debate lógico y los flujos de conversación estructurados. |
| reasoning-code | Desafíos de programación y problemas algorítmicos centrados en el desarrollo sistemático de soluciones. |
| reasoning-factuality | Escenarios de evaluación de la información centrados en los procesos críticos de evaluación y verificación. |
| reasoning-instruction-following | Análisis de tareas complejas centrado en la interpretación sistemática y la realización de tareas de forma metódica. |
| reasoning-math | Escenarios matemáticos de resolución de problemas centrados en la progresión lógica y las estrategias de solución. |
| reasoning-planning | Escenarios de toma de decisiones estratégicas centrados en un enfoque sistemático para el cumplimiento de objetivos. |
| reasoning-rag | Escenarios de recuperación y síntesis de información centrados en la comprensión contextual y la aplicación pertinente. |
| reasoning-rai | Escenarios de toma de decisiones éticas centrados en la evaluación sistemática de la seguridad y la equidad de la IA. |
| reasoning-stem | Escenarios científicos de resolución de problemas centrados en el análisis metódico y el desarrollo de soluciones. |
| rag | Ejemplos de cómo combinar eficazmente el conocimiento externo recuperado con las respuestas generadas para proporcionar información contextual precisa. |
| traducción | Combinaciones de contenido multilingüe que muestran una traducción precisa y, al mismo tiempo, conservan el contexto, el tono y los matices culturales. |
Mezcla de datos multimodales (Nova 2.0)
data_mixing: dataset_catalog: sft_1p5_mm_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15
Nota: Nova 2.0 admite categorías de datos de video que no está disponible en Nova 1.0.
¿Qué significan estas categorías?
| Nombre de la categoría | Información |
|---|---|
| gráficos | Representaciones visuales y descripciones de gráficos, gráficos circulares, gráficos de barras, diagramas de líneas y otras visualizaciones estadísticas para ayudar al modelo a comprender y comunicar la información cuantitativa de manera eficaz. |
| chat | Datos conversacionales combinados con elementos visuales centrados en el diálogo contextual, la comprensión y las interacciones basadas en imágenes. |
| code | Interfaces de programación y entornos de desarrollo centrados en la interpretación visual del código, capturas de pantalla del IDE y diagramas técnicos. |
| docs | Datos centrados en los documentos que combinan texto, imágenes, diseños y formatos para entrenar a los modelos con el objetivo de que comprendan y procesen varios tipos y estructuras de documentos a fin de facilitar conceptos como el reconocimiento del contenido de un PDF. |
| general | Contenido visual-textual diverso centrado en una amplia comprensión de las imágenes, los gráficos y el texto descriptivo adjunto. |
| grounding | Imágenes etiquetadas y materiales de referencia visuales centrados en conectar los conceptos del lenguaje con las representaciones visuales del mundo real. |
| rag | Ejemplos de recuperación multimodal que muestran cómo combinar y referenciar eficazmente el conocimiento externo visual y textual para generar respuestas contextuales precisas. |
| screenshot | Capturas de la interfaz de la aplicación e imágenes de visualización digital centradas en la comprensión de las interfaces de software y las interacciones digitales. |
| text | Un conjunto equilibrado de datos textuales contextuales creados a partir de las categorías del conjunto de datos de solo texto de Nova del SFT para enseñar habilidades generales. |
| traducción | Contenido visual multilingüe centrado en la interpretación multilingüe del texto en imágenes y elementos visuales culturales. |
| video | Contenido visual basado en el movimiento centrado en la comprensión temporal y la comprensión visual-narrativa secuencial. |
¿Cómo lanzar un trabajo?
También puede consultar el archivo README si solo necesita obtener los detalles esenciales para iniciar la primera iteración con SFT.
Información sobre el contenedor
| Modelo | Técnica | Subcategory | URI de imagen | Comando del lanzador de HyperPod |
|---|---|---|---|---|
| Nova 1.0 | Microajuste | SFT/PEFT | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest" }' |
| Nova 1.0 | Microajuste | SFT con mezcla de datos | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX" }' |
| Nova 2.0 | Microajuste | SFT (texto) | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" }' |
| Nova 2.0 | Microajuste | SFT (texto) + mezcla de datos | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" }' |
| Nova 2.0 | Microajuste | SFT (MM) | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" }' |
| Nova 2.0 | Microajuste | SFT (MM) + mezcla de datos | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_mm_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" }' |
Una vez que esté todo configurado, desde la raíz del repositorio sagemaker-hyperpod-cli, navegue hasta la carpeta de fórmulas de SFT predeterminadas de Nova.
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/training/nova/
Aquí puede elegir si desea usar las fórmulas de Nova 1 o Nova 2 en función del modelo base elegido.
Para el SFT de Nova 1.0:
-
Si quiere hacer un trabajo de SFT normal, debería poder ver una fórmula en esta carpeta:
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_1_0/nova_lite/SFT y, a continuación, debería poder ver una fórmula en la carpeta nova_lite_1_0_p5x8_gpu_sft.yaml
-
Si quiere hacer un trabajo de SFT con mezcla de datos, puede navegar a la carpeta de fórmulas de Forge para SFT:
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_1_0/nova_lite/SFT y, a continuación, debería poder ver una fórmula en la carpeta nova_lite_1_0_p5x8_gpu_sft_with_datamix.yaml
Edite las secciones de la fórmula requeridas por el trabajo, como name, data_s3_path, validation_s3_path, output_s3_path y max_steps. Como estamos realizando trabajos de SFT, la noción de épocas no se aplica aquí.
Para el SFT de Nova 2.0:
-
Si quiere hacer un trabajo de SFT normal, debería poder ver una fórmula en esta carpeta:
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_2_0/nova_lite/SFT y, a continuación, debería poder ver una fórmula en la carpeta nova_lite_2_0_p5x8_gpu_sft.yaml
-
Si quiere hacer un trabajo de SFT con mezcla de datos, puede navegar a la carpeta de fórmulas de Forge para SFT:
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_2_0/nova_lite/SFT y, a continuación, debería poder ver una fórmula en la carpeta nova_lite_2_0_p5x8_gpu_sft_with_datamix.yaml
Edite las secciones de la fórmula requeridas por el trabajo, como name, data_s3_path, validation_s3_path, output_s3_path y max_steps. Como estamos realizando trabajos de SFT, la noción de épocas no se aplica aquí.
La configuración con mezcla de datos dará el mismo resultado, pero con una sección de mezcla de datos adicional en la parte inferior similar a esta:
data_mixing: dataset_catalog: sft_text_lite sources: nova_data: # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping agents: 20 business-and-finance: 20 scientific: 20 code: 20 factual-and-news: 20 longform-text: 0 health-and-medicine: 0 humanities-and-education: 0 legal: 0 math: 0 additional-languages: 0 social-and-personal-interest: 0 entertainment: 0 reasoning: 0 other: 0 tables: 0 customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above percent: 25
Aquí hay dos categorías de datos de nivel superior:
-
nova_data: esta es la mezcla de datos real y se subdivide en aún más categorías. Es imperativo que su suma dé como resultado 100 %.
A continuación encontrará un desglose completo de estas categorías, incluido el recuento de tokens.
customer_data: estos son los datos de entrenamiento, a los que se hace referencia en la clave data_s3_path situada en la parte superior del archivo YAML. El porcentaje que se proporciona aquí determina cuál será el porcentaje resultante para nova_data. Por ejemplo, en las selecciones porcentuales anteriores, durante el entrenamiento utilizaremos el 25 % de customs_data y el 75 % de nova_data, de los cuales el 15 % serán datos de agents, el 15 % serán datos de business-and-finance, el 15 % serán datos de scientific, el 15 % serán datos de code y el 15 % serán datos de factual-and-news.
Consejo: Use pip install -e una vez más y ya tendrá todo listo para enviar el trabajo.
Vamos a sobreescribir un par de parámetros para utilizar la mezcla de datos:
hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5x8_gpu_sft_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/ }'
El resultado debe contener un nombre de trabajo como el siguiente:
⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe training/nova/forge/nova_2_0/nova_lite/sft/nova_lite_2_0_p5x8_gpu_pretrain_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "3://sft-data/output/ }'
El resultado sería el siguiente:
Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=training/nova/nova_micro_p5x8_gpu_pretrain cluster_type=k8s cluster=k8s base_results_dir=/local/home/niphaded/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="p5d.48xlarge" container="900867814919.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:sft-datamix-rig-final" Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh NAME: my-sft-run-wzdyn LAST DEPLOYED: Tue Aug 26 16:21:06 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703" }
Puede ver el estado de su trabajo usando hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn
hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn { "pods": [ { "PodName": "my-sft-run-wzdyn-master-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" }, { "PodName": "my-sft-run-wzdyn-worker-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" } ] }
o use directamente el comando kubectl para encontrarlos.
Por ejemplo:
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run) NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-sft-run-5suc8-master-0 0/1 Completed 0 3h23m 172.31.32.132 hyperpod-i-00b3d8a1bf25714e4 <none> <none> my-sft-run-5suc8-worker-0 0/1 Completed 0 3h23m 172.31.44.196 hyperpod-i-0aa7ccfc2bd26b2a0 <none> <none> my-sft-run-5suc8-worker-1 0/1 Completed 0 3h23m 172.31.46.84 hyperpod-i-026df6406a7b7e55c <none> <none> my-sft-run-5suc8-worker-2 0/1 Completed 0 3h23m 172.31.28.68 hyperpod-i-0802e850f903f28f1 <none> <none>
Consejo profesional: Asegúrese de usar siempre el indicador -o wide, ya que el nodo de EKS que usa el trabajo le permitirá encontrar sus registros aún más rápido en la interfaz de usuario de AWS.
Cómo supervisar un trabajo
Puede ver los registros de tres maneras:
a) Usando CloudWatch
Los registros están disponibles en su cuenta de Amazon Web Services que contiene el clúster de HyperPod en CloudWatch. Para verlos en su navegador, vaya a la página de inicio de CloudWatch en su cuenta y busque el nombre del clúster. Por ejemplo, si su clúster se llamara my-hyperpod-rig, el grupo de registro tendría el prefijo:
-
Grupo de registro: /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID}
-
Una vez en el grupo de registro, podrá encontrar el registro específico mediante el ID de la instancia del nodo, como - hyperpod-i-00b3d8a1bf25714e4.
i-00b3d8a1bf25714e4 aquí representa el nombre de la máquina compatible con HyperPod en la que se está poniendo en marcha el trabajo de entrenamiento Recuerde que en la salida del comando anterior kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run) capturamos una columna llamada NODE.
En este caso, el nodo maestro se ponía en marcha en hyperpod-i-00b3d8a1bf25714e4 y, por lo tanto, utilizaremos esa cadena para seleccionar el grupo de registro que queremos ver. Seleccione la que diga SagemakerHyperPodTrainingJob/rig-group/[NODE]
Los registros deberían tener un aspecto similar al siguiente:
b) Usando Información de CloudWatch
Si tiene a mano el nombre de su trabajo y no desea seguir todos los pasos anteriores, simplemente consulte todos los registros en /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID} para encontrar el registro individual.
CPT
fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100
Para completar el trabajo, sustituya Starting SFT Job por SFT Job completed.
Luego, puede hacer clic en los resultados y elegir el que diga “Epoch 0”, ya que ese será el nodo maestro.
c) Usando AWS CLI
Puede optar por rastrear los registros mediante AWS CLI. Antes de hacerlo, compruebe su versión de AWS CLI con aws --version. También se recomienda usar este script de utilidad que ayuda a rastrear los registros en tiempo real en su terminal.
Para V1:
aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'
Para V2:
aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow
D) Configuración de MLflow:
Puede hacer un seguimiento de las métricas a través de MLflow.
Creación de una aplicación MLflow
Uso de la interfaz de usuario de Studio: si crea un trabajo de entrenamiento a través de la interfaz de usuario de Studio, se crea automáticamente una aplicación MLflow predeterminada que se selecciona por defecto en Opciones avanzadas.
Uso de la CLI: si usa la CLI, debe crear una aplicación MLflow y pasarla como entrada a la solicitud de la API del trabajo de entrenamiento.
mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)
Acceso a la aplicación MLflow
Uso de la CLI: cree una URL prefirmada para acceder a la interfaz de usuario de la aplicación MLflow:
aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text
Cuando configure MLflow, puede pasar el URI de su fórmula o utilizar la función de sobreescritura al iniciar el trabajo. Puede encontrar un ejemplo práctico en el archivo README.
¿Cómo evaluar su modelo después del SFT?
Requisitos previos
URI del punto de control de S3 del archivo manifest.json de su trabajo de entrenamiento (para modelos entrenados)
Conjunto de datos de evaluación cargado en S3 en el formato correcto
Ruta de S3 para ver los resultados de la evaluación
Pruebas comparativas listas para usar: utilice pruebas comparativas listas para usar para validar el rendimiento en tareas generales. Para obtener más información, consulte aquí.
Uso de sus propios datos
También puede usar sus datos personalizados editándolos para que sigan el formato que se muestra más abajo y, luego, utilizando los contenedores mencionados a continuación para obtener los resultados de las inferencias junto con las probabilidades logarítmicas de las calibraciones, si es necesario.
Cree jsonl por tarea con la siguiente estructura:
{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }
Los resultados generados durante la fase de inferencia del trabajo de evaluación tendrán la siguiente estructura:
{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }
Descripción de campos:
prompt: entrada formateada enviada al modelo
inference: respuesta generada por el modelo
gold: respuesta correcta esperada del conjunto de datos de entrada, campo de respuesta de la entrada
metadata: metadatos opcionales transferidos desde la entrada
Preparación de la configuración de evaluación
Comando para iniciar el trabajo de evaluación. Utilice “--override-parameters” para modificar cualquier entrada de la fórmula.
hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'
Lanzamiento del trabajo de evaluación
Comandos de lanzamiento de trabajos para diferentes fórmulas con las imágenes correspondientes.
| Modelo | Técnica | Subcategory | URI de imagen | Comando |
|---|---|---|---|---|
| Nova 1.0 | Evaluación | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest | hyperpod start-job \ -n kubeflow \ --recipe evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" }' |
| Nova 2.0 | Evaluación | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest | hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" }' |
Lecciones aprendidas y consejos
La calidad del conjunto de datos del SFT es fundamental. Debe hacer todo lo posible por filtrar los datos de baja calidad. Si tiene un subconjunto pequeño de datos de una calidad excepcional (tanto en términos de complejidad como de precisión), puede considerar la posibilidad de usarlo al final del entrenamiento para que el modelo converja mejor.
Usamos los conjuntos de datos de texto y multimodales (MM) para la mezcla de datos. Nuestros experimentos con conjuntos de datos de texto demuestran que agregar la categoría exclusiva de Nova “reasoning-instruction-following” mejora significativamente el rendimiento en todas las pruebas comparativas genéricas. Le recomendamos incluir esta categoría en su estrategia de mezcla de datos si quiere controlar la posible regresión en pruebas comparativas generales después de someter los conjuntos de datos al SFT.
En el caso de los conjuntos de datos de MM, nuestros experimentos indican que incorporar más del 20 % de las categorías de video a la mezcla es beneficioso para mantener un buen rendimiento en las pruebas comparativas genéricas.
Además, el rendimiento de la combinación SFT + mezcla de datos se ve muy influido por el ritmo de aprendizaje, por lo que nuestro resultado sugiere refinar con el ritmo de aprendizaje predeterminado, es decir, 1e-5 para LoRA y 5e-6 para el rango completo.
Por último, existe un equilibrio entre latencia y rendimiento si se combinan los conjuntos de datos patentados por Nova, por lo que nuestros resultados sugieren mezclar el 50 % como máximo para lograr un buen equilibrio.