目前,不少优质的类ChatGPT模型都只能通过API接入,而一些开源LLM的效果与ChatGPT相比差距不小。不过,近期开源社区开始密集发力了。


其中,Meta的LLaMA模型泄漏是开源“ChatGPT”运动的代表性事件。基于LLaMA模型,开源社区近期接连发布了ChatLLaMa、Alpaca、Vicuna、Koala等模型,效果直追GPT-3.5,它也因此成为了开源LLM领域的创新地。

4月12日, Databricks完全开源了12B参数的指令跟随LLMDolly 2.0 ,包括训练代码、数据集(15000个prompt/response pairs)和模型权重,这些都可以随意商用。Dolly 2.0 基于EleutherAI pythia模型系列而开发。同一天,为了以更低成本、更快速度训练类ChatGPT模型,微软发布了DeepSpeed-Chat。

来自开源社区的“ChatGPT平替”浪潮正在爆发,LLM的生态构建将迎来新变革。

作者 | Toooold

OneFlow编译

翻译 | 贾川

当今,开源社区一直在寻求一种独立于OpenAI和ChatGPT的方法,正如早期的飞行器想要摆脱重力一样。

今年三月初,斯坦福大学AI研究所(Stanford HAI)分享了一种成功方法“Alpaca: A Strong, Replicable Instruction-Following Model( https://github.com/tatsu-lab/stanford_alpaca )”,证明指令调优是一种有前途的方法。于是,这场ChatGPT“平替”的竞争开始了!

(本文在遵循CC BY-NC-SA 4.0协议的基础上由OneFlow编译发布,译文转载请联系OneFlow获得授权。原文:https://toooold.com/2023/04/08/magnificient_underdogs.html?continueFlag=91058ca99dd78323ff38cb1f8e6b2d7c)

再思考大型语言模型之“大”

LLM指的是“大型语言模型” ,通常认为只有足够大的模型才能达到GPT的性能水平。然而,斯坦福的Alpaca提出了一条重要信息:只需对较小模型进行有限的指令调优,同样也能在重要任务中表现良好。这可以分成两个方面来解释:较小的模型和重要任务。

在Alpaca对Llama的7B模型进行指令调优之前,人们普遍认为模型越大,性能才能达到GPT的水平,而且可能需要一个175B的模型才能够与GPT-3相媲美。Alpaca利用Llama的预训练模型为基础,仅使用来自GPT模型的一个非常小的调优数据集(只有52000个样本),建立了一个具有对话功能的LLM。这表明: 在拥有良好的指令调优数据集的情况下,只要语言模型足够强大,就可以达到良好的性能,而不需要非常大的模型来匹配GPT-3。

此外,Alpaca和Llama还表明,LLM并不需要在所有任务中表现得很好。例如,Alpaca和Llama 7B在处理编程相关任务时表现不佳,但在对话和一般任务方面表现良好。指令调优提供的逐步方法是,添加更多知识到Alpaca模型中并利用其已学到的对话功能。例如,通过添加额外的2万个编程特定样本,可以让codealpaca在许多编程任务中表现良好。

另一方面,OpenAI展示了其超大型模型的工程债,例如可用时间有限以及ChatGPT Plus客户每3小时只能进行25个查询等等。这些结果表明: 较小的LLM可能是更好的选择。

事实上,现在Llama和Alpaca 7B已经能够运行在最便宜的设备上,如Macbook Air、树莓派4和谷歌Pixel 6手机上,因此它们成为了AI时代的新“毁灭战士”。

它能运行LLaMA 7B吗?这会不会是“它能运行Doom吗”的新表述?——@ylecun

更多的ChatGPT开源“平替”加入这场角逐

Llama和Alpaca率先开启了这场角逐,随后更多的LLM模型也加入了其中。它们带来了更多的数据,以改进Alpaca;同时还有更快的调优方法或其他网络结构来代替Llama。

Alpaca需要更多的调优数据。来自“Guanaco: A Multilingual Instruction-Following Language Model Based on LLaMA 7B”( https://github.com/Guanaco-Model/Guanaco-Model.github.io )的Guanaco通过将Alpaca的指令用多种语言重新编写,并添加新的指令以对齐多种语言、理解内容等方式,引入了530k的多语言数据。像“Chinese-Vicuna: A Chinese Instruction-following LLaMA-based Model”( https://github.com/Facico/Chinese-Vicuna )和Chinese-LLaMA-Alpaca( https://github.com/ymcui/Chinese-LLaMA-Alpaca )这样的语言特定模型也提供了优化。源自“Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality”( https://github.com/lm-sys/FastChat#vicuna-weights )的Vicuna则专注于改进Alpaca的聊天功能。

微软的低秩(Low Rank)采用方式“LoRA”对加速tuning起了很大作用。这个想法很好:它将权重“冻结(freezed)”,但“在Transformer架构的每个层中注入可训练的秩分解矩阵(rank decomposition matrices)”,使得调优速度可以提高3倍。LoRA技术不仅对语言模型有用,它还有助于更快地调优文本到图像任务中的稳定扩散(stable diffusion)模型。( https://github.com/cloneofsimo/lora

与此同时,Llama在这个框架中并不是那么重要,可以被替换成其他模型。Meta的Llama不允许对任何代码或权重进行商用。为更加独立,Lit-llama编写了Llama推理代码,但它仍需要使用Llama权重。开源社区提供了一些选择,其中GLM和RWKV是最有前途的两个模型。

GLM(https://arxiv.org/abs/2103.10360)是一系列不同尺寸的模型。 它采用的方法与Meta的Llama不同,其6B模型具有聊天功能,可称为ChatGLM。与此同时,RWKV非常独特。它没有跟随像GPT中的堆叠式解码器Transformer结构,而是使用了类似RNN的递归网络,因此其上下文长度在理论上是无限的,而且其推理速度更快,内存成本更低。RWKV可以达到Transformer模型的质量,其对话版本可作为ChatRWKV找到。

当然,我们也没有忘记上一代的GPT家族。Databricks开源了他们使用GPT-neox网络结构和应用指令调优的Dolly。结果也不错!

我们可以在Language Model Evaluation Harness框架( https://github.com/EleutherAI/lm-evaluation-harness )中比较LLM的性能,基准在这里 https://bellard.org/ts_server/ 。截至目前(2023年4月上旬),这场角逐中LLama的表现最好。

更多社区支持

近年来,受Alpaca的启发,使用self-instruct进行精调变得愈发流行。借助框架,微调也变得更加容易。其中,xtuning是一个易于使用且优秀的框架。最近,xtuning宣布使用Alpaca-Lora进行INT4调优(使用GPT-4的知识进行调优也是一个不错的想法),进一步推动了数据采集的发展。GLM团队还提出了更加高效的调优方法,如P-tuning-v2。

社区还推崇脱离GPU的独立性。 从3月初开始,像llama.cpp和alpaca.cpp这样的工作提供了工程优化,使得我们能够在CPU上运行量化模型。然而需要明白“天下没有免费的午餐”, 量化可能会导致精度等方面的损失 ,因此需要参考上述LLM基准测试以了解更多细节。

值得一提的是,像llama-index和LangChain这样的下游工具支持将这些开源的GPT竞争对手作为替代后端。请参考这些工具的文档,了解使用自定义LLM的更多细节

https://github.com/jerryjliu/llama_index/blob/main/docs/how_to/customization/custom_llms.md )。

Alpaca是完美的方法吗?

Alpaca引起了人们对比赛中这些LLM大模型的关注,但我们也必须承认它们存在一些缺点:法律问题、数据偏见、编码和数学问题。

Alpaca使用Llama作为其源结构,但Llama不允许商用,且其权重未公开,除非通过申请。

alpaca_data.json的52000条指令调优数据具有很好的多样性,但随后研究表明其存在质量问题,可在此处找到修复方法: https://github.com/gururise/AlpacaDataCleaned

GPT-4在数学和推理方面的能力已经更加强大,但Alpaca仍然无法获取足够的调优数据以执行此类任务。

在1910年,一架比空气重的飞行器完成了从伦敦到巴黎的旅行,用时25小时11分钟。当时没有人能想到大约50年后人类会登上月球,这一壮举只有通过人类共同努力探索所有可能性才能实现。

我相信Alpaca是AIGC时代最早的“飞行器”之一,我们很快就会有开源实现来超越GPT模型。

题图源:Midjourney

其他人都在看

欢迎Star、试用OneFlow: github.com/Oneflow-Inc/oneflow/ icon-default.png?t=N2N8 http://github.com/Oneflow-Inc/oneflow/

目前,不少优质的类ChatGPT模型都只能通过API接入,而一些开源LLM的效果与ChatGPT相比差距不小。不过,近期开源社区开始密集发力了。其中,Meta的LLaMA模型泄漏是开源“ChatGPT”运动的代表性事件。基于LLaMA模型,开源社区近期接连发布了ChatLLaMa、Alpaca、Vicuna、Koala等模型,效果直追GPT-3.5,它也因此成为了开源LLM领域的创新地。4月12日...