达到ChatGPT九成功力
鱼羊 编辑整理
非常AI | 公众号 QbitAI
2000块,调教出一个达到ChatGPT九成功力的开源大模型。
还是被GPT-4亲自盖章认证实力的那种。
这事儿,一群主要来自加州大学伯克利分校的研究人员做到了。
如图中所见,这个模型名叫Vicuna (小羊驼)。
没错,熟悉的配方,熟悉的味道。Vicuna同样是基于Meta开源的LLaMA大模型(大羊驼)微调而来。
与此前斯坦福大学基于LLaMA的Alpaca(还是羊驼)不同的是,尽管也薅了ChatGPT羊毛——用了ChatGPT生成的数据,但Vicuna所用的数据来自ShareGPT,而不是直接用OpenAI的API生成。
ShareGPT是一个分享ChatGPT对话的谷歌插件,目前拥有超过11万对话数量。
更为特别的是,这一次,研究人员直接请来GPT-4本尊,给新模型“打分”。
他们还提到:
相比于Alpaca-13B等模型,GPT-4在绝大多数问题上偏向于Vicuna。
此模型一出,就吸引了不少网友的关注。
就有网友认为:这类工作证明,对于个人用户而言,大语言模型并不是那么遥不可及。
非常AI最新获悉,目前,Vicuna的权重已经完全开放。
还可在线体验:https://chat.lmsys.org
谁是GPT-4更爱的模型?
具体的打分过程,咱们一起来看看具体示例。
首先,同时抛给Alpaca和Vicuna这样一个问题:
写一篇关于最近去夏威夷旅行的旅游博客,强调文化体验和必看景点。
Compose an engaging travel blog post about a recent trip to Hawaii, highlighting cultural experiences and must-see attractions.
Vicuna的回答如下,可以说是要素齐全,并且带有较强的感情色彩。
△翻译来自谷歌翻译
相比之下,Alpaca的回答就简短得多。
然后,把这两个答案都丢给GPT-4,让它按10分制分别给打个分。
这一步,需要设置好prompt,研究人员用到的提示词是这样的:
We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above.
Please rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.
Please first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.
In the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment.
其中的技巧在于:
- 首先完整陈述任务:(1)需要写的是反馈;(2)评价对象是两个AI助手;(3)评价内容是它们的回答表现;(4)回复的对象是上面列着的用户的问题。
- 给出评价的标准:(1)有帮助(不是车轱辘话,且考虑回复的对象是人类用户,生成的回答要让人类可以理解);(2)相关(不能偏题);(3)准确(不能胡说八道);(4)详尽(不能太空太高或者回避细节)。
- 给出评分范围:1-10。
- 给出评分的意义:越高代表综合表现越好。
- 给出评分的第一行输出格式:必须在第一行输出两个数字,分别代表给两个AI助手的评分。用空格分隔评分。
- 给出评分的其余行输出:要求提供一个详尽的分析。
- 给出更多评分限定条件:避免任何偏见;避免回答顺序影响结果。
于是,对于上面这两篇《夏威夷游记》,GPT-4给Vicuna打了10分,给Alpaca打了7分。
理由是:
助手1没有按要求实际撰写博客,只是提供了简要概述,因此得分较低。而助手2则针对近期的一次夏威夷之旅,撰写了一篇详细且引人入胜的旅游博客,重点介绍了文化体验和必游景点,充分满足了用户需求,获得了较高的分数。
研究人员还用同样的方法对比评估了LLaMA-13B、ChatGPT-3.5和Vicuna之间的差异。
对于ChatGPT vs Vicuna,GPT-4给出的评价是:各有千秋,都打9分。
研究人员提到,整个评测过程依然是human-in-the-loop。他们会查看GPT-4的评估是否有道理,并总结各个模型的优缺点。
这种人机协作的方式,比人类直接生成评估更高效。并且“虽然无法科学地证实这一点,但是可以感觉到GPT-4对不少答案的评估结果要好于一般人类”。
基于这样的方法,研究人员最后把Vicuna和其他模型的回答以匿名的方式抛给了GPT-4。
GPT-4最终的打分结果显示,在130亿参数LLaMA基础上微调而来的Vicuna,达到了ChatGPT(GPT-3.5)性能的90%,超过了LLaMA-13B本身和斯坦福的Alpaca。
胜率图也显示,在与LLaMA-13B和Alpaca-13B的比较中,裁判GPT-4明显偏爱Vicuna。Vicuna还和谷歌的Bard打了个有来有回。
训练细节
Vicuna的不俗表现背后,是来自ShareGPT的大约7万条对话数据。
为了确保数据质量,研究人员把HTML转成了markdown,过滤掉了低质量样本,还对过长的对话进行了切分,以适应模型的最大上下文长度。
另外,研究人员也借助了Alpaca的肩膀:增强了Alpaca提供的训练脚本,以更好地处理多轮对话和长序列。具体包括:
- 内存优化:Vicuna的最大上下文长度为2048(Alpaca为512),对GPU内存要求更高。研究人员利用梯度检查点和内存注意力来解决内存压力。
- 多轮对话:调整训练损失来适应多轮对话任务,并仅根据聊天机器人的输出计算微调损失。
- 降低成本:研究人员使用SkyPilot managed spot来降低成本。该解决方案将70亿参数模型的训练成本从500美元降低至140美元左右。将130亿参数模型的训练成本从1000美元降低至300美元(约合人民币2068元)。
整个Vicuna的训练,用到了8张A100 GPU,训练时间是一天。
One More Thing
说起来,Vicuna这个开源大模型,从里到外都挺AI的。
比如LOGO,就是用Stable Diffusion 2.1生成的。
有意思的一件事是,作者们是自己想出了“Vicuna”这个羊驼系的名字,但他们也就取名问题问了问GPT-4。
而GPT-4跟他们英雄所见略同了:
你们可以管它叫“Vicuña”。
△图源:知乎@SIY.Z
最后的最后,提醒一句,Vicuna只能用于非商业用途哟~
参考链接:
[1]https://vicuna.lmsys.org/
[2]https://zhuanlan.zhihu.com/p/618389519
[3]https://github.com/lm-sys/FastChat
— 完 —