LEMUR论文解析
简介:现存开源模型如lllama2、Codellama要么只擅长于文本任务或者代码任务,二者任务没有很好的结合。作者认为一个好的agent应该既具有和人类语言交互的能力,也应具有很好的编程语言、外部工具使用能力。作者通过提出的Lemur、Lemur-chat发现当很好地结合二者时,Lemur的性能在多个任务上能超越其他模型。同时作者发现自然语言和编程能力之间需要协同作用,即对于具有强大自然语言能力但编程能力较弱的模型,比如Llama-2-70B-Chat,他们可以有效地使用简单的工具来辅助推理,因为行动空间较小,使用工具的难度较低。然而,在面对复杂的决策场景,如网络浏览和家庭导航时,行动空间通常较大,具有强大编程能力的模型在生成复杂可执行的行动序列上具有优势。
模型训练过程:采用的基础模型为llma 2。训练过程分为预训练、指令微调两个阶段。预训练阶段:目的为了保留llama2的推理能力同时增强其代码能力。数据集中代码和文本的数据量比例为10:1,共有90billion tokens。指令微调阶段:包含300k examples
对于之前的经典benchmark,如:自然语言benchmark:MMLU、BBH、GSM8K。Code benchmark:HumanEval、MBPP等。作者认为他们仅关注了在单轮交互中的表现,不能完全表示模型在语言代理情境中的能力。
作者提出了能展现language agent能力的四个场景:工具使用(API搜索维基词典、使用python计算)、基于环境反馈的自我debug(能否根据报错情况等,在多轮交互中不断debug直至写出正确的shell、python代码)、基于人类/agent的反馈改进下一输出序列、基于部分可观察范围的探索(如家庭模拟导航)。根据今年提出的MINT数据集选择出对应部分作为评估的测试集。
实验:对于经典的benchmark,Lemur和Lemur-chat都取得了远超其他模型的结果。对于提出的四个场景,在开源模型中llama2-70B、codellama-34B-INST,Lemur-chat均表现出最好的性能。但是比起GPT4一些任务如探索、基于环境反馈的自我debug还是相差甚远