Skip to content

Commit

Permalink
修改文章内容
Browse files Browse the repository at this point in the history
  • Loading branch information
shen-shanshan committed Dec 13, 2024
1 parent 72e2ad1 commit fe2a50b
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 22 deletions.
36 changes: 25 additions & 11 deletions content/posts/【计算机】大模型微调知识全景/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,34 @@ tags: ["AI", "LLM", "大模型微调", "论文精读"]
- **全量参数微调(Full Fine-tuning,FFT)**:对预训练模型的所有参数进行更新,训练速度较慢,消耗机器资源较多;
- **参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)**:只对部分参数进行更新,训练速度快,消耗机器资源少。

### 4.1 FFT 的缺点
此外,还有一种不需要更新模型权重就可以完成微调的方法,叫做 **In-Context Learning**,通过在输入的 prompt 中提供与任务相关的上下文和例子,从而让模型能够更好地了理解我们的意图。

- **训练成本高**:全参微调所需要计算的参数量与预训练相同,随着模型规模变得越来越大,这使得在消费级硬件上进行全量微调变得不可行;、
### 4.1 FFT 的优缺点

优点:

- **提升特定任务性能**:全参微调可以对所有模型参数进行优化,从而在某些任务上获得更好的性能。

缺点:

- **训练成本高**:全参微调所需要计算的参数量与预训练相同,随着模型规模变得越来越大,这使得在消费级硬件上进行全量微调变得不可行;
- **灾难性遗忘**:用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的别的领域的能力变差。

### 4.2 PEFT 的优点
### 4.2 PEFT 的优缺点

优点:

- **降低训练成本**:减少计算消耗,缩短训练时间,降低对硬件性能的要求;
- **保证模型性能**:针对特定下游任务,能够在一定程度上保证模型的表现和性能;
- **节省存储空间**:降低存储占用,大部分的参数都可以在不同任务之间共享,只需额外保存经过不同任务微调后更新的参数。

缺点:

参数高效微调只对模型中的少量参数进行更新,极大地减少了计算和资源的消耗,同时还能在特定任务上保证模型的表现和性能
- **特定任务性能有限**:可能无法达到全参数微调在某些特定任务上的性能水平

总结一下
小结

- 减少计算消耗,缩短训练时间,降低对硬件性能的要求;
- 针对特定下游任务,保证模型的表现和性能;
- 降低存储占用,大部分的参数都可以在不同任务之间共享,只需额外保存经过不同任务微调后更新的参数。
因此,在实际应用中,我们应该根据具体任务的要求和可用资源情况,在服务效率和模型质量之间做出权衡。对于资源有限或对训练时间有严格要求的场景,使用 PEFT 会是一个比较好的选择;而对于需要最佳性能的任务,使用 FFT 可能会更加合适。

### 4.3 PEFT 的分类

Expand All @@ -90,15 +104,15 @@ tags: ["AI", "LLM", "大模型微调", "论文精读"]
- **LoRA+**
- **LoRA-drop**
- ……
- **Hybrid methods**
- **Hybrid methods**:根据实际情况,可以对上述方法进行组合,从而达到更好的效果

目前比较主流的几种参数高效微调方法包括:Prompt Tuning、Prefix Tuning、LoRA、QLoRA 等。

下图展示了各类参数高效微调方法及其所属的类别
论文[《Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning》](https://arxiv.org/abs/2303.15647)中展示了各类参数高效微调方法及其所属的类别,如下所示

![1](./images/peft分类.png)

下图对比了各类参数高效微调方法的表现和性能
该论文中还对比了各类参数高效微调方法的表现和性能,如下所示

![1](./images/peft对比.png)

Expand Down
31 changes: 20 additions & 11 deletions content/roadmap/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,47 @@ showRelatedContent: false

## Functions and Styles

- [ ] 增加链接文字高亮显示(鼠标位于其上时
- [ ] 增加链接文字高亮显示(鼠标悬于其上时
- [ ] 增加网站评论功能
- [ ] 增加文章阅读数和点赞数统计功能
- [ ] 拆分文章卡片中的 category 和 tag
- [ ] 申请 .com 域名
- [ ] 分开展示文章卡片中的 category 和 tag

---

## Contents

- [ ] 梳理 vLLM 学习笔记
<!--
一个博士生接受怎样的训练是完整、全面的科研训练? - 重剑无锋的回答 - 知乎
https://www.zhihu.com/question/384512106/answer/1879956380
-->

- [ ] 梳理投资理财相关知识(增加理财分类)
- [ ] 迁移之前写的英语学习笔记到本站(增加英语分类)
- [ ] 梳理个人技能树(增加个人随笔分类)
- [ ] 梳理大模型推理知识全景
- [ ] 梳理 Python typing 用法
- [ ] 梳理 Python 装饰器用法
- [ ] 梳理 vLLM 学习笔记(自定义算子实现 / Multi-LoRA 推理加速)
- [ ] 增加相册展示页
- [ ] 所有文章增加摘要
- [ ] 写 2024 年年度读书报告
- [ ] 写《非暴力沟通》读书笔记
- [ ] 写《娱乐至死》读书笔记
- [ ] 写《小岛经济学》读书笔记
- [ ] 写《费曼学习法》读书笔记
- [ ] 写《海绵阅读法》读书笔记
- [x] 2024-12-08: 写《被讨厌的勇气》读书笔记
- [x] 2024-12-05: 梳理 LLM 微调的知识全景
- [x] 2024-12-05: 梳理大模型微调知识全景
- [x] 2024-11-23: 增加网站导航页
- [x] 2024-11-23: 增加技术文章总览
- [x] 2024-11-23: 增加我的书单总览
- [x] 2024-11-19: 个人介绍加入技术栈和开源贡献
- [x] 2024-11-19: 迁移所有之前写的博客
- [x] 2024-11-19: 迁移之前写的技术博客到本站
- [x] 2024-11-18: 完善个人介绍页
- [x] 2024-11-13: 梳理 LLM LoRA 微调的数学原理
- [x] 2024-11-13: 梳理大模型 LoRA 微调的数学原理
- [x] 2024-10-23: 梳理 Ascend aclnn 算子开发入门学习笔记
- [x] 2024-10-18: 总结 Git 实践案例——合并多个分散的 commit 节点
- [x] 2024-09-24: 总结 Ascend NPU 远程开发环境搭建教程
- [x] 2024-09-04: 总结 IDEA Maven 项目编译或启动报错解决方法
- [x] 2024-10-18: 梳理 Git 实践案例——合并多个分散的 commit 节点
- [x] 2024-09-24: 梳理 Ascend NPU 远程开发环境搭建教程
- [x] 2024-09-04: 梳理 IDEA Maven 项目编译或启动报错解决方法
- [x] 2024-08-31: 梳理 Ascend NPU 架构学习笔记
- [x] 2024-08-26: 梳理 NVIDIA GPU 架构学习笔记
- [x] 2024-08-10: 写《我有自己的宇宙》读书笔记
Expand Down

0 comments on commit fe2a50b

Please sign in to comment.