使用LLaMA Factory微调模型笔记

news/2025/11/6 21:52:52/文章来源:https://www.cnblogs.com/sansui/p/19197844

大模型微调

1、模型微调概念

大模型微调(Fine-tuning)是指在预训练的大规模语言模型基础上,针对特定任务或领域进行进一步训练的过程。预训练模型通常是在大量通用文本数据上训练得到的,具有丰富的语言知识和理解能力。然而,在实际应用中,我们往往需要模型能够更好地适应特定的任务需求,如文本分类、情感分析、机器翻译等。

微调的基本步骤如下:

  1. 选择预训练模型:根据任务需求选择合适的预训练模型。常见的预训练模型包括BERT、GPT、RoBERTa等。
  2. 准备数据集:收集与特定任务相关的标注数据集。这些数据集应尽可能地反映任务的具体需求和特性。
  3. 冻结部分参数:为了保持预训练模型学到的通用知识,通常会冻结模型的部分参数(如前几层),只对后几层进行训练。这样可以在减少计算量的同时,防止模型遗忘已有的知识。
  4. 调整学习率:由于预训练模型已经在大量数据上进行了充分训练,因此在微调阶段通常需要使用较小的学习率以避免模型参数发生剧烈变化。
  5. 训练模型:使用特定任务的数据集对模型进行训练,并通过验证集监控模型性能,防止过拟合。
  6. 评估和优化:在测试集上评估模型的表现,并根据需要调整模型结构、超参数或数据增强策略以进一步提高模型性能。

通过微调,可以在不重新从头开始训练的情况下,快速提升模型在特定任务上的表现,同时保留了预训练模型的强大语言理解能力。

2、模型微调流程

2.1、算力服务器

