女同 telegram 明确了:文本数据中加点代码,历练出的大模子更强、更通用

发布日期:2024-08-23 04:30    点击次数:164

女同 telegram 明确了:文本数据中加点代码,历练出的大模子更强、更通用

着手:机器之心Pro女同 telegram

机器之心报谈

机器之心剪辑部

代码学问正本这样膺惩。

代码学问正本这样膺惩。

如今提及大说话模子(LLM),写代码武艺就怕是「正人六艺」必不成少的一项。

在预历练数据围聚包含代码,即使对于并非故意为代码想象的大模子来说,也已是必不成少的事。天然从业者们宽敞合计代码数据在通用 LLM 的性能中起着至关膺惩的作用,但分析代码对非代码任务的精准影响的职责却特别有限。

在最近由 Cohere 等机构提交的一项职责中,计议者系统地计议了代码数据对通用大模子性能的影响。

论文畅达:https://arxiv.org/abs/2408.10914

设问「预历练中使用的代码数据对代码生成除外的各类下流任务有何影响」。作家对范畴鄙俗的天然说话推理任务、寰球学问任务、代码基准和 LLM-as-a-judge 胜率进行了鄙俗的消融和评估,模子的参数大小从 4.7 亿到 2.8 亿个参数不等。

在各类建立中,咱们不错看到存在一致的效果:代码是泛化的要道模块,远远超出了编码任务的范畴,况且代码质料的纠正对整个任务皆有广阔影响。预历练时分投资代码质料和保留代码数据,不错产生积极影响。

这里有几个成分很膺惩,包括确保代码比例正确、通过包含合成代码和代码相邻数据(举例 commits)来进步代码质料,以及在冷却时分等多个历练阶段利用代码。该计议效果标明,代码是泛化的要道构建块,远远超出了编码任务的范畴,代码质料的进步对性能有广阔的影响。

再进一步,作家对鄙俗的基准进行了鄙俗的评估,涵盖寰球学问任务、天然说话推理和代码生成,以及 LLM 行为评判者的胜率。在对 4.7 亿到 28 亿参数模子进行实验后,以下是翔实效果:

1.代码为非代码任务的性能提供了紧要纠正。使用代码预历练模子进行开动化可进步天然说话任务的性能。终点是,与纯文本预历练比拟,添加代码可使天然说话推理武艺相对加多 8.2%,寰球学问加多 4.2%,生成胜率进步 6.6%,代码性能进步 12 倍。

2.代码质料和属性很膺惩。使用标记面容的编程说话、代码相邻数据集(举例 GitHub commits)和合成生成的代码可进步预历练的性能。终点是,与预历练中的基于 Web 的代码数据比拟,在更高质料的合成生成的代码数据集上进行历练可使天然说话推理和代码性能分手进步 9% 和 44%。此外,与不包含代码数据的代码模子开动化比拟,包含合成数据的代码模子握续预历练分手使天然说话推理和代码性能相对进步 1.9% 和 41%。

3.冷却中的代码可进一步改善整个任务。在预历练冷却中包含代码数据,其中高质料数据集被加权,与冷却前的模子比拟,天然说话推感性能加多 3.6%,寰球学问加多 10.1%,代码性能加多 20%。更膺惩的是,包含代码的冷却比基线(无冷却的模子)的胜率向上 52.3%,其中胜率比无代码的冷却向上 4.1%。

按次概览

在按次部分,计议者从预历练数据、评估、历练与模子细节三个部分入部属手进行先容。下图 1 为高等实验框架。

预历练数据

计议者描绘了预历练和冷却(cooldown)数据集的细节。标的是在面前 SOTA 实际的圭臬下,评估代码在预历练中的作用。因此,他们探讨了由以下两个阶段组成的预历练运行,即握续预历练和冷却。

其中握续预历练是指历练一个从预历练模子开动化而来并在固定 token 预算下历练的模子。冷却是指在历练的终末阶段,进步高质料数据集的权重并对相对较少数目的 token 进行学习率的退火。

对于文本数据集,计议者使用 SlimPajama 预历练语料库行为他们的天然说话文本数据源。

对于代码数据集,为了探索不同属性的代码数据的影响,计议者使用了不同类型的代码源,包括如下:

基于 web 的代码数据,这是主要的代码数据源,包括用于历练 StarCoder 的 Stack 数据集。该数据集包含了爬取自 GitHub 的解放授权的代码数据。计议者使用了质料过滤器,并遴选了基于文档数(document count)的前 25 种编程说话。在走完整个过滤要领后,仅代码和 markup 子集的限度为 139B tokens。

Markdown 数据。计议者单独惩处了 mark-up 作风的说话,比如 Markdown、CSS 和 HTML。走完整个过滤要领后,markup 子集的限度为 180B tokens。

