深入解析:大模型微调必学教程:从LOSS观测到模型合并导出与部署全流程

news/2025/10/22 15:27:22/文章来源:https://www.cnblogs.com/wzzkaifa/p/19158123

本文详细讲解了LLaMA Factory微调教程的第四部分,包括如何通过LOSS曲线监控微调过程,使用SwanLab等工具可视化训练指标,以及微调后模型的合并、导出和部署方法。重点介绍了Ollama和VLLM两种本地部署方案,展示了如何通过API调用微调后的模型,帮助开发者全面掌握大模型微调后的应用流程。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

微调过程观察

微调过程中,我们可以通过右下角的 LOSS 曲线来简单观测整个微调过程。

LOSS(损失值)

在模型微调中,LOSS(损失函数)是一个可微的数学函数,它量化了模型预测结果与真实目标值之间的误差(输出为一个标量数值)。微调的核心目标就是通过优化算法(如梯度下降)持续最小化这个 LOSS 值:计算 LOSS 对模型参数的梯度,并据此调整参数,使预测误差不断减小。LOSS 值的高低直接反映了模型预测的准确性,其持续下降是学习过程有效的关键指标。

SwanLab

在 LLaMA Board 中,我们只能看到简单的 LOSS ,如果想看到更多维度的指标,可以通过 SwanLab、TensorBoard、Wandb 等可视化工具,这里我是用的是 SwanLab。

SwanLab 是一个开源的训练跟踪与可视化工具,云端和离线均可使用,支持超参数记录、指标记录、多实验对比、硬件监控、实验环境记录等功能,可以有效地帮助开发者管理实验。

在 LLaMA Facroty 中国为 SwanLab 单独开了一个 Tab,可以选择启用,并填写一个项目名称:

注意使用前,我们先要在 https://swanlab.cn/ 注册好账号,然后在本地环境完成初始化动作:

swanlab login

当你看到如下提示时:

swanlab: Logging into swanlab cloud.swanlab: You can find your API key at: https://swanlab.cn/settingsswanlab: Paste an API key from your profile and hit enter, or press 'CTRL-C' to quit:

在用户设置页面复制你的 API Key,粘贴后按下回车即可完成登录,之后无需再次登录。 如果配置成功,在启动微调任务后可以看到 SwanLab 的监控地址:

进入后,我们可以看到微调过程中的详细日志:

以及当前系统环境的硬件消耗情况:

几种常见的 LOSS 曲线

Train LOSS 与 Eval LOSS

当我们在微调参数中设定了一定的验证集比例,将会多生成一条 Eval LOSS 曲线,体现模型在验证集上的表现。

微调后模型使用及效果验证

加载模型(通过 Lora 适配器)

微调任务完成后,我们进入在启动微调时,设定的输出目录:

