

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

Nova Forge SDK 是用於自訂 Amazon Nova 模型的全方位 Python SDK。開發套件提供統一的界面，用於跨 SageMaker AI 和 Amazon Bedrock 等不同平台訓練、評估、監控、部署和推論 Amazon Nova 模型。無論您是針對特定領域的任務調整模型，還是針對您的使用案例最佳化效能，此 SDK 都能在一個統一的界面中提供所需的一切。

## 優勢
<a name="nova-forge-sdk-why-choose"></a>
+ 一個適用於整個模型自訂生命週期的開發套件，從資料準備到部署和監控。
+ 支援多種訓練方法，包括持續訓練前 (CPT)、監督式微調 (SFT)、直接偏好最佳化 (DPO) 和強化微調 (RFT)，包括單迴轉和多迴轉，同時採用 LoRA 和全排名方法。
+ 內建支援 SageMaker Training Jobs、SageMaker HyperPod 和 Amazon Bedrock，具有自動資源管理。
+ 您不再需要為您的訓練技術尋找正確的配方或容器 URI。
+ 使用您自己的訓練配方，或使用 SDK 的智慧型預設值搭配參數覆寫。
+ 開發套件會根據支援的模型和執行個體組合來驗證您的組態，並提供驗證支援，在訓練開始之前防止錯誤。
+ 整合式 Amazon CloudWatch 監控可讓您即時追蹤訓練進度。
+ 整合 MLFlow 以使用 SageMaker AI MLFlow 追蹤伺服器追蹤訓練實驗。

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

**支援的 Python 版本**

Nova Forge SDK 經過以下測試：
+ Python 3.12

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

若要安裝此 SDK，請遵循下列命令。

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

## 支援的模型和技術
<a name="nova-forge-sdk-supported-models"></a>

開發套件支援 Amazon Nova 系列中的下列模型和技術：


****  

| Method | 支援模型 | 
| --- | --- | 
| 持續預先訓練 | [所有 Nova 模型 ](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference)（僅限 SMHP) | 
| 受監督的微調 LoRA | [所有 Nova 模型](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) | 
| 受監督的微調完整範圍 | [所有 Nova 模型](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html#nova-model-recipes-reference) （僅限 SMHP 和 SMTJ) | 
| 直接偏好設定最佳化 LoRA | Nova 1.0 模型 （僅限 SMHP 和 SMTJ) | 
| 直接偏好設定最佳化完整排名 | Nova 1.0 模型 （僅限 SMHP 和 SMTJ) | 
| 強化微調 LoRA | Nova Lite 2.0 | 
| 強化微調完整範圍 | Nova Lite 2.0 （僅限 SMHP 和 SMTJ) | 
| 多迴轉強化微調 LoRA | Nova Lite 2.0 （僅限 SMHP) | 
| 多迴轉強化微調全執行 | Nova Lite 2.0 （僅限 SMHP) | 

## 開始使用
<a name="nova-forge-sdk-getting-started"></a>

**Topics**
+ [1. 準備您的資料](#nova-forge-sdk-prepare-data)
+ [2. 設定您的基礎設施](#nova-forge-sdk-configure-infrastructure)
+ [3. 訓練](#nova-forge-sdk-train)
+ [4. 監控](#nova-forge-sdk-monitor)
+ [5. 評估](#nova-forge-sdk-evaluate)
+ [6. 部署](#nova-forge-sdk-deploy)

### 1. 準備您的資料
<a name="nova-forge-sdk-prepare-data"></a>

從本機檔案或 S3 載入資料集，並讓軟體開發套件針對您選擇的訓練方法處理轉換至正確的格式。或者，提供格式化的資料並立即開始使用。

```
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. 設定您的基礎設施
<a name="nova-forge-sdk-configure-infrastructure"></a>

選擇您的運算資源 - SDK 會驗證組態，並確保最佳設定。

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

只需幾行程式碼即可開始訓練。

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

直接從 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. 評估
<a name="nova-forge-sdk-evaluate"></a>

使用各種[內建基準](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-evaluation.html#nova-model-evaluation-benchmark)評估模型效能，或設計您自己的評估。

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

透過 Amazon Bedrock 或 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",
    }
)
```

## 關鍵功能
<a name="nova-forge-sdk-key-capabilities"></a>

### 在飛行配方建立上
<a name="nova-forge-sdk-recipe-creation"></a>

SDK 不需要搜尋適當的配方或容器 URI 以取得特定技術。

### 智慧型資料處理
<a name="nova-forge-sdk-data-processing"></a>

軟體開發套件會自動將您的資料轉換為正確的訓練格式。無論您是使用 JSON、JSONL 或 CSV 檔案，資料載入器都會順暢地處理轉換。Data Loader 支援文字和多模式資料 （影像和影片）。

### 企業基礎設施支援
<a name="nova-forge-sdk-infrastructure-support"></a>

開發套件可與 SageMaker 訓練任務和 SageMaker HyperPod 搭配使用，自動管理：
+ 執行個體類型驗證
+ 配方驗證
+ 資料集驗證
+ 任務協調和監控

軟體開發套件也支援 SageMaker Training Jobs 無伺服器和 Bedrock 自訂。

### 全面評估
<a name="nova-forge-sdk-evaluation"></a>

根據[標準基準](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html)評估您的自訂模型，包括：
+ MMLU （基本多任務語言理解）
+ BBH （進階推理任務）
+ GPQA （研究生層級 Google-Proof 問與答）

您可以使用基準預設值，或修改它們以符合您的需求：
+ BYOM （使用您自己的指標）
+ BYOD （使用您自己的資料集）

### 生產部署
<a name="nova-forge-sdk-deployment"></a>

使用下列選項將模型部署至 Amazon Bedrock 或 SageMaker：
+ **Bedrock 佈建輸送量** - 提供一致效能的專用容量
+ **Bedrock 隨需 （僅適用於 LoRA 型自訂）** - Pay-per-use定價
+ **Sagemaker 即時推論 ** - 提供一致效能的專用容量

### 批次推論
<a name="nova-forge-sdk-batch-inference"></a>

有效率地執行大規模推論任務：
+ 平行處理數千個請求
+ 自動結果彙總
+ 經濟實惠的批次處理

### 新堡
<a name="nova-forge-sdk-forge"></a>

對於 Nova Forge 訂閱者，開發套件支援資料混合配方。

## 進一步了解
<a name="nova-forge-sdk-learn-more"></a>

準備好開始使用 Nova Forge SDK 自訂 Nova 模型了嗎？ 如需詳細指南、API 參考和其他範例，請參閱我們的 GitHub 儲存庫：https：//[https://github.com/aws/nova-forge-sdk](https://github.com/aws/nova-forge-sdk)