随着企业加速采用代理式 AI,团队在扩展智能应用程序的同时管理推理成本方面面临着越来越大的挑战。大语言模型 (LLM) 提供强大的性能,但会产生巨大的计算需求,通常会导致高延迟和高成本。
与此同时,许多开发工作流程(例如评估、数据管理和微调)在很大程度上仍是手动操作。这些流程非常耗时,难以自动化,并且无法有效扩展。
更复杂的是,AI 智能体越来越依赖多个专业模型来执行推理、工具路由和摘要等任务。每个组件都有不同的性能特征和优化要求,因此很难大规模地单独评估和调整它们。
为解决这一问题,NVIDIA 推出了用于构建数据飞轮的 NVIDIA AI Blueprint,这是一种基于 NVIDIA NeMo 微服务构建的参考架构。借助该蓝图,团队能够利用来自 AI 智能体交互的真实生产流量,在不影响准确性的情况下,将 LLM 持续转换为更小、更便宜、更快速的模型。它自动执行结构化实验,探索可用模型的空间,为生产推广或更深入的手动评估提供有前景的高效候选。
本博客将介绍 Data Flywheel Blueprint 的工作原理、如何将其应用于代理式工具调用的真实用例,以及如何轻松配置数据飞轮,以便为您自己的代理式 AI 工作流构建数据飞轮。此演示 notebook 将飞轮置于预先筛选的客户服务代理数据集上。
它是如何运作的?
此版本的蓝图旨在帮助团队使用更小、更高效的替代方案来复制大型基础模型 (例如 70B 参数) 的功能。通过针对生产任务持续对现有和新发布的模型进行基准测试,微调有前景的候选模型,并呈现性能出色的较小模型,该系统使团队能够在不影响模型准确性的情况下降低延迟和推理成本。

