解决方案概述
在SageMaker训练作业中使用Nova定制配方的工作流程包含以下关键步骤:
- 选择特定Nova定制配方,该配方提供完整的配置参数来控制训练过程
-
- 通过API向SageMaker控制平面提交配方配置
-
- SageMaker使用训练作业启动脚本在托管计算集群上运行配方
-
- 训练完成后自动释放计算资源
业务用例实现
本案例重点优化Nova Micro模型在结构化函数调用方面的表现:
- 使用nvidia/When2Call数据集进行DPO训练
-
- 训练数据格式转换为Nova要求的聊天补全格式
-
- 采用参数高效微调(PEFT)技术降低计算成本
数据集准备
from datasets import load_dataset
dataset = load_dataset("nvidia/When2Call", "train_pref", split="train")
DPO训练配置
recipe_overrides = {
"training_config": {
"trainer": {"max_epochs": 1},
"model": {
"dpo_cfg": {"beta": 0.1},
"peft": {
"peft_scheme": "lora",
"lora_tuning": {
"loraplus_lr_ratio": 16.0,
"alpha": 128,
"adapter_dropout": 0.01,
},
},
},
},
}
模型评估结果
指标 | 基准模型 | 微调模型 | 提升幅度 |
---|---|---|---|
F1 | 0.26 | 0.46 | 81% |
ROUGE-1 | 0.38 | 0.52 | 39% |
ROUGE-2 | 0.28 | 0.40 | 42% |
模型部署
训练完成的模型可通过CreateCustomModel API部署到推理服务:
request_params = {
"modelName": "nova-micro-sagemaker-dpo-peft",
"modelSourceConfig": {"s3DataSource": {"s3Uri": model_path}},
"roleArn": role,
}
response = bedrock.create_custom_model(**request_params)
资源清理
为避免产生额外费用,请确保删除以下资源:
- SageMaker训练作业
-
- 模型部署实例
-
- 临时存储数据
- 更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)