大预言模型|微调大预言模型初探索(LLaMA-Factory)(1)
前言
微调模型通常比从零开始训练一个模型的技术要求低。公司不需要拥有大量的深度学习专家,利用现有的开源工具和库(如Hugging Face的Transformers等),中小型公司可以轻松地使用和微调大型模型,从而快速实现AI能力的集成。因此,学会微调大模型就很有必要。
1.微调方法
1.1 全参数微调
全参数微调是指预训练模型的所有参数进行调整和优化,以使模型能够适应特定任务。具体来说,就是通过训练数据对预训练模型的所有参数(包括权重和偏置等)进行微调,使其更好地执行目标任务。
1.2 部分参数微调
1.2.1 低秩适配(Low-Rank Adaptation, LoRA)
LoRA方法通过引入低秩矩阵来代替全连接层中的权重更新。它通过对模型中的部分权重矩阵进行低秩分解,从而减少需要微调的参数量。
1.2.2 适配器方法(Adapters)
适配器方法通过在预训练模型中插入小型的适配器模块,保持大部分原始模型的参数不变,只微调适配器模块。这种方法显著减少了需要微调的参数数量,同时保持了迁移能力。
1.2.3 Prompt Tuning(提示微调)
Prompt Tuning是通过优化输入的“提示”或“前缀”来适应新任务,而不是微调模型的所有参数。这种方法特别适用于自然语言处理任务,在不修改模型本身的情况下,通过改变输入格式来提高模型的任务适应性。
具体部分参数微调方法还有很多,感兴趣的可以自己去探索。
2.实践!!
网上得来终觉浅,绝知此事要躬行,光看理论不实践,这不是耍流氓吗??!!
推荐实践项目:LLaMA-Factory
按照官网教程去安装:
2.1 安装环境
官网推荐的环境:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
conda create -n llama-lora python=3.10
conda activate llama-lora
pip install -e ".[torch,metrics]"
如果嫌太慢的话,可以换源去安装。
安装完成后,可以去校验校验教程网址
3. 注意事项
3.1.这里我llamafactory-cli train -h校验的时候,报错:

搜索发现是环境优先级问题:
sudo vim /etc/profile
# 将你的conda环境放到profile里面
export PATH="/home/hxgk/anaconda3/envs/lora-llama/bin:$PATH"
source /etc/profile
3.2 yaml文件配置
1.将LLaMA-Factory/examples/accelerate/fsdp_config.yaml第19行的num_processes设置成你的显卡个数。
2.将LLaMA-Factory/examples/train_lora/llama3_lora_sft.yaml中的eval全部注释掉,如图所示:

两个有一个没设置都有可能出现:
sys.exit(load_entry_point(‘torch==2.5.1’, ‘console_scripts’, ‘torchrun’)())
…
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
这样的报错。
3.2 具体微调模型的显存大小不能全信官网
官网数据:

