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
Temas
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