为了账号安全,请及时绑定邮箱和手机立即绑定

使用持续训练进行LLM领域适应:第2/4部分

这个关于通过持续预训练进行大规模语言模型(LLM)领域适应的 4 部分系列,回答了最常见的一些关于为什么、如何以及何时进行领域适应的问题。
本文作者:[Anastasia Tzeveleka](https://anastasia-tzeveleka.medium.com/\)、Aris Tsakpinis 和 [Gili Nachum](https://medium.com/@gilinachum)

第一部分:介绍
第二部分:训练数据——来源、选择、筛选和预处理
— 这里就是第二部分!
第三部分:在AWS上的持续预训练
第四部分:__高级:模型选择和微调下游任务

训练数据——获取、选择、筛选和预处理

在第一部分中,我们回顾了领域适应技术以及你可以用来将LLM适应特定领域的多种方法。我们还讨论了如何通过继续预训练在非结构化数据集上训练LLM。

在这一篇博客系列中,我们将深入分析训练数据方面的内容,比如数据来源、选择、整理和预处理。这些是构建我们未来领域特定模型的重要基础。

我该用什么类型的数据?

继续预训练所需的数据类型取决于领域和应用场景。数据的选择和整理对于领域适应非常重要。因此,在考虑这些方面时应当注意。

数据选取: 您需要仔细挑选要输入模型的数据。在这个任务中,您将需要高质量且庞大的数据集(数百万个标记以上)。然而,这些数据集相比之下仍然小得多(数万亿个标记以上)。

领域特定的数据: 域适应方法的本质意味着所使用的数据集是特定于某个组织、知识或任务的未标记和(可选的)标记数据的精选语料库。换句话说,您可以使用任何您认为内容相关且质量过关的完整自然语言文档。示例数据集包括但不限于内部数据(如内部用户手册、内部文档、法律合同、研究论文、法院案件文件、医学期刊文章、法律文章、客户服务日志等)、网络数据(比如新闻报道或社交媒体帖子)或合成数据。虽然这些数据可以有不同的来源(文档存储库、人工创建的内容等),但重要的是要仔细选择数据,尤其是在质量、机密性、知识产权、许可证、个人身份信息(PII)等方面。

领域特定数据与网络数据的结合: 仅提供领域特定的数据可能会导致某些应用场景中的模型性能下降。例如,如果一个模型在一种新语言的大量文本上进行适配,它可能忘记在预训练阶段从英文文本中学到的编程逻辑。因此,通常建议结合高质量的非领域特定数据来补充原始数据集。

数据构建和整理的需求在预训练和持续预训练之间存在差异。

怎么加载数据呢?

虽然存在很多特定来源的开源数据加载器,但LangChain框架在大语言模型支持的应用程序领域越来越受欢迎。LangChain提供了广泛的预构建的数据加载器,其中包括用于抓取网页的WebBaseLoader。如下代码示例展示了它的使用方法。

使用LangChain WebBaseLoader dataloader进行网页抓取的数据采集。请注意,WebBaseLoader和dataloader保留英文形式,因为它们是特定的代码或工具名称。

如何处理数据?

在将数据输入模型之前,通常会先执行几个预处理步骤来进一步提升数据质量,比如:

与质量相关的预处理,例如格式化、去重、PII(个人可识别信息)过滤。下面的代码示例展示了去除空格以提高数据质量和信息密度。

去除空格作为质量相关的预处理步骤的例子

与NLP相关的预处理基于各自Transformer模型的特点。这包括分词、用静态编码器投影到数值向量空间中(=嵌入)以及模型的词汇表(因为神经网络不能直接处理字符串形式的标记),根据模型的上下文大小对输入数据进行分块(这是模型在一次前向传递中可以处理的内容)等。下面的例子展示了按照模型的上下文长度进行分块以及使用特定于该模型的分词器进行分词,在这种情况下使用的是LLaMA2–13b-chat分词器。

分词,标记化作为NLP预处理任务的一个例子

下一个:

第1部分:介绍
第2部分:训练数据 — 数据来源、选择、整理和处理
— 你在这里哦!_
第3部分:持续的预训练在AWS上进行 _
第4部分:__高级部分:模型选择和下游微调

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消