Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

2023-03-05 13:03:02 - 机器之心Pro

Meta开源的大模型系列LLaMA评测出炉,对比结果显示,和ChatGPT还是有差距的。

ChatGPT的持续爆火,早已让各大科技公司坐不住了。

就在刚刚过去的一周,Meta「开源」了一个新的大模型系列——LLaMA(LargeLanguageModelMetaAI),参数量从70亿到650亿不等。因为LLaMA比之前发布的很多大模型参数更少,但性能更好,所以一经发布让很多研究者兴奋不已。

例如,130亿参数的LLaMA模型「在大多数基准上」可以胜过参数量达1750亿的GPT-3,而且可以在单块V100GPU上运行;而最大的650亿参数的LLaMA模型可以媲美谷歌的Chinchilla-70B和PaLM-540B。

参数量的减少对于普通研究者和商业机构来说都是好事,但LLaMA真的像论文中说得那样表现那么好吗?和当前的ChatGPT相比,LLaMA是否可以勉强一战?为了解答这些疑问,有些研究者已经对这一模型进行了测试。

还有公司已经在尝试补齐LLaMA短板,想看能不能通过添加RLHF等训练方法让LLaMA表现更好。

LLaMA初步评测

这份评测结果来自一位名叫@Enryu的Medium作者。它比较了LLaMA和ChatGPT在解释笑话、零样本分类和代码生成三个颇具挑战性的任务中的效果。相关博客文章为《Mini-post:firstlookatLLaMA》。

作者在RTX3090/RTX4090上运行LLaMA7B/13B版本,在单个A100上运行33B版本。

需要注意的是,与ChatGPT不同,其他模型并不是基于指令微调,因此prompt的结构有所不同。

解释笑话

这是谷歌原始PaLM论文中展示的一个用例:给出一个笑话,让模型来解释它为什么好笑。该任务需要将世界知识和一些基本逻辑相结合。PaLM之前的所有模型都无法做到这一点。作者从PaLM论文中提取了一些示例,比较了LLaMA-7B、LLaMA-13B、LLaMA-33B与ChatGPT的表现。

Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

可以看到,结果很糟糕。这些模型get到了一些笑点,但无法真正理解,它们只是随机生成一些相关的文本流。ChatGPT虽与LLaMA-33B一样表现很差(其他几个模型更差),但它遵循了不一样的策略:生成了一大堆文本,希望自己的回答至少有一部分是正确的(但大部分显然不是),是不是很像大家考试时应对问答题的策略?

不过,ChatGPT起码get到了关于Schmidthuber的笑话。但总的来说,这些模型在零样本笑话解释任务上的效果与PaLM相差甚远(除非PaLM的示例是精心挑选)。

零样本分类

作者考虑的第二项任务更具挑战性——标题党(clickbait)分类。由于连人类也无法就什么是标题党达成一致,作者在prompt中为这些模型提供了一些示例(因此实际上是小样本而非零样本)。如下为LLaMa的prompt:

Iwilltellwhetherthefollowingnewstitlesareclickbait:1)TheWORSTcarehomesinEngland:Interactivemaprevealsthelowest-rated2,530residences-soisthereonenearyou?Clickbait:yes2)Netflix'stop10most-watchedmoviesofalltimeClickbait:yes3)PeeringThroughtheFogofInflationClickbait:no4)You’llneverbelievewhichTVcookthischeekychapgrewuptobeClickbait:yes下图为LLaMA-7B、LLaMA-13B、LLaMA-33B与ChatGPT的更多示例结果。

Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

很明显,赢家为LLaMA-33B,它是唯一一个能够遵循所有请求格式(yes/no)的模型,并且预测合理。ChatGPT也还可以,但有些预测不太合理,格式也有错误。较小的模型(7B/13B)不适用于该任务。

代码生成

