打造专属模型!使用LLaMA-Factory进行微调,非常详细收藏这一篇就够了

打造专属模型!使用LLaMA-Factory进行微调,非常详细收藏这一篇就够了

 一、安装Pytorch

1. 检查GPU计算能力

在开始微调之前,首先需要确认GPU的计算能力,因为不同架构的GPU对PyTorch版本有不同要求。计算能力是NVIDIA GPU的一个重要指标,它决定了GPU支持的CUDA功能和性能特性。

nvidia-smi --query-gpu=compute_cap --format=csv

第一行命令直接查询GPU的计算能力版本,而Python代码则通过PyTorch库来检测CUDA的可用性、版本信息以及具体的GPU设备能力。这些信息对于后续选择合适版本的PyTorch至关重要。

2. 匹配PyTorch版本

根据GPU计算能力选择合适的PyTorch版本是非常重要的,因为不匹配的版本可能导致性能下降甚至无法正常运行。不同的GPU架构有着不同的计算能力要求,下面根据GPU计算能力选择合适的PyTorch版本:

计算能力 < 7.0 (如 Maxwell架构):使用较老版本

计算能力 7.x (Volta/Turing):PyTorch 1.8+

计算能力 8.x (Ampere):PyTorch 1.10+

计算能力 9.x (Ada Lovelace):PyTorch 2.0+

这个匹配关系基于NVIDIA官方对不同架构GPU的CUDA支持情况。较新的GPU架构需要更新版本的PyTorch来充分发挥其性能优势,而老架构的GPU如果使用过新的PyTorch版本可能会出现兼容性问题。

3. 重新安装合适版本的PyTorch

如果当前安装的PyTorch版本与GPU计算能力不匹配,需要重新安装合适版本。这个过程包括卸载现有版本和安装新版本两个步骤:​​​​​​​

# 卸载当前版本

在重新安装时,建议访问PyTorch官方网站获取最新的安装命令,确保安装的版本与CUDA版本完全匹配。正确的版本匹配可以保证深度学习训练过程的稳定性和性能表现。

二、安装LLaMAFactory

1. LLaMA-Factory

LLaMA-Factory是一个专门用于微调大语言模型的工具包,它提供了丰富的微调选项和便捷的操作接口。安装过程相对简单:​​​​​​​

git clone -b v0.8.1 https://github.com/hiyouga/LLaMA-Factory.git

这里使用`-b v0.8.1`指定了版本号,确保使用稳定的发布版本。`pip install -e .`命令以可编辑模式安装,方便后续的开发和调试。`[torch,metrics]`表示同时安装PyTorch和相关评估指标依赖。

2. unsloth的显存优化机制

为了在资源受限的环境中运行大模型,LLaMA-Factory集成了unsloth优化技术,这可以显著降低训练过程中的显存占用,如果要降低显存占用,建议按照以下步骤操作:​​​​​​​

安装liger_kernel 0.5.2版本

unsloth通过优化内存管理和计算图来减少显存使用,特别适合在消费级GPU上进行大模型微调。liger_kernel是其中的核心组件,提供了底层的内存优化功能。

三、下载模型

模型下载是微调过程中的关键步骤,需要确保下载正确的模型文件和权重:​​​​​​​

模型安装目录:/data/models/Qwen/Qwen2.5-7B-Instruct

由于大语言模型文件体积很大,必须使用Git LFS(Large File Storage)来管理。Qwen2.5-7B-Instruct是一个70亿参数的中英双语指令调优模型,适合进行进一步的领域适配微调。如果机器的GPU配置不够强,可以下载参数低一些的版本。

四、数据集

1. 内置数据集

LLaMA-Factory提供了内置的数据集支持,简化了数据准备过程:

1.1 准备数据集文件,json 格式,存放到 data 目录下。

1.2 注册数据集,将 json 文件注册到 data 目录下的 dataset_info.json 文件。

1.3 LLaMA-Factory 内置了一些数据集,本次就使用内置的 identity 数据集,用于修改模型的自我意识。