```plaintext
cd /root/autodl-tmp/models/security007

可以看到输出的所有文件:
![](http://cdn.zhipoai.cn/9f631426.jpg)
包括这几类:
1. 模型权重文件
* adapter\_model.safetensors:LoRA 适配器的权重文件(核心增量参数)
* checkpoint-100/200/...:不同步数的训练检查点(含模型参数,用于恢复训练)
1. 配置文件
* adapter\_config.json:LoRA 训练配置(如秩、目标层等)
* tokenizer\_config.json / special\_tokens\_map.json:分词器配置
* training\_args.yaml / training\_args.bin:训练超参数(学习率、批次等)
1. 日志与结果
* trainer\_log.jsonl / running\_log.txt:训练过程日志
* all\_results.json / train\_results.json:训练指标(损失、精度等)
* training\_loss.png:损失曲线可视化图
1. 分词器数据
* merges.txt:BPE 分词合并规则
* tokenizer.json / vocab.json:分词器词表与编码规则
* added\_tokens.json:训练中新增的自定义 Token
> 在 LoRA 微调中,只会训练插入的低秩矩阵(适配器),原模型参数被冻结不变,因此输出目录中仅包含 Lora 适配器,不包含模型原始权重。如果要得到微调后的完整模型,需后续手动合并适配器与原模型。
下面,我们可能想快速对微调后的模型效果进行简单的验证,可以在 Webui 中通过检查点路径,加载这个适配器,并且重新加载模型,注意检查点路径填写微调后的输出目录,模型路径还填写微调前基础模型的路径:
![](http://cdn.zhipoai.cn/6c28d520.jpg)
效果验证(注意调一下最大生成长度,默认的 1024 比较小,非常容易截断):
![](http://cdn.zhipoai.cn/de001740.jpg)
作为对比,可以直接去掉上面的检查点路径,重新加载(先卸载)模型,就可以得到原始模型的回答结果:
![](http://cdn.zhipoai.cn/2fbda7c7.jpg)
### 模型合并和导出
以上的使用方式只适用于临时测试,后续使用微调后的模型我们不可能每次都同时加载一个适配器和模型,所以为了后续方便使用,我们需要将原始模型和 Lora 适配器进行合并,然后导出。
我们重新把微调输出目录填入检查点路径,然后重新加载模型,并设定一个导出目录(这里可以设定模型输出后的量化等级、以及一键上传 Hugging Face 等等,大家可以选择设置):
![](http://cdn.zhipoai.cn/3fe2d367.jpg)
导出成功后,我们进入导出目录,可以看到合并后的模型文件:
```plaintext
cd /root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security
```![](http://cdn.zhipoai.cn/a0c48c08.jpg)
然后我们清空检查点路径,将合并后的模型目录填入模型路径,重新加载模型:
![](http://cdn.zhipoai.cn/1dfdd61e.jpg)
重新测试,可以得到和之前一样的效果:
![](http://cdn.zhipoai.cn/04d852ec.jpg)
### 本地调用微调后的模型
下面我们要考虑在本地部署并通过 API 的方式调用微调后的模型,目前两个主流的本地部署模型的方案分别是 Ollama 和 VLLM:
![](http://cdn.zhipoai.cn/0678695c.jpg)
> Ollama 是一款专注于本地部署的轻量级大模型工具,以 “开箱即用” 为核心理念,支持全平台,一键安装后即可通过命令行快速启动模型。它内置 1700 + 主流模型库(如 Llama、Qwen、Mistral),自动下载优化后的量化版本(如 int4 量化),显存占用降低 50%,14B 模型仅需 11GB 显存即可运行。Ollama 提供类 ChatGPT 的交互界面,支持流式输出和 JSON 响应,适合个人开发者快速验证模型能力、本地测试或对隐私敏感的场景(如医疗数据处理),且兼容 CPU 推理(需 16GB + 内存)和 GPU 加速,硬件门槛极低。最新版本已支持视觉模型,可处理多模态任务。
![](http://cdn.zhipoai.cn/053ef356.jpg)
> VLLM 是专为高性能推理设计的企业级框架,基于PyTorch构建,创新性引入 PagedAttention 技术,将KV Cache分块存储,显存利用率提升30%,支持4K以上长文本推理。其动态批处理技术实现高吞吐量(如Llama-8B在H100上可达5000+ tokens/s),是 Ollama 的5倍,并原生支持多 GPU 张量并行,可在 8 台H100 服务器上部署 70B 模型,支撑日均1亿次请求,响应延迟<500ms。VLLM 兼容 HuggingFace 模型,提供 Prometheus 监控和自动故障恢复机制,适合电商搜索、智能客服等高并发场景,以及多模态任务。
![](http://cdn.zhipoai.cn/0692214a.jpg)
* 选 Ollama:需求为快速部署、低硬件门槛、交互式对话,例如个人开发者测试模型、小型团队搭建内部工具。
* 选 VLLM:需求为高性能推理、高并发处理、多GPU扩展,例如电商平台支撑亿级请求、科研机构处理大规模数据,或需定制化模型参数的场景。
### 通过 vLLM调用
在 LLaMA Factory 中,提供了 llamafactory-cli api 命令来帮助我们快速将模型部署为 API 调用,通过指定  --infer\_backend vllm  参数可以启用 VLLM 推理(如果不指定,默认使用的是 Huggingface 推理引擎):
```plaintext
API_PORT=6006 API_MODEL_NAME=security llamafactory-cli api \    --model_name_or_path /root/autodl-tmp/models/security1011    --template qwen \    --infer_backend vllm \    --vllm_enforce_eager

环境变量:

  • API_PORT=6006:设定 API 服务要监听的端口号为6006。
  • API_MODEL_NAME=security:给 API 服务所使用的模型设定一个自定义名称,如果不指定默认会使用 gpt-3.5-turbo。

命令行参数

  • –model_name_or_path /root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security:指定模型的路径。
  • –template qwen:指定对话模板为 Qwen 这样能确保输入输出的格式和 Qwen 模型相适配。
  • –infer_backend vllm:把推理后端设置为 vLLM。
  • –vllm_enforce_eager:强制 vLLM 用动态图模式,这种模式在调试或者需要确定性执行顺序时非常有用。

当服务输出以下内容时表示成功启动:

我们通过 http://localhost:6006/docs 可以访问部署后的 API 接口文档(可以看到是符合 OPEN AI 格式的):

我们尝试获取模型列表,可以看到返回了我们指定好的 security 模型:

我们可以尝试在一些聊天客户端添加自定义提供商:

测试调用:

通过 Ollama 调用

Ollama 是建立在 llama.cpp 开源推理引擎基础上的大模型推理工具框架,其主要支持运行 GGUF 格式的模型。

