测试者在~/work/project 中创建了一个虚拟存储库 , 其中包含文件 license.txt , 但不是标准的 LICENSE 文件名 。
然后测试者尝试在不与 ChatGPT 沟通的情况下 , 看它是否能完成任务 ——「找出位于~/work/project 中的开源项目正在使用的 license」(Find out what license the open source project located in ~/work/project is using) 。
文章插图
ChatGPT 遵循一个非常自然的顺序 , 并解决了这个问题 。
对于开源模型 , 测试者编写了一个更简单的(引导式)prompt , 其中包含一系列命令输出:
guided_terminal = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}Please complete the following task:Task: list the files in the current directoryYou can run bash commands using the syntax:COMMAND: commandOUTPUT: outputOnce you are done with the task, use the COMMAND: DONE.{{/user}}{{#assistant~}}COMMAND: lsOUTPUT: guidance projectCOMMAND: DONE {{~/assistant~}}{{#user~}}Please complete the following task:Task: {{task}}You can run bash commands using the syntax:COMMAND: commandOUTPUT: outputOnce you are done with the task, use the COMMAND: DONE.{{~/user}}{{#assistant~}}{{#geneach 'commands' stop=False ~}}COMMAND: {{gen 'this.command' stop='\n'}}OUTPUT: {{shell this.command)}}{{~/geneach}}{{~/assistant~}}''')
我们来看一下 Vicuna 和 MPT 执行该任务的情况 。Vicuna:
文章插图
MPT:
文章插图
在一个有趣的转折中 , Vicuna 无法解决这个任务 , 但 MPT 却成功了 。除了保密性之外 , 开源模型在这里有一个显著的优势:整个 prompt 被作为一个输入传递给一个 LLM 模型(测试者甚至通过不让它生成像 COMMAND 这样的输出结构 token 来加速它) 。
相比之下 , 他们必须为每个命令重新调用 ChatGPT , 这更慢 , 开销也更大 。
接下来 , 他们又尝试了一个不同的命令:「在~/work/guidance 目录下找到当前未被 git 跟踪的所有 jupyter notebook 文件」
以下是 ChatGPT 的回答:
文章插图
测试者再次遇到一个问题:ChatGPT 没有遵循他们指定的输出结构(这样就使得它无法在无人干预的情况下在程序内使用) 。该程序只是执行命令 , 因此在上面最后一条 ChatGPT 信息之后就停止了 。
测试者怀疑空输出会导致 ChatGPT 关闭 , 因此他们通过在没有输出时更改信息来解决这个特殊问题 。然而 , 他们无法解决「无法强迫 ChatGPT 遵循指定的输出结构」这一普遍问题 。
在做了这个小小的修改后 , ChatGPT 就能解决这个问题:让我们看看 Vicuna 是怎么做的:
文章插图
Vicuna 遵循了输出结构 , 但不幸的是 , 它运行了错误的命令来完成任务 。MPT 反复调用 git status , 所以它也失败了 。
测试者还对其他各种指令运行了这些程序 , 发现 ChatGPT 几乎总是能产生正确的指令序列 , 但有时并不遵循指定的格式(因此需要人工干预) 。此处开源模型的效果不是很好(或许可以通过更多的 prompt 工程来改进它们 , 但它们在大多数较难的指令上都失败了) 。
归纳总结测试者还尝试了一些其他任务 , 包括文本摘要、问题回答、创意生成和 toy 字符串操作 , 评估了几种模型的准确性 。以下是主要的评估结果:
- 任务质量:对于每项任务 , ChatGPT (3.5) 都比 Vicuna 强 , 而 MPT 几乎在所有任务上都表现不佳 , 这甚至让测试团队怀疑自己的使用方法存在问题 。值得注意的是 , Vicuna 的性能通常接近 ChatGPT 。
- 易用性:ChatGPT 很难遵循指定的输出格式 , 因此难以在程序中使用它 , 需要为输出编写正则表达式解析器 。相比之下 , 能够指定输出结构是开源模型的一个显著优势 , 以至于有时 Vicuna 比 ChatGPT 更易用 , 即使它在任务性能方面更差一些 。
推荐阅读
- 一文读懂什么是AIGC、ChatGPT、大模型
- 考研|军官职业发展系列谈之三——“考研”
- 大模型赛道正“热”:卷场景、卷芯片、卷人才
- AI大模型的未来市场在中国
- “AI的商业化路线已经清晰” 2023京东“赶考”千亿级产业大模型
- 鱼龙混杂大模型:谁在蹭热点?谁有真实力?
- MathGPT来了!专攻数学大模型,解题讲题两手抓
- 大模型“群雄逐鹿”,科大讯飞何以脱颖而出?
- 除了推出大模型,AI发展还应做什么
- 欧莱雅护肤系列分别适用的年龄段;欧莱雅护肤品哪种好用?