1.4 把 identity.json 里面占位符替换成自己的内容。

sed -i 's/{{name}}/XX智能助手/g; s/{{author}}/XX科技/g' data/identity.json

identity数据集主要用于修改模型的身份认知,通过替换占位符可以自定义助手的名称和所属机构。使用sed命令进行批量替换是一种高效的方式。

2. 数据集注册

数据集注册是将自定义数据集纳入LLaMA-Factory管理的重要步骤:

2.1 identity 是内置数据集,已经注册好了,可以跳过这步。

2.2 将数据集移动到 data 目录下

2.3 修改 dataset_info.json 注册数据集,dataset_info.json 就是所有数据集的一个集合

对于非内置数据集,需要在dataset_info.json文件中添加数据集的元信息,包括文件路径、格式说明等,这样训练时才能正确加载和使用数据集。

五、微调

1. 基本

基本微调配置提供了最基础的训练参数设置:​​​​​​​

llamafactory-cli train \

这个配置使用了LoRA(Low-Rank Adaptation)微调方法,这是一种参数高效的微调技术,只训练少量的额外参数而不是整个模型。学习率调度器使用cosine衰减,训练过程中会记录损失曲线以便监控训练效果。

2. 使用 unsloth

当启用unsloth优化时,可以进一步调整参数以获得更好的显存效率:​​​​​​​

llamafactory-cli train \

这个配置增加了4位量化、梯度累积等优化技术,显著降低了显存需求。lora_rank和lora_alpha参数控制了LoRA适配器的容量和缩放因子,影响微调的效果和稳定性。

3. 查看 LoRA 权重

训练完成后,可以检查生成的LoRA权重文件:

ll -lhS ./saves/lora/sft

这个命令会列出LoRA权重文件的详细信息,包括文件大小和修改时间。LoRA权重通常比完整模型小很多,这使得存储和分发变得更加便捷。

4. 预测评估

使用微调后的模型进行预测评估是验证训练效果的重要环节:​​​​​​​

llamafactory-cli train \

预测评估会在测试集上运行模型并生成回复,通过观察生成结果可以直观了解模型微调后的表现变化。

5. 权重合并导出

为了部署微调后的模型,需要将LoRA权重与基础模型合并:​​​​​​​

llamafactory-cli export \

权重合并会创建一个独立的模型文件,包含了基础模型和微调适配器的所有参数,这样可以脱离LLaMA-Factory环境直接使用标准推理引擎加载模型。

六、测试

1. 原始模型

在微调前后对比测试原始模型的表现:​​​​​​​

# 这里使用单卡

使用vLLM推理引擎部署模型并提供OpenAI兼容的API接口,这样可以方便地进行测试和集成。原始模型的回答反映了其默认的身份认知。

2. 微调模型

测试微调后模型的表现变化:​​​​​​​

# 单卡

通过与原始模型的对比,可以清晰看到微调对模型身份认知的改变效果,验证微调是否达到了预期目标。

3. 多轮对话测试(Chat 模式)

除了API测试,还可以使用交互式对话模式进行更全面的测试:

llamafactory-cli chat --model_name_or_path path_to_export_model

这种交互式测试方式可以模拟真实的使用场景,检查模型在多轮对话中的表现一致性、上下文理解能力和回复质量。

七、转换导入Ollama

1. 下载 llama.cpp

为了在更多设备上部署模型,需要转换为GGUF格式:​​​​​​​

git clone https://github.com/ggerganov/llama.cpp.git

llama.cpp是一个高效的C++推理框架,支持在各种硬件上运行大语言模型,特别适合资源受限的环境。

2. 转换

将合并后的模型转换为GGUF格式:​​​​​​​

# 查看参数

GGUF是llama.cpp使用的模型格式,具有更好的跨平台兼容性和推理效率。f16精度在保持模型质量的同时减少了存储空间需求。

3. 导入

将转换后的模型导入Ollama进行管理:

首先建立一个 Modelfile 文件,文件内容:​​​​​​​

FROM /opt/fine-tune/LLaMA-Factory/saves/lora/xxx.gguf

