View a markdown version of this page

Kit de développement logiciel Nova Forge - Amazon Nova

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Kit de développement logiciel Nova Forge

Le SDK Nova Forge est un SDK Python complet permettant de personnaliser les modèles Amazon Nova. Le SDK fournit une interface unifiée pour la formation, l'évaluation, le suivi, le déploiement et l'inférence des modèles Amazon Nova sur différentes plateformes, notamment SageMaker AI et Amazon Bedrock. Que vous adaptiez des modèles à des tâches spécifiques à un domaine ou que vous optimisiez les performances pour votre cas d'utilisation, ce SDK fournit tout ce dont vous avez besoin dans une interface unifiée.

Suivez ces étapes pour passer de l'installation à votre premier poste de formation :

Avantages

  • Un seul SDK pour l'ensemble du cycle de personnalisation du modèle, de la préparation des données au déploiement et à la surveillance.

  • Support pour plusieurs méthodes d'entraînement, notamment le pré-entraînement continu (CPT), le réglage fin supervisé (SFT), l'optimisation directe des préférences (DPO) et le réglage fin du renforcement (RFT), à la fois en un tour ou en plusieurs tours, avec des approches LoRa et à classement complet.

  • Built-in support pour SageMaker Training Jobs et Amazon Bedrock, avec gestion automatique des ressources. SageMaker HyperPod

  • Plus besoin de trouver les recettes ou l'URI de conteneur adaptés à vos techniques d'entraînement.

  • Apportez vos propres recettes d'entraînement ou utilisez les paramètres intelligents par défaut du SDK avec des remplacements de paramètres.

  • Le SDK valide votre configuration par rapport aux combinaisons de modèles et d'instances prises en charge et fournit une assistance à la validation, évitant ainsi les erreurs avant le début de la formation.

  • CloudWatch La surveillance intégrée d'Amazon vous permet de suivre les progrès de la formation en temps réel.

  • MLflow intégré pour suivre les expériences d'entraînement avec les serveurs de suivi SageMaker AI MLflow.

Exigences

Versions de Python prises en charge

Le SDK Nova Forge est testé sur :

  • Python 3.12

Installation

Pour installer ce SDK, veuillez suivre la commande ci-dessous.

pip install amzn-nova-forge

Modèles et techniques pris en charge

Le SDK prend en charge les modèles et techniques suivants au sein de la famille Amazon Nova :

Method Modèles pris en charge
Continué Pre-training Tous les modèles Nova (SMHP uniquement)
Fine-tuning LoRa supervisé Tous les modèles Nova
Supervisé Fine-tuning Full-Rank Tous les modèles Nova (SMHP et SMTJ uniquement)
Optimisation directe des préférences LoRa Modèles Nova 1.0 (SMHP et SMTJ uniquement)
Optimisation directe des préférences Full-Rank Modèles Nova 1.0 (SMHP et SMTJ uniquement)
Renfort Fine-tuning LoRa Nova Lite 2.0
Renfort Fine-tuning Full-Rank Nova Lite 2.0 (SMHP et SMTJ uniquement)
Multi-turn Renfort Fine-tuning LoRa Nova Lite 2.0 (SMHP uniquement)
Multi-turn Renfort Fine-tuning Full-Rank Nova Lite 2.0 (SMHP uniquement)

Démarrage

1. Préparez vos données

Chargez votre ensemble de données à partir de fichiers locaux ou de S3, et laissez le SDK gérer la transformation vers le format adapté à la méthode d'entraînement que vous avez choisie. Vous pouvez également fournir des données formatées et commencer immédiatement.

from amzn_nova_forge.dataset.dataset_loader import JSONLDatasetLoader from amzn_nova_forge.model.model_enums import Model, TrainingMethod, TransformMethod loader = JSONLDatasetLoader() loader.load("s3://your-bucket/training-data.jsonl") loader.transform( method=TransformMethod.SCHEMA, training_method=TrainingMethod.SFT_LORA, model=Model.NOVA_LITE_2, column_mappings={"question": "input", "answer": "output"}, )

2. Configurez votre infrastructure

Choisissez vos ressources de calcul : le SDK valide les configurations et garantit une configuration optimale.

from amzn_nova_forge.manager.runtime_manager import BedrockRuntimeManager, SMTJRuntimeManager, SMTJServerlessRuntimeManager, SMHPRuntimeManager # Bedrock runtime = BedrockRuntimeManager( execution_role="arn:aws:iam::123456789012:role/ExampleRole" ) # SageMaker Training Jobs runtime = SMTJRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4 ) # SageMaker Training Jobs Serverless runtime = SMTJServerlessRuntimeManager( model_package_group_name = "my-package" ) # SageMaker HyperPod runtime = SMHPRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4, cluster_name="my-hyperpod-cluster", namespace="kubeflow" )