虽然LLM擅长人文学科,但在STEM学科上表现糟糕。LLaMA虽然有基准测试结果,但作者在代码生成领域尝试了一些特别的东西,即将人类语言零样本地转换为SQL查询。这并不是很实用,在现实生活中直接编写查询会更有效率。这里只作为代码生成任务的一个示例。

在prompt中,作者提供表模式(tableschema)以及想要实现的目标,要求模型给出SQL查询。如下为一些随机示例,老实说,ChatGPT看起来效果更好。

--Wehaveatable`events`withcolumns`event_id`,`timestamp`,`user_id`,`rpc_method`.--Wewanttocounthowmanyusersissuedrequest"Login"overthelastweek.--SQLqueryforthisis:--7bSELECTcount(*)FROMeventsWHEREuser_idIN(SELECTuser_idFROMeventsWHEREtimestamp>=NOW()-INTERVAL7DAY)ANDrpc_method='Login';--13bSELECTCOUNT(*)FROMeventsWHERErpc_method="Login"ANDUNIX_TIMESTAMP(timestamp)>=UNIX_TIMESTAMP(CURRENT_DATE-INTERVAL7DAY)--33bSELECTuser_id,COUNT(DISTINCTuser_id)AStotalFROMeventsWHEREtimestampBETWEENTIMESTAMP'2013-08-1400:00:00'ANDTIMESTAMP'2013-08-2100:00:00'ANDrpc_method='Login'GROUPBYuser_id--ChatGPTSELECTCOUNT(DISTINCTuser_id)FROMeventsWHERErpc_method='Login'ANDtimestamp>=DATE_SUB(NOW(),INTERVAL1WEEK);从测试结果来看,LLaMA在一些任务上表现还不错,但在另一些任务上和ChatGPT还有一些差距。如果能像ChatGPT一样加入一些「训练秘籍」,效果会不会大幅提升?

加入RLHF,初创公司NebulyAI开源ChatLLaMA训练方法

虽然LLaMA发布之初就得到众多研究者的青睐,但是少了RLHF的加持,从上述评测结果来看,还是差点意思。

在LLaMA发布三天后,初创公司NebulyAI开源了RLHF版LLaMA(ChatLLaMA)的训练方法。它的训练过程类似ChatGPT,该项目允许基于预训练的LLaMA模型构建ChatGPT形式的服务。项目上线刚刚2天,狂揽5.2K星。

Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

项目地址:https://github.com/nebuly-ai/nebullvm/tree/main/apps/accelerate/chatllama

ChatLLaMA训练过程算法实现主打比ChatGPT训练更快、更便宜,我们可以从以下四点得到验证:

ChatLLaMA是一个完整的开源实现,允许用户基于预训练的LLaMA模型构建ChatGPT风格的服务;

与ChatGPT相比,LLaMA架构更小,但训练过程和单GPU推理速度更快,成本更低;

ChatLLaMA内置了对DeepSpeedZERO的支持,以加速微调过程;

该库还支持所有的LLaMA模型架构(7B、13B、33B、65B),因此用户可以根据训练时间和推理性能偏好对模型进行微调。

Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

更是有研究者表示,ChatLLaMA比ChatGPT训练速度最高快15倍。

Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

不过有人对这一说法提出质疑,认为该项目没有给出准确的衡量标准。

Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星

项目刚刚上线2天,还处于早期阶段,用户可以通过以下添加项进一步扩展:

带有微调权重的Checkpoint;

用于快速推理的优化技术;

支持将模型打包到有效的部署框架中。

NebulyAI希望更多人加入进来,创造更高效和开放的ChatGPT类助手。

该如何使用呢?首先是使用pip安装软件包:

pipinstallchatllama-py然后是克隆LLaMA模型:

gitclonehttps://github.com/facebookresearch/llama.gitcdllamapipinstall-rrequirements.txtpipinstall-e.一切准备就绪后,就可以运行了,项目中介绍了ChatLLaMA7B的训练示例,感兴趣的小伙伴可以查看原项目。

今日热搜