上篇文章记录了使用lora微调deepseek-7b,微调成功,但是微调llama3-8b显存爆炸,这次尝试使用qlora微调HQQ方式量化,微调更大参数体量的大语言模型,记录下来微调过程,仅供参考。
对过程不感兴趣的兄弟们可以直接从第3节开始看。

1.量化方法

  重点介绍bitsandbytes、hqq和eetq这三种量化方式,它们通过将模型的权重压缩为低精度格式来减少显存占用,从而使得可以训练更大的模型,或者在有限的显存资源下运行大型模型。

  • bitsandbytes: 专注于权重量化,通过将模型权重表示为更低精度的数据类型,以减少显存占用和提升训练效率
  • hqq: 通常是一种结合了多种量化技术的方法,旨在通过多种策略进一步压缩模型的存储需求,并保持训练过程的性能。
  • eetq: 专注于在训练阶段有效地进行量化,以减少显存占用,并可能采用某些自适应的量化策略来平衡效率和效果。

1.1 在配置文件中的位置:

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
quantization_bit: 4
quantization_method: bitsandbytes  # choices: [bitsandbytes (4/8), hqq (2/3/4/5/6/8), eetq (8)]

如上述配置文件所示,量化模型方法有:bitsandbytes、hqq和eetq三种方式,其中bitsandbytes(4/8)是指支持4bit和8bit量化,其他两种同理。

2.微调Meta-Llama-3-8B-Instruct

## llama3_lora_sft_otfq.yaml 修改部分
model_name_or_path: models/Meta-Llama-3-8B-Instruct/
quantization_bit: 2
quantization_method: hqq   # choices: [bitsandbytes (4/8), hqq (2/3/4/5/6/8), eetq (8)]
trust_remote_code: true
...
### method
...
lora_target: q_proj,v_proj

运行训练命令:

llamafactory-cli train examples/train_qlora/llama3_lora_sft_otfq.yaml

通过修改lora_target,只微调q_proj和v_proj的方式减少显存使用,成功运行,没有OOM,但显存也是几乎全满了,与官网对照表还是对不上。

3.微调Llama-2-13b-chat-hf模型

抱着菜就多练,不会就问的态度,直接在github上问,结果还真得到了答复,问题地址:issue
在这里插入图片描述
得到的回复也很简单,微调方式有问题
在这里插入图片描述
于是我去官网上去找fsdp + qlora的微调方式,还真让我找到了!!
在这里插入图片描述
于是我兴致冲冲的去按照官方命令微调:

bash examples/extras/fsdp_qlora/train.sh# train.sh
#CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 accelerate launch \
#   --config_file examples/accelerate/fsdp_config.yaml \
#    src/train.py examples/extras/fsdp_qlora/llama3_lora_sft.yaml

注意: 运行之前要修改一下fsdp_config.yamlllama3_lora_sft.yaml,其中fsdp_config.yaml第19行num_processes为你GPU数量,llama3_lora_sft.yaml的配置就不赘述。

运行结果显存使用显著下降,但是RAM使用量提高,如图所示:
在这里插入图片描述

总结

  • PyTorch的全切片数据并行技术FSDP能让我们处理更多更大的模型,这是微调13b模型成功的关键
  • fsdp_config.yaml中的FULL_SHARD将模型参数、梯度和优化器状态都切分到不同的GPU上,类似ZeRO-3。
  • 使用fsdp + qlora微调方法微调32B模型依旧OOM,后续会继续探索DeepSpeed方式来微调32B模型,验证其可行性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/71877.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/71877.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/71877.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解 Spring 配置数据源的两种方式

在 Spring 框架中配置数据源(DataSource)主要有两种方式: 通过 Setter 注入配置数据源通过 jdbc.properties 配置文件方式 本博文将使用 Druid 作为数据源,其在 Spring 项目中常见且高效。 Druid 被广泛认为是性能最佳的连接池…

项目进度管理工具:甘特图与关键路径法(2025实战指南)

在全球数字化转型加速的背景下,项目延期率高达42%的现状倒逼管理者掌握科学的进度管理工具。本文结合2025年最新实践,深度解析甘特图与关键路径法的原理及应用,助你构建精准可控的项目进度管理体系。 一、双剑合璧:工具组合的价值…

RAGS评测后的数据 如何利用influxdb和grafan 进行数据汇总查看

RAGS(通常指相关性、准确性、语法、流畅性)评测后的数据能借助 InfluxDB 存储,再利用 Grafana 进行可视化展示,实现从四个维度查看数据,并详细呈现每个问题对应的这四个指标情况。以下是详细步骤: 1. 环境准备 InfluxDB 安装与配置 依据自身操作系统,从 InfluxDB 官网下…

详解Redis如何持久化

引言 本文介绍了 Redis 的两种持久化方式:RDB 和 AOF。RDB 按时间间隔快照存储,AOF 记录写操作。阐述了它们的配置、工作原理、恢复数据的方法、性能与实践建议,如降低 fork 频率、控制内存等,还提到二者可配合使用,最…

HarmonyOS Design 介绍

HarmonyOS Design 介绍 文章目录 HarmonyOS Design 介绍一、HarmonyOS Design 是什么?1. 设计系统(Design System)2. UI 框架的支持3. 设计工具和资源4. 开发指南5. 与其他设计系统的对比总结 二、HarmonyOS Design 特点 | 应用场景1. Harmon…

