新一代大模型范式: Inner Tools

作者: peirongyan | 公司: 腾讯

开头直接说重点,本文提出一种称之为inner tools的大模型范式,核心思想是将部分无需网络调用的通用工具在模型基座中直接实现并使用,预计可以解决大模型超长上下文理解以及大模型实际应用中消耗资源多,耗时长的问题。

背景

在实践中,使用codebuddy等ai coding工具时会发现在提问后大模型会逐步调用代码检索工具查询代码块(只传代码块这种工程实现主要是为了减少上下文,尤其是在仓库比较大的情况),一些代码逻辑较复杂的场景,大模型通常需要多次调用才能清晰的了解实现逻辑,这就会导致在一个问题上agent层与模型层会有多次网络传输,每一次agent层都要重新调用大模型,这部分输入token会一直算钱,消耗资源的同时还会导致耗时增加。这种问题在ima等知识库工具中同样存在。

解决方案

事实上,这个代码块检索的能力可以直接在大模型层支持,在常规输入给到大模型的同时,增加额外的参数将代码仓库作为内部知识(inner_knowledge)一起传给大模型,大模型在输出token时,判断是否为检索代码库的标签,是的话中断预测并调用本地检索工具,直接检索输入的inner_knowledge,并将检索结果直接加在上下文中继续预测输出token,如此迭代,直至最终返回。

这种能力不仅可以支持代码库,同时对于文档、报告、法律合同等超长文本的情况同样适用,可以统一支持为内部知识检索工具(inner_search)。进一步拓展,对应其他无需网络请求的工具调用,均可以转换为内部工具调用(inner tools),例如数学运算、部分代码执行、图片生成等。(某种意义上讲,这样的实现方式大模型可以说在数学问题上的表现近似达到上限,不过是以一个非常规的方式)

具体技术方案

这里给出一个本人想到的最简实现方案,当然不排除有其他更合适的技术方案,这个方案的核心是将inner tools视为正常的function call工具能力,只在function名称中增加前缀标识"inner_tool_",例如inner_search对应function名称即为inner_tool_inner_search。

下面就以inner_search为例详细介绍下:

  1. 首先在大模型调用协议上增加inner_search工具需要的参数(其他工具不需要这步),对应结构为:

```json

"inner_search_paras": {

"desc": "知识库描述,比如:这是服务对应的代码仓库",

"knowledge": "知识库内容,对应代码仓库的代码文件等"

}

```

  1. 大模型层在获取到用户输入后,需要将提供的inner tools列表添加到输入的tools列表里,对应在function的名称前增加前缀标识"inner_tool_",对于inner_search来说还需要根据参数里的描述desc来修改function的描述,示例如下:

```json

messages = [

{"role": "system", "content": "你是个编程助手"}, // 系统提示词

{"role": "user", "content": "你好"}, // 历史提问

{"role": "assistant", "content": "你好,有什么能帮到你呀"}, // 历史回答

{"role": "user", "content": "这个服务有什么功能"}, // 最新提问

]

tools = [{

"type": "function",

"function": {

"name": "get_weather", // 用户输入的工具

"description": "Get current weather information"

}

},{

"type": "function",

"function": {

"name": "inner_tool_inner_search", // 增加的inner tool

"description": "内部知识检索工具,知识描述:{inner_search_paras.desc}" // 根据输入参数的知识描述填充对应function描述

}

}]

```

  1. 现在准备工作已经做完,接下来在模型输出的时候实时检测对应生成的token对应是否是工具调用,如果是就根据判断function名称判断是否为内部工具,进而调用工具并中断模型输出。这个过程由于是本地执行,理论上是非常快的。

  2. 在工具调用完成后,将工具调用结果(这里对应是代码块列表)加在上下文中,并让模型继续预测直至最终输出完成。

对应其他inner tools也可以参考这个方式实现。

优点

  1. inner tools的方式可以显著减少对大模型的调用次数和耗时,而且不会影响表现效果。

  2. inner_search工具的实现可以解决超长上下文的情况,inner_knowledge可以非常大,而且不会占用上下文长度,在模型层可以灵活检索并增加在上下文中。

  3. 提供的这种实现方式,不需要对大模型本身进行调整和训练,只需要在模型部署层修改代码即可,可以很快适配。

总结和展望

以上是Inner Tools范式提出的过程和具体实现方案,后续我将基于deepseek开源代码提供一个简单的demo附在文章里。

相关推荐
听我哔哔4 分钟前
口播视频唇形总对不上?Seedance 2.5 在 zeekeAI 里的同步实操
人工智能·音视频
隔窗听雨眠6 分钟前
大语言模型推理效率的多维优化与部署取舍
人工智能·语言模型·自然语言处理
全栈练习生13 分钟前
大模型原理之自适应推理
python·ai
听风吹等浪起1 小时前
第30章:MobileNetV3全家桶实现MRI脑肿瘤四分类(含Streamlit网页推理+Mermaid结构图)
人工智能·分类·数据挖掘
如若1231 小时前
TRACER 论文解读与复现:面向 ICU 长时程患者监测的多模态 Harness 架构、时序证据建模与工具增强推理
人工智能·深度学习·计算机视觉
深蓝AI3 小时前
无头浏览器不必从 Chrome 改:Lightpanda 用 Zig 从零造,100 个页面只占 123MB 内存
人工智能·程序员
奈落245 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
火山引擎开发者社区7 小时前
eMudhra 证书失陷:容器用户最容易忽略的镜像信任链漏洞
人工智能
LabVIEW开发8 小时前
LabVIEW 机载 DIAL:每秒万次甲烷测量
人工智能·labview·labview知识·labview功能·labview程序
飞猫的边缘AI9 小时前
英特尔量子生意
人工智能·量子计算·边缘ai