当前位置: 首页 > news >正文

大模型微调有必要做吗?LoRa还是RAG?

  • 我需要对大模型做微调吗?

  • 想自定义大模型时,选择:微调还是RAG还是ICL?

需要对大模型做微调?

  • 在人工智能的世界里,大型语言模型(LLM)已经成为了我们探索未知、解决问题的得力助手。

  • 但是你想自己定义一个属于自己的大模型,它有自己特色的数据训练和回答方式。自己从头训练一个大模型的成本太高

  • 这时候可能需要考虑在已有的大模型上做:微调

  • 就像一个微整容手术一样,变得更帅

判断因素
是否需要特定领域的精确性?如果你的应用需要处理特定领域的数据,如医疗、法律或金融,并且需要高度的准确性和对专业术语的理解,那么微调可能是必要的。如果你的应用是通用的,或者不需要深入特定领域的专业知识,那么可能不需要微调。
是否需要定制化模型行为?如果你需要模型以特定的风格、语调或格式响应,或者需要它表现出特定的行为特征,微调可以帮助你实现这些定制化需求。如果模型的通用行为已经满足需求,或者你不需要特定的响应风格,那么微调可能不是必需的。
是否面临边缘案例的挑战?如果你发现模型在处理某些边缘或罕见案例时表现不佳,微调可以帮助改进这些特定情况的处理。如果模型在所有常见和边缘案例中都表现良好,那么微调可能不是必要的。
是否需要提高模型的可靠性?如果模型在遵循复杂指令或生成期望输出方面存在失败,微调可以提高其可靠性。如果模型已经足够可靠,能够满足你的输出要求,那么可能不需要微调。
是否需要降低成本?如果你希望通过微调将大型模型的技能转移到更小的模型中,以减少计算资源的使用和成本,那么微调是有益的。如果成本不是主要考虑因素,或者你不需要优化模型的大小和性能,那么微调可能不是必需的。
是否需要快速部署新任务?如果你需要模型快速适应新任务或能力,微调可以帮助你实现这一点。如果模型目前的任务已经足够,并且没有立即引入新任务的需求,那么微调可能不是必要的。
是否有足够的训练数据?如果你拥有足够的、高质量的、与任务相关的训练数据,微调可以显著提高模型的性能。如果缺乏足够的训练数据,或者数据质量不高,微调可能不会带来预期的效果。
是否对模型的透明度有要求?如果你的应用需要模型的决策过程是可解释的,微调可以帮助你更好地理解和控制模型的行为。如果模型的透明度不是关键考虑因素,那么可能不需要微调。
是否有足够的资源进行微调?如果你有足够的计算资源和专业知识来进行微调,那么这是一个可行的选项。如果资源有限,可能需要考虑其他方法,如上下文学习或使用现成的模型。

1. 定制化风格与格式

你是否需要一个能够模仿特定人物或服务于特定受众的聊天机器人?通过使用定制数据集对LLM进行微调,我们可以使其响应更加贴近受众的具体要求或预期体验。例如,你可能需要将输出结构化为JSON、YAML或Markdown格式。

2. 提高准确性,处理边缘案例

微调可以用来纠正那些通过提示工程和上下文学习难以修正的错误。它还可以增强模型执行新技能或任务的能力,这些任务在提示中难以表达。例如,Phi-2在金融数据分析上的准确率从34%提高到了85%,而ChatGPT在Reddit评论情感分析上的准确率提高了25个百分点。

3. 针对小众领域的优化

尽管LLM在大量通用数据上进行了训练,但它们可能并不总是精通每个小众领域的专业术语或特定细节。在法律、医疗或金融等多样化领域,微调已被证明可以提高下游任务的准确性。

4. 成本降低

微调可以将大型模型(如Llama 2 70B/GPT-4)的技能提炼到更小的模型中(如Llama 2 7B),在不牺牲质量的情况下降低成本和延迟。此外,微调减少了对长或特定提示的需求,从而节省了令牌,进一步降低了成本。

5. 新任务/能力

