如何观测模型的微调过程?微调后的模型如何合并导出和部署?

微调过程观察

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

img

LOSS(损失值)

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

  • LOSS 是什么?

    • 简单说,LOSS 就是模型在微调过程中犯错误的“程度”的评分,它是一个数字。
  • 怎么算出来的?

    • 模型对一条数据做预测(比如判断图片是猫还是狗)。然后,我们把模型的预测结果和这条数据的正确答案拿出来对比。
  • 对比什么?

    • 对比模型“猜”得有多不准。猜得越离谱,这个错误评分(LOSS)就越大;猜得越接近正确答案,这个错误评分(LOSS)就越小。
  • 微调时用它干什么?

    • 微调的核心目标就是让模型少犯错。所以,微调过程就是想尽办法让这个 LOSS(错误评分)变得越来越小。
  • 怎么变小?

    • 模型内部有很多可以调整的小旋钮(参数)。微调算法会根据当前这个 LOSS 值,自动计算出应该拧哪些旋钮、往哪个方向拧(增大一点还是减小一点),才能让下次遇到类似数据时,错误评分(LOSS)降低一些。
  • 为什么关心它?

    • 在微调过程中,我们主要盯着 LOSS 的变化趋势。如果 LOSS 稳定地下降,说明模型的调整是有效的,它在学习,错误在减少。如果 LOSS 不降反升或者剧烈波动,就说明学习过程可能出了问题。
  • 常见误区

    • LOSS 曲线很好看(逐步下降趋于平缓),不代表模型最终的训练效果一定会好,它只能表示整个训练过程是没问题的。

SwanLab

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

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

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

img

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

swanlab login

当你看到如下提示时:

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

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

img

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

img

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

img

几种常见的 LOSS 曲线

img

img

Train LOSS 与 Eval LOSS

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

img

img

img

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

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

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

img

cd /root/autodl-tmp/models/security007

可以看到输出的所有文件:

img

包括这几类:

  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 中通过检查点路径,加载这个适配器,并且重新加载模型,注意检查点路径填写微调后的输出目录,模型路径还填写微调前基础模型的路径:

img

效果验证(注意调一下最大生成长度,默认的 1024 比较小,非常容易截断):

img

作为对比,可以直接去掉上面的检查点路径,重新加载(先卸载)模型,就可以得到原始模型的回答结果:

img

模型合并和导出

以上的使用方式只适用于临时测试,后续使用微调后的模型我们不可能每次都同时加载一个适配器和模型,所以为了后续方便使用,我们需要将原始模型和 Lora 适配器进行合并,然后导出。

我们重新把微调输出目录填入检查点路径,然后重新加载模型,并设定一个导出目录(这里可以设定模型输出后的量化等级、以及一键上传 Hugging Face 等等,大家可以选择设置):

img

导出成功后,我们进入导出目录,可以看到合并后的模型文件:

cd /root/autodl-tmp/save/Qwen2.5-7B-Instruct-Security

img

然后我们清空检查点路径,将合并后的模型目录填入模型路径,重新加载模型:

img

重新测试,可以得到和之前一样的效果:

img

本地调用微调后的模型

下面我们要考虑在本地部署并通过 API 的方式调用微调后的模型,目前两个主流的本地部署模型的方案分别是 Ollama 和 VLLM:

img

Ollama 是一款专注于本地部署的轻量级大模型工具,以 “开箱即用” 为核心理念,支持全平台,一键安装后即可通过命令行快速启动模型。它内置 1700 + 主流模型库(如 Llama、Qwen、Mistral),自动下载优化后的量化版本(如 int4 量化),显存占用降低 50%,14B 模型仅需 11GB 显存即可运行。Ollama 提供类 ChatGPT 的交互界面,支持流式输出和 JSON 响应,适合个人开发者快速验证模型能力、本地测试或对隐私敏感的场景(如医疗数据处理),且兼容 CPU 推理(需 16GB + 内存)和 GPU 加速,硬件门槛极低。最新版本已支持视觉模型,可处理多模态任务。

img

VLLM 是专为高性能推理设计的企业级框架,基于PyTorch构建,创新性引入 PagedAttention 技术,将KV Cache分块存储,显存利用率提升30%,支持4K以上长文本推理。其动态批处理技术实现高吞吐量(如Llama-8B在H100上可达5000+ tokens/s),是 Ollama 的5倍,并原生支持多 GPU 张量并行,可在 8 台H100 服务器上部署 70B 模型,支撑日均1亿次请求,响应延迟<500ms。VLLM 兼容 HuggingFace 模型,提供 Prometheus 监控和自动故障恢复机制,适合电商搜索、智能客服等高并发场景,以及多模态任务。

img

  • 选 Ollama:需求为快速部署、低硬件门槛、交互式对话,例如个人开发者测试模型、小型团队搭建内部工具。
  • 选 VLLM:需求为高性能推理、高并发处理、多GPU扩展,例如电商平台支撑亿级请求、科研机构处理大规模数据,或需定制化模型参数的场景。

通过 vLLM调用

在 LLaMA Factory 中,提供了 llamafactory-cli api 命令来帮助我们快速将模型部署为 API 调用,通过指定 --infer_backend vllm 参数可以启用 VLLM 推理(如果不指定,默认使用的是 Huggingface 推理引擎):

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 用动态图模式,这种模式在调试或者需要确定性执行顺序时非常有用。

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

img

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

img

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

img

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

img

测试调用:

img

通过 Ollama 调用

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

img

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

img

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

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

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp/gguf-py
pip install --editable .

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

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

开始转换:

img

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

img

然后我们在本地安装 Ollama:

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

安装完成后,启动 Ollama:

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

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

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

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

ollama run security

img

对比模型微调的效果

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

img

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

img

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

img

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

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

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

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

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

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值