如自身硬件条件满足忽略 推荐智星云(https://gpu.ai-galaxy.cn/) 或者 AutoDL(https://www.autodl.com/),

操作系统建议安装ubuntu20_cuda11.8

2.2、安装基础模型

可以在 HF-Mirror(https://hf-mirror.com/ )中或者魔塔社区(https://www.modelscope.cn/)选择建议魔塔

git下载

sudo apt-get update
sudo apt-get install git #下载 git
sudo apt-get install git-lfs #下载 git-lfs
git init  #初始化git仓库
cd /root/.git/ #切换至git目录
git clone https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct #选择预训练模型文件(Instruct)预训练标识
rm -rf .git #删除git文件 避免磁盘空间不足

modelscope下载

#安装modelscope
pip install modelscope
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen-7B-Chat')

下载后的默认位置:/root/.cache/modelscope/hub/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B

2.3、安装LLaMa Factory

官网:https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/installation.html

#安装
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
#检查是否安装成功
llamafactory-cli version
#启动web服务
GRADIO_SERVER_PORT=8801 llamafactory-cli webui

2.4、Llama Factory Web UI功能介绍

2.4.1、基础配置

![image-20251106214416212](/Users/lijingyang/Library/Application Support/typora-user-images/image-20251106214416212.png)

2.4.2、主要功能模块介绍

Train:训练模型

Evaluate & Predict:评估与预测

Chat:对话,与模型对话,可以在这里同模型对话(首先加载模型)

Export:导出模型

![image-20251106214223265](/Users/lijingyang/Library/Application Support/typora-user-images/image-20251106214223265.png)

2.4.3、配置数据集

![image-20251106214604449](/Users/lijingyang/Library/Application Support/typora-user-images/image-20251106214604449.png)

训练结果指标解释

![image-20251106213639088](/Users/lijingyang/Library/Application Support/typora-user-images/image-20251106213639088.png)

各项参数含义详解:

  • epoch: 已完成的训练轮数。一个 epoch 意味着模型已经看过训练集中的所有样本一次
  • num_input_tokens_seen: 模型在训练过程中累计处理过的输入 token 总数。这对于理解模型接收了多少信息量很有帮助。这里的 "input tokens" 通常指 prompt + response(在 SFT 中)或者仅仅是 prompt(在预训练中,取决于具体实现和配置)。
  • total_flos: Total Floating Point Operations (FLOPs)模型在整个训练过程中执行的总浮点运算次数。单位是 GFLOPs (Giga FLOPs, 十亿次浮点运算)。这里显示为 23981480 GF,即大约 2.4 x 10^13 FLOPs。这是一个衡量计算资源消耗的指标。
  • train_loss: 训练损失 (Training Loss)。这是模型在训练数据上的平均损失值。它是衡量模型预测与真实标签之间差异的指标。损失越低,通常表示模型拟合得越好(但也需警惕过拟合)。
  • train_runtime: 总训练耗时。格式为 hours:minutes:seconds.milliseconds。这里用了 5 分 23 秒。
  • train_samples_per_second: 每秒处理的样本(数据条目)数量。这里的 "samples" 通常指的是你数据集中的一个个条目(例如,一条问答对)。9.284 表示平均每秒处理了约 9.3 条数据。
  • train_steps_per_second: 每秒执行的训练步数 (Steps per Second)。一个 "step" 通常对应一次参数更新,也就是处理完一个批次(batch)的数据并计算梯度后更新一次模型权重。0.576 表示大约每秒完成 0.58 个训练步。这个指标更能反映训练的“频率”或“节奏”。

其他问题

Q:为什么加载不到Llama Factory中的默认数据集
A:在Llama Factory目录下启动Web UI即可Q:在Trin训练过程中报错,Chat对话持续无响应
A:从终端控制台查看报错信息,复制到AI中排查,如果问题是Pytorch等版本兼容问题,建议卸载当前版本根据AI建议安装,很多算力服务器默认镜像都提供基础环境,建议自己新建conda环境安装依赖
例子(具体需要匹配的版本请根据实际情况):
pip uninstall torch torchvision torchaudio
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu124

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

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

相关文章

25.11.6联考题解

A 一眼题。看到位运算计数考虑拆位。 B 肯定先要期望转计数,最后除掉总方案数 \((n(s+1))^m\)。最初的想法是考虑每一个位置的情况,考虑一个位置 \(x\) 受到的影响范围是 \(\text{lowbit}(x)\) 的,注意到每个位置是…

Linux驱动学习(一)---Ubuntu-helloworld驱动编译

最近想学习Linux内核驱动开发,了解了一些关于Linux的基础知识(看的B站汪晨的视频,CSDN有个博主也总结了这个视频的内容)配置了开发环境,即在windows10上安装了VMware,在VMware里安装了Ubuntu22,前面的搞定之后,…

2025/11/3 ~ 2025/11/9 做题笔记 - sb

2025/11/6 做题笔记 #9127. Optimal Train Operation 之前遗留下来的斜率优化,因为题面是英文一直没看在每一个点修建地铁站的代价是 \(a_i\),每两个地铁站之间的代价是 \((j - i + 1)\max\limits_ {i \le k \le j}c…

利用Google Dork挖掘敏感文件setup.sh的技术解析

本文详细解析了如何使用Google Dork语法"intitle:index of setup.sh"来发现互联网上公开的敏感配置文件setup.sh,这些文件可能包含服务器配置信息、数据库凭证等关键数据,对网络安全评估具有重要意义。Goo…

11.6 程序员的修炼之道:从小工到专家 第四章 注重实效的偏执 - GENGAR

这五节内容围绕编程中的容错设计、逻辑校验和资源管理展开,核心是通过科学的编码规范与工具,尽早发现问题、降低隐患,提升程序可靠性。 按合约设计(DBC)是核心校验理念,通过前条件、后条件和类不变项明确模块的权…

2025.11.6~?

2025.11.6 复盘,上午平复了一下心情 做了P2375,首先注意题中说的数量,然后发现nxt树组指的是前缀和后缀相等,数量的话,直接用nxt递推即可,然后至于不交,就维护一直不交,然后用nxt的答案即可 做了P3426,最开始…

详细介绍:自建数字资源库:技术架构全解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

人工智能价值权衡的元理论:三值纠缠与文明演进的动力学框架

人工智能价值权衡的元理论:三值纠缠与文明演进的动力学框架 摘要:随着人工智能在复杂决策中扮演日益重要的角色,其面临的核心挑战已从单纯的价值对齐转向如何在多元、动态且时常冲突的人类价值中进行权衡。本文系统…

golang面经——内存相关模块 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

11/7

今天上午体育课比赛但没轮到我们组,说实话我感觉我们组如果上了应该可以拿个好名次,看完他们比赛

QOJ4795 Taxi

题意简述 给定一颗 \(n\) 个点的树,边有边权。有 \(m\) 个独立的乘客和 \(m\) 个独立的司机,每个人选一个节点。将乘客与司机匹配,使得距离之和最大。 求所有 \(n^{2m}\) 种可能情况的距离之和 \(\bmod 10^9+7\)。 …

蓝牙耳机怎么连接电脑?【图文详解】蓝牙耳机连接电脑?蓝牙耳机能连接电脑吗?USB蓝牙适配器? - 详解

蓝牙耳机怎么连接电脑?【图文详解】蓝牙耳机连接电脑?蓝牙耳机能连接电脑吗?USB蓝牙适配器? - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

AI浪潮下的就业迷思:技术迭代还是泡沫破灭?

最近刷到一堆AI相关的新闻,从OpenAI和亚马逊签下天价算力订单,到谷歌推出能预警洪水的地球级AI,再到微软自研图像模型减少对OpenAI的依赖,感觉整个科技圈都在疯狂押注AI。但作为一个学软件的学生,我反而有点焦虑:…

洛谷 P4159

给定一个 \(n\) 个节点的有向图,连接 \((i, j)\) 的有向边边权为 \(c_{i, j}(0 为没有边)\),问有多少种从 \(1\) 到 \(n\) 的方式使得经过的边边权之和为 \(k\)。 \(n \le 10, c \le 9, k \le 10^9\)。如果 \(c\) 只…

25.11.6 DAG和拓扑排序

一.DAG即有向无环图,常用于: 任务依赖:某任务必须在另一个任务完成后执行(如编译依赖、任务调度)。 课程顺序:先修课关系。 表达式计算顺序。 动态规划优化:例如在 DAG 上进行最长路径、最短路径 DP。 二.拓扑排…

2025-11-06 PQ v.Next日志记录

项目核心信息目前初步预计在这里进行开发测试(后续到develop): https://z.gitee.cn/zgca/projects/777586/repos/zgca/aipq/tree/feature%2Fteacher_feel今日进度(4*4): 当前任务:全员微信开发能力培训完成,活…

数据库介绍,安装,配置

https://www.cnblogs.com/linhaifeng/articles/7126847.html 1.数据库服务器:运行数据库管理软件的计算机 2.数据库管理软件:MySQL,Oracle,db2,SQLserver 3.库:文件夹 4.表:文件 5.记录:事物一系列的特征:cy,…

Spring BeanFactory 接口

[[Spring IOC 源码学习总笔记]] BeanFactory 的子接口 Spring BeanFactory 的设计, 基于接口隔离原则(Interface Segregation Principle), 将具有不同细分的功能定义为接口, 增加扩展性, 支持不同功能的 BeanFactory…

领码方案|微服务与SOA的世纪对话(3):方法论新生——DDD、服务网格与AI Ops的融合之道 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

遗留系统微服务改造(四):从单体到微服务的演进之路 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …