SDK de personalización de Nova - Amazon Nova

SDK de personalización de Nova

El SDK de personalización de Nova es un SDK para Python completo para personalizar los modelos de Amazon Nova. El SDK proporciona una interfaz unificada para el entrenamiento, la evaluación, la supervisión, la implementación y la inferencia de los modelos de Amazon Nova en diferentes plataformas, como SageMaker AI y Amazon Bedrock. Tanto si va a adaptar los modelos a tareas específicas de un dominio o a optimizar el rendimiento para su caso de uso, este SDK proporciona todo lo que necesita en una interfaz unificada.

Ventajas

  • Un SDK para todo el ciclo de vida de la personalización del modelo, desde la preparación de los datos hasta la implementación y la supervisión.

  • Compatibilidad con varios métodos de entrenamiento, como el entrenamiento previo continuo (CPT), el refinamiento supervisado (SFT), la optimización de preferencias directas (DPO) y el refinamiento por refuerzo (RFT), tanto de un solo turno como de varios turnos, con enfoques LoRA y de rango completo.

  • Soporte integrado para Trabajos de entrenamiento de SageMaker, con administración automática de recursos.

  • Ya no tendrá que buscar las fórmulas o el URI de contenedor correctos para sus técnicas de entrenamiento.

  • Cree sus propias fórmulas de entrenamiento o use los valores predeterminados inteligentes del SDK con modificaciones de parámetros.

  • El SDK compara la configuración con las combinaciones de modelos e instancias compatibles y valida los valores para evitar errores antes de que comience el entrenamiento.

  • La supervisión integrada de Amazon CloudWatch le permite hacer un seguimiento del progreso del entrenamiento en tiempo real.

  • MLflow integrado para hacer un seguimiento de los experimentos de entrenamiento con los servidores de seguimiento MLflow de SageMaker AI.

Requisitos

El SDK requiere al menos Python 3.12.

Instalación

Para instalar este SDK, use el siguiente comando::

pip install amzn-nova-customization-sdk

Modelos y técnicas compatibles

El SDK admite los siguientes modelos y técnicas de la familia Amazon Nova:

Método Modelos compatibles
Entrenamiento previo continuo Todos los modelos de Nova (solo SMHP)
Refinamiento supervisado (LoRA) Todos los modelos de Nova
Refinamiento supervisado (rango completo) Todos los modelos de Nova
Optimización de preferencias directas (LoRA) Modelos de Nova 1.0
Optimización de preferencias directas (rango completo) Modelos de Nova 1.0
Refinamiento por refuerzo (LoRA) Nova Lite 2.0
Refinamiento por refuerzo (rango completo) Nova Lite 2.0
Refinamiento por refuerzo de varios turnos (LoRA) Nova Lite 2.0 (solo SMHP)
Refinamiento por refuerzo de varios turnos (rango completo) Nova Lite 2.0 (solo SMHP)

Introducción

1. Preparación de datos

Cargue el conjunto de datos desde su equipo o desde S3 y deje que el SDK se encargue de la transformación al formato correcto para el método de entrenamiento que haya elegido. También puede usar datos formateados y comenzar de inmediato.

from amzn_nova_customization_sdk.dataset.dataset_loader import JSONLDatasetLoader from amzn_nova_customization_sdk.model.model_enums import Model, TrainingMethod loader = JSONLDatasetLoader(question="input", answer="output") loader.load("s3://your-bucket/training-data.jsonl") loader.transform(method=TrainingMethod.SFT_LORA, model=Model.NOVA_LITE)

2. Configuración de la infraestructura

Elija los recursos computacionales: el SDK valida las configuraciones y garantiza una configuración óptima.

from amzn_nova_customization_sdk.manager.runtime_manager import SMTJRuntimeManager, SMHPRuntimeManager # SageMaker Training Jobs runtime = SMTJRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4 ) # SageMaker HyperPod runtime = SMHPRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4, cluster_name="my-hyperpod-cluster", namespace="kubeflow" )

3. Entrenamiento

Comience a entrenar con tan solo unas pocas líneas de código.

from amzn_nova_customization_sdk.model import NovaModelCustomizer from amzn_nova_customization_sdk.model.model_enums import Model, TrainingMethod customizer = NovaModelCustomizer( model=Model.NOVA_LITE_2, method=TrainingMethod.SFT_LORA, infra=runtime, data_s3_path="s3://your-bucket/prepared-data.jsonl" ) result = customizer.train(job_name="my-training-job")

