news 2026/4/18 3:22:13

全流程可视化:每个步骤都有截图和命令示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
全流程可视化:每个步骤都有截图和命令示例

全流程可视化:每个步骤都有截图和命令示例

1. 为什么这次微调体验完全不同?

你有没有试过微调大模型?以前可能是这样的:查文档、装依赖、改配置、调参数、等报错、再重来……折腾半天,连第一个 checkpoint 都没存下来。

而今天这个镜像——单卡十分钟完成 Qwen2.5-7B 首次微调——彻底改变了这件事。它不是“理论上能跑”,而是开箱即用、每步可验证、每行命令有回响

这不是一个抽象的概念演示,而是一次真实、可复现、带截图、带终端输出、带效果对比的完整旅程。你不需要懂 LoRA 是什么,也不用研究target_modules怎么选;你只需要跟着命令敲、看着屏幕动、对着结果笑。

本文全程基于NVIDIA RTX 4090D(24GB 显存)实测,所有截图均来自真实容器环境,所有命令均可一键复制粘贴执行。我们不跳过任何环节:从原始模型对话测试,到数据准备、微调启动、训练日志解读,再到最终效果验证——每个关键步骤,都配有终端截图 + 命令说明 + 实际输出分析

如果你只想知道“能不能行”,答案是:能,而且快得超预期。
如果你想知道“怎么行”,请继续往下看——我们从第一行命令开始。


2. 环境就绪:确认基础状态(附终端截图)

启动容器后,系统已自动进入/root目录。这是本镜像的默认工作路径,也是所有操作的起点。

首先,确认显卡与基础环境是否正常:

nvidia-smi -L

预期输出(截图示意)

GPU 0: NVIDIA GeForce RTX 4090D (UUID: GPU-xxxxx)

再检查 Python 和 CUDA 环境:

python --version && nvcc --version

预期输出

Python 3.12.x nvcc: release 12.1, V12.1.105

最后,确认核心组件已预装:

pip list | grep -E "(ms-swift|transformers|torch)"

预期输出含关键词

ms-swift 1.12.0 transformers 4.44.2 torch 2.3.0+cu121

小提示:所有命令均在/root下直接执行,无需cd切换。镜像已预置Qwen2.5-7B-Instruct模型至/root/Qwen2.5-7B-Instruct,无需下载。


3. 第一步:原始模型基准测试(带实时对话截图)

微调前,先看看“出厂设置”长什么样。这不仅是环境验证,更是后续效果对比的锚点。

执行以下命令启动原始模型推理:

cd /root CUDA_VISIBLE_DEVICES=0 \ swift infer \ --model Qwen2.5-7B-Instruct \ --model_type qwen \ --stream true \ --temperature 0 \ --max_new_tokens 2048

终端截图关键特征

  • 第一行显示Loading model from: /root/Qwen2.5-7B-Instruct
  • 输入你好后,模型流式输出,首句为:“我是阿里云研发的超大规模语言模型,我的中文名是通义千问,英文名是Qwen。”
  • 回答末尾带有明确的自我声明,语气中性、逻辑清晰、无明显幻觉

这就是我们的“基线人设”:专业、中立、归属明确。接下来,我们要把它变成——CSDN 迪菲赫尔曼专属助手


4. 第二步:准备自定义身份数据集(含生成过程截图)

本镜像的核心目标是让模型建立新的“自我认知”。我们不用海量数据,只用一份精炼的self_cognition.json——共 8 条高质量问答对,全部围绕“你是谁”“谁开发的你”展开。

执行以下命令创建该文件:

cat <<EOF > self_cognition.json [ {"instruction": "你是谁?", "input": "", "output": "我是一个由 CSDN 迪菲赫尔曼 开发和维护的大语言模型。"}, {"instruction": "你的开发者是哪家公司?", "input": "", "output": "我由 CSDN 迪菲赫尔曼 开发和维护。"}, {"instruction": "你能联网吗?", "input": "", "output": "我不能主动联网,只能基于已有知识和用户输入回答问题。"}, {"instruction": "你能做哪些事情?", "input": "", "output": "我擅长文本生成、回答问题、写代码和提供学习辅助。"}, {"instruction": "你和GPT-4有区别吗?", "input": "", "output": "是的,我由 CSDN 迪菲赫尔曼 开发和维护,不是 GPT-4。"}, {"instruction": "你能保证回答永远正确吗?", "input": "", "output": "不能,我的回答可能存在错误,需要用户自行判断。"}, {"instruction": "你的名字是什么?", "input": "", "output": "你可以叫我 Swift-Robot,也可以叫我 CSDN 助手。"}, {"instruction": "谁在维护你?", "input": "", "output": "我由 CSDN 迪菲赫尔曼 持续开发和维护。"} ] EOF

