

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# SDK Nova Forge
<a name="nova-forge-sdk"></a>

Nova Forge SDK è un SDK Python completo per personalizzare i modelli Amazon Nova. L'SDK fornisce un'interfaccia unificata per la formazione, la valutazione, il monitoraggio, l'implementazione e l'inferenza dei modelli Amazon Nova su diverse piattaforme, tra cui AI SageMaker e Amazon Bedrock. Che tu stia adattando i modelli ad attività specifiche del dominio o ottimizzando le prestazioni per il tuo caso d'uso, questo SDK offre tutto ciò di cui hai bisogno in un'unica interfaccia unificata.

## Vantaggi
<a name="nova-forge-sdk-why-choose"></a>
+ Un SDK per l'intero ciclo di vita della personalizzazione del modello, dalla preparazione dei dati all'implementazione e al monitoraggio.
+ Supporta diversi metodi di formazione, tra cui il pre-training continuo (CPT), la messa a punto supervisionata (SFT), l'ottimizzazione delle preferenze dirette (DPO) e la regolazione fine del rinforzo (RFT), sia a turno singolo che a turno multiplo, con approcci LoRa e full-rank.
+ Supporto integrato per SageMaker Training Jobs e Amazon Bedrock, con gestione automatica delle risorse. SageMaker HyperPod
+ Non è più necessario cercare le ricette o l'URI del contenitore giusti per le tue tecniche di allenamento.
+ Crea le tue ricette di formazione o utilizza le impostazioni predefinite intelligenti dell'SDK con le sostituzioni dei parametri.
+ L'SDK convalida la configurazione rispetto alle combinazioni di modelli e istanze supportate e fornisce supporto per la convalida, prevenendo gli errori prima dell'inizio della formazione.
+  CloudWatch Il monitoraggio integrato di Amazon ti consente di monitorare i progressi della formazione in tempo reale.
+ Integrato MLFlow per tenere traccia degli esperimenti di formazione con server di MLFlow tracciamento SageMaker AI.

## Requisiti
<a name="nova-forge-sdk-requirements"></a>

**Versioni Python supportate**

Nova Forge SDK è testato su:
+ Python 3.12

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

Per installare questo SDK, segui il comando seguente.

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

## Modelli e tecniche supportati
<a name="nova-forge-sdk-supported-models"></a>

L'SDK supporta i seguenti modelli e tecniche all'interno della famiglia Amazon Nova:


****  

| Metodo | Modelli supportati | 
| --- | --- | 
| Formazione preliminare continua | [Tutti i modelli Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) (solo SMHP) | 
| Ottimizzazione di LoRa supervisionata | [Tutti i modelli Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) | 
| Fine tuning supervisionato Full Rank | [Tutti i modelli Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) (solo SMHP e SMTJ) | 
| Ottimizzazione diretta delle preferenze LoRa | Modelli Nova 1.0 (solo SMHP e SMTJ) | 
| Ottimizzazione diretta delle preferenze complete | Modelli Nova 1.0 (solo SMHP e SMTJ) | 
| Rinforzo: ottimizzazione di LoRa | Nova Lite 2.0 | 
| Ottimizzazione dei rinforzi Full Rank | Nova Lite 2.0 (solo SMHP e SMTJ) | 
| Rinforzo multigiro: ottimizzazione LoRa | Nova Lite 2.0 (solo SMHP) | 
| Rinforzo multigiro perfezionato Full Rank | Nova Lite 2.0 (solo SMHP) | 

## Nozioni di base
<a name="nova-forge-sdk-getting-started"></a>