微调通常可以通过以下几种方式实现新的能力:

  • 使LLM更好地使用给定检索器的上下文或完全忽略它。

  • 评估其他LLM的指标,如基于事实的、合规性或有用性。

  • 增加LLM的上下文窗口。

微调的五种方法:

微调的五大方法

  1. Freeze 方法,即参数冻结,对原始模型部分参数进行冻结操作;

  2. P-Tuning 方法,参考 ChatGLM 官方代码 ,是针对于大模型的 soft-prompt 方法;

  3. LoRA 方法,的核心思想就是通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练;

  4. AdaLoRA 方法是对 LoRA 的一种改进,并根据重要性评分动态分配参数预算给权重矩阵;

  5. QLoRA 方法,是使用一种新颖的高精度技术将预训练模型量化为 4 bit,并添加一小组可学习的低秩适配器权重。

微调方法对比

  • 一般我们说的微调分类会简化成:

  • 1.全参数微调:贵,慢,效果最佳

  • 2.LoRa:快,偏宜,佳

  • 3.改进LoRa:快,偏宜,佳

微调与其他技术对比

微调 vs. ICL

上下文学习(ICL)是一种强大的提高基于LLM系统性能的方法。鉴于其简单性,应该在进行任何微调活动之前尝试ICL。此外,ICL实验可以帮助你评估微调是否会提高下游任务的性能。

微调 vs. RAG

普遍的共识是,当LLM的基础性能不令人满意时,你可能会“从RAG开始,评估其性能,如果发现不足,转向微调”,或者认为“RAG可能优于微调”。然而,我们认为这种范式过于简单化了,因为有许多场景中,RAG不仅不是微调的替代品,而且更多地是微调的补充方法。

对比

特性/技术微调 (Fine-tuning)RAG (Retrieval-Augmented Generation)上下文学习 (In-Context Learning, ICL)
定义对预训练模型进行额外训练以适应特定任务或数据集。结合检索系统和生成模型,以提供更准确的信息。通过在输入中提供示例来指导模型完成特定任务。
使用成本较高,因为需要额外的训练数据和计算资源。较高,需要维护检索系统和训练成本。较低,不需要额外训练,但可能需要更多的输入示例。
准确性通常更高,特别是对于需要特定领域知识的复杂任务。可能更高,特别是在需要外部信息的任务中。可能因示例数量和质量而变化,但通常不如微调准确。
处理边缘案例有效,可以专门针对边缘案例进行训练。有效,可以通过检索相关信息来处理。受限于提供的示例,可能无法覆盖所有边缘情况。
定制化高度可定制,可以针对特定风格或格式进行优化。可定制,但受限于检索系统的能力。可定制,但需要精心设计的示例。
新任务/能力可以学习新任务,但可能需要大量数据。可以处理需要外部信息的新任务。可以处理新任务,但通常需要更多示例。
数据依赖性依赖于训练数据的质量和相关性。依赖于检索系统提供的数据。依赖于提供的示例数据。
更新频率需要定期重新训练以保持知识更新。需要更新检索系统以保持信息最新。无需更新,但示例可能需要更新以反映新信息。
维护难度较高,需要专业知识和资源进行训练和维护。较高,需要维护检索系统和生成模型。较低,主要涉及示例的更新和管理。
适用场景适合需要高度定制化和准确性的场景。适合需要结合大量外部信息的场景。适合快速原型设计和探索性任务。
成本效益分析对于需要高度定制化的应用,成本效益可能更高。对于需要实时检索信息的应用,成本效益可能更高。对于需要快速部署和较少资源投入的应用,成本效益最高。

结论

在大多数情况下,微调和RAG的混合解决方案将产生最佳结果。问题变成了进行两者的成本、时间和额外的独立收益。参考上述问题来指导你的决策,如果需要RAG和/或微调,并通过内部实验来理解通过分析错误可能获得的指标增益。最后,微调的探索确实需要一个健全的数据收集和数据改进策略,我们建议将其作为开始微调的前奏。