PC端-发票真伪查验系统-Node.js全国发票查询接口

在现代企业的财务管理中,发票真伪的验证至关重要。随着电子发票的普及,假发票问题日益严峻,如何高效、准确的对发票进行真伪查验,已经成为各类企业在日常运营中必须解决的关键问题。翔云发票查验接口做企业财务管理、税务合规的好…

Java 大视界 -- 基于 Java 的大数据机器学习模型压缩与部署优化(99)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

算法-图-数据结构(邻接矩阵)-BFS广度优先遍历

邻接矩阵广度优先遍历(BFS)是一种用于遍历或搜索图的算法,以下是具体介绍: 1. 基本概念 图是一种非线性的数据结构,由顶点和边组成,可分为无向图、有向图、加权图、无权图等。邻接矩阵是表示图的一种数…

【HDLbits--Comb组合逻辑】

HDLbits--Comb组合逻辑 1.5 组合逻辑1.5 Demo 在 Verilog 中,组合逻辑(Combinational Logic)是指输出仅依赖于当前输入的逻辑电路,没有记忆功能(即没有状态存储)。组合逻辑的特点是: 无时钟信号…

ARM Cortex-M3 技术解析:核寄存器R1-R15介绍及使用

ARM Cortex-M3 技术解析:核寄存器R1-R15介绍及使用 作为嵌入式开发领域的经典处理器内核,ARM Cortex-M3(CM3)凭借其高效能、低功耗和丰富特性,在工业控制、物联网、消费电子等领域广泛应用。而内核寄存器是我们调试代…

python unzip file

要在 Python 中解压文件并显示进度,我们需要在解压过程中跟踪文件的提取进度。由于 zipfile 模块本身不直接支持进度显示,我们可以通过手动计算并使用 tqdm 库来显示进度条。 安装 tqdm 首先,确保你已经安装了 tqdm 库,用于显示…

DeepSeek+Kimi生成高质量PPT

DeepSeek与Kimi生成PPT全流程解析 一、工具分工原理 DeepSeek核心作用:生成结构化PPT大纲(擅长逻辑构建与内容优化)Kimi核心作用:将文本转换为视觉化PPT(提供模板库与排版引擎) 二、操作步骤详解 1. 通…

一文掌握python中正则表达式的各种使用

文章目录 1. 正则表达式基础1.1 常用元字符1.2 基本用法 2. 正则表达式高级功能2.1 分组捕获2.2 命名分组2.3 非贪婪匹配2.4 零宽断言2.5 编译正则表达式2.6 转义字符 3. 常见应用场景3.1 验证邮箱格式3.2 提取 URL3.3 提取日期3.4 提取HTML中的链接3.5 提取HTML中的图片链接3.…

TCP,http,WebSocket

TCP(Transmission Control Protocol,传输控制协议)和HTTP(HyperText Transfer Protocol,超文本传输协议)都是网络通信中的重要协议,但它们在网络协议栈的不同层次上工作,各自负责不同…

Redis|持久化

文章目录 总体介绍RDB(Redis DataBase)官网介绍案例演示优势劣势如何检查修复 dump.rdb 文件哪些情况下会触发 RDB 快照如何禁用快照RDB 优化配置项详解小总结 AOF(Append Only File)官网介绍是什么能干嘛AOF 持久化工作流程AOF 缓…

Docker小游戏 | 使用Docker部署star-battle太空飞船射击小游戏

Docker小游戏 | 使用Docker部署star-battle太空飞船射击小游戏 前言项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署star-battle网页小游戏下载镜像创建容器检查容器状态检查服务端口安全设置四、访问star-battle网页小游戏五、总…

巨控科技的GRM550元出魔抗实现PLC远程下载与维护方案:工业自动化的高效解决方案

巨控科技PLC远程下载与维护方案:工业自动化的高效解决方案 在工业自动化领域,设备的高效维护与快速调试是保障生产连续性的关键。巨控科技推出的PLC远程下载与维护方案,凭借其先进的技术和广泛兼容性,成为企业实现设备远程管理的…

ChatGLM2-6B如何从输入到输出-代码解析(二)

出发点 上一篇解析了Chatglm2-6b的模型架构,并和Chatglm-6b进行对比,但是留下了几个问题(哭)这一篇的目的是讲明白attention和rotaryEmbedding,解决问题,并实现整体目标,完全替代modeling_chat…

Sublime Text4安装、汉化

-------------2025-02-22可用---------------------- 官方网址下载:https://www.sublimetext.com 打开https://hexed.it 点击打开文件找到软件安装目录下的 ctrlf 查找 8079 0500 0f94 c2右边启用替换替换为:c641 0501 b200 90点击替换按钮 替换完成后 另存为本地…

汽车开放系统架构(AUTOSAR)中运行时环境(RTE)生成过程剖析

一、引言 在当今高度智能化的汽车电子领域,软件系统的复杂性呈指数级增长。为了应对这一挑战,汽车开放系统架构(AUTOSAR)应运而生,它为汽车电子软件开发提供了标准化的分层架构和开发方法。其中,运行时环境…