点击下方卡片,关注「集智书童」公众号
作者介绍了StableLM 2 1.6B,这是作者语言模型系列新的一代中的第一个。在这份技术报告中,作者详细介绍了导致StableLM 2 1.6B的基础版本和指令调优版本的数据和训练过程。两个模型的权重都可以通过Hugging Face供任何人下载和使用。报告包括对这些模型的全面评估,包括零样本和少样本基准测试、多语言基准测试以及关注多轮对话的MT基准测试。在发布本报告之时,StableLM 2 1.6B是低于2B参数的开源模型中的显著领先者。鉴于其吸引人的小尺寸,作者还提供了在多个边缘设备上的吞吐量测量。此外,作者还开源了几个量化预训练权重,并提供了与原始模型相比的性能指标。
1 Introduction
在Transformer架构[71]的发展之后,已经训练并部署了大量的专有和开源大型语言模型。尽管每周或每天都会有无数的新想法和新成果公布,但一些关键方面仍然不透明,尤其是在最强大的模型周围。通常,训练数据是不会被公开的。在当前社会要求透明度的时候,面对这种难以检查和审计的新兴颠覆性技术,这提出了一个根本性的挑战。在这份报告中,作者以可复现的方式解释了如何训练一个规模适中但处于前沿的语言模型。作者所使用的数据都是公开的(见表1),并且其训练大约需要92,000个GPU小时——在热门的云服务提供商上的价值约为322,000美元(假设每GPU小时3.5美元)。作者希望这项工作能为开放的AI社区做出贡献,并帮助确立未来透明模型的标准。
本报告的组织结构如下:第2节详细介绍了预训练Stable LM 2 1.6B的过程。第3节专门讨论了微调及与人类偏好对齐。第4节展示了在标准下游基准测试上的模型评估。第5节概述了在几款边缘设备上编译和运行Stable LM 2推理的过程。第6节考虑了几个后续研究方向。第7节涵盖了与Stable LM 2的训练和发布相关的碳排放及社会影响。最后,第8节对本工作进行总结和归纳。
2 Model Pre-Training
在训练大型语言模型(LLMs)的第一阶段,重点是通过使用大量多样化的数据源来学习预测序列中的下一个标记。作者将这一阶段称为预训练。它使模型能够构建适用于基本语言能力甚至更高级的生成和理解任务的通用内部表示。事实上,有人假设模型的知识和能力大部分是在预训练过程中学习的[88]。在本节中,作者将介绍影响作者训练数据集创建的设计原则和消融研究,以及关于模型架构和训练过程的详细信息。尽管存在许多关于其他尖端模型的类似报告,但它们常常省略了关键细节,比如特定的数据源、采样权重,或他们执行的完整消融研究。因此,开源社区无法准确复现这些模型。另一方面,作者提供了一个完全透明的模型训练细节记录。作者相信,研究行人和实践者将在这个详尽的描述中找到宝贵的见解。
Training
作者训练稳定LM 2以预测遵循标准自回归序列建模[58]的下一个标记。作者从零开始训练作者的模型,上下文长度为4096,并从FlashAttention-2[17, 16]的有效的序列级并行优化中受益。训练采用BFloat16混合精度,同时保持所有reduce操作在FP32中。[10, 74]发现添加一个基于softmax规范化器的z-loss正则化项,,有助于缓解由输出逻辑差分引起的不稳定性。尽管在作者的消融研究中这并没有损害性能,但对稳定性的改进非常小。因此,在最终运行中并没有应用它。作者采用了标准的AdamW优化器,以下是其超参数:。第2.5节提供了作者应用的定制学习率调度器的详细信息。
Data
模型性能受到预训练数据设计决策的影响,包括源选择和采样权重[48]。作者的方法与[67]接近:作者的大部分训练数据来源于其他大型语言模型训练中使用的数据源,如RefinedWeb[57],Pile[22]的子集,RedPajama[13]和Stack[39]。作者用OpenWebText[24],OpenWebMath[56]以及CulturaX[54]的部分数据来补充这些数据源。在检查从CulturaX的mC4子集中随机抽取的文档时,作者发现了大量的HTML模板内容,并决定完全移除这部分内容,最终只保留了OSCAR子集。此外,作者还加入了FanFics8,这是从_fanfiction.net_中选择的一个由50k文档组成的子集,其依据KenLM9的最低困惑度分数进行选择。最后,遵循[81]的方法,作者将几个原始数据集重构为丰富的固定形式,以便用于下游任务,如总结、问题回答、情感分析等,并添加了[47]中的指令数据,这些数据集作者统称为Restruct-v1。在Restruct-v1中使用的源列表可在表11中找到。Stable LM的训练集完全由开源数据集组成,这些数据集与商业用途兼容,其中大部分托管在Hugging Face Hub上。后一个方面(HFH)的唯一例外是Restruct-v1,可以通过遵循[81]提供的方法和提示模板轻松复现。
仔细选择各种数据领域的混合比例至关重要,特别是非英语和代码数据量方面。作者在不同的混合数据上训练了几个模型,并在下游基准测试中评估它们,以选择作者的最终数据集。完整的消融研究在附录A中提供,其中包括选择这些特定混合的理由。基于消融研究的结果,作者用表1所示的混合训练了作者的模型,该混合大约包含2万亿个标记。请注意,它包括德语(DE)、西班牙语(ES)、法语(FR)、意大利语(IT)、荷兰语(NL)和葡萄牙语(PT)的多语言数据。作者的数据集在不同领域的划分在图1中进行了可视化。
Tokenizer
作者使用了Arcade100k ,这是从OpenAI的tiktoken.cl100k_base扩展而来的BPE分词器,包含了针对代码的特殊 Token [40]和数字分割处理[45, 4]。词汇表由100,289个 Token 组成,在训练期间填充到最接近64的倍数(100,352),以满足NVIDIA A100设备上推荐的Tensor Cores对齐。在初步实验中,与使用较小的GPT-NeoX分词器[6]训练的超参数匹配模型相比,作者没有观察到下游自然语言性能任务中出现统计意义上的显著偏差。对于代码和非英语语言的压缩率的提高,影响了作者选择Arcade100k 而非现有分词器的决定。
Architecture and Training Layout
该模型是一个因果性的仅解码器 Transformer ,其设计与LLaMA架构[67]类似。表2展示了一些关键架构细节。特别是,与LLaMA的主要区别如下:
位置嵌入 。旋转位置嵌入[66]应用于前的 Head 嵌入维度,以提高吞吐量,遵循[6]的方法。
归一化 。与RMSNorm [84] 相比,使用可学习偏置项的LayerNorm [3]。
偏置 。作者从前馈网络和多头自注意力层中移除了所有偏置项,只保留了键、 Query 和值投影的偏置[4]。
稳定LM 2 1.6B模型是在64个亚马逊P4d实例上训练的,这些实例共配备了512个NVIDIA A100(40GB HBM2)GPU。作者模型的大小,结合ZeRO阶段1分布式优化[61],消除了模型共享的需要。然而,不同的三组微批处理大小、梯度累积步骤 和激活预训练权重 粒度会导致不同的速度指标。遵循[28]中的建议,作者通过找到允许作者完全移除激活预训练权重的微批处理大小来获得最终的配置。然后,作者根据目标批大小和数据并行 程度来确定梯度累积步骤。作者采用个 Token 的批处理大小,基于附录D中的观察结果。在表3的设置下,作者实现了每个设备大约170 TFLOPs/s,或者54.5%的模型浮点运算利用率(MFU)。通过减少数据并行度并相应地增加梯度累积步骤的数量,可以轻松实现大约200 TFLOPs/s(64% MFU)的更高硬件利用率,但这会导致迭代时间增加。
Learning Rate Scheduler
作者提出了一种新的学习率调度器。它包含多个阶段,旨在在持续预训练方面提供灵活性。作者首先在9720步内线性地将学习率增加到最大值。这个“ Warm up ”阶段之后是主训练阶段,在这个阶段中,学习率根据方程1进行减少:
其中 和 分别是最小和最大学习率, 是当前步骤, 是总步骤数。自由参数 和 是任意选择的,以确保调度器及其在 处的导数的连续性。作者通过在80k步内将学习率线性降低到零来结束训练,这大约对应于6700亿个 Token 。完整的调度器在图2中展示;更详细的信息和消融研究可以在附录B中找到。
3 Fine-tuning and Alignment
在预训练之后,作者通过一个由三个主要步骤组成的微调阶段进一步发展作者模型的对话技巧:监督微调(SFT)、直接偏好优化(DPO)和自我知识学习。重要的是,在这个阶段作者不使用多语言数据。作者现在将详细描述每一个步骤,并在第4节中报告这三个步骤完成后的结果。
Sft
第一步是监督微调。作者在Hugging Face Hub上对一系列公开可用的指令数据集上对预训练模型进行微调。特别是,作者使用了以下对话数据集:UltraChat [18],WizardLM [77],SlimOrca [41],ShareGPT [72],Capybara [15],Deita [46],以及MetaMathQA [80]。作者移除了任何超过八个回合的样本,总计826,938个样本。
作者使用余弦学习率调度器对SFT模型进行了三个周期的训练。在达到学习率峰值之前,有一个占训练周期的预热阶段。作者将全局批量大小设置为512个序列,并将输入数据打包成长度高达4096个标记的序列。
Dpo
直接偏好优化(DPO)[58]是近期一些强大模型(如Zephyr-7B[70]、Neural-Chat-7B和Tulu-2-DPO-70B[32])中的一个基本工具。因此,在应用了监督微调(SFT)之后,作者使用DPO对结果模型进行了对齐。在这个阶段,作者使用了两个数据集:UltraFeedback[14]和Intel Orca Pairs。作者通过移除排名相同的配对、内容重复的配对以及选中回应得分低于十分之八的配对来过滤数据集。作者按照Zephyr配方[70]使用DPO训练模型,并借用了其中大部分的超参数,除了作者将其降低到,还有学习率,作者将其降低到,这两项都有助于提高训练的稳定性和最终性能。这一阶段的训练是按照Alignment Handbook[69]进行的。
Self-Knowledge
在DPO [58] 阶段输出后的模型,并不知道是谁创造了它,甚至也不知道语言模型有哪些限制。为了解决这个问题,作者受到了来自对比蒸馏的强化学习(RLCD)[78] 数据生成方法和条件强化学习微调(C-RLFT)[72] 训练方法的启发,作者将这些方法应用于自我知识训练。
为了生成初始提示,作者使用基础模型生成10k个不重复的随机第一条消息发送给一个语言模型。在生成对话的延续时,作者将之前的聊天轮次中的自我知识作为正面的完成,使用少量样本提示。对于负面提示,作者直接从未附加额外提示或少量样本轮次的提示中进行采样。
作者使用未打包的示例进行6个周期的训练,批量大小为256,有一个预热阶段,持续100步,将学习率(LR)升至最大值3e-6,然后以余弦衰减至零。正提示以与SFT步骤相同的方式进行训练,而负提示则使用负 Token 代替助手 Token 进行训练。
4 Experimental Results and Benchmarks
本节展示了针对Stable LM 2 1.6B的主要实验结果。作者将与大小相似的开放源代码模型进行比较,在包括西班牙语、德语、法语、意大利语、葡萄牙语和荷兰语等多种语言的多语言能力在内的各项任务上显示出显著改进。为了提供背景信息,作者还与更大的模型进行了比较。作者将实验分为三组:英语的少样本和零样本评估(如同Hugging Face Open LLM排行榜上通常所做的),多语言评估,以及对话式评估。
Few-shot and Zero-shot Evaluations
首先,作者通过在流行基准测试上评估作者的模型Stable LM 2,并与其他同等规模的开源预训练模型进行比较,来评估其零样本和少样本学习能力。表4展示了模型在英语环境下的评估结果。作者的结果涵盖了开放LLM排行榜([5])上的6个基准测试:ARC挑战25样本([11])(ARC )、HellaSwag 10样本([83])(HS )、MMLU 5样本([30])(MMLU )、TruthfulQA零样本([43])(TQA )、WinoGrande 5样本([62])(Wino )以及GSM8K 5样本([12])(GSM )。另外,由于Stable LM 2是一个通用目的的基础模型,作者进一步通过评估英语版和机器翻译版的LAMBADA来评估自然语言理解能力。所有评估均使用语言模型评估工具箱框架([23])进行。如表4所示,Stable LM 2 1.6B(_stadelm-2-1-6b_)在其他基础模型上取得了显著的性能优势。同样,经过指令调整的版本(_stadelm-2-1-6b-dpo_)在平均分数上比微软的Phi-1.5提高了两点,尽管在少样本准确性上仍落后于更大的Phi-2.0。与谷歌的Gemma 2B(25亿参数)的性能相比也相当出色。
Multilingual Evaluations
作者通过在ChatGPT翻译版本的ARC、HS、TQA和MMLU([38])上评估,来考察预训练期间观察到的非英语语言环境下的知识和推理能力。此外,作者还使用来自[23]的机器翻译LAMBADA数据集来测试下一个单词预测的能力。在经过母语人士的手动检查后,作者认为现有的机器翻译过于噪声,无法从中获取准确的性能信号。因此,作者用新的翻译来评估多语言的下一个单词预测,这些新翻译将向研究行人提供。
零样本学习的结果在表5中展示,并突显了Stable LM 2相比于即使是其两倍大小的模型所具有的优越性能。
MT Benchmark Evaluations
最终,作者还对模型在流行的多轮对话基准MT-Bench [86]上的对话技能进行了测试。结果如图3和表7所示。尽管作者的模型落后于更强大的模型,如MISTI 7B Instruct v0.2(其规模是Stable LM 2的4倍以上),但作者的模型在对话表现上更胜一筹,并且以较大优势超越了Phi-2、Gemma 2B和TinyLLaMA 1.1B,尽管前者的规模更大。
5 Inference and Quantization
这个模型代表了在设备上直接提供高级生成能力的重要跃进,且不需要大型模型的计算开销。作者相信,当与推理框架和量化方法结合使用时,这个模型在推理任务上达到了卓越的效率与有效性之间的平衡。作为作者发布的一部分,作者提供了量化权重支持常见推理库如llama.cpp ++、Apple MLX [29]和Intel OpenVINO ++的_stablelm-2-1-6b_。
脚注†:https://github.com/ggerganov/llama.cpp
脚注‡:https://github.com/openvinotoolkit/openvino
Quantization
作者为各种模型和格式提供了量化文件,以支持与不同的推理框架更容易地集成,包括:
两个4位量化模型:Q4_0,Q4_1 和一个5位量化模型:Q5_K_M GGUF。
INT4 用于通过英特尔神经网络压缩框架(NNCF)进行 OpenVINO 量化。
INT4 用于 MLX 量化,采用 MLX 方法。
这些量化文件可以在作者模型对应的Hugging Face仓库中找到,以便于与作者的模型一起工作的开发者和研究行人使用。作者通过提供多种量化格式,旨在促进跨不同深度学习框架生态系统的更顺畅部署体验。
Throughput
在表8中,作者提供了作者的模型在消费级设备上运行及所使用的系统环境中获得的吞吐量数据。作者的初步运行结果显示,在使用较低精度时,作者能够实现几乎2倍的吞吐量性能。请注意,这些数据仅供参考,并非严格基准测试的结果,而是旨在让用户对在常用设备上能期望的性能有一个实际了解。同样,由于预期较低精度的量化会降低模型的性能,作者鼓励研究行人和开发行人在现实世界场景中评估潜在的性能下降。
未来的工作
Future Work
Our research opens up several directions for future work. First, we plan to extend our model to incorporate more complex structures and interactions, which would allow for a better representation of the underlying data and potentially improve the performance of our AI system. Second, we aim to explore the application of our method in other domains, such as natural language processing and computer vision, to verify its generalizability. Third, we will work on optimizing the training process to reduce the computational overhead. Finally, we are also interested in studying the theoretical foundations of our approach to gain a deeper understanding of its mechanisms.
作者的研究为未来的工作开辟了几个方向。首先,作者计划扩展作者的模型,以包含更复杂的数据结构和交互,这将允许更好地表示底层数据,并可能提高作者人工智能系统的性能。其次,作者旨在探索将作者的方法应用于其他领域,如自然语言处理和计算机视觉,以验证其泛化能力。第三,作者将致力于优化训练过程,以减少计算开销。最后,作者也对研究作者方法的理论基础感兴趣,以更深入地理解其机制。
作者希望探索一些研究途径以进一步改进模型:
数据 。在这项工作中,作者关注的是公开可用的数据。特别是,大部分数据来自网络爬取的内容,这对于大多数模型来说是很常见的。众所周知,这些数据中包含许多低质量的文档[20],可能会对训练产生潜在的负面影响。作者相信,在智能过滤、重写和利用强大模型进行合成数据生成方面具有巨大的潜力。
幻觉缓解 。语言模型容易生成不正确或具有误导性的信息,小型语言模型更是如此。找到可靠的方法来检测这些模型中的幻觉,将为那些对幻觉敏感的领域开启新的应用场景。
长上下文与检索 。在聊天模型或数据集整合等应用中,能够在长的上下文窗口中检索信息是至关重要的。因此,在附录C中,作者探讨了StableLM2 1.6B在“大海捞针”任务上的当前能力和局限性。未来,作者计划在此基础上进一步推进工作,并将作者的模型扩展到超过4k的上下文长度。
条件计算 。小型模型通常受到容量限制——也就是说,在当前的训练方法下,它们缺乏处理和利用所有训练数据的能力。最近,像专家混合(Mixture of Experts)这样的想法已经被成功应用,将一个密集型模型扩展为包含更多参数,这些参数选择性地应用于特定输入(例如,通过稀疏升级[37])。重要的是,如果每个标记只选择一个专家,那么整体的推理FLOPs不会显著改变。将这一方法应用于Stable LM 2 1.6B模型是作者将要研究的自然延伸。
7 Environmental and Societal Impact
Carbon Footprint
Stable LM 2的训练消耗了能源,伴随着相关的二氧化碳排放。与[67]一致,作者根据以下公式报告作者的碳足迹:
在功率使用效率被设定为1.1的情况下,作者训练了Stable LM 2模型,耗时约92,000个GPU小时,考虑到作者平均的电力使用情况,总耗电量为300兆瓦时。根据美国国家平均的碳强度因子0.385千克二氧化碳当量/千瓦时,可以估算出排放的二氧化碳当量吨数tCOeq,最终结果为11吨二氧化碳当量。
Societal impact
稳定性AI致力于发布开源模型,以帮助改善对基础AI技术的获取。对模型权重的开放访问使研究行人能够检查模型的适用性和脆弱性,测试不同优化策略的有效性,并对模型中观察到的偏见进行纠正。为此,该模型是在开放的非商业许可下发布的。然而,开放的发布在评估模型的社会影响时可能会带来挑战。例如,稳定性AI无法直接了解Stable LM 2 1.6B在下游应用中的情况,按行业划分的应用分布,或按地理划分的模型使用分布。由于该模型是附带非商业许可发布的,作者预计在微调或评估界面之外的应用数量有限,受模型影响的第三方数量也有限。
作者将继续公开监测经过微调后发布的模型,以了解使用Stable LM 2 1.6B作为基础模型进行微调研究或开发活动的程度,包括这些衍生模型的评估结果。
结论
In conclusion, the experimental results demonstrate the effectiveness of the proposed method for the task of object detection in images. The introduced approach integrates advanced techniques such as convolutional neural networks and feature pyramid networks, which contribute to the improvement of both accuracy and efficiency. The comparison with the baseline model and other state-of-the-art methods validates the superiority of our method in terms of precision and speed. Furthermore, the proposed method shows promising performance on challenging datasets, indicating its robustness and generalization ability in real-world scenarios. Overall, this work presents a novel solution that can potentially benefit various applications in computer vision.
总之,实验结果证明了所提出方法在图像中目标检测任务上的有效性。该方法融合了先进技术,如卷积神经网络和特征金字塔网络,这些技术有助于提高准确性和效率。与基准模型及其他最先进方法的比较,证实了作者的方法在精确度和速度方面的优越性。此外,所提出的方法在具有挑战性的数据集上表现出色,表明其在现实场景中的鲁棒性和泛化能力。总的来说,本研究提出了一种新颖的解决方案,可能对计算机视觉中的各种应用产生潜在的利益。
在本报告中,作者介绍了Stable LM 2 1.6B,这是一个在多语言数据集上训练的紧凑型解码器语言模型。它能流畅地处理多达七种语言:英语、西班牙语、德语、意大利语、法语、葡萄牙语和荷兰语。为确保社区能够复现作者的运行结果,作者详细列出了训练期间使用的所有数据集——包括 确切 的数据混合——以及作者新设计的学习率计划。作者还对模型进行了广泛的评估,并与其他类似规模的模型进行了比较,展示了Stable LM 2 1.6B的卓越性能。最后,作者在常见的边缘计算架构上对模型进行了剖析。作者希望本报告能有助于小型语言模型的改进和进一步研究。
Acknowledgments
作者感谢作者出色的MLOps团队成员,特别是Richard Vencu提供的支持。同时,也感谢Christian Laforte、Cedric Wagrez和Jerry Chi的反馈、有益想法和评论。
Appendix A Data Ablations
如何从一组源中选择最佳的预训练训练混合是一个开放性问题。基于下游任务调整权重[10; 19]可能极其耗费成本,并存在过度拟合特定任务以及利用数据泄露的风险。尽管在[76]中引入的计算成本较低、原则性的方法很有前景,但作者发现当数据源高度不平衡且具有不同的信息内容时(例如,大型网络来源与精选数据集),它会产生次优权重。此外,多语言评估由于缺乏高质量、非机器翻译的基准,引入了对分词器的更明显依赖并增加了噪声。因此,作者旨在找到预期在分词器变化或缺乏每个数据类别的高质量基准的情况下仍然成立的通用指导原则,同时保持这些消融实验的成本较低。
作者根据表9的方法对总共1000亿个标记进行采样,训练了一套10B模型。每个模型在英语和非英语基准测试上的评估结果如表10所示。作者观察到以下趋势。
与[53]中的观点相反,作者发现较少有说服力的证据表明代码可以作为训练数据的中性填充物,因为增加代码的数量会导致语言模型的性能下降。作者将对这一点的更深入探讨留给未来的工作,包括数学和推理任务,这些任务可能会从更高比例的代码数据中受益。
在添加同一种语言的任何数据量后,非英语基准测试的性能对于每种语言都有所提高。然而,这种增长很快就趋于饱和,作者在超过6%的数据量后只观察到小幅度的增益。作者假设这可能是由于缺乏高质量、结构化的非英语数据源,作者仅仅是从小型网络样本中获取数据。
提升学术和书籍来源的上采样能够在控制运行之上改善下游性能,特别是在自然语言理解方面。
Appendix B Scheduler Ablations
[31]显示,广泛采用的余弦学习率衰减仅在执行完整的余弦周期时才能达到最优性能,迫使实践者必须事先固定步数。由于多周期训练对LLMs表现良好[53; 49; 68],并且由操作系统社区使得更大且更干净的数据源变得可用,因此减轻这一限制变得越来越重要。为此,作者尝试了“平方根倒数”(rsqrt)学习率调度器[59] Eq. 2。
在这里, 表示当前的迭代次数,而 是预热步骤的数量。由于调度器是严格凸的并且渐近趋于零,因此它可用于进行无限次迭代的训练。
然而,在标准场景中,作者展示了图4中的一个例子,rsqrt一致地表现不如cosine。作者通过将学习率衰减至0来进行比较,在两种情况下,对于rsqrt调度器,在最后的步骤中使用线性冷却。
两个调度器之间的一个明显区别是它们如何从峰值学习率开始:余弦函数以平坦的斜率和负的二阶导数,而rsqrt则以大的斜率和正的二阶导数。这使得rsqrt能够迅速逃离高学习率区域,作者认为这是性能差距的主要原因。然后,作者将两种调度器结合成一个单一函数,如方程式1所描述,在第一部分是余弦函数,然后平滑地切换到rsqrt,从而两全其美。
最后,作者实验了两种不同版本的调度器,其性能展示在图4的右侧面板中:混合 (hyb ) 对应作者在方程1中定义的最终调度器,而对于混合 (hyb ) 作者将余弦周期加倍,并将转折点移动到训练步数的二分之一,而不是四分之一处。作者将这两个版本性能上的差异归因于不同的平均学习率。对于图4中的实验集合,在训练体积上对调度器进行积分,作者分别得到了余弦、hyb和hyb的平均学习率为、和。作者将未来的工作留给证明:在温和的条件下,例如单调性和固定端点,具有相同平均值的学习调度器会导致统计上等价的模型。
Appendix C Evaluation of Performance Across Different Sized Context Windows
针尖寻踪测试,如[35]中所介绍,通常被用来评估LLMs在不同上下文窗口大小下的检索能力。遵循[35]的方法论,一个事实("针尖")被嵌入到无关文章的上下文("干草堆")中。被评估的模型需要回答一个问题,要求从上下文中检索出这个针尖。评估是通过在上下文中将针尖放置在35个不同的深度,并比较从500到4000个标记的上下文窗口大小的结果来系统地进行的。值得注意的是,这些窗口大小是专门选择的,以评估在作者的训练上下文大小4096个标记内的性能。一个AI评审,通常是GPT-4 [55],根据事实是否被正确检索,给答案打1到10分。
在执行评估时,作者注意到上下文的顺序并没有被固定或由一个种子控制,在某些情况下导致了显著不同的得分。因此,作者在图5中展示这一点。
在10次不同运行的平均结果上,附上相应的标准差。对于稳定LM 2,作者采用了[21]中的提示,而对于作者微调的版本,作者直接使用了官方库。在评估网格上平均分数,作者观察到从作者基础模型的到微调版本的的轻微退化。不同的提示结构使得直接比较结果变得困难,然而,作者将在未来的工作中研究不同的因素,如文档长度的分布和注意力 Mask 与这种行为的相关性。
Appendix D Global Batch Size
批处理大小在随机优化收敛中的作用在文献[51]中如下所示。一个由参数参数化的模型在训练集上的损失是通过从中独立地抽取随机样本形成批处理来估计的。因此,用于更新模型参数的损失梯度由以下方式给出:
并且它的方差与成比例。换句话说,较大的批量具有较低的方差,从而更准确地估计梯度。更准确的梯度表明作者应该相应地增加学习率以加快收敛速度;然而,在实际中,这远非微不足道,需要特别的处理,比如精细调整学习率调度器或执行逐层更新[25, 79]。
为了选择Stable LM 2的全局批量大小,作者做出以下假设:
作者不根据批量大小改变学习率。批量大小可以几乎无成本地进行近似缩放。
随着,原则上,作者放弃了通过调整步长到梯度噪声来获得潜在进一步收益的可能。在实践中,作者注意到,在消融实验收敛与发散之间的边界处使用较大的学习率,足以弥补这一点。 是理论结果、硬件优化和增加的训练数据可获取性的结合所推导出的。文献[53]凭经验证明了在大型语言模型(LLMs)预训练中,多次重复数据周期与新鲜数据一样有效,同时增加数据并行工作者的计算开销是最小的。
数据量通过更大的数据集持续增加,多轮训练已经展现出有希望的结果。因此,作者探索使用更大的批量大小进行训练,这需要更多的训练 Token 以达到最终的损失,但显著减少了训练时间。为了确定作者最终的批量大小,作者从使用包含4M Token 的批量在总共50B训练 Token 的上训练一个 Baseline 模型开始。随后,作者从零开始训练新模型,批量大小分别为M、12M和16M,增加 Token 直到达到相同的最终损失。作者这样做是使用rsqrt调度程序,因为事先不知道所需的训练步骤数。
在图6中,作者展示了匹配基准损失所需的迭代次数。为简化起见,假设迭代时间与批量大小无关,这给出了通过增加批量作者可以实现的速度提升的上限。
在作者考虑的范围内,观察到增加批处理大小会减少达到基准损失所需的迭代次数,直至最大的批处理大小,即1.67亿个 Token ,这将训练速度提高了2倍。然而,为了达到相同的损失,作者需要96B的训练 Token ,相较于基准,这是1.96倍的增加。因此,在训练Stable LM 2时,作者选择了全局批处理大小为8,388,608,这样的配置与表3中的布局在减少训练时间与额外所需训练 Token 之间提供了最佳的折中方案。
Restructed Pre-training Sources
重构的预训练来源
在[81]中对许多资源进行了重组,但在这项工作中,作者仅考虑了表11中列出的具有商业可行许可的资源,例如BIGPATENT、CLOTH、SciTLDR、TriviaQA、WordNet、WikiHow等。作者还对具有类似许可兼容性的其他资源进行了重组,并在下面列出。
参考
[1].Stable LM 2 1.6B Technical Report.
扫码加入👉「集智书童」交流群
(备注: 方向+学校/公司+昵称 )
想要了解更多:
前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」
行业技术方案 👉「AI安防、AI医疗、AI自动驾驶」
AI模型部署落地实战 👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」
欢迎扫描上方二维码,加入「 集智书童-知识星球 」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!
免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“ 阅读原文 ”,
了解更多AI学习路上的 「武功秘籍」
