美文网首页
改进大语言模型的最全方法!

改进大语言模型的最全方法!

作者: JavaEdge | 来源:发表于2024-09-12 19:17 被阅读0次

这是一篇关于适应开源大语言模型(LLMs)的三部系列博客的第一篇。本文探讨将LLM适应领域数据的各种方法。

  • 第二部分讨论如何确定微调(fine-tuning)是否适合您的用例。
  • 第三部分探讨策划良好训练数据集的一些经验法则。

0 引言

大语言模型(LLMs)在多种语言任务和自然语言处理(NLP)基准测试中展示了出色的能力。基于这些“通用”模型的产品应用正在增加。本文为小型AI产品团队提供指导,帮助他们将LLM适应并整合到他们的项目中。首先,澄清围绕LLM的(常常令人困惑的)术语,然后简要比较现有的不同适应方法,最后推荐一个逐步流程图,助你识别适合你的用例的方法。

1 适应LLM的方法

1.1 预训练

预训练是从头开始。

使用数万亿数据tokens训练LLM的过程。该模型使用自监督(self-supervised)算法进行训练。最常见的训练方式是通过自回归预测下一个token(又称因果语言建模)。预训练通常需要数千小时的GPU(105 – 107 [source1source2]),并且分布在多个GPU上。预训练输出的模型被称为基础模型

1.2 持续预训练

持续预训练(又称第二阶段预训练)涉及使用新的、未见过的领域数据对基础模型进行进一步训练。使用与初始预训练相同的自监督算法。通常所有模型权重都会参与其中,并且会将一部分原始数据与新数据混合进行训练。

1.3 微调(fine-tuning)

微调是使用带有注释的数据集以监督方式或使用基于强化学习的技术来适应预训练语言模型的过程。与预训练的主要区别:

  • 使用带有正确标签/答案/偏好的带注释数据集进行监督训练,而不是自监督训练
  • 所需tokens数量较少(成千上万或数百万,而预训练需要数十亿或数万亿),主要目的是增强如指令跟随、人类对齐、任务执行等能力

理解微调的当前格局可以从两个维度进行:改变的参数百分比以及微调结果带来的新功能。

1.4 改变的参数百分比

根据改变的参数数量,微调分为:

  • 全量微调:顾名思义,它涵盖了模型的所有参数,包括像 XLMR 和 BERT(100 – 300M 参数)等小型模型上的传统微调,以及像Llama 2、GPT3(1B+ 参数)等大型模型上的微调
  • 参数高效微调(PEFT):与微调所有LLM权重不同,PEFT算法只微调少量附加参数或更新预训练参数的子集,通常为1 – 6%的总参数

1.5 为基础模型添加的功能

微调的目的是为预训练模型添加功能,例如指令跟随、人类对齐等。Chat-tuned Llama 2是一个通过微调添加了指令跟随和对齐能力的模型示例。

1.6 检索增强生成(RAG)

企业也可以通过添加特定领域的知识库来适应LLM。RAG本质上是“基于搜索的LLM文本生成”。RAG使用一个根据用户问题检索到的动态提示上下文,并将其注入LLM提示中,从而引导其使用检索到的内容,而不是其预训练的(可能过时的)知识。Chat LangChain是一个基于RAG的LangChain文档问答聊天机器人。

1.7 上下文学习(ICL)

在ICL中,通过在提示中放置示例来适应LLM。研究表明,通过示例进行演示是有效的。示例可以包含不同种类的信息:

  • 仅输入和输出文本——即少样本学习
  • 推理轨迹:添加中间推理步骤;参见链式推理(CoT)提示
  • 规划和反思轨迹:添加教LLM规划和反思其问题解决策略的信息;参见ReACT

还有多种修改提示的策略,提示工程指南中提供了详细的概述。

2 选择正确的适应方法

为了确定上述方法中的哪一种适合特定应用,应考虑各种因素:所需的模型能力、训练成本、推理成本、数据集类型等。以下流程图总结了如何选择合适的LLM适应方法:

3 总结

创建基于LLM的系统是一个迭代过程。建议从简单的方法开始,并逐步增加复杂性,直到实现目标。上面的流程图为你的LLM适应策略提供了坚实的基础。

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

本文由博客一文多发平台 OpenWrite 发布!

相关文章

  • 语言模型

    什么是语言模型 语言模型建模方法分为 统计语言模型 和 规则语言模型 两大类,前者完全依靠大文本的数据,用统计的方...

  • 2018.08.13行为方法

    定量方法:采用定量技术来改进决策,这种方法也被称为管理科学。 运用统计学,优化模型,信息模型,计算机模型以及其他定...

  • 各类统计方法R语言实现(七)

    今天是各类统计方法R语言实现的第七期,我们主要介绍多重共线性、异常观察值的分析和回归模型改进措施。 多重共线性 多...

  • java 内存模型(1)

    java 内存模型也是语言级别的模型。而是 java 面试不不可缺少的问题。所谓模型就是定义 java 方法内存的...

  • NLP-统计语言模型的平滑方法

    一、引言 在NLP-统计语言模型中简要介绍了统计语言模型的原理和实现方法,以bigram为例,计算了 的概率,这是...

  • 常用高效工作方法

    标签: 职场工作方法 1. PDAC循环工作法 PDCA循环是一个持续改进模型, 它包括持续改进与不断学习的四个循...

  • 日更78

    亲属人脸识别问题,采用交叉验证的方法,来尝试提高识别的准确率和模型的准确性。 下步改进可以改变模型的损失函数,以及...

  • 神经网络语言建模系列之五:层级输出

    除了基于采样的神经网络语言模型的加速方法,另一个重要的加速神经网络语言模型的研究方向是层级输出(Hierarchi...

  • 基于NS3的无线链路物理层仿真实验

    一、实验目的 掌握NS3的基本仿真方法 熟悉NS3的无线链路模型 改进NS3的无线链路模型 二、实验背景 在原有的...

  • CMU Sphinx语音识别入门:构建语言模型

      CMUSphinx支持多种语言解码模型,包括:关键字列表模型、语法模型、统计语言模型和语言语音模型。不同的模型...

网友评论

      本文标题:改进大语言模型的最全方法!

      本文链接:https://www.haomeiwen.com/subject/gtbmljtx.html