GGUF(GGML Universal File)是专为大型语言模型(LLM)设计的文件格式,其优化了数据的存储方式,减少了存储空间的占用,这对于包含大量参数的大型模型尤为重要。

相比于默认的 BF16 精度(每个参数占用 16 位(2 字节)),4BIT 量化(每个参数仅占用 4 位(0.5 字节))可以将模型推理的显存占用降低 75%。所以使用 Ollama 运行 7B 的模型大概仅需要 4G 显存(考虑到其他开销实际可能更大一点)。但是量化后的模型也就意味着会损失一定精度,这也是为什么大家在使用 Ollama 运行模型总觉得会比和其他方式运行模型变得 “更傻” 的原因。

LLaMA Factory 默认并没有将模型转换为 GGUF 的方法,我们需要自己 llama.cpp 的仓库,使用其中的转换脚本:

plaintext
git clone https://github.com/ggerganov/llama.cpp.gitcd llama.cpp/gguf-pypip install --editable .

下载并安装好依赖后,我们执行其中的脚本,将模型目录指定为我们刚刚导出的合并好的目录:

plaintext
python convert_hf_to_gguf.py /root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security --outtype q8_0

开始转换:

转换成功后,将在微调后合并的模型目录下生产一个 GGUF 文件(/root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security/Qwen2.5-7B-Instruct-Security-F16.gguf):

然后我们在本地安装 Ollama:

plaintext
curl -fsSL https://ollama.com/install.sh | sh

安装完成后,启动 Ollama:

plaintext
OLLAMA_MODELS=/root/autodl-tmp/ollama ollama serve

然后我们将刚刚导出好的 GGUF 文件给定Ollama进行注册(注意这里指定的是Modelfile文件,而不是GGUF文件):

plaintext
OLLAMA_MODELS=/root/autodl-tmp/ollama ollama create security -f /root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security/Modelfile

然后我们就可以使用 Ollama 运行模型了:

plaintext
ollama run security

对比模型微调的效果

为了方便验证和对比模型微调后的效果,我们在 Easy Dataset 提供的 Playground 进行测试,这里我们使用 VLLM 部署的服务(不损失精度、推理速度更快),我们在模型配置中添加这个模型。这里只有接口地址、模型名称是要准确填写的,提供商、API 密钥可以随意填写:

然后这里我们使用硅基流动提供的 Qwn2.5-7B-Instruct 作为基础模型,和微调后的模型(Security)进行对比:

以下是从多个角度的详细对比:

从对比可以得出结论,相比微调前的基础模型(Qwen2.5-7B-Instruct),模型微调后:

  • 在数据集内部的特定问题上,具备推理能力,并且回答结果更丰富,说明学习到了数据集内部的知识;
  • 在 Web 安全领域的特定问题上(不在数据集内),具备推理能力,并且回答结果更丰富,说明模型的泛化能力较好,没有过拟合;
  • 在 Web 安全整体的知识体系上,具备推理能力,并且回答结果更丰富,说明模型能够系统性整合 Web 安全领域的知识框架,形成结构化的知识输出体系,同时具备跨知识点的关联推理能力,可基于底层逻辑对复杂知识体系进行演绎构建;
  • 在非 Web 安全的某些其他领域上,具备推理能力,说明模型在聚焦 Web 安全领域专业能力强化的同时,未丧失基础模型的跨领域知识迁移能力,能够基于微调形成的推理框架对非专业领域问题进行逻辑拆解,保持了基础模型的知识泛化性与多领域适应性。

今天这一期,我们就讲到这里,下一期,我会带大家一起学习如何有效评估微调后的模型的效果。

完整教程

想更系统性的学习 AI 知识,大家可以加入我的知识星球,加入后你将获得:


读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

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

请添加图片描述

AI大模型学习路线汇总

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

大模型实战案例

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

大模型视频和PDF合集

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

学会后的收获:

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

获取方式:

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

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

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

相关文章

CKS-CN 考试知识点分享(14) Istio网络策略 - 实践

CKS-CN 考试知识点分享(14) Istio网络策略 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

题解:P14023 [ICPC 2024 Nanjing R] 社交媒体

简化题意 给你 \(k\) 个点以及 \(m\) 条边,其中有 \(n\) 个点已经被选择,问至多再选两个点后最多有多少条边的端点都被选了。 思路 我们可以把边分为 \(3\) 类:两个端点都被选择了,这时直接加入答案。 有一个端点被…

2025 全合成润滑油厂家企业推荐榜:进口润滑油/国产润滑油/国内润滑油/半合成润滑油厂家,技术与服务双驱发展

润滑油作为机械设备运行的核心辅助材料,渗透于工业生产与日常出行的各个角落。它不仅能减少部件摩擦、延缓磨损,更承担着冷却、密封、防锈等多重关键功能。从基础油的分类迭代到添加剂的精准配比,从传统矿物油到环保…

