SDK de personalização do Nova
O SDK de personalização do Nova é um SDK Python abrangente para personalizar modelos do Amazon Nova. O SDK oferece uma interface unificada para treinamento, avaliação, monitoramento, implantação e inferência de modelos do Amazon Nova em diferentes plataformas, incluindo o SageMaker AI e Amazon Bedrock. Se você está adaptando modelos para tarefas específicas do domínio ou otimizando a performance para seu caso de uso, esse SDK fornece tudo o que você precisa em uma interface unificada.
Benefícios
-
Um SDK para todo o ciclo de vida da personalização do modelo, desde a preparação dos dados até a implantação e o monitoramento.
-
Suporte para vários métodos de treinamento, incluindo pré-treinamento contínuo (CPT), ajuste fino supervisionado (SFT), otimização de preferência direta (DPO) e ajuste fino por reforço (RFT), tanto de turno único quanto de vários turnos, com abordagens LoRA e full-rank.
-
Suporte integrado para tarefas de treinamento do SageMaker, com gerenciamento automático de recursos.
-
Não é mais necessário encontrar o URI de contêiner ou as fórmulas corretas para suas técnicas de treinamento.
-
Traga suas próprias fórmulas de treinamento ou use os padrões inteligentes do SDK com substituições de parâmetros.
-
O SDK valida sua configuração em relação às combinações de modelos e instâncias compatíveis e fornece suporte à validação, evitando erros antes do início do treinamento.
-
O monitoramento integrado do Amazon CloudWatch permite que você acompanhe o progresso do treinamento em tempo real.
-
MLflow integrado para acompanhar experimentos de treinamento com os servidores de rastreamento MLflow do SageMaker AI.
Requisitos
O SDK requer pelo menos o Python 3.12.
Instalação
Para instalar esse SDK, siga o comando abaixo.
pip install amzn-nova-customization-sdk
Modelos e técnicas compatíveis
O SDK é compatível com os seguintes modelos e técnicas dentro da família do Amazon Nova:
| Método | Modelos compatíveis |
|---|---|
| Pré-treinamento contínuo | Todos os modelos Nova (somente SMHP) |
| Ajuste fino supervisionado LoRA | Todos os modelos Nova |
| Ajuste fino supervisionado full-rank | Todos os modelos Nova |
| Otimização direta de preferências LoRA | Modelos Nova 1.0 |
| Otimização direta de preferências full-rank | Modelos Nova 1.0 |
| Ajuste fino por reforço LoRA | Nova Lite 2.0 |
| Ajuste fino por reforço full-rank | Nova Lite 2.0 |
| Ajuste fino por reforço de várias turnos LoRA | Nova Lite 2.0 (somente SMHP) |
| Ajuste fino por reforço de vários turnos full-rank | Nova Lite 2.0 (somente SMHP) |
Conceitos básicos
Tópicos
1. Preparar seus dados
Carregue seu conjunto de dados de arquivos locais ou do S3 e deixe que o SDK faça a transformação para o formato correto para o método de treinamento escolhido. Ou forneça dados formatados e comece imediatamente.
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. Configurar sua infraestrutura
Escolha seus recursos de computação. O SDK valida as configurações e garante a configuração ideal.
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. Treinamento
Comece a treinar com apenas algumas linhas 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. Monitor
Acompanhe seu progresso no treinamento diretamente no 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. Avaliar
Avalie a performance do modelo com uma variedade de avaliações comparativas integradas, ou crie suas próprias avaliações.
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. Implantar
Implante seu modelo personalizado para produção com suporte integrado para o Amazon Bedrock ou 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", } )
Principais recursos
Criação de fórmulas em tempo real
O SDK elimina a necessidade de pesquisar as fórmulas apropriadas ou o URI de contêiner para técnicas específicas.
Processamento inteligente de dados
O SDK transforma automaticamente seus dados no formato correto para treinamento. Se você estiver trabalhando com arquivos JSON, JSONL ou CSV, o carregador de dados processará a conversão sem problemas. O carregador de dados é compatível com texto e dados multimodais (imagens e vídeos).
Suporte à infraestrutura de empresas
O SDK funciona tanto com tarefas de treinamento do SageMaker quanto com o SageMaker HyperPod, gerenciando automaticamente:
-
Validação do tipo de instância
-
Validação da fórmula
-
Validação do conjunto de dados
-
Monitoramento e orquestração de tarefas
Avaliação abrangente
Avalie seus modelos personalizados em relação às avaliações comparativas padrão, incluindo:
-
MMLU (Massive Multitask Language Understanding)
-
BBH (Advanced Reasoning Tasks)
-
GPQA (Graduate-Level Google-Proof Q&A)
Use os padrões de avaliação comparativa ou modifique-os para atender às suas necessidades:
-
BYOM (traga sua própria métrica)
-
BYOD (traga seu próprio conjunto de dados)
Implantação na produção
Implante seus modelos no Amazon Bedrock ou no SageMaker com opções para:
-
Throughput provisionado do Bedrock: capacidade dedicada para performance consistente
-
Bedrock sob demanda (aplicável apenas à personalização baseada em LoRA): preço conforme o uso
-
Inferência em tempo real do Sagemaker: capacidade dedicada para performance consistente
Inferência em lote
Execute tarefas de inferência em grande escala com eficiência:
-
Processe milhares de solicitações em paralelo
-
Agregação automática de resultados
-
Processamento em lote de baixo custo
Nova Forge
Para assinantes do Nova Forge, o SDK é compatível com fórmulas de combinação de dados.
Saiba mais
Tudo pronto para começar a personalizar os modelos Nova com o SDK de personalização do Nova? Confira nosso repositório do GitHub para obter guias detalhados, referências de APIs e exemplos adicionais: https://github.com/aws/nova-customization-sdk