方法成本优势劣势特点使用场景
全参数微调- 能够捕捉到数据的细微特征
- 模型性能通常较好- 需要大量计算资源
- 训练时间长
- 容易过拟合- 所有参数都参与训练- 需要大量标注数据
- 适用于对模型性能要求极高的场景
LoRA- 减少参数量,节省计算资源
- 保持模型性能- 可能不如全参数微调的性能- 仅对部分参数进行微调- 资源有限但需要微调的场景
QLoRA- 比LoRA更灵活
- 可以更好地捕捉数据特征- 计算资源需求比LoRA高- 通过量化来减少参数量- 需要在保持性能的同时减少参数量的场景
RAG可高可低- 能够进行检索增强学习
- 可以处理长文本和复杂任务- 需要额外的检索系统
- 训练复杂度增加- 结合检索和生成- 需要处理大量信息和复杂查询的场景
ICL- 通过对比学习提高模型鲁棒性
- 可以处理不同的数据分布- 需要设计合适的对比样本- 通过对比学习进行微调- 需要提高模型泛化能力的场景

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

相关文章:

大模型微调有必要做吗?LoRa还是RAG?

我需要对大模型做微调吗? 想自定义大模型时,选择:微调还是RAG还是ICL? 需要对大模型做微调? 在人工智能的世界里,大型语言模型(LLM)已经成为了我们探索未知、解决问题的得力助手。…...

机器人外呼系统如何使用呢?

智能电话机器人作为人工智能进入电销行业的一个分类,目前已取得不错的成绩。智能电话机器人针对电销行业的痛点所作出了改善。 作为新兴的一种电销手段,很多企业对其充满好奇又望而却步。那么很多朋友都有想知道为什么现在很多人都用AI机器人拓客&#x…...

python-月份有几天

题目描述 小理现在有一份日历,但是这个日历很奇怪并不能告诉小理日期信息。小理现在有年和月,希望你能帮他计算出来这一年这个月有几天。 输入 输入共一行,两个整数,代表年和月,中间用空格隔开。 输出 一个整数&am…...

1017 Queueing at Bank