数据飞轮 Blueprint 的核心是 Flywheel Orchestrator 服务,这是一个统一的控制平面,简化了直接与 NeMo 微服务交互的复杂性。作为飞轮系统的大脑,Orchestrator API 利用一套模块化 NeMo 微服务来协调数据飞轮工作:
- NVIDIA NeMo Customizer 可处理基于 LoRA 的轻量级微调
- NVIDIA NeMo Evaluator 使用 LLM-as-a-judge 评分自动进行评估
- 用于管理结构化数据集和构件的 NeMo Datastore
- NeMo 部署管理器,用于动态启动和提供候选模型 (NIMs) 以进行推理
飞轮的工作原理如下:
第 1 步:记录提取
来自教师基 NIM (例如,一个 70B 的大型模型) 的生产提示/ 响应日志被输入到 Elasticsearch 索引中。这些日志遵循 OpenAI 兼容格式。
第 2 步:用于分区的标记
每个日志都使用 workload_id
等元数据进行标记,使系统能够按任务隔离和处理每个代理节点的数据。
第 3 步:创建数据集
编排器会对日志进行去重,并将其转换为任务对齐的数据集,以便进行训练和评估。值得注意的是,这些数据集不依赖于任何外部 ground-truth 标签(仅依赖于原始模型的响应),因此无需手动标记。这些数据集存储在 NeMo Datastore 中。
第 4 步:微调作业
使用 NeMo Customizer,使用 LoRA 适配器启动监督式微调作业。每个作业都将存储在 NeMo Datastore 中的大型教师模型中的知识提炼成特定于任务的较小候选模型,而无需手动制作数据集。
第 5 步:评估运行情况
NeMo Evaluator 使用三种评估方法对多个候选 NIM 模型进行基准测试:
base-eval
:原始日志的 Zero-shot baselineicl-eval
:基于上下文的 Few-shot 评估customized-eval
:微调管道后的评估
第 6 步:Scoring 和 aggregation
使用 NeMo Evaluator(包括 LLM-as-a-judge)对模型输出进行评分,并通过 Orchestrator API 报告结果。
第 7 步:审核和推广
开发者和管理员可以通过编程方式访问指标、下载artifact、启动后续实验,或者将性能出色的候选项推广到生产环境中,以取代更大的NIM。
整个循环可以按需调度或触发,从而创建一个自动化、可扩展的系统,该系统可持续且逐步呈现更小、更快、更经济高效的模型,同时保持更大基准模型的准确性。
采用 Data Flywheel Blueprint 进行代理式工具调用
为了展示 Data Flywheel Blueprint 的价值和用途,我们将其应用于一个颇具影响力的用例:Agentic Tool Calling。对于必须通过结构化 API 调用与外部系统可靠交互的生产级 AI 代理而言,这一点尤其重要。
我们基于 NVIDIA AI Blueprint 构建 AI 虚拟助手,这是一款多工具智能体,专为产品问答、订单跟踪、退货和随意对话等客户支持任务而设计。最初,此智能体由一个大型 Llama-3.3-70B-instruct 模型提供支持,该模型可高精度执行工具调用。我们希望调整较小的模型,使其与较大模型的准确性相匹配,同时降低成本。在生产环境中,这将由真实的客户互动驱动,以不断提高工具调用性能。
为了模拟生产流量,我们以合成方式生成自然语言查询,并在兼容 OpenAI 的请求响应日志中捕获智能体的工具调用行为。这些日志成为训练和评估数据集的基础。
使用此设置,我们使用 Data Flywheel Blueprint 进行了三次优化实验,以评估较小候选模型的工具调用性能:
- 零样本提示 (
`base-eval`
) :模型 (包括更大的基础 NIM) 在没有任何示例或自定义的情况下,根据类似于生产的提示进行评估。这可作为黄金标准,捕捉大型模型的原始行为,并为较小模型的基准测试提供参考点。 - 上下文学习 (
`icl-eval`
) :每个提示词都预先添加了几个样本。这些示例来自实际生产流量,并由 flywheel 根据蓝图附带的 ICL 配置 (config.yaml) 自动采样和格式化。这种方法仅通过上下文提示来测试模型可以改进的程度。 - 使用 LoRA (
`customized-eval`
) 进行监督式微调:我们使用`training_config`
和`lora_config
` 部分,使用 LoRA 适配器对模型进行微调,并使用源自生产日志的精选任务特定数据集进行训练。然后对这些模型进行评估,以测量base-eval
和icl-eval
的增益。
NeMo Evaluator 使用 LLM-as-judge 判断功能,无需人工标记即可自动为所有模型输出评分。每次运行都提供了 `function_name_and_args_accuracy`
和 `tool_calling_correctness`
等结构化指标,这些指标均通过 Orchestrator API 记录和呈现,以供查看和比较。整个流程已完全自动化,因此开发者可以通过编程方式访问评估报告,以推荐性能出色的候选项来取代原始 NIM。
结果:与最初的 70B 模型相比,使用 SFT-LoRA 微调的 Llama-3.2-1B 模型实现了 98% 的工具调用准确率。随着越来越多的交通数据流过蓝图,自动重复的微调和评估周期实现了这一点。
其结果是,模型的重量显著减轻,在保持准确性的同时,还能显著降低延迟和成本。值得注意的是,经过优化的 Llama-3.2-1B 模型只需要一个 GPU 即可提供服务,而初代 Llama-3.3-70B 则需要两个 GPU。
观看此demo video,了解如何启动此blueprint并将这些实验付诸实践。
配置和运行Blueprint
要启动和运行Data Flywheel Blueprint,您首先需要设置环境并部署所需的服务。您可以在此 GitHub repo readme 下找到详细说明,但步骤大致涉及:
- 生成用于部署 NeMo 微服务的个人 API 密钥,访问托管为 NIM 的模型,并在本地下载模型
- 部署 NeMo 微服务平台
- 安装和配置 Data Flywheel Orchestrator
环境准备就绪后,您将使用 config.yaml
文件配置模型和工作流程。此文件定义了从要部署的 NIM 模型到用于微调 (例如 LoRA) 和评估 (例如 ICL、LLM-as-a-Judge) 的配置的所有内容。
注意:此文件会在系统启动时加载。这些设置在飞轮运行期间保持不变。要更新任何内容,您必须停止服务、修改 YAML 并重新部署。
以下是启动flywheel作业需要查看或修改的基本步骤和配置块。
模型设置
指定要部署和评估的 NIM。您可以设置模型名称、上下文长度、GPU 数量以及自定义等其他选项。查看可通过 NeMo Customizer 进行微调的支持模型。
nims:
- model_name: "meta/llama-3.2-1b-instruct"
context_length: 32768
gpus: 1
pvc_size: 25Gi
tag: "1.8.3"
customization_enabled: true
微调
指定微调参数。其中包括训练类型、微调类型、batch size和训练epochs次数。
training_config:
training_type: "sft"
finetuning_type: "lora"
epochs: 2
batch_size: 16
learning_rate: 0.0001
lora_config:
adapter_dim: 32
adapter_dropout: 0.1
上下文学习 (In-context learning, ICL) 设置
通过 ICL 模式评估模型时,配置使用的 few-shot 示例及其上下文窗口。
icl_config:
max_context_length: 32768
reserved_tokens: 4096
max_examples: 3
min_examples: 1
评估设置
控制如何为每个评估作业将数据划分为validation集和evaluation集。
data_split_config:
eval_size: 20
val_ratio: 0.1
min_total_records: 50
random_seed: null
limit: null
eval_size
:用于评估的示例数量
val_ratio
:用于验证的数据比率
启动飞轮作业
配置完成后,只需对微服务进行简单的 API 调用即可启动作业。
# client_id: Identifier of the application or deployment that generated traffic
# workload_id: Stable identifier for the logical task / route / agent node
curl -X POST http://localhost:8000/api/jobs \
-H "Content-Type: application/json" \
-d '{"workload_id": "tool_router", "client_id": "support-app"}'
成功提交后,系统将返回tool-calling准确性指标,这些指标可用于比较各种模型的性能。
"scores": {
"function_name_and_args_accuracy": 0.95,
"tool_calling_correctness": 1
}
将蓝图扩展到自定义工作流程
该蓝图是一个参考工作流,可以轻松进行定制,为任何下游任务构建数据飞轮。NVIDIA 已经在其合作伙伴生态系统中看到了早期采用案例。
- Weights & Biases 在 NVIDIA API Catalog 上提供此数据飞轮蓝图的自定义版本,并通过用于 agent 可追溯性和可观察性、模型实验跟踪、评估和报告的工具进行增强。
- Iguazio 是一家被 QuantumBlack 收购的机器学习公司,也是麦肯锡的 AI 公司,他们调整了该蓝图,通过 AI 编排和监控组件构建自己的自定义数据飞轮,为其 AI 平台提供动力支持。这也可作为 NVIDIA API 目录中的合作伙伴示例。
- Amdocs 已将该蓝图集成到其 amAIz 平台中,并将 LLM 微调和评估直接集成到 CI/CD 流水线中。通过增加自动化和增强功能,这使得 Amdocs 能够随着新基础模型的出现不断提高其 agent 的准确性和性能,同时在开发周期初期发现潜在问题。
- 安永正在整合该蓝图,通过实时模型优化来增强 EY.ai Agentic Platform,使代理能够在税务、风险和财务领域实现自我改进、经济高效。
- VAST 正在通过将 VAST AI 操作系统与 NVIDIA 的 Data Flywheel Blueprint 集成,为自定义用例设计自己的数据飞轮。它将支持跨多模态来源的实时数据收集、丰富和反馈,加速金融、医疗健康和科学研究等行业的智能 AI 工作流交付。
为您的用例构建数据飞轮
在 NVIDIA API Catalog 上探索适用于数据飞轮的 NVIDIA AI Blueprint,并深入了解设置指南、实施详情和教程。按照视频教程进行实操演示,了解如何为博客中介绍的代理式工具调用用例构建飞轮。
使用新的 NVIDIA NeMo Agent 工具套件构建代理式工作流的开发者可以使用此蓝图围绕其智能体无缝构建数据飞轮,并集成该工具包的评估和分析功能。
欢迎于 6 月 18 日加入我们的团队,参加实时网络研讨会,届时我们的专家将详细介绍 NVIDIA NIM 和 NeMo 微服务如何助力数据飞轮。在我们即将于 6 月 26 日举行的直播问答环节中,与 NVIDIA 蓝图产品团队互动,深入了解如何使用此最新蓝图轻松构建数据飞轮。