最新伦理片

合成代码数据。为了对代码数据集进行消融测试,计议者使用了故意的合成生成代码数据集,爱情电影网 包含仍是细致考据过的 Python 编程问题。他们将该数据集行为高质料代码数据源,最终的合成数据集限度为 3.2B tokens。

相邻代码数据。为了探索不同属性的代码数据,计议者还使用了包含 GitHub 提交、jupyter notebooks、StackExchange threads 等赞成数据的代码数据。这类数据的限度为 21.4B tokens。

预历练冷却数据集。冷却包含在预历练终末阶段进步更高质料数据集的权重。对此,计议者聘用了包含高质料文本、数学、代码和教唆型文本数据集的预历练冷却混杂。

评估

本文的标的是系统地通晓代码对通用任务性能的影响,因此使用了一个鄙俗的评估组件,涵盖了包含代码生成在内的各类下流任务。

为此,计议者在包含 1)寰球学问、2)天然说话推理和 3)代码性能的基准上对模子进行了评估。此外,他们还请问了通过 LLM-as-a-judge 评估的胜率(win-rates)。

下表 1 展示了完满的评估组件以及相应的任务、数据集、筹算。

计议者对不同限度的模子(从 470M 到 2.8B 参数)张开了性能评估。由于最小限度的模子武艺有限,因此为了保证平允比较,他们只比较了整个模子均能达到飞速以上性能的基准。

除了特定于任务的判别式性能,计议者评估了使用 LLM-as-a-judge 胜率的生成式性能。

历练与模子细节

如上文所说,对于预历练模子,计议者使用了 470M 到 2.8B 参数的 decoder-only 自追究 Transformer 模子,它们按照圭臬说话建模标的来历练。

具体来讲,计议者使用了并行防护力层、SwiGLU 激活、莫得偏差的密集层和包含 256000 个词汇的字节对编码(BPE)tokenizer。整个模子使用 AdamW 优化器进行预历练,批大小为 512,余弦学习率挪动器的预热步为 1325,最大序列长度为 8192。

在基础设施方面,计议者使用 TPU v5e 芯片进行历练和评估。整个模子在历练中使用了 FAX 框架。为了严格进行消融评估,计议者统共预历练了 64 个模子。每次预历练运期骗用 200B tokens,470M 参数模子用了 4736 TPU 芯倏得,2.8B 参数模子用了 13824 TPU 芯倏得。每次冷却运期骗用了 40B tokens,470M 参数模子用了 1024 TPU 芯倏得。

实验效果

该计议张开了系统的实验,探究了以下几方面的影响:

使用代码预历练模子开动化 LLM 模子限度 预历练数据中代码的不同比例 代码数据的质料和属性 预历练冷却中的代码数据

为了探究使工具有多数代码数据的 LM 行为开动化是否不错进步模子性能,该计议针对不同的预历练模子开动化进行了实验。如图 2 所示,使用 100% 代码预历练模子(code→text)进行开动化能让模子在天然说话 (NL) 推理基准上获取最好性能,紧随后来的是 balanced→text 模子。

为澄澈解上述效果是否不错转移到更大的模子,该计议以 470M 模子沟通的 token 预算,历练了 2.8B 参数模子。下图深切了 2.8B 模子与 470M 模子的比较效果。

该计议探究了预历练中代码数据比例对不同任务模子性能的影响,不雅察到跟着预历练代码数据比例的加多,代码任务的性能呈线性进步,而对于 NL 推理任务和寰球学问任务则存在效益最澄澈的最好代码数据比例范畴。

如图 5 (a) 所示,在评估代码质料和代码组成的影响方面,该计议不雅察到,包含不同的代码源和合成代码,皆会导致天然说话性能的进步,然而,只好合成生成的代码才能进步代码性能。

如图 5 (b) 所示,在 NL 推理任务和代码任务中,balanced+synth→text 比 balanced→text 分手扫尾了 2% 和 35% 的相对纠正。这进一步阐述,即使是一小部分的高质料代码数据,也不错进步代码和非代码任务的性能。

如图 6 所示,该计议发现:在预历练冷却中包含代码数据,模子的NL推感性能加多 3.6%,寰球学问性能加多 10.1%,代码性能加多 20%。

如图 7 所示,正如预期的那样,冷却对以胜率预计的生成性能有紧要影响。

经受不同预历练有筹算的模子的性能比较效果如表 2 所示,Balanced→Text 扫尾了最好的 NL 性能,而 Balanced-only 在代码生成方面澄澈发扬更好。

计议者数据代码模子性能发布于:北京市声明:该文不雅点仅代表作家本东谈主,搜狐号系信息发布平台,搜狐仅提供信息存储空间作事。