链接: 1017 Queueing at Bank - PAT (Advanced Level) Practice (pintia.cn) 题目大意: 有n个客户,k个窗口。已知每个客户的到达时间和需要的时长,如果有窗口就依次过去,如果没有窗口就在黄线外等候(黄线…...

DPDK 测试说明

文章目录 2.DPDK 测试说明2.1硬件pci加密设备绑定到igb_uio驱动IGB_UIO 主要负责什么内容 ? 2.2 test命令使用说明2.3 dpdk-test-crypto-perf命令使用说明2.4 使用testpmd测试网卡性能 2.DPDK 测试说明 2.1硬件pci加密设备绑定到igb_uio驱动 dpdk-stable/usertool…...

上传及接收pdf文件,使用pdfbox读取pdf文件内容

前端上传pdf文件 html <form class"layui-form"><div style"background-color: #ffffff" ><div style"padding: 30px"><div class"layui-form-item"><div class"layui-inline"><label c…...

第一个搭建SpringBoot项目(连接mysql)

首先新建项目找到Spring Initializr 我使用的URL是https://start.spring.io这里最低的JDK版本是17&#xff0c;而且当网速不好的时候可能会显示超时&#xff0c;这里可以选用阿里云的镜像https://start.aliyun.com可以更快一些但是里面还是有一些区别的 我们这里选择Java语言&a…...

docker部署rabbitMQ 单机版

获取rabbit镜像&#xff1a;我们选择带有“mangement”的版本&#xff08;包含web管理页面&#xff09;&#xff1b; docker pull rabbitmq:management 创建并运行容器&#xff1a; docker run -d --name rabbitmq -p 5677:5672 -p 15677:15672 rabbitmq:management --name:…...

PDF 全文多语言 AI 摘要 API 数据接口

PDF 全文多语言 AI 摘要 API 数据接口 PDF / 文本摘要 AI 生成 PDF 文档摘要 AI 处理 / 智能摘要。 1. 产品功能 支持多语言摘要生成&#xff1b;支持 formdata 格式 PDF 文件流传参&#xff1b;快速处理大文件&#xff1b;基于 AI 模型&#xff0c;持续迭代优化&#xff1b;…...

《信息系统安全》课程实验指导

第1关&#xff1a;实验一&#xff1a;古典密码算法---代换技术 任务描述 本关任务&#xff1a;了解古典密码体制技术中的代换技术&#xff0c;并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母&#xff0c;也就是说字母表为26个小写字母。 相关知识 为了完…...

Accelerated Soft Error Testing 介绍

加速软错误测试(Accelerated Soft Error Testing, ASET)是一种评估半导体器件或集成电路(ICs)在高辐射环境中发生软错误率(Soft Error Rate, SER)的方法。这种测试方法通过模拟或加速软错误的发生,以便在较短时间内评估器件的可靠性。软错误指的是那些不会对硬件本身造成…...

Redis缓存常用的读写策略

缓存常用的读写策略 缓存与DB的数据不一致问题&#xff0c;大多数都是指DB的数据已经修改&#xff0c;而缓存中的数据还是旧数据的情况。 旁路缓存模式 对于读操作&#xff1a;基本上所有模式都是先尝试从缓存中读&#xff0c;没有的话再去DB读取&#xff0c;然后写到缓存中…...

9月产品更新 | 超10项功能升级,快来看看你的需求上线了吗?

Smartbi用户可以在官网&#xff08;PC端下载&#xff09;&#xff0c;更新后便可以使用相关功能&#xff0c;也可以在官网体验中心体验相关功能。 接下来&#xff0c;我们一起来看看都有哪些亮点功能更新吧。 ▎插件商城 Smartbi麦粉社区的应用市场新增了“插件”模块&#xf…...

ARP协议工作原理析解 (详细抓包分析过程)

目录 1. ARP 协议 2. 工作原理 3. ARP 协议报文格式 4. ARP 缓存的查看和修改 5. tcpdump 抓包分析 ARP 协议工作原理 5.1 搭建 2 台虚拟机 5.2 在主机 192.168.0.155 打开一个shell命令行开启抓包监听 5.3 在主机 192.168.0.155 打开另一个shell命令行 telnet 192.168.…...

axure动态面板

最近转管理岗了&#xff0c;作为项目负责人&#xff0c;需要常常与客户交流沟通&#xff0c;这时候画原型的能力就是不可或缺的本领之一了&#xff0c;关于axure可能很多it行业者都不是很陌生&#xff0c;简单的功能呢大家就自行去摸索&#xff0c;我们这次从动态面板开始讲起。…...

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比如替换"作者"为"我们&quo…...

Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

技术背景 随着国产化操作系统的推进&#xff0c;市场对国产化操作系统下的生态构建&#xff0c;需求越来越迫切&#xff0c;特别是音视频这块&#xff0c;今天我们讨论的是如何在linux平台实现屏幕|摄像头采集&#xff0c;并推送至RTMP服务。 我们知道&#xff0c;Linux平台&…...

梧桐数据库|中秋节活动·抽奖领取大闸蟹

有话说 众所周不知&#xff0c;我的工作就是做一个国产的数据库产品—中国移动梧桐数据库&#xff08;简称WuTongDB&#xff09;。 近期我们举办了一次小活动&#xff0c;来提升梧桐数据库的搜索量和知名度&#xff0c;欢迎大家来参加&#xff0c;免费抽奖领取大闸蟹哦~~~ 具…...

Python怎么发送邮件:基础步骤与详细教程?

Python怎么发送邮件带附件&#xff1f;怎么使用Python发送邮件&#xff1f; 无论是工作中的通知、报告&#xff0c;还是生活中的问候、邀请&#xff0c;电子邮件都扮演着不可或缺的角色。那么&#xff0c;Python怎么发送邮件呢&#xff1f;AokSend将详细介绍Python发送邮件的基…...

[译] 大模型推理的极限:理论分析、数学建模与 CPU/GPU 实测(2024)

译者序 本文翻译自 2024 年的一篇文章&#xff1a; LLM inference speed of light&#xff0c; 分析了大模型推理的速度瓶颈及量化评估方式&#xff0c;并给出了一些实测数据&#xff08;我们在国产模型上的实测结果也大体吻合&#xff09;&#xff0c; 对理解大模型推理内部工…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...