SDK de personalização do Nova - Amazon Nova

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

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