Nova Customization SDK - Amazon Nova

Nova Customization SDK

Nova Customization SDK は、Amazon Nova モデルをカスタマイズするための包括的な Python SDK です。SDK は、SageMaker AI や Amazon Bedrock など、さまざまなプラットフォームで Amazon Nova モデルのトレーニング、評価、モニタリング、デプロイ、推論を行うための統合インターフェイスを提供します。モデルをドメイン固有のタスクに適応させる場合でも、ユースケースに合わせてパフォーマンスを最適化する場合でも、この SDK は 1 つの統合インターフェイスで必要なものをすべて提供します。

利点

  • データ準備からデプロイ、モニタリングまで、モデルカスタマイズライフサイクル全体で 1 つの SDK。

  • 継続的事前トレーニング (CPT)、教師ありファインチューニング (SFT)、直接選好最適化 (DPO)、強化ファインチューニング (RFT) など、単一ターンとマルチターンの両方を LoRA とフルランクアプローチでサポートします。

  • 自動リソース管理による SageMaker トレーニングジョブのサポートが組み込まれています。

  • トレーニング手法に適したレシピやコンテナ URI を見つける必要がなくなります。

  • 独自のトレーニングレシピを使用するか、パラメータオーバーライドで SDK のインテリジェントデフォルトを使用します。

  • SDK は、サポートされているモデルとインスタンスの組み合わせに対して設定を検証し、検証サポートを提供し、トレーニングを開始する前にエラーを防止します。

  • 統合された Amazon CloudWatch モニタリングを使用すると、トレーニングの進行状況をリアルタイムで追跡できます。

  • 統合された MLFlow は、SageMaker AI MLFlow 追跡サーバーを使用してトレーニング実験を追跡します。

要件

SDK には、少なくとも Python 3.12 が必要です。

インストール

この SDK をインストールするには、以下のコマンドに従ってください。

pip install amzn-nova-customization-sdk

サポートされているモデルと手法

SDK は、Amazon Nova ファミリー内で以下のモデルと手法をサポートしています。

Method サポートされているモデル
継続的な事前トレーニング すべての Nova モデル (SMHP のみ)
教師ありファインチューニング (LoRA) すべての Nova モデル
教師ありファインチューニング (フルランク) すべての Nova モデル
直接選好最適化 (LoRA) Nova 1.0 モデル
直接選好最適化 (フルランク) Nova 1.0 モデル
強化ファインチューニング (LoRA) Nova Lite 2.0
ファインチューニングの強化 (フルランク) Nova Lite 2.0
マルチターン強化ファインチューニング (LoRA) Nova Lite 2.0 (SMHP のみ)
マルチターン強化ファインチューニング (フルランク) Nova Lite 2.0 (SMHP のみ)

開始方法

1. データを準備する

ローカルファイルまたは S3 からデータセットをロードし、選択したトレーニング方法に適した形式への変換を SDK で処理できるようにします。または、フォーマットされたデータを提供し、すぐに開始します。

from amzn_nova_customization_sdk.dataset.dataset_loader import JSONLDatasetLoader from amzn_nova_customization_sdk.model.model_enums import Model, TrainingMethod loader = JSONLDatasetLoader(question="input", answer="output") loader.load("s3://your-bucket/training-data.jsonl") loader.transform(method=TrainingMethod.SFT_LORA, model=Model.NOVA_LITE)

2. インフラストラクチャを設定する

コンピューティングリソースを選択する — SDK は設定を検証し、最適なセットアップを保証します。

from amzn_nova_customization_sdk.manager.runtime_manager import SMTJRuntimeManager, SMHPRuntimeManager # 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. トレーニング

わずか数行のコードでトレーニングを開始します。

from amzn_nova_customization_sdk.model import NovaModelCustomizer from amzn_nova_customization_sdk.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. モニタリング

SDK から直接トレーニングの進行状況を追跡します。

from amzn_nova_customization_sdk.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. 評価

さまざまな組み込みベンチマークを使用してモデルのパフォーマンスを評価するか、独自の評価を設計します。

from amzn_nova_customization_sdk.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. デプロイ

Amazon Bedrock または SageMaker の組み込みサポートを使用して、カスタマイズされたモデルを本番環境にデプロイします。

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

主な機能

オンザフライレシピ作成

SDK を使用すると、特定の手法に適したレシピやコンテナ URI を検索する必要がなくなります。

インテリジェントデータ処理

SDK は、データを自動的にトレーニング用の正しい形式に変換します。JSON、JSONL、CSV ファイルのいずれを使用している場合でも、データローダーは変換をシームレスに処理します。Data Loader は、テキストデータとマルチモーダルデータ (イメージとビデオ) をサポートしています。

エンタープライズインフラストラクチャのサポート

SDK は SageMaker トレーニングジョブと SageMaker HyperPod の両方で動作し、以下を自動的に管理します。

  • インスタンスタイプの検証

  • レシピの検証

  • データセットの検証

  • ジョブのオーケストレーションとモニタリング

包括的な評価

カスタマイズされたモデルを、以下を含む標準ベンチマークと照らし合わせて評価します。

  • MMLU (Massive Multitask Language Understanding)

  • BBH (Advanced Reasoning Tasks)

  • GPQA (Graduate-Level Google-Proof Q&A)

ベンチマークのデフォルトを使用するか、ニーズに合わせて変更します。

  • BYOM (Bring Your Own Metric)

  • BYOD (Bring Your Own Dataset)

本番稼働のデプロイ

以下のオプションを使用して、Amazon Bedrock または SageMaker にモデルをデプロイします。

  • Bedrock プロビジョンドスループット - 一貫したパフォーマンスを実現する専用キャパシティ

  • Bedrock オンデマンド (LoRA ベースのカスタマイズにのみ適用可能) - 従量課金制の価格

  • Sagemaker リアルタイム推論 - 一貫したパフォーマンスを実現する専用キャパシティ

バッチ推論

大規模な推論ジョブを効率的に実行します。

  • 数千のリクエストを並行して処理する

  • 自動結果集約

  • コスト効率の高いバッチ処理

Nova Forge

Nova Forge サブスクライバーの場合、SDK はデータミキシングレシピをサポートします。

詳細はこちら

Nova Customization SDK を使用して Nova モデルのカスタマイズを開始する準備はできましたか? 詳細なガイド、API リファレンス、その他の例については、GitHub リポジトリを参照してください: https://github.com/aws/nova-customization-sdk