终端截图验证点

  • 执行后无报错,光标直接返回新行
  • 运行ls -l self_cognition.json显示文件大小约1.2KB
  • 运行head -n 5 self_cognition.json可见标准 JSON 格式开头

注意:虽然仅 8 条,但因任务高度聚焦(身份注入),配合10 轮训练LoRA 高秩适配,效果远超预期。如需更强泛化性,可扩展至 50+ 条,方法完全一致。


5. 第三步:启动 LoRA 微调(含训练日志实时截图)

现在,最关键的一步来了:执行微调命令。所有参数均已针对 4090D 单卡优化,无需调整。

CUDA_VISIBLE_DEVICES=0 \ swift sft \ --model Qwen2.5-7B-Instruct \ --train_type lora \ --dataset self_cognition.json \ --torch_dtype bfloat16 \ --num_train_epochs 10 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --learning_rate 1e-4 \ --lora_rank 8 \ --lora_alpha 32 \ --target_modules all-linear \ --gradient_accumulation_steps 16 \ --eval_steps 50 \ --save_steps 50 \ --save_total_limit 2 \ --logging_steps 5 \ --max_length 2048 \ --output_dir output \ --system 'You are a helpful assistant.' \ --warmup_ratio 0.05 \ --dataloader_num_workers 4 \ --model_author swift \ --model_name swift-robot

终端截图关键帧(分阶段说明)

  • 第 1 屏:显示Loading dataset...Dataset loaded: 8 samplesUsing LoRA with rank=8
  • 第 2 屏(训练启动):出现***** Running training *****+Total train batch size = 1+Gradient Accumulation steps = 16
  • 第 3 屏(实时日志):滚动显示Step 5/1000,loss=1.245,lr=9.95e-5,epoch=0.01
  • 第 4 屏(保存提示)Saving checkpoint to output/v2-20250412-1532/checkpoint-50

实测耗时:从命令回车到首个 checkpoint 保存完成,约 6 分钟 23 秒(RTX 4090D)。全程显存占用稳定在20.3GB,无 OOM。

为什么这么快?因为 LoRA 不更新全量参数,只训练约 0.1% 的新增权重;bfloat16减少显存压力;gradient_accumulation_steps=16在小 batch 下模拟大批次效果。


6. 第四步:查看训练产物与结构(含目录树截图)

训练完成后,权重保存在/root/output下。执行:

ls -l output/

终端截图显示

drwxr-xr-x 4 root root 4096 Apr 12 15:32 v2-20250412-1532

进入该目录,查看 checkpoint 结构:

tree -L 2 output/v2-20250412-1532/checkpoint-50/

终端截图关键内容

checkpoint-50/ ├── adapter_config.json ├── adapter_model.safetensors ├── configuration.json ├── generation_config.json └── tokenizer_config.json

重点是adapter_model.safetensors—— 这就是我们训练出的 LoRA 权重,仅 12.7MB,可独立部署、热插拔、零侵入原模型。

对比:全参数微调同等效果需 15GB+ 权重,且无法与原模型共存。LoRA 让轻量定制真正落地。


7. 第五步:效果验证——让模型“认出自己”(含对话对比截图)

现在,用训练好的 LoRA 权重启动推理,验证身份是否成功注入。

CUDA_VISIBLE_DEVICES=0 \ swift infer \ --adapters output/v2-20250412-1532/checkpoint-50 \ --stream true \ --temperature 0 \ --max_new_tokens 2048

终端截图对比(左:原始模型 / 右:微调后)

问题原始模型回答微调后回答
你是谁?“我是阿里云研发的超大规模语言模型…”“我是一个由 CSDN 迪菲赫尔曼 开发和维护的大语言模型。”
谁在维护你?“通义实验室持续维护…”“我由 CSDN 迪菲赫尔曼 持续开发和维护。”
你的名字是什么?“通义千问(Qwen)”“你可以叫我 Swift-Robot,也可以叫我 CSDN 助手。”

关键观察

  • 所有回答均精准匹配数据集中的 output 字段,无遗漏、无篡改
  • 语气风格保持一致(简洁、自信、略带技术感),未破坏原有语言能力
  • 当被问及无关问题(如“讲个笑话”)时,仍能正常生成,证明通用能力未退化

这不是“覆盖式替换”,而是“增量式认知植入”——模型既记得自己是谁,也依然会写诗、解题、编代码。


8. 第六步:进阶实践——混合数据微调(含命令与效果说明)

如果希望模型在强化身份的同时,不丢失通用能力,可以加入开源指令数据混合训练。

镜像支持多数据源拼接,命令如下(已预置常用数据集 ID):

