写点什么

狂追 ChatGPT:开源社区的“平替”热潮

作者:OneFlow
  • 2023-04-14
    中国香港
  • 本文字数:3261 字

    阅读完需:约 11 分钟


目前,不少优质的类 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


1

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


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


2

更多的 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 的表现最好。


3

更多社区支持


近年来,受 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)。


4

Alpaca 是完美的方法吗?


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


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


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


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


5

总结


在 1910 年,一架比空气重的飞行器完成了从伦敦到巴黎的旅行,用时 25 小时 11 分钟。当时没有人能想到大约 50 年后人类会登上月球,这一壮举只有通过人类共同努力探索所有可能性才能实现。我相信 Alpaca 是 AIGC 时代最早的“飞行器”之一,我们很快就会有开源实现来超越 GPT 模型。


题图源:Midjourney


其他人都在看


欢迎 Star、试用 OneFlow 最新版本:https://github.com/Oneflow-Inc/oneflow/

发布于: 刚刚阅读数: 3
用户头像

OneFlow

关注

不至于成为世界上最快的深度学习框架。 2022-03-23 加入

★ OneFlow深度学习框架:github.com/Oneflow-Inc/oneflow ★ OF云平台:oneflow.cloud

评论

发布
暂无评论
狂追ChatGPT:开源社区的“平替”热潮_OneFlow_InfoQ写作社区