Modelfile定义了模型的加载配置和对话模板,确保模型按照正确的格式处理输入和生成输出。Qwen模型使用特殊的标记格式来区分不同角色。

导入模型 ​​​​​​​

ollama create sunmao -f Modelfile

成功导入后,模型就可以通过Ollama进行管理和使用了。Ollama提供了便捷的模型管理、版本控制和API服务,大大简化了模型的部署和使用流程。

 最后

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

如果你也想通过学大模型技术去帮助自己升职和加薪,可以扫描下方链接👇👇
​​

为什么我要说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。

img


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

在这里插入图片描述

​​

在这里插入图片描述

资料包有什么?

①从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点

在这里插入图片描述

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

在这里插入图片描述

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

在这里插入图片描述

④各大厂大模型面试题目详解

在这里插入图片描述


⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

在这里插入图片描述


在这里插入图片描述

智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

在这里插入图片描述


在这里插入图片描述

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Read more

C++ 方向 Web 自动化测试入门指南:从概念到 Selenium 实战

C++ 方向 Web 自动化测试入门指南:从概念到 Selenium 实战

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 自动化测试基础:先搞懂"为什么"和"做什么" * 1.1 自动化测试的核心目标:回归测试 * 1.2 自动化测试分类:别把 “不同自动化” 混为一谈 * 1.3 自动化测试金字塔:如何分配测试资源? * 二. Web 自动化测试核心:环境搭建与驱动管理 * 2.1 核心组件原理:三者如何协同工作? * 2.2 环境搭建:3 步搞定依赖安装

SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法

SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法

SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 SpringBoot源码解析(四):解析应用参数args SpringBoot源码解析(五):准备应用环境 SpringBoot源码解析(六):打印Banner SpringBoot源码解析(七):应用上下文结构体系 SpringBoot源码解析(八):Bean工厂接口体系 SpringBoot源码解析(九):Bean定义接口体系 SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法 目录 * 前言 * 源码入口 * 一、初始化注解Bean定义读取器 * 1、BeanDefinitionRegistry(Bean定义注册接口) * 2、获取环境对象Environment * 3、注

使用rclone将远程的webDav文件共享映射成本地硬盘

#webdav #rclone 一、准备工作 1.1 准备webdav连接 支持webdav的网盘有好多,请自行准备。我做示范的是国外的一个免费网盘,地址是https://infini-cloud.net/en/index.html, 先注册一个账号,就有20GB的免费空间可用。 收到验证邮件,输入验证码或者点击验证链接,注册成功后进入My Page。 免费的20GB空间大小,如果你在主页下方输入我送你的优惠码 L3UV8,你还将多获得5GB的空间 设置允许webDav访问,记住你的密码,如果忘记了,可以Reissue. 记录下以下三个信息(密码只显示一次) WebDAV Connection URLConnection IDApps Password 尝试一下webdav登录,可以正常访问 1.2 下载Rclone和WINFSP 我本机是Win11,我以windows版本为实例,其他操作系统请自行参考查找相关资料。 下载地址: https://rclone.org/downloads/

Flutter 与 Web 混合开发:跨平台的完美融合

Flutter 与 Web 混合开发:跨平台的完美融合

Flutter 与 Web 混合开发:跨平台的完美融合 写在前面 今天想和你聊聊一个让跨平台开发更具可能性的话题——Flutter 与 Web 混合开发。在我眼里,Flutter 就像一位多才多艺的艺术家,既能在移动平台上展现精彩,也能在 Web 世界中绽放光芒。 Flutter Web 的崛起 Flutter Web 是 Flutter 的一个重要方向,它允许我们使用同一套代码库构建运行在浏览器中的应用。随着 Flutter 3.0 的发布,Flutter Web 的性能和稳定性得到了显著提升,为混合开发开辟了新的可能。 Flutter Web 的优势 1. 代码复用:使用同一套代码库构建移动应用和 Web 应用,减少开发和维护成本 2. 一致的用户体验:在不同平台上提供一致的视觉和交互体验 3. 高性能: