其实语言模型使用工具已经不算是什么秘密了,从Toolformer开始,比较著名的还有使用Huugging Face的模型,GPT-4的技术报告甚至说明了强大的语言模型甚至不需要单独训练或上下文学习就可以直接使用常见的工具了。
当然了,这里说的工具主要是虚拟工具,或者所程序的接口API(例如计算器的接口API),虽然也有用实际工具的(微软用ChatGPT控制机器人等),但总归不多。见:
【花师小哲】当代炼金术(神经网络)前沿(13)——语言模型自学使用工具?
【花师小哲】当代炼金术(神经网络)前沿(17)——ChatGPT帮你控制机器人
然而,本篇论文是关于制作工具的:
1.制作工具与重用
制作工具其实某种程度上并不是特别困难的事情,并且对于本篇论文来讲,制作工具更像是一个噱头(但为了和之前的专栏题目对应,所以题目还是制作工具),醉翁之意不在酒。
我们平时测试各种大模型,例如ChatGPT、文心一言时就经常拿它们写写代码,某种程度上这就是制作工具了,只不过很多时候没有重用罢了。
没错,重用某种程度上才是本文的重点。
我们知道,很多问题的解法都是类似的,只不过输出换了一下而已。如果我们每个题都让GPT-4这样的强模型来做的话,很浪费钱(GPT-4根据输入和输出的token数收费),但用一些便宜但弱一些的模型来做又能力不足,怎么办呢?
这时候我们让强模型针对一类问题写一套解决方法(工具),然后弱模型来调用就可以重复使用工具(使用工具的能力不需要太强的模型)来解决类似的问题。
2.架构
基本架构如下:
很简单,就是一个语言模型(工具制造者)根据一些示例做一个工具,当然,做工具也是包括写、评估、包装等步骤。然后,另一个语言模型(工具用户)就可以调用这个工具了。
OK,然后我们把这个系统放到真实的环境中,即我们不知道哪些问题是需要制作个新工具还是只要现有工具就可以了,也很简单,再加一个语言模型:
这个模型负责审查就可以了。整体架构并不复杂。
3.总结
所以从上文分析大家也知道了,这个工作的主要目的就是为了省钱,让强且贵的模型制作一些通用的工具,然后大部分工作只需要用弱且便宜的模型用工具就可以了。
或者说,类似于一种变向的蒸馏,即从强模型中提取“通用知识”出来供弱模型使用。