2025年10月叛逆青少年改造机构全景解析报告,基于专业测评的技术、性能及市场优势深度分析

随着社会对青少年心理健康关注度的不断提升,专业心理辅导机构在帮助青少年健康成长方面发挥着日益重要的作用。本文基于实地调研数据,从机构资质、师资配置、教育体系及服务成效等维度,对青少年心理辅导机构进行综合…

docker安装iotdb

1、运行命令docker run -d --name iotdb-2.0.5 --hostname=iotdb --restart always -p 6667:6667 --shm-size="1g" --privileged=true -e cn_internal_address=iotdb -e cn_internal_port=10710 -e cn_conse…

第一个 AI 应用

第一个 AI 应用 https://cloud.tencent.com/developer/article/1348205

《无垠的太空(8).提亚玛特之怒》电子书(1-9章)

《无垠的太空(8).提亚玛特之怒》电子书(1-9章)提亚玛特之怒(1-9章) 文件名:无垠的太空(8).提亚玛特之怒(1-9章) 地址:https://www.alipan.com/s/vEXVSnizQf2 提取码:vlc1 2025.10.22扩展阅读 《无垠的太空(1)…

2025年10月微高压氧舱厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析

随着健康管理意识的提升,微高压氧舱作为新兴健康设备,其技术性能与安全标准日益受到关注。根据行业调研数据显示,2024年国内微高压氧舱市场规模预计达到12.8亿元,年增长率保持在18.5% 左右。本文基于产品技术参数、…

Kubernetes应用微服务 - 指南

Kubernetes应用微服务 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

看板(Kanban)的使用

看板(Kanban)的使用场景主要包括项目管理和生产管理领域。看板是一种可视化管理工具,它可以用于以下场景:软件开发:在敏捷开发中,看板用于管理任务和进度。通过看板,团队成员可以清晰地看到项目的当前状态、待办…

161行的华容道程序

比吕震宇的慢多了,我的Intel N100上0.624s,他的兆芯KX-6640MA上0.314秒。写都写了,贴出来吧:#include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include…

调用ack集群 api 接口删除Terminating状态的资源

调用ack集群 api 接口删除Terminating状态的资源背景:在特殊情况,会出现删除不掉资源的情况 1、导出json 文件资源 kubectl get namespace arms-prom -o json > temp.json 2、去掉finallizers 3、开启代理到api服务…

二十三、K8s企业级架构设计及落地

二十三、K8s企业级架构设计及落地 目录二十三、K8s企业级架构设计及落地1、K8s企业级架构设计1.1 Kubernetes集群架构--高可用1.2 K8s生产环境资源配置1.3 K8s生产环境磁盘划分1.4 k8s集群网段划分2、基本环境配置2.1 …

题解:P9464 [EGOI 2023] Padel Prize Pursuit / 追梦笼式网球

目前暂无修正。选手无法观察到树形结构,于是选手写了比较没脑子的可持久化线段树做法。 我们考虑第 \(i\) 个奖牌会到哪里去,发现每个关系 \((X,Y)\) 意思是此时 \(Y\) 的奖牌会被 \(X\) 赢走,即奖牌此时到 \(Y\) 后…

Spring Boot 中@RestController注解的详解和运用

Spring Boot 中@RestController注解的详解和运用2025-10-22 15:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

软件工程课程第二次团队作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13559这个作业的目标 构建一个能…

AGC 板刷记录2

AT_agc073_a [AGC073A] Chords and Checkered 题解 自己手画几组,没添加一条线其实就是把穿过的区域复制添加一份颜色反转的,一块区域如果是黑的,一定是被奇数条线覆盖。我们将其拆成两部分,第一部分是只有一条线围…

2025 年涿州装修公司最新推荐榜,深度解析企业服务能力与市场口碑优势

涿州作为环京核心区域,装修市场已聚集超 1500 家注册企业,但行业内资质参差、报价混乱、工艺缩水等问题频发,不少业主因选错服务商陷入工期延误、增项加价的困境。为破解这一难题,本榜单基于企业综合实力、施工标准…

结对编程项目总结

项目 GitHub 地址:https://github.com/LoadStar822/Elevator我们把结对开发的里程碑、算法设计心得以及协作复盘一起整理在这份文档里,方便后续直接发布到博客或项目页。全文以“先数据、再故事”的顺序铺陈,读者可…

刘强东带火数字人直播?商业化逐步成熟,逐渐取代真人带货!zhibo175

4月16日晚6点18分,刘强东准时出现在京东家电家居采销直播间和京东超市采销直播间。 不过,此次出镜带货的并非刘强东本人,而是其数字虚拟人分身“采销东哥”。开播不足半小时,两大直播间就吸引了超1000万次观看。 相…