4. Supervisión

Haga un seguimiento del progreso del entrenamiento directamente desde el SDK.

from amzn_nova_customization_sdk.monitor.log_monitor import CloudWatchLogMonitor # Monitor training logs customizer.get_logs() # Or monitor directly via CloudWatchLogMonitor monitor = CloudWatchLogMonitor.from_job_result(result) monitor.show_logs(limit=10) # Check job status result.get_job_status() # InProgress, Completed, Failed

5. Evaluación

Evalúe el rendimiento del modelo usando varias pruebas comparativas integradas o diseñe sus propias evaluaciones.

from amzn_nova_customization_sdk.recipe_config.eval_config import EvaluationTask # Evaluate on benchmark tasks eval_result = customizer.evaluate( job_name="model-eval", eval_task=EvaluationTask.MMLU, model_path=result.model_artifacts.checkpoint_s3_path )

6. Implementación

Implemente el modelo personalizado en producción gracias a la compatibilidad nativa con Amazon Bedrock o SageMaker.

from amzn_nova_customization_sdk.model.model_enums import DeployPlatform # Bedrock provisioned throughput deployment = customizer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_PT, unit_count=10 ) # Bedrock On-Demand deployment = customizer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_OD ) # Sagemaker Real-time Inference deployment = customizer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.SAGEMAKER, unit_count=10, sagemaker_instance_type="ml.p5.48xlarge", sagemaker_environment_variables={ "CONTEXT_LENGTH": "12000", "MAX_CONCURRENCY": "16", } )

Capacidades clave

Creación de fórmulas sobre la marcha

Gracias al SDK, no es necesario buscar las fórmulas o el URI de contenedor adecuados para técnicas específicas.

Procesamiento inteligente de datos

El SDK transforma automáticamente los datos en el formato correcto para el entrenamiento. Tanto si usa JSON, JSONL o CSV, el cargador de datos gestiona la conversión sin problemas. El cargador de datos admite texto y datos multimodales (imágenes y videos).

Soporte para infraestructura empresarial

El SDK funciona tanto con Trabajos de entrenamiento de SageMaker como con SageMaker HyperPod, y administra automáticamente los siguientes aspectos:

  • Validación del tipo de instancia

  • Validación de receta

  • Validación del conjunto de datos

  • Orquestación y supervisión de trabajos

Evaluación completa

Evalúe sus modelos personalizados con pruebas comparativas estándar como las siguientes:

  • Comprensión masiva del lenguaje multitarea (Massive Multitask Language Understanding, MMLU)

  • Tareas de razonamiento avanzado (Advanced Reasoning Tasks, BBH)

  • Preguntas y respuestas de posgrado diseñadas por Google (Graduate-Level Google-Proof Q&A, GPQA)

Use los valores predeterminados de las pruebas comparativas o modifíquelos para adaptarlos a sus necesidades:

  • Traiga sus propias métricas (Bring Your Own Métrica, BYOM)

  • Traiga su propio conjunto de datos (Bring Your Own Dataset, BYOD)

Implementación en entornos de producción

Implemente sus modelos en Amazon Bedrock o SageMaker con opciones para lo siguiente:

  • Rendimiento aprovisionado de Bedrock: capacidad dedicada para garantizar un rendimiento uniforme.

  • Bedrock bajo demanda (solo disponible para la personalización basada en LoRA): precios de pago por uso.

  • Inferencia en tiempo real de SageMaker: capacidad dedicada para garantizar un rendimiento uniforme.

Inferencia en lotes

Lleve a cabo trabajos de inferencia a gran escala de manera eficiente:

  • Procesamiento de miles de solicitudes en paralelo

  • Agrupación automática de resultados

  • Procesamiento por lotes rentable

Nova Forge

Los suscriptores de Nova Forge pueden usar el SDK para utilizar fórmulas de mezcla de datos.

Más información

¿Todo listo para empezar a personalizar los modelos de Nova con el SDK de personalización de Nova? Consulte nuestro repositorio de GitHub para obtener guías detalladas, referencias de la API y más ejemplos: https://github.com/aws/nova-customization-sdk