

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.

## 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.
+ Support intégré 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.
+ Intégré MLFlow pour suivre les expériences d'entraînement avec des serveurs MLFlow de suivi basés sur l' SageMaker IA.

## 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 | 
| --- | --- | 
| Pré-formation continue | [Tous les modèles Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) (SMHP uniquement) | 
| Réglage précis supervisé de la LoRa | [Tous les modèles Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) | 
| Réglage précis supervisé du classement complet | [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, classement complet | Modèles Nova 1.0 (SMHP et SMTJ uniquement) | 
| Renforcement : réglage précis de la LoRa | Nova Lite 2.0 | 
| Renfort, réglage précis du classement complet | Nova Lite 2.0 (SMHP et SMTJ uniquement) | 
| Renfort multitours, réglage précis de la LoRa | Nova Lite 2.0 (SMHP uniquement) | 
| Renfort à tours multiples, réglage précis du classement complet | 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, 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 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.model import NovaModelCustomizer
from amzn_nova_forge.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. Surveillance
<a name="nova-forge-sdk-monitor"></a>

Suivez la progression de votre entraînement directement depuis le SDK.

```
from amzn_nova_forge.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. 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.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. 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.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",
    }
)
```

## 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 (questions-réponses Google-Proof de niveau supérieur)

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 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
+ **Inférence en temps réel Sagemaker** - 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
+ Traitement par lots rentable

### 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)