**Topics**
+ [1. Prepara i tuoi dati](#nova-forge-sdk-prepare-data)
+ [2. Configura la tua infrastruttura](#nova-forge-sdk-configure-infrastructure)
+ [3. Addestramento](#nova-forge-sdk-train)
+ [4. Monitoraggio](#nova-forge-sdk-monitor)
+ [5. Valuta](#nova-forge-sdk-evaluate)
+ [6. Implementazione](#nova-forge-sdk-deploy)

### 1. Prepara i tuoi dati
<a name="nova-forge-sdk-prepare-data"></a>

Carica il tuo set di dati da file locali o da S3 e lascia che sia l'SDK a gestire la trasformazione nel formato corretto per il metodo di allenamento scelto. Oppure, fornisci dati formattati e inizia subito.

```
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. Configura la tua infrastruttura
<a name="nova-forge-sdk-configure-infrastructure"></a>

Scegli le tue risorse di elaborazione: l'SDK convalida le configurazioni e garantisce una configurazione ottimale.

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

Inizia l'allenamento con poche righe di codice.

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

Tieni traccia dei tuoi progressi di allenamento direttamente dall'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. Valuta
<a name="nova-forge-sdk-evaluate"></a>

Valuta le prestazioni del modello con una varietà di [benchmark integrati](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-evaluation.html#nova-model-evaluation-benchmark) o progetta valutazioni personalizzate.

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

Implementa il tuo modello personalizzato in produzione con il supporto integrato per Amazon Bedrock o. 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",
    }
)
```

## Funzionalità chiave
<a name="nova-forge-sdk-key-capabilities"></a>

### Creazione immediata di ricette
<a name="nova-forge-sdk-recipe-creation"></a>

L'SDK elimina la necessità di cercare le ricette o l'URI del contenitore appropriati per tecniche specifiche.

### Elaborazione intelligente dei dati
<a name="nova-forge-sdk-data-processing"></a>

L'SDK trasforma automaticamente i dati nel formato corretto per la formazione. Che tu stia lavorando con file JSON, JSONL o CSV, il data loader gestisce la conversione senza problemi. Data Loader supporta testo e dati multimodali (immagini e video).

### Supporto per l'infrastruttura aziendale
<a name="nova-forge-sdk-infrastructure-support"></a>

L'SDK funziona sia con SageMaker Training Jobs che con la SageMaker HyperPod gestione automatica di:
+ Convalida del tipo di istanza
+ Convalida della ricetta
+ Convalida di set di dati
+ Job orchestrazione e monitoraggio

L'SDK supporta anche la personalizzazione serverless di SageMaker Training Jobs e Bedrock.

### Valutazione completa
<a name="nova-forge-sdk-evaluation"></a>

Valuta i tuoi modelli personalizzati rispetto a [benchmark standard](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html), tra cui:
+ MMLU (Massive Multitask Language Understanding)
+ BBH (Attività di ragionamento avanzato)
+ GPQA (domande e risposte a prova di Google per laureati)

Utilizzate le impostazioni predefinite del benchmark o modificatele in base alle vostre esigenze:
+ BYOM (Bring Your Own Metric)
+ BYOD (Bring Your Own Dataset)

### Distribuzione in produzione
<a name="nova-forge-sdk-deployment"></a>

Distribuisci i tuoi modelli su Amazon Bedrock o SageMaker con opzioni per:
+ **Bedrock Provisioned Throughput**: capacità dedicata per prestazioni costanti
+ **Bedrock On-Demand (applicabile solo alla personalizzazione basata su LoRa) -** prezzi Pay-per-use
+ **Sagemaker Real-time Inference**: capacità dedicata per prestazioni costanti

### Inferenza in batch
<a name="nova-forge-sdk-batch-inference"></a>

Esegui lavori di inferenza su larga scala in modo efficiente:
+ Elabora migliaia di richieste in parallelo
+ Aggregazione automatica dei risultati
+ Elaborazione in batch conveniente

### Nova Forge
<a name="nova-forge-sdk-forge"></a>

Per gli abbonati a Nova Forge, l'SDK supporta ricette per la miscelazione dei dati.

## Ulteriori informazioni
<a name="nova-forge-sdk-learn-more"></a>

Sei pronto per iniziare a personalizzare i modelli Nova con Nova Forge SDK? Consulta il nostro GitHub repository per guide dettagliate, riferimenti API ed esempi aggiuntivi: [https://github.com/aws/nova-forge-sdk](https://github.com/aws/nova-forge-sdk)