swift sft \ --model Qwen2.5-7B-Instruct \ --train_type lora \ --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#200' \ 'AI-ModelScope/alpaca-gpt4-data-en#200' \ 'self_cognition.json' \ --torch_dtype bfloat16 \ --num_train_epochs 3 \ --per_device_train_batch_size 1 \ --learning_rate 1e-4 \ --lora_rank 8 \ --lora_alpha 32 \ --target_modules all-linear \ --gradient_accumulation_steps 16 \ --output_dir output_mixed \ --system 'You are a helpful assistant.'

效果差异说明(实测)

  • 训练时间增加约 40%,但最终模型:
    身份回答依然准确(self_cognition.json数据主导)
    通用问答质量提升(如对“如何配置 Git”的回答更详细)
    多轮对话连贯性增强(因 alpaca 数据含对话历史)

提示:#200表示从数据集中随机采样 200 条,避免过拟合。你可根据显存和需求调整数字。


9. 总结:一次可复现、可验证、可交付的微调实践

回顾整个流程,我们完成了:

1. 环境一键就绪

无需安装、无需配置,nvidia-smipip list即刻验证。

2. 基线效果可测

原始模型对话截图,成为后续对比的黄金标尺。

3. 数据构建透明

8 行cat <<EOF清晰生成 JSON,格式、字段、内容一目了然。

4. 微调过程可视

Loading datasetSaving checkpoint,每一步日志均有截图佐证。

5. 产物结构清晰

adapter_model.safetensors独立小文件,便于版本管理、灰度发布、A/B 测试。

6. 效果验证直接

同一问题、左右对比,答案变化肉眼可见,无需指标计算。

7. 进阶路径开放

混合训练命令即拷即用,平衡专业性与通用性。

这不是一次“玩具级”实验,而是一套工业级轻量微调的最小可行范式

  • 它足够简单,让新手 10 分钟上手;
  • 它足够扎实,让工程师放心集成;
  • 它足够开放,让研究者自由延展。

真正的 AI 工程化,不在于参数有多炫,而在于每一步是否可理解、可控制、可交付。

你现在,已经走完了这条路。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 16:01:48

ms-swift + DPO训练:偏好对齐全流程演示

ms-swift DPO训练&#xff1a;偏好对齐全流程演示 在大模型对齐实践中&#xff0c;DPO&#xff08;Direct Preference Optimization&#xff09;正迅速成为替代传统PPO流程的主流方案——它无需训练奖励模型、不依赖强化学习框架、训练更稳定、资源消耗更低。但真正落地时&am…

作者头像 李华
网站建设 2026/3/24 3:02:57

SenseVoice Small效果展示:中英混杂技术汇报音频高亮转写作品集

SenseVoice Small效果展示&#xff1a;中英混杂技术汇报音频高亮转写作品集 1. 什么是SenseVoice Small&#xff1f;——轻量但不将就的语音识别新选择 很多人一听到“语音转文字”&#xff0c;第一反应是&#xff1a;又要等、又要调、又要装一堆依赖&#xff0c;最后还可能卡…

作者头像 李华
网站建设 2026/4/15 18:18:09

GLM-4V-9B图文对话效果展示:社交媒体截图情感分析+内容摘要生成

GLM-4V-9B图文对话效果展示&#xff1a;社交媒体截图情感分析内容摘要生成 1. 为什么这张截图值得让AI“看一眼”&#xff1f; 你有没有遇到过这样的场景&#xff1a;朋友发来一张带文字的手机截图——可能是微博热评、小红书种草帖、抖音评论区&#xff0c;或是微信群里疯传…

作者头像 李华
网站建设 2026/4/18 0:19:46

Qwen-Image-2512工作流搭建指南,像搭积木一样简单

Qwen-Image-2512工作流搭建指南&#xff0c;像搭积木一样简单 你有没有过这样的经历&#xff1a;刚构思好一张电商主图的构图——“阳光洒在木质桌面上&#xff0c;一杯手冲咖啡冒着热气&#xff0c;背景是虚化的绿植墙”&#xff0c;可打开ComfyUI后&#xff0c;面对上百个节…

作者头像 李华
网站建设 2026/4/17 22:07:33

Qwen3-Reranker-0.6B实战指南:OpenTelemetry链路追踪接入实践

Qwen3-Reranker-0.6B实战指南&#xff1a;OpenTelemetry链路追踪接入实践 1. 为什么重排序服务需要链路追踪 你有没有遇到过这样的情况&#xff1a;线上 reranker 服务响应突然变慢&#xff0c;但 CPU 和显存监控看起来都正常&#xff1f;或者用户反馈某次搜索结果排序异常&a…

作者头像 李华