
停止用GPT-4调用你的API:微调一个本地工具调用模型
你在为本质上是模式匹配和JSON生成的工作支付前沿模型价格。微调的8B模型以90%+的准确率处理工具调用,每次查询零成本。以下是计算和迁移路径。
目前生产中的每个AI代理都在做同样的事情:接收用户消息,决定调用哪个工具,生成结构化参数并执行。模型的工作是路由和格式化——不是创意写作,不是新颖推理,不是前沿智能。
然而,大多数团队为这项路由工作支付GPT-4价格。这就像雇一个博士来分拣邮件。
成本问题
让我们算一下典型AI代理工作流的数学。
一个电商客服代理处理:
- 每天500次对话
- 平均每次对话4次工具调用决策
- 每次决策约800 token(包含工具的系统提示 + 用户消息 + 模型响应)
月token量: 500 x 4 x 800 x 30 = 4,800万 token/月
| 模型 | 每1M token成本(输入+输出混合) | 月成本 |
|---|---|---|
| GPT-4o | ~$5.00 | $240 |
| GPT-4o mini | ~$0.30 | $14.40 |
| Claude 3.5 Haiku | ~$2.00 | $96 |
| 微调8B(自托管) | ~$0 | $0(仅电费) |
在平台规模下,GPT-4工具调用每月成本$240,000。自托管在硬件投资后实际免费。
硬件成本?一块RTX 4090($1,600)处理所有1,000个代理的工具调用决策。按GPT-4o mini定价,不到一个月就能回本。
为什么工具调用不需要GPT-4
工具调用有一个特定的、受限的输出空间。模型 从固定的函数集合中选择并生成匹配预定义模式的参数。这是分类 + 结构化输出——微调小模型擅长的两个任务。
微调8B模型需要做到的是:
- 识别你特定5-20个工具的用户意图模式
- 从你的固定列表中选择正确的工具
- 生成匹配你特定参数模式的有效JSON
- 知道何时不调用任何工具
这是一个狭窄、定义明确的任务。在你特定工具调用的300-500个示例上微调的8B模型可以可靠地处理它。
迁移路径
步骤1:记录你当前的工具调用
在改变任何东西之前,记录你当前GPT-4代理在2-4周内的每次工具调用。这个日志成为你的训练数据集。
步骤2:清洗和格式化数据集
过滤掉错误的工具调用。将剩余示例格式化为对话格式的JSONL。目标300-500个高质量示例。
步骤3:微调
上传到Ertas,选择Llama 3.1 8B Instruct作为基础模型并训练。
步骤4:A/B测试
将10%的工具调用决策路由到你的微调模型,90%到GPT-4。比较工具选择准确率、参数格式合规性和用户端结果。
步骤5:逐步迁移流量
10% → 30% → 50% → 80% → 100%。每一步验证微调模型处理你真实流量的情况。
步骤6:本地部署
导 出为GGUF,加载到Ollama,将代理端点从api.openai.com更新到localhost:11434。
保留GPT-4的场景
复杂响应生成: 工具返回数据后,生成细微、有同理心、上下文感知的响应可能受益于更大模型。
边缘情况处理: 当微调模型遇到无法自信分类的输入时,回退到GPT-4。
新工具接入: 添加新工具时,GPT-4零样本处理,同时你收集微调模型的训练数据。
更广泛的模式
工具调用只是更大模式的一个实例:不需要前沿智能但按前沿价格计费的任务。
其他适用相同方法的候选任务:
- 分类: 情感分析、主题分类、意图检测
- 结构化提取: 从文档、邮件或表单中提取特定字段
- JSON输出生成: 输出必须符合特定JSON模式的任何任务
- 模板化生成: 起草遵循特定格式的回复
在每种情况下,模式相同:在你的特定任务上微调小模型,本地部署,消除按token费用。
入门
- 记录你当前的GPT-4工具调用2周
- 清洗并格式化为JSONL(目标300-500个示例)
- 在Ertas上微调——Llama 3.1 8B Instruct,标准LoRA设置
- 在10%流量上A/B测试
- 验证准确率匹配或超过GPT-4
- 逐步迁移流量:10% → 50% → 100%
- 通过Ollama本地部署
你的AI代理路由大脑可以在你拥有的GPU上运行,零每查询成本,在你的特定工具上有更好的准确率。唯一的问题是你还要为模式匹配支付GPT-4价格多久。
Ship AI that runs on your users' devices.
Free plan with 30 credits/mo, no card required. Paid plans from $25/mo USD.


