微调工程研究必读·卡梅隆博士系列E02S02·开源LLM的历史:更好的基础模型|A𝕀²·ℙarad𝕚gm化身范式工程方法系列
图|arXiv论文截图
题记
▩提示工程系列
E01S01:「提示工程系列」转译(1):思维链(CoT)提示-一种实用而简单的LLM“推理”方法
E02S01:「提示工程系列」转译(2):实用提示工程-成功提示 LLM 的提示和技巧
E03S01:「提示工程系列」转译(3):提示工程进阶-当小样本学习还不足以解决问题怎么办?
E04S01:「提示工程系列」转译(4):提示合奏使LLM更可靠-简单策略挖掘更多LLM潜能
原文题记
“The capabilities of LLMs are remarkable considering the seemingly straightforward nature of the training methodology.” - from [14]
"LLM训练工程方法看似简单明了,从这一点看的话,LLMs 具备的能力令人瞩目"。- 摘自[14]
开源大语言模型LLM的早期发展
“A model’s knowledge and capabilities are learnt almost entirely during pretraining, while alignment teaches it which subdistribution of formats should be used when interacting with users.” - from [3]
"模型的知识和能力几乎完全是在预训练过程中学习的,而对齐则是教它在与用户交互时应使用哪种格式的子分布"。- 摘自 [3]
解决方案是什么?|鉴于最初的开源 LLM 性能不佳,人们很快就意识到,要想取得任何进展,社区需要从头开始重新创建更高质量的基础模型。此外,这些模型还需要通过更多的数据进行预训练,这样才能提高其性能。鉴于预训练的成本高得惊人(尤其是在对大量数据进行预训练时),这样的工作非同小可。创建更好的开源基础模型必须由有足够资金的组织(如 Meta 或 MosaicML)来完成,这些组织可以支付这些模型的训练费用,并将其免费提供给社区中的其他人。
基础模型改进
△
“GPT-4 has learned from a variety of licensed, created, and publicly available data sources, which may include publicly available personal information.” - from GPT-4 blog
"GPT-4从各种许可的、创建的和公开的数据源中了解到的信息,其中可能包括公开的个人信息"。- 摘自 GPT-4官方博客
鉴于许多专有的 LLM 都是利用不公开的内部数据进行培训的,因此这种特性尤为可取。简而言之,LLaMA 在更多方面朝着提高透明度和公开性迈出了一步。
△
性能提升|与它的前辈相比,LLaMA 是开源 LLM 性能的巨大飞跃。尽管如此,其质量仍然落后于顶级专有 LLM(如 ChatGPT 或 GPT-4),但我们应该记得,LLaMA 模型并没有经过校准。值得注意的是,LLaMA-13B 的性能与 GPT-3 [3]相当,而 LLaMA-65B 在一些情况下优于 PaLM [4],这表明 LLaMA 套件的性能与其他广泛使用的基础模型相当。详细指标见上表。
△
开源爆发|LLaMA 提议中最有趣的一点是其后的开源 LLM 研究;见上图。在 LLaMA 模型的权重公开后,开源研究社区迅速开始发布各种不同的模型变体和软件包。这些开发包括从 LLaMA 的微调版本到从笔记本电脑上高效运行任何 LLaMA 模型推断的 C++ 库。这些发展真正展示了开放研究的魅力。从仅仅通过应用程序接口与这些强大的模型进行交互,到在笔记本电脑上运行它们,我们只用了短短几周时间!
▩MPT:高质量、商业化和开源的LLM
△
尽管 LLaMA 令人印象深刻,但该套件中的所有模型都不能用于商业应用--它们仅在研究方面具有价值。幸运的是,在提出 LLaMA 之后,MosaicML 很快就开发并发布了可用于商业用途(即根据 Apache 2.0 许可证发布)的 MPT 套件。MPT-7B [9]最先发布,引起了广泛的兴趣(也就是说,它基本上是 LLaMA-7B 的可商用替代品!)。事实上,在更大的 MPT-30B [10] 模型发布之前,MPT-7B 在 HuggingFace 上的下载量就超过了 300 万次!
△
这两种模式的主要区别在于
它们使用略有不同的数据组合进行预训练;见上图。 MPT-30B 使用更长的上下文长度(8K 个 token)进行训练(详见注释3)。
不过,这些模型都表现出色,可用于商业应用,因此在人工智能界很受欢迎。
△
MPT 名不虚传?|尽管 LLaMA 大幅提高了开源 LLM 的最新性能,但 MPT 套件的性能却与之不相上下。特别是,MPT-7B 在各种标准基准测试中的性能与 LLaMA-7B 不相上下;见上图。此外,MPT-30B 的性能也与 GPT-3 相当。与类似大小的开源模型(如 LLaMA-30B 和 Falcon-40B)相比,MPT-30B 的性能略差;见下文。不过,在与编码相关的任务上,MPT-30B 的表现要优于这些模型,而且可以在单个 GPU 上托管(带量化)。
△
MPT 变体|除了预训练的 MPT-7B 和 MPT-30B 模型外,还发布了多种微调 MPT 模型,如这两种 MPT 模型的 instruct 和 chat(详见注释4)版本。此外,通过对标记上下文长度为 64K 的数据进行微调,还创建了 MPT-7B 的 "StoryWriter "版本。鉴于预训练 LLM 的成本远高于微调成本,因此可以以边际成本创建各种不同的微调 MPT 变体;见下图。
但等等......还有更多!MPT模型非常有用(尤其是对那些从事商业应用的人来说),但这些模型还伴随着MosaicML发布的一整套软件(即LLM代工厂)。这些开源代码可用于预训练和微调 MPT 模型,使 MPT 套件成为探索 LLM 专业用例的极其宝贵的工具。
▩Falcon:达到开源性能的新高度
△
尽管开源 LLM 取得了许多进展,但在相当长的一段时间内,现有模型在性能方面仍然落后于专有 LLM。Falcon LLM 套件的提出[11]是专有 LLM 的质量第一次真正被开源替代品所媲美。Falcon 有两种变体--Falcon-7B 和 Falcon-40B。除了获得商业授权外,这些 Falcon 模型还在大量定制语料库上进行了预训练,因此表现非常出色。值得注意的是,Falcon-40B 的指导变体在 OpenLLM 排行榜上连续几个月都是表现最好的模型(优势明显)(详见注释5)。
“Challenging existing beliefs on data quality and LLMs, models trained on adequately filtered and deduplicated web data alone can match the performance of models trained on curated data.” - from [12]
"挑战现有的数据质量和 LLM 的信念,仅在经过充分过滤和重复的网络数据上训练的模型,其性能就能与在经过策划的数据上训练的模型相媲美"。- 摘自[12]
从网络中收集数据。Falcon 模型是在一个名为 RefinedWeb [12] 的海量文本语料库中训练出来的,该语料库包含超过 5 万亿个文本标记。实际用于预训练 Falcon-7B 和 Falcon-40B 的 RefinedWeb 数据分别只有 1.5 万亿和 1 万亿。虽然大多数 LLM 都是通过公共来源的策划数据进行预训练的,但 Falcon 的作者却选择完全使用网络数据(即 CommonCrawl)构建自己的预训练数据集。为了过滤这些数据,我们创建了一个新颖的管道,强调简单但有效的组件;见下图。
△
RefinedWeb 语料库表明,可以从网络中有效地整理出大量高质量的文本数据,其规模超过了之前探索过的数据集。经过过滤后,在这些数据上训练出来的模型甚至可以超越在经过整理的数据源上训练出来的同类模型。
△
用于训练 Falcon-7B 和 Falcon-40B 的确切数据集如上所示。值得注意的是,Falcon-7B 是通过纯英语数据进行训练的,而 Falcon-40B 在预训练集中插入了多种欧洲语言的数据。
新的 SOTA。目前,Falcon LLMs 的出版物尚未发布。因此,对这些模型的唯一正式评估是通过 OpenLLM 排行榜进行的,在该排行榜上,Falcon-40B 模型的表现相当出色。特别是,Falcon-40B-Instruct 在一段时间内是最先进的模型,远远超过其他模型;见下图。
△
从质量上讲,一些从业人员声称 Falcon-40B 的性能似乎不如基于 LLaMA 的模型。虽然对这些言论的认识是有益的,但这些证据只是传闻和主观臆断。在标准化的自然语言基准测试中,Falcon LLM 的表现令人难以置信,使其长期保持开源模型中的一流水平。
▩LLaMA-2:当前最好的SOTA开源LLM
△
虽然 Falcon-40B 曾在一段时间内是最先进的开源 LLM,但最近发布的 LLaMA-2 模型套件将其超越。与 LLAMA-1 类似,LLaMA-2 [14] 由多个不同的 LLM 组成,参数规模从 70 亿到 700 亿不等,并且仅使用公开数据进行预训练。LLAMA-2 模型的预训练和微调(详见注释6) 版本都已发布,但由于我们的重点是开源基础模型,因此在本概述中我们将只介绍预训练模型。
“There have been public releases of pre-trained LLMs (such as BLOOM that match the performance of closed pre-trained competitors like GPT-3 and Chinchilla, but none of these models are suitable substitutes for closed product LLMs, such as ChatGPT, BARD, and Claude.” - from [14]
"已经有公开发布的预训练 LLM(如 BLOOM)与封闭式预训练竞争对手(如 GPT-3 和 Chinchilla)的性能不相上下,但这些模型都不能替代封闭式产品 LLM,如 ChatGPT、BARD 和 Claude"。- 摘自[14]
LLaMA-2 通过发布一套在海量数据集上预先训练好的性能更高的基础模型,继续缩小开源代码和闭源代码语言模型之间的性能差距。正如我们将看到的,这些模型的质量仍然无法与专有模型相提并论,但它们比之前的任何开源模型都要接近。
△
有何不同?|LLaMA-2 采用的方法与其前身非常相似,但有一些细微(但有影响)的差别。首先,LLaMA-2 模型的预训练数据比 LLaMA-1 多了 40% - 总共 2 万亿个Tokens,而 LLaMA-1 只有 1.4 万亿个Tokens。此外,LLaMA-2 模型在训练时使用的上下文长度稍长,而且更大的模型在其底层架构中使用了分组查询关注(GQA)。有趣的是,[14] 中的作者指出,LLaMA-2 的预训练设置对已知知识更丰富的数据源进行了采样。做出这样的改变是为了强调事实来源,增加知识,减少幻觉。
△
什么是 GQA?|正如 [15] 中提出的,GQA 是对多头自注意的一种修改,可以提高 LLM 的推理效率。典型的多头自注意机制有 N 个查询头、键头和值头,总共产生 N 个自注意头。在 GQA 中,我们将这 N 个自注意头分成若干组,每组中的键头和值头是共享的;见上图。这种方法是香草vanilla多头自我关注和多查询关注之间的一种插值,后者在所有 N 个头中使用共享的键和值投影(详见注释7)。文献[15]发现,GQA 可以提高推理速度,与多查询注意力不相上下,同时还能保持普通多头注意力的性能。
△
LLaMA-2 真的很棒|与流行的开源模型(如 MPT、Falcon 和 LLaMA-1)相比,LLaMA-2 基本 LLM 的表现相当出色。事实上,LLaMA-2-70B 在所有任务上都创造了开源 LLM 的新纪录(见上图)。但值得注意的是,LLaMA-2 在基于编码的任务(如 HumanEval)上的表现(相对)较差,因此受到了一些批评。
与专有模型相比,LLaMA-2 基本模型的性能更差;见上图。不过,我们应该记住,这种比较是在基本 LLM 和对齐模型(如 GPT-3.5 和 GPT-4)之间进行的。与其他流行的基本 LLM(如 PaLM [4])相比,LLaMA-2 的表现更胜一筹!
商业许可|LLaMA-1 只能用于研究,而 LLaMA-2 是根据商业许可证发布的,这意味着与 MPT 和 Falcon 一样,这些模型也可以用于商业应用。不过,LLaMA-2 使用的许可证并不是标准的 Apache 2.0 许可证--它有一些从业人员应该考虑的注意事项。最值得注意的是,任何由 LLaMA-2 支持、月活跃用户超过 7 亿的实体/应用程序都必须从 Meta 获得使用 LLaMA-2 的许可。请在下面阅读有关 LLaMA-2 许可证的更多信息。
Llama 2 商业许可:https://opensourceconnections.com/blog/2023/07/19/is-llama-2-open-source-no-and-perhaps-we-need-a-new-definition-of-open/
开源LLM的发展趋势
LLaMA:1.4 万亿Tokens
MPT:1 万亿个Tokens
Falcon:1-1.5 万亿Tokens
Llama 2: 2 万亿Tokens
“We performed more robust data cleaning, updated our data mixes, trained on 40% more total tokens, doubled the context length, and used grouped-query attention (GQA) to improve inference scalability for our larger models.” - from [14]
"我们进行了更强大的数据清理,更新了我们的数据组合,在多 40% 的总tokens上进行了训练,将上下文长度增加了一倍,并使用分组查询关注(GQA)来提高大型模型的推理可扩展性"。- 摘自 [14]
△
经过修改的架构|除了比大多数专有模型略小之外,当前的开源 LLM 还采用了多种架构技巧(如上图所示)来加快推理过程,例如
低精度层规范 [https://cameronrwolfe.substack.com/i/131642185/faster-inference]
Flash Attention (详见注释8)[ https://cameronrwolfe.substack.com/i/131642185/faster-inference ]
多查询注意 [https://cameronrwolfe.substack.com/i/131393593/falcon-architecture]
平行变换器 [https://cameronrwolfe.substack.com/i/131393593/falcon-architecture]
组查询关注
此外,为了提高性能,还采用了其他一些架构修改,如 RoPE 嵌入、ALiBi、SwiGLU 激活等。当前的开源 LLM 对Decoder-only的Transformer架构进行了简单的修改,以提高性能和推理速度。
最后的思考
Bibliography
[1] Touvron, Hugo, et al. "Llama: Open and efficient foundation language models." arXiv preprint arXiv:2302.13971 (2023).
[2] Hoffmann, Jordan, et al. "Training compute-optimal large language models." arXiv preprint arXiv:2203.15556 (2022).
[3] Zhou, Chunting, et al. "Lima: Less is more for alignment." arXiv preprint arXiv:2305.11206 (2023).
[4] Chowdhery, Aakanksha, et al. "Palm: Scaling language modeling with pathways." arXiv preprint arXiv:2204.02311 (2022).
[5] Taori, Rohan et al. “Stanford Alpaca: An Instruction-following LLaMA model.” (2023).
[6] Chiang, Wei-Lin et al. “Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality.” (2023).
[7] Geng, Xinyang et al. “Koala: A Dialogue Model for Academic Research.” (2023).
[8] Yuvanesh Anand, Zach Nussbaum, Brandon Duderstadt, Benjamin Schmidt, and Andriy Mulyar. GPT4All: Training an assistant-style chatbot with large scale data distillation from GPT-3.5-Turbo, 2023.
[9] “Introducing MPT-7B: A New Standard for Open-Source, Commercially Usable Llms.” MosaicML, 5 May 2023, www.mosaicml.com/blog/mpt-7b.
[10] “MPT-30B: Raising the Bar for Open-Source Foundation Models.” MosaicML, 22 June 2023, www.mosaicml.com/blog/mpt-30b.
[11] “Introducing Falcon LLM”, Technology Innovation Institute, 7 June 2023, https://falconllm.tii.ae/.
[12] Penedo, Guilherme, et al. "The RefinedWeb dataset for Falcon LLM: outperforming curated corpora with web data, and web data only." arXiv preprint arXiv:2306.01116 (2023).
[13] Rae, Jack W., et al. "Scaling language models: Methods, analysis & insights from training gopher." arXiv preprint arXiv:2112.11446 (2021).
[14] Touvron, Hugo, et al. "Llama 2: Open Foundation and Fine-Tuned Chat Models." arXiv preprint arXiv:2307.09288 (2023).
[15] Ainslie, Joshua, et al. "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints." arXiv preprint arXiv:2305.13245 (2023).
[16] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).
[17] Dao, Tri, et al. "Flashattention: Fast and memory-efficient exact attention with io-awareness." Advances in Neural Information Processing Systems 35 (2022): 16344-16359.
[18] Dao, Tri. "FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning." arXiv preprint arXiv:2307.08691 (2023).
▩原文注释
1 Even the blog post for GPT-4 mentions that this seems to be the case!
2 The Chinchilla paper [2], which provides several valuable insights, shows us that increasing the size (i.e., number of parameters) of a language model is most effective when we also increase the amount of data over which the model is pre-trained.
3 Despite the trend in LLM applications toward longer context lengths, most open-source LLMs (e.g., LLaMA, Falcon, and MPT-7B) are trained using a relatively short context length of only 2K tokens.
4 Chat versions of the MPT models cannot be used commercially, as they are trained on data that cannot be used commercially (e.g., ShareGPT).
5 This model was recently dethroned on the OpenLLM leaderboard by various fine-tuned versions of LLaMA-2-70B.
6 Fine-tuned versions of LLaMA-2, called LLaMa-2-Chat, are optimized for chat use cases using both supervised fine-tuning (SFT) and reinforcement learning from human feedback (RLHF).
7 Multi-query attention is used by a variety of different LLMs, even including Falcon-40B, to improve inference speed.
8 By the way, FlashAttention was recently made faster with the proposal of FlashAttention-2 [18]. Read more about it here.
附录
💡 A𝕀²·ℙarad𝕚gm-Intelligence as a Service v1~v4范式迭代简介
AI范儿A𝕀²·ℙarad𝕚g𝕞从V1到V4的迭代,是一种全新的尝试,基本是沿着:“从GPT现象·看Prompt本质·找创投应用方向“这样的路径,在“AI范儿”社区一众群友prompt下共创并逐步思考迭代的过程。当前v4.0版本涵盖如下内容:1*整体框架与范式路径:(human level)Intelligence as a Service整体框架,与炼丹、挖矿、化身、具生4原生商业范式迭代路径2*服务路径:模型原生(models native)服务路径与卖铲子(shovels selling)服务路径3*智能发展路径:通用人工智能(AGI)发展路径、面向个人智能伴侣(PIA)发展路径以及硅基原生(Silicon Stack)智能发展路径
范式思维升级:v4版A𝕀²·ℙarad𝕚gm范式框架一个重大升级就是思维范式的变化,研究对象从GPT现象上升到智能现象,同时纳入了和人类及其组织智能对等的硅基原生智能及其生态,甚至在具有某种自主意识的AI智能体“具生”范式里,考虑在world of bits的纯数字世界里,和人类无关的agent形态。对等智能体分别为Human Intelligence Species(含群体组织)与 Silicon Native Entities(含群体生态),区别为human是否in loop。因此对等智能体之间的价值交互可分为:AI对于人类智能的增强; AI对于人类智能的替代; AI智能本体的自主化。
▩炼丹(pre-training) (v1. AIGC) - tokens as a service [~AGI/ASI]
▩挖矿(prompting) (v1. AIGC) - prompts as a service [~GPT agents]
▩化身(fine-tuning) (v2&v4. Models Anywhere&Anyone) - models as a service [~in-devices&on-premises agents]
▩具生(agents) (v3&v4. Promptless) - agents as a service [~world of atoms&bits | human in loop & Silicon Native Entities]△附:A𝕀²·ℙarad𝕚gm-Intelligence as a Service v1-v4范式迭代路径简介版
△
“AI范儿的A𝕀²·ℙarad𝕚gm商业范式v4.0示意图”
进阶阅读
进阶阅读
卡梅隆博士系列E01S01:提示工程-CoT思维链实现LLM推理
卡梅隆博士系列E02S01:提示工程-实用提示工程建议与技巧
卡梅隆博士系列E03S01:提示工程-高级提示工程超越few-shot
卡梅隆博士系列E04S01:提示工程-提示合奏使LLM更可靠
卡梅隆博士系列E01S02:开源LLM的历史-早期
参考
说明:本文在公众号里标注为“原创”仅为防止未经许可的转发,本文引用内容的版权属于原作者和原媒体。
-CAMERON R. WOLFE:The History of Open-Source LLMs: Better Base Models (Part Two)
END
扫码加群,
立变AI🍚!
AI范儿读者群
那些prompt了我的,
是否也prompt了你...