Nova 自定义 SDK
Nova 自定义 SDK 是一套功能完整的 Python SDK,专用于 Amazon Nova 模型的自定义开发。该 SDK 为跨不同平台(包括 SageMaker AI 和 Amazon Bedrock)的 Amazon Nova 模型,提供了训练、评估、监控、部署及推理的统一接口。无论是针对特定领域任务适配模型,还是根据自身使用案例优化性能,该 SDK 都能在单一统一接口中提供您所需的全部功能。
优势
-
一款 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 系列中的以下模型与技术:
| 方法 | 支持的模型 |
|---|---|
| 持续预训练 | 所有 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 文件,数据加载器均可无缝完成格式转换。数据加载器同时支持文本数据及多模态数据(图像和视频)。
企业级基础设施支持
该 SDK 可兼容 SageMaker 训练作业与 SageMaker HyperPod,并自动管理以下内容:
-
实例类型验证
-
配方验证
-
数据集验证
-
作业编排与监控
全面评测
基于行业标准基准评测自定义模型,包括:
-
MMLU(大规模多任务语言理解)
-
BBH(高级推理任务)
-
GPQA(Google 无法解答的研究生级别问答基准)
您可直接使用基准默认配置,或根据需求自行定义:
-
BYOM(自定义指标)
-
BYOD(自定义数据集)
生产环境部署
将模型部署到 Amazon Bedrock 或 SageMaker,支持以下部署方式:
-
Bedrock 预置吞吐量:提供专属算力,保障性能稳定
-
Bedrock 按需调用(仅适用于基于 LoRA 的自定义):按需付费
-
Sagemaker 实时推理:提供专属算力,保障性能稳定
批量推理
高效运行大规模推理作业:
-
并行处理数千个请求
-
结果自动聚合
-
高性价比批量处理
Nova Forge
对于 Nova Forge 订阅用户,该 SDK 支持数据混合配方。
了解更多
准备好开始使用 Nova 自定义 SDK 来自定义 Nova 模型了吗? 前往我们的 GitHub 存储库,查看详细指南、API 参考及更多示例::https://github.com/aws/nova-customization-sdk