首页 > 其他分享 >改进大语言模型的最全方法!

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

时间:2024-09-13 19:13:52浏览次数:11  
标签:训练 最全 微调 适应 改进 参数 LLM 模型

这是一篇关于适应开源大语言模型(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 发布!

标签:训练,最全,微调,适应,改进,参数,LLM,模型
From: https://www.cnblogs.com/JavaEdge/p/18412739

相关文章

  • 大人,文生图的时代又变了!SD核心成员自立门户,首个模型FLUX.1硬刚SD 3和Midjourney
    :::hljs-center作者:李宝珠,xixi编辑:李宝珠HyperAI超神级官网(hyper.ai)的教程版块现已上线「FLUXComfyUI(含黑神话悟空LoRA训练版)」,一键部署,速来体验文生图顶流!:::长久以来,从艺术风格多样化的Midjourney,到背靠OpenAI的DALL-E,再到开源的StableDiffusion(简称SD),文......
  • 企业ai大模型的服务器配置推荐
    以下是关于服务器配置的详细说明:处理器(CPU):服务器处理器需要具备高性能,能够处理大量的数据处理任务。例如,第五代英特尔至强可扩展处理器在AISBench测试中表现卓越,适用于AI大模型的推理性能测试,因此这类处理器非常适合用于需要大量数据处理和计算的应用,如图像处理。内存(RAM):大容量的内......
  • 阿里云文档智能解析——大模型版能力最佳实践与体验评测
    一、引言随着数字化转型的深入,企业对于非结构化数据的处理需求日益增长。阿里云推出的文档智能解析服务旨在帮助企业快速高效地将各类文档转化为结构化信息,从而提升业务效率。本文旨在通过实际应用案例,对阿里云文档智能解析服务中的“文档解析(大模型版)”进行全面评测,并提出改......
  • YOLOv9改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、
    一、背景:传统的非极大值抑制(NMS)算法在目标检测中存在一个问题,即当一个物体的检测框与具有最高得分的检测框M有重叠(在预定义的重叠阈值内)时,会将该检测框的得分设置为零,从而导致该物体可能被遗漏,降低了平均精度。为了解决这个问题,作者提出了Soft-NMS算法。本文将YOLOv9默认......
  • 深入理解Redis线程模型
    Reids6.0之前版本的线程模型在讨论最新版本的Redis的线程模型之前呢,我们先来聊聊原来的Redis的线程模型:有人说,在6.0之前呢,Redis是单线程的,这么说其实也不太准确,为什么呢?因为Redis在4.0之后,就引入了多线程,比如说除了处理用户命令的主线程之外,还会起异步的线程去做一些资源释......
  • Redis的IO模型
    RedisIO模型RedisIO模型使用的是基于Reactor模式的I/O多路复用模型。这个模型通过单线程事件循环来处理所有的客户端请求和响应。基本模式1.Reactor模式Reactor模式是一种用于处理并发I/O操作的设计模式。它包含以下几个组件:多路复用器(Multiplexer):负责监听多......
  • Whisper 模型在实时语音转录中有哪些具体的应用场景?
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • 深度解析高斯混合模型(GMM)及其在WebRTC VAD中的应用
    目录一、引言二、高斯混合模型概述三、GMM的应用——语音与背景噪声分离四、GMM的训练与优化五、GMM的优势与挑战六、GMM的实际应用案例七、结论八、参考文献一、引言高斯混合模型(GaussianMixtureModel,GMM)是统计学中的一种经典模型,广泛应用于模式识别、聚类和信......
  • Linux字符设备驱动:分层/分离思想、总线设备驱动模型和设备树
    本文章参考韦东山嵌入式Linux应用开发完全手册......
  • 常见的并非模型
    在并行编程中,处理循环迭代时常用的并发模型有几种:WorkerPool(工作池):描述:创建固定数量的工作goroutine,这些goroutine从共享的任务队列中获取任务并执行。优点:控制并发量,避免过多goroutine导致资源耗尽。示例:packagemainimport("fmt""sync")......