从零开始学大模型:全模型微调、LoRA和RAG技术详解!
本文介绍了三种增强大模型知识的技术:全模型微调调整全部参数但计算成本高;LoRA通过低秩矩阵分解减少参数量,降低计算成本;RAG通过检索外部数据增强知识,无需微调。三种技术各有适用场景,可根据资源需求和任务特点选择合适方法。
下图是一个全模型微调、LoRA 微调和 RAG 的可视化呈现,这三种技术都用于通过额外数据来增强现有模型的知识储备。

全模型微调
微调指的是在预训练模型的基础上,针对新数据集调整权重参数以提升模型性能。
全模型微调(Full Model Fine-tuning)是迁移学习中的一种方法,指在预训练模型的基础上,对整个模型的所有参数进行进一步调整以适应特定下游任务的过程。与仅微调部分层(如分类头)不同,全模型微调允许所有层参与学习新任务的特征表示。

核心特点
- 参数调整范围:覆盖预训练模型的全部可训练参数,包括嵌入层、注意力机制、全连接层等。
- 数据需求:通常需要较多任务相关数据,以避免过度拟合预训练知识。
- 计算成本:由于需更新全部参数,计算资源和时间消耗较高。
适用场景
- 任务与预训练领域差异较大:如从通用文本理解(BERT)迁移到医疗文本分类。
- 数据量充足:拥有足够标注数据支持大规模参数更新。
- 资源允许:具备足够的GPU/TPU算力支持全参数训练。
实现示例(PyTorch)
from transformers import BertForSequenceClassification, AdamW
# 加载预训练模型
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')
# 定义优化器(优化所有参数)
optimizer = AdamW(model.parameters(), lr=5e-5)
# 训练循环for batch in dataloader:
outputs = model(**batch)
loss = outputs.loss
loss.backward()
optimizer.step()
optimizer.zero_grad()
尽管这种微调技术已成功应用多年,但当我们在更庞大的模型(例如大语言模型)上使用时,问题便随之产生,主要原因在于:
- 它们的规模
- 微调全部权重涉及的成本
- 维护所有微调模型涉及的成本
LoRA 微调
LoRA微调解决了传统微调的局限性。其核心思想是将原始模型的部分或全部权重矩阵分解为低秩矩阵并进行训练。例如在下图中,下半部分代表大型预训练模型,上半部分代表带有LoRA层的模型。
LoRA(Low-Rank Adaptation)是一种针对大型预训练模型(如GPT、BERT)的高效微调技术。其核心思想是通过低秩矩阵分解,在原始模型参数旁添加可训练的旁路矩阵,而非直接修改原始参数,从而大幅减少微调时的参数量和计算成本。

核心思路是仅训练LoRA网络并冻结大模型。
观察上述图示,你可能会想:LoRA模型的神经元数量比原始模型还多,这如何能节省资源?要理解这一点,必须明确神经元与内存占用无关,它们仅用于展示层与层之间的维度变换。
真正占用内存的是权重矩阵(或两层之间的连接)。因此,我们需要对比的其实是这些连接关系:

再看看上面的图示,可以明显看出LoRA网络的连接数量相对较少。
核心原理
假设预训练模型的权重矩阵为
LoRA引入两个低秩矩阵

和

(其中

),使得前向传播时:

其中:
- (A)初始化为随机高斯分布
- (B)初始化为零矩阵
- 微调时仅更新 (A) 和 (B),冻结原始权重 (W)
# PyTorch实现示例class LoRALayer(nn.Module):
def __init__(self, original_layer, rank=8):
super().__init__()
self.original = original_layer
self.lora_A = nn.Parameter(torch.randn(original_layer.in_features, rank))
self.lora_B = nn.Parameter(torch.zeros(rank, original_layer.out_features))
def forward(self, x):
return self.original(x) + x @ self.lora_A @ self.lora_B
核心特点
参数效率:通常只需微调原模型0.1%-1%的参数。例如175B参数的GPT-3,使用LoRA可能仅需训练10-100M参数。
内存节省:无需存储完整参数的梯度,只需维护低秩矩阵的梯度。
灵活部署:训练后的低秩矩阵可单独保存(MB级),与原始模型动态组合。
适用场景
- 大语言模型的任务适配(如客服、创作)
- 跨领域迁移(医疗、法律等专业领域)
- 资源受限环境下的模型定制
RAG
RAG是另一种无需微调模型就能为神经网络补充额外信息的绝佳方式。

共有7个步骤,在上图中都有标注:
● 步骤1-2:获取额外数据,经向量化处理后存入向量数据库(此操作仅需执行一次。若数据持续更新,只需不断将新生成的向量存入数据库,无需对整个数据集重复此过程)
● 步骤3:使用相同的向量化模型对用户查询进行向量化处理
● 步骤4-5:在向量数据库中检索与查询向量最邻近的数据点
● 步骤6-7:将原始查询与检索到的文档(作为上下文补充)输入大语言模型以获取响应
事实上,该技术的名称本身就完整诠释了它的应用原理:

● 检索:从知识源(如数据库或记忆)中访问和获取信息。
● 增强:通过附加信息或上下文来提升或丰富文本生成过程。
● 生成:生成文本或语言。
当然,RAG也存在诸多问题,例如:
● RAG需要对查询向量与文档向量进行相似度匹配,但问题与答案在结构上存在显著差异。
● 典型的RAG系统仅适用于基于查找的问答系统。例如,我们无法构建RAG流程来汇总附加数据。由于相似度匹配仅检索最相关的结果,大语言模型始终无法在提示词中获取全部文档信息。 由此可见,RAG技术兼具优势与局限:
● 无需对模型进行微调,可节省大量算力资源。
● 但这也限制了其在特定类型系统中的适用性。
AI大模型学习和面试资源
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从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%免费】🆓

更多推荐



所有评论(0)