您好,欢迎访问一九零五行业门户网

全方位、无死角的开源,邢波团队LLM360让大模型实现真正的透明

开源模型正展现着它们蓬勃的生命力,不仅数量激增,性能更是愈发优秀。图灵奖获得者 yann lecun 也发出了这样的感叹:「开源人工智能模型正走在超越专有模型的路上。」
专有模型在技术性能和创新能力方面表现出了巨大的潜力,但是由于其非开源的特性,阻碍了llm的发展。一些开源模型虽然为从业者和研究者提供了多样化的选择,但大多数只公开了最终的模型权重或推理代码,越来越多的技术报告将其范围限制在顶层设计和表面统计之内。这种闭源的策略不仅限制了开源模型的发展,而且在很大程度上阻碍了整个llm研究领域的进步
这意味着,这些模型需要更全面和深入地共享,包括训练数据、算法细节、实现挑战以及性能评估的细节。
cerebras、petuum 和 mbzuai 等的研究者们共同提出了 llm360。这是一项全面开源 llm 的倡议,主张向社区提供与 llm 训练相关的一切,包含训练代码和数据、模型检查点以及中间结果等。llm360 的目标是让 llm 训练过程透明化,使每个人都能复现,从而推动开放和协作式的人工智能研究的发展。
论文地址:https://arxiv.org/pdf/2312.06550.pdf项目网页:https://www.llm360.ai/博客:https://www.llm360.ai/blog/introducing-llm360-fully-transparent-open-source-llms.html研究者们制定了 llm360 的架构,重点关注其设计原则和完全开源的理由。他们详细规定了 llm360 框架的组成部分,包含数据集、代码和配置、模型检查点、指标等具体细节。llm360 为当前和未来的开源模型树立了透明度的样本。
研究者在 llm360 的开源框架下发布了两个从头开始预训练的大型语言模型:amber 和 crystalcoder。amber 是基于 1.3t token 进行预训练的 7b 英语语言模型。crystalcoder 是基于 1.4t token 预训练的 7b 英语和代码语言模型。在本文中,研究者们总结了这两个模型的开发细节、初步评估结果、观察结果以及从中汲取的经验和教训。值得注意的是,在发布时,amber 和 crystalcoder 在训练过程中分别保存了 360 个和 143 个模型检查点。
下面,我们一起来看看文章的详细内容吧
llm360 的框架llm360 将为 llm 预训练过程中需要收集哪些数据和代码提供一个标准,以确保已有的工作能更好地在社区中流通、共享。它主要包含以下几个部分:
1. 训练数据集和数据处理代码
预训练数据集对大型语言模型的性能至关重要。因此,了解预训练数据集,用以评估潜在的行为问题和偏见非常重要。此外,公开的预训练数据集有助于提高 llm 在后续微调和适应各领域时的可扩展性。最近的研究表明,在重复数据上进行训练会不成比例地降低模型最终的性能。因此,公开原始预训练数据,有助于避免在下游微调或继续在特定领域进行预训练时使用到重复的数据。综合以上原因,llm360 倡导公开大型语言模型的原始数据集。在合适的情况中,还应公开关于数据过滤、处理和训练顺序的详细信息。
需要重新写作的内容是:2. 训练代码、超参数和配置
训练代码、超参数和配置对 llm 训练的性能和质量有重大影响,但并不总是公开披露。在 llm360 中,研究者开源预训练框架的所有训练代码、训练参数以及系统配置。
3. 模型检查点重写为:3. 模型检查点
定期保存模型检查点也相当有用。它们不仅对训练过程中的故障恢复至关重要,而且对训练后的研究也很有用,这些检查点可以让后来的研究者从多个起点继续训练模型,无需从头开始训练,有助于复现和深入研究。
4. 性能指标
训练一个 llm 往往需要花费数周至数月,训练期间的演化趋势可以提供有价值的信息。然而,目前只有亲历者才能获得训练的详细日志和中间指标,这阻碍了对 llm 的全面研究。这些统计数据往往包含了难以察觉的关键见解。即使是对这些衡量标准进行方差计算这样的简单分析,也能揭示重要的发现。例如,glm 的研究团队就是通过分析梯度规范行为,提出了一种有效处理损失尖峰和 nan 损失的梯度收缩算法。
amber amber 是 llm360 「大家庭」的第一位成员,同时发布的还有它的微调版本:amberchat 和 ambersafe 。
需要重写的内容:数据和模型的详细信息
表 2 详细列出了 amber 的预训练数据集,其中包含 1.26 t 个标记。其中包括数据的预处理方法、格式、数据混合比例以及 amber 模型的架构细节和特定预训练超参数。详细信息请参考 llm360 代码库的项目主页
amber采用了与llama 7b4相同的模型结构,表3总结了llm的详细结构配置
在预训练和超参数方面,研究人员尽力遵循了llama的预训练超参数。amber使用adamw优化器进行训练,超参数为:β₁=0.9,β₂=0.95。此外,研究人员还发布了几个amber的微调版本:amberchat和ambersafe。amberchat是基于wizardlm的指令训练数据集进行微调的。有关更多参数细节,请参阅原文
为了达到不改变原始含义的目的,需要将内容重写为中文。以下是对实验及结果的重写:进行实验和结果分析
研究者们使用了open llm排行榜上的四个基准数据集来评估amber的性能。根据图4所示,在hellaswag和arc数据集中,amber的得分在预训练期间逐渐增加,而在truthfulqa数据集中,得分则随着训练进行而降低。在mmlu数据集中,amber的得分在预训练的初始阶段下降,然后开始上升
在表 4 中,研究者将 amber 的模型性能与 openllama、redpajama-incite、falcon、mpt 等类似时间段内训练出的模型进行了比较。许多模型的设计灵感都来自 llama 。可以发现,amber 在 mmlu 的得分较为出色,但在 arc 上的表现稍逊一筹。与其他类似模型相比,amber 的表现相对较强。
crystalcoder  llm360 「大家庭」的第二位成员是 crystalcoder。
crystalcoder 是一个基于 1.4 t token 训练的 7b 语言模型,实现了编码和语言能力之间的平衡。与大多数之前的代码 llm 不同,crystalcoder 是通过精心混合文本和代码数据进行训练的,以最大化在这两个领域的实用性。与 code llama 2 相比,crystalcoder 的代码数据在预训练过程中较早引入。此外,研究者在 python 和 web 编程语言上训练了 crystalcoder,以提高其作为编程助手的实用性。
重新构建模型架构
crystalcoder 采用了与 llama 7b 非常相似的架构,加入了最大更新参数化(mup)。除了这种特定的参数化,研究者还进行了一些修改。另外,研究者还使用 layernorm 代替 rmsnorm,因为 cg-1 架构支持高效计算 layernorm。
为了达到不改变原始含义的目的,需要将内容重写为中文。以下是对实验及结果的重写:进行实验和结果分析
在open llm leaderboard上,研究者对该模型进行了基准测试,包括四个基准数据集和编码基准数据集。如图6所示
参考表5,可以看到crystalcoder在语言任务和代码任务之间取得了良好的平衡
analysis360根据之前的研究,通过分析模型的中间检查点,可以进行深入研究。研究人员希望llm360能够为社区提供有用的参考和研究资源。为此,他们发布了analysis360项目的初始版本,这是一个对模型行为进行多方面分析的有组织存储库,包括模型特征和下游评估结果
作为对一系列模型检查点进行分析的示例,研究者对llm中的记忆化进行了初步研究。最近的研究显示,llm可能会记忆大部分训练数据,并且通过适当的提示可以提取这些数据。这种记忆化不仅存在着泄露私人训练数据方面的问题,而且如果训练数据包含重复或特殊性,还会降低llm的性能。研究者公开了所有检查点和数据,以便可以对整个训练阶段的记忆化进行全面分析
以下为本文所采用的记忆化得分方法,该得分表示在长度为 k 的提示后续长度为 l 的 token 的准确性。具体记忆化得分设置,请参阅原文。
在图7中呈现了10个选定检查点的记忆化分数分布情况
研究者根据所选检查点对数据块进行分组,并在图 8 中绘制每个检查点的每个数据块组的记忆化分数。他们发现 amber 检查点对最新数据的记忆化程度超过之前的数据。此外对于每个数据块,记忆化分数在额外训练后会略有下降,但之后会持续上升。
图 9 展示了序列之间在记忆化得分和可提取 k 值的相关性。可见,检查点之间存在很强的相关性。
总结研究者总结了对amber和crystalcoder的观察结果和一些启示。他们表示,预训练是一项计算量巨大的任务,许多学术实验室或小型机构都无力承担。他们希望llm360能够提供全面的知识,让用户了解llm预训练过程中发生的情况,而无需亲自动手
请查看原文以获取更多详细信息
以上就是全方位、无死角的开源,邢波团队llm360让大模型实现真正的透明的详细内容。
其它类似信息

推荐信息