Gorilla 是基于 LLaMA 微调的模型,专门用于 API 调用生成,在 API 功能性准确率上超越 GPT-4。
论文:Gorilla: Large Language Model Connected with Massive APIs
问题
LLM 的 API 调用能力未完全开发:
- API 规模庞大(潜在数百万)且持续变化
- API 功能重叠但有细微差别和限制
- 幻觉问题:生成不存在或错误的 API 调用
贡献
| 贡献 | 说明 |
|---|---|
| Gorilla 模型 | 基于 LLaMA 微调,API 调用超越 GPT-4 |
| APIBench 数据集 | HuggingFace、TorchHub、TensorHub API |
方法
Self-Instruct 微调
使用 GPT-4 生成合成指令数据,构建 {instruction, API} 训练对。
检索器增强
训练时将检索到的 API 文档附加到用户提示,推理时检索最相关文档:
| 阶段 | 方式 |
|---|---|
| 训练 | user prompt + 检索的 API 文档 |
| 推理 | BM25 / GPT-Index / Oracle 检索器 |
优点:
- 适应测试时 API 文档变化
- 减少幻觉错误
- 提高准确性和实用性
APIBench 数据集
| 来源 | API 数量 | 模型数量 |
|---|---|---|
| HuggingFace | 925 | 各领域 top 20 |
| Torch Hub | 94 | 95 |
| TensorFlow Hub | 696 | 626 |
总计:1,645 API + 16,450 {instruction, API} 对
关键技术
| 技术 | 说明 |
|---|---|
| API Call with Constraints | 参数大小/准确率约束 |
| Retriever-Aware Training | user prompt + API 文档 JSON |
| AST Tree-Matching | 验证 API 调用正确性 |
评估结果
| 对比 | 结果 |
|---|---|
| 基线 | GPT-4、GPT-3.5-turbo、Claude、LLaMA-7B |
| 指标 | API 功能性准确率、幻觉错误率 |
| 结论 | Gorilla 在三个数据集上均优于基线 |
限制
- 数据集集中于 ML 领域 API
- 可能导致对某些子群体不公平预测
GitHub:https://github.com/ShishirPatil/gorilla Leaderboard:https://gorilla.cs.berkeley.edu/leaderboard
张芷铭的个人博客
Comments