3. Entraînement

Commencez l'entraînement avec seulement quelques lignes de code.

from amzn_nova_forge.trainer.forge_trainer import ForgeTrainer from amzn_nova_forge.model.model_enums import Model, TrainingMethod from amzn_nova_forge.core import ForgeConfig trainer = ForgeTrainer( model=Model.NOVA_LITE_2, method=TrainingMethod.SFT_LORA, infra=runtime, training_data_s3_path="s3://your-bucket/sft/prepared-data.jsonl", # Training data path config=ForgeConfig( output_s3_path="s3://your-bucket/output", ), ) result = trainer.train(job_name="my-training-job")

4. Surveillance

Suivez vos progrès d'entraînement directement depuis le SDK.

from amzn_nova_forge.monitor.log_monitor import CloudWatchLogMonitor # Monitor training logs trainer.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. Evaluer

Évaluez les performances du modèle à l'aide de divers benchmarks intégrés ou concevez vos propres évaluations.

from amzn_nova_forge.evaluator import ForgeEvaluator from amzn_nova_forge.recipe_config.eval_config import EvaluationTask evaluator = ForgeEvaluator( model=Model.NOVA_LITE_2, infra=runtime, config=ForgeConfig( output_s3_path="s3://your-bucket/output", ), data_s3_path="s3://your-bucket/eval-data/data.jsonl" ) # Evaluate on benchmark tasks eval_result = evaluator.evaluate( job_name="model-eval", eval_task=EvaluationTask.MMLU, model_path=result.model_artifacts.checkpoint_s3_path )

6. Déploiement

Déployez votre modèle personnalisé en production avec le support intégré pour Amazon Bedrock ou SageMaker.

from amzn_nova_forge.deployer import ForgeDeployer from amzn_nova_forge.model.model_enums import DeployPlatform deployer = ForgeDeployer( region="us-east-1", model=Model.NOVA_LITE_2, ) # Bedrock provisioned throughput deployment = deployer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_PT, unit_count=10 ) # Bedrock On-Demand deployment = deployer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_OD ) # Sagemaker Real-time Inference deployment = deployer.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", } )

Capacités clés

Création de recettes à la volée

Le SDK élimine le besoin de rechercher les recettes ou l'URI de conteneur appropriés pour des techniques spécifiques.

Traitement intelligent des données

Le SDK transforme automatiquement vos données dans le format approprié pour l'entraînement. Que vous travailliez avec des fichiers JSON, JSONL ou CSV, le chargeur de données gère la conversion de manière fluide. Data Loader prend en charge le texte ainsi que les données multimodales (images et vidéos).

Support de l'infrastructure d'entreprise

Le SDK fonctionne à la fois avec les tâches de SageMaker formation et SageMaker HyperPod gère automatiquement :

  • Validation du type d'instance

  • Validation des recettes

  • Validation d’un jeu de données

  • Orchestration et surveillance des tâches

Le SDK prend également en charge SageMaker Training Jobs sans serveur et la personnalisation de Bedrock.

Évaluation complète

Évaluez vos modèles personnalisés par rapport à des critères de référence standard, notamment :

  • MMLU (compréhension massive du langage multitâche)

  • BBH (Tâches de raisonnement avancées)

  • GPQA (Graduate-Level Google-Proof questions-réponses)

Utilisez les valeurs de référence par défaut ou modifiez-les en fonction de vos besoins :

  • BYOM (apportez votre propre métrique)

  • BYOD (apportez votre propre ensemble de données)

Déploiement en production

Déployez vos modèles sur Amazon Bedrock ou SageMaker AI avec des options pour :

  • Débit provisionné Bedrock : capacité dédiée pour des performances constantes

  • Bedrock On-Demand (applicable uniquement à la personnalisation basée sur LoRa) - tarification Pay-per-use

  • SageMaker AI Real-time Inference - Capacité dédiée pour des performances constantes

Inférence par lots

Exécutez efficacement des tâches d'inférence à grande échelle :

  • Traitez des milliers de demandes en parallèle

  • Agrégation automatique des résultats

  • Cost-effective traitement par lots

Nova Forge

Pour les abonnés de Nova Forge, le SDK prend en charge les recettes de mixage de données.

En savoir plus

Prêt à commencer à personnaliser les modèles Nova avec le SDK Nova Forge ? Consultez notre GitHub référentiel pour des guides détaillés, des références d'API et des exemples supplémentaires : https://github.com/aws/nova-forge-sdk