我刚开始使用Llama3-8B,使用lora方法去微调模型(8张8g显存显卡),理论上只会使用16g-32g显存,我64g显存绰绰有余,结果直接报OOM,结果气的我直接下载了llama-1B才成功微调。
总结
整体来说,LLaMA-Factory这个项目的坑不少,需要仔细一点,我现在也刚刚跑通,后续考虑制作自己的数据集,然后微调一个chatbox试试。
相关文章:
大预言模型|微调大预言模型初探索(LLaMA-Factory)(1)
前言 微调模型通常比从零开始训练一个模型的技术要求低。公司不需要拥有大量的深度学习专家,利用现有的开源工具和库(如Hugging Face的Transformers等),中小型公司可以轻松地使用和微调大型模型,从而快速实现AI能力的集…...
IOTDB安装部署
IOTDB一般用于工业互联网,至于具体的介绍请自行搜索 1.环境准备 安装前需要保证设备上配有 JDK>1.8 的运行环境,并配置好 JAVA_HOME 环境变量。 设置最大文件打开数为 65535。 关闭防火墙 systemctl stop firewalld.service systemctl disable …...
【Day40 LeetCode】动态规划DP 回文子串问题
一、动态规划DP 回文子串问题 1、回文子串 647 dp数组如果采用一维的,很难进行推导。采用二维,一开始的想法是dp[i][j]表示s[i]~s[j]之间回文子串的个数,这样发现在推导递推公式时遇到困难,例如在s[i]s[j]时,不知道s…...
datasets: PyTorch version 2.5.1+cu124 available 这句话是什么意思
这句话的意思是: datasets:可能是 Python datasets 库的日志信息,说明它检测到了 PyTorch 的安装信息。PyTorch version 2.5.1cu124 available: PyTorch version 2.5.1:表示你的 PyTorch 版本是 2.5.1。cu124…...
如何通过MDM高效管理企业的Android平板?
目录 1. 批量配置设备(Batch Device Provisioning) 2. 应用推送与管理(App Deployment & Management) 3. 远程控制与故障排除(Remote Control & Troubleshooting) 4. 数据安全管理(…...
mybatis-plus逆向code generator pgsql实践
mybatis-plus逆向code generator pgsql实践 环境准备重要工具的版本供参考pom依赖待逆向的SQL 配置文件CodeGenerator配置类配置类说明 环境准备 重要工具的版本 jdk1.8.0_131springboot 2.7.6mybatis-plus 3.5.7pgsql 14.15 供参考pom依赖 <?xml version"1.0&quo…...
深入理解DOM:22个核心知识点与代码示例
本文系统介绍DOM相关的22个核心概念,每个知识点均提供代码示例及简要说明,帮助开发者全面掌握DOM操作技巧。 一、DOM基础概念 1. DOM概念 DOM(Document Object Model)是HTML/XML的编程接口,通过JavaScript可动态修改…...
基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 系统建模 4.2 YALMIP工具箱 4.3 CPLEX工具箱 5.完整工程文件 1.课题概述 基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真。通过YALMIP和cplex这两个工具箱,完成微电网的最优调…...
java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException
Java8升级到17之后, 启动报错, :LocalValidatorFactoryBean]: Factory method defaultValidator threw exception; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException 报错原因:这个错误通常是由于缺少 javax.xml.bind 相关的依赖引起…...
C++ STL容器之list的使用及复现
list 1. 序列式容器 vector、list、deque、forward_list(C11 )等STL容器,其底层为线性序列的数据结构,里面存储的是元素本身,这样的容器被统称为序列式容器。 2. list容器 list 是用双向带哨兵位头节点的循环链表实现的。list 通过类模板…...
二、OpenSM排障----实战生产
目录 一、确认 OpenSM 服务端故障的步骤 1. 检查客户端与服务器的连通性 2. 检查客户端 InfiniBand 接口状态 3. 检查子网管理器状态 4. 检查拓扑信息 5. 检查路由表 二、客户端日志位置及查看方法 1. 系统日志 2. OpenSM 客户端日志 3. 内核日志 4. 性能计数器日志…...
Windows 找不到文件gpedit.msc,没有组策略编辑器,解决办法附上
windows10和11都通用。是不是有人告诉你家庭版本没有gpedit.msc,没有组策略编辑器?这压根就是某软玩的小把戏。Win10/11家庭版可通过修改文件后缀新建bat脚本,添加组策略包,以管理员身份运行后,输入gpedit.msc即可打开…...
基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南
基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南 禅道镜像版本:easysoft/zentao:21.4 Redis版本:redis:6.2.0 Mysql版本:mysql:8.0.35 文章目录 **基于Docker-compose的禅道部署实践:自建MySQL与…...
C++20 多线程机制
C++20 多线程机制 C++20 多线程机制说明总结C++20 多线程机制说明 C++20 引入了许多新的多线程特性,增强了标准库对并发编程的支持。以下是 C++20 中多线程编程的关键特性和用法:C++20 多线程核心特性 std::jthread:std::jthread 是 C++20 引入的新线程类,与 std::thread …...
AIGC与AICG的区别解析
目录 一、AIGC(人工智能生成内容) (一)定义与内涵 (二)核心技术与应用场景 (三)优势与挑战 二、AICG(计算机图形学中的人工智能) (一&#x…...
基于 openEuler 构建 LVS-DR 群集
一、 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。 二、 基于 openEuler 构建 LVS-DR 群集。 一 NAT 模式 部署简单:NAT 模式下,所有的服务器节点只需要连接到同一个局域网内,通过负载均衡器进行网络地址转…...
Python练习11-20
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 题目:判断101-200之间有多少…...
Java 实战:在图片指定位置贴二维码或条形码生成海报
在很多业务场景中,我们需要将生成的二维码或条形码贴到一张已有的图片上,从而生成一张完整的海报。下面就教你如何使用 Java 实现这个功能,我们将借助 ZXing 库生成二维码或条形码,使用 Java 的 java.awt 和 javax.imageio 包来处…...
深入指南:在IDEA中启用和使用DeepSeek
引言 2025年的春节可以说是人工智能在中国史上飘红的一段历史时刻,年后上班的第一天,便马不停蹄的尝试新技能。今天的科技在飞速发展,编程领域的人工智能工具犹如雨后春笋般涌现。其中,DeepSeek 则以其卓越的性能和智能化的功能&a…...
SPSS—回归分析
一、如何选择 回归方法的选择是根据因变量的类型进行选择,无论自变量是哪种类型。 如果因变量,也就是目标变量是连续的数值型变量,当自变量也是连续数值型,研究自变量是否对因变量有影响。选择普通的线性回归即可,根…...
深入剖析 Burp Suite:Web 应用安全测试利器
目录 前言 一、Burp Suite 简介 二、功能组件详解 三、使用场景 四、安装与使用步骤 安装步骤 使用步骤 五、总结 前言 在网络安全的复杂版图中,Burp Suite 宛如一颗璀璨的明珠,以其强大的功能和广泛的适用性,成为众多安全从业者不可…...
unity学习37:新版的动画器:动画状态机 Animator
目录 1 给游戏物体添加,新版的动画器 Animator 2 关于 Animator 3 创建 动画器的控制器 Animator Controller 4 打开动画编辑器 Animator 5 动画编辑器 还是Animation 5.1 创建新的动画 5.2 创建第2个动画 5.3 测试2个动画均可用 6 再次打开动画编辑器 A…...
LC-搜索二维矩阵II、相交链表、反转链表、回文链表、环形链表、环形链表ll
搜索二维矩阵II 方法:从右上角开始搜索 我们可以从矩阵的右上角开始进行搜索。如果当前元素 matrix[i][j] 等于 target,我们直接返回 true。如果 matrix[i][j] 大于 target,说明 target 只能出现在左边的列,所以我们将列指针向左…...
【MySQL在Centos 7环境安装】
文章目录 一. 卸载不必要的环境二. 检查系统安装包三. 卸载这些默认安装包四. 获取mysql官⽅yum源五. 安装mysql yum 源,对⽐前后yum源六. 看看能不能正常⼯作七. 安装mysql服务八. .查看配置⽂件和数据存储位置九. 启动服务并查看服务是否存在十. 登陆⽅法十一. 设…...
计算机网络-MPLS基础概念
早期传统IP报文依赖路由器查询路由表转发,但由于硬件技术存在限制导致转发性能低,路由器的查表转发成为了网络数据转发的瓶颈。因此旨在提高路由器转发速度的MPLS(Multi-Protocol Label Switching,多协议标签交换) 被提…...
南京某企业面试题整理
[1]. 消息队列主要是传递什么消息的? 消息队列主要用于在不同的应用程序或服务之间传递异步消息。这些消息通常包含需要处理的数据或事件通知,使得系统能够解耦、提高并发性和可伸缩性。 消息队列中传递的常见消息类型包括: 事件通知&#…...
NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
循环嵌套 循环嵌套的使⽤ while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如: 写⼀个代码,打印⼀个乘法⼝…...
数字化转型的深度思考与最佳实践
引言:数字化转型的时代背景 在数字经济迅猛发展的今天,数字化转型已成为企业生存和发展的必由之路。根据IDC的报告,到2025年,全球数字经济规模将超过23万亿美元,占GDP的比重将超过50%。然而,数字化转型并非…...
支持向量机原理
支持向量机(简称SVM)虽然诞生只有短短的二十多年,但是自一诞生便由于它良好的分类性能席卷了机器学习领域。如果不考虑集成学习的算法,不考虑特定的训练数据集,尤其在分类任务中表现突出。在分类算法中的表现SVM说是排…...
LLM - 理解 DeepSeek 的 GPRO (分组相对策略优化) 公式与源码 教程(2)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145640762 GPRO,即 Group Relative Policy Optimization,分组相对的策略优化,是 PPO(Proximal Policy Optimiz…...
