

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
<a name="nova-forge-sdk"></a>

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.

## Liens rapides
<a name="nova-forge-sdk-quick-links"></a>

Suivez ces étapes pour passer de l'installation à votre premier poste de formation :
+ **[Référence du SDK](https://github.com/aws/nova-forge-sdk/blob/main/docs/spec.md)** - Documentation et spécifications d'utilisation 
+ **[Quick Start Notebook — Carnet](https://github.com/aws/nova-forge-sdk/blob/main/samples/nova_quickstart.ipynb)** de notes Python interactif pour une exploration pratique 

## Avantages
<a name="nova-forge-sdk-why-choose"></a>
+ 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
<a name="nova-forge-sdk-requirements"></a>

**Versions de Python prises en charge**

Le SDK Nova Forge est testé sur :
+ Python 3.12

## Installation
<a name="nova-forge-sdk-installation"></a>

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

```
pip install amzn-nova-forge
```

## Modèles et techniques pris en charge
<a name="nova-forge-sdk-supported-models"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) (SMHP uniquement) | 
|  Fine-tuning LoRa supervisé | [Tous les modèles Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) | 
| Supervisé Fine-tuning Full-Rank | [Tous les modèles Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) (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
<a name="nova-forge-sdk-getting-started"></a>

**Topics**
+ [1. Préparez vos données](#nova-forge-sdk-prepare-data)
+ [2. Configurez votre infrastructure](#nova-forge-sdk-configure-infrastructure)
+ [3. Entraînement](#nova-forge-sdk-train)
+ [4. Surveillance](#nova-forge-sdk-monitor)
+ [5. Evaluer](#nova-forge-sdk-evaluate)
+ [6. Déploiement](#nova-forge-sdk-deploy)

### 1. Préparez vos données
<a name="nova-forge-sdk-prepare-data"></a>

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,
    column_mappings={"question": "input", "answer": "output"},
)
```

### 2. Configurez votre infrastructure
<a name="nova-forge-sdk-configure-infrastructure"></a>

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
<a name="nova-forge-sdk-train"></a>

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,
    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
<a name="nova-forge-sdk-monitor"></a>

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
<a name="nova-forge-sdk-evaluate"></a>

Évaluez les performances du modèle à l'aide de divers [benchmarks intégrés](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-evaluation.html#nova-model-evaluation-benchmark) 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,
    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
<a name="nova-forge-sdk-deploy"></a>

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

deployer = ForgeDeployer(
    region="us-east-1",
    model=Model.NOVA_LITE,
)

# 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
<a name="nova-forge-sdk-key-capabilities"></a>

### Création de recettes à la volée
<a name="nova-forge-sdk-recipe-creation"></a>

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
<a name="nova-forge-sdk-data-processing"></a>

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
<a name="nova-forge-sdk-infrastructure-support"></a>

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
<a name="nova-forge-sdk-evaluation"></a>

Évaluez vos modèles personnalisés par rapport à des critères de [référence standard](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html), 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
<a name="nova-forge-sdk-deployment"></a>

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
<a name="nova-forge-sdk-batch-inference"></a>

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
<a name="nova-forge-sdk-forge"></a>

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

## En savoir plus
<a name="nova-forge-sdk-learn-more"></a>

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](https://github.com/aws/nova-forge-sdk)