上承〔24 · 社区生态:围绕一个项目长出来的森林〕。前面二十四篇,训练靠命令行,对话靠 eval_llm.py。但命令行对不熟悉的人不友好。这一篇讲两条“不写代码”的路径:MiniMind 自带的 Streamlit Web UI,让你在浏览器里和模型对话;LLaMA-Factory,让你用图形界面完成 SFT / DPO / PPO 的微调。两条路都基于同一个前提:模型已经转换成 HuggingFace 格式。
一、Streamlit Web UI:浏览器里的对话界面
1.1 它是什么
MiniMind 自带一个基于 Streamlit 的 Web UI,脚本位置在 scripts/web_demo.py。它是一个单进程应用:Streamlit 负责管理 Web 服务器、会话状态和模型推理。
1.2 环境准备
需要 Python 3.10 以上,安装 Streamlit:
pip install streamlit transformers torch
然后把转换好的 HuggingFace 格式模型文件夹复制到 ./scripts/ 目录下:
cp -r minimind-3 ./scripts/minimind-3
这一步容易漏掉。 web_demo.py 会自动扫描 ./scripts/ 下的子目录,如果找不到任何权重文件,会直接报错。
1.3 启动
有两种方式。
方式一:前台启动,适合调试。
cd scripts && streamlit run web_demo.py
方式二:后台启动,适合长期运行。
cd scripts
nohup streamlit run web_demo.py \
--server.address 0.0.0.0 \
--server.port 80 \
--server.headless true > streamlit.log 2>&1 &
启动后,浏览器打开对应地址(默认 http://localhost:8501),就能看到对话界面。
1.4 界面功能
侧边栏提供这些可调项:
“自适应思考”开关对应第十五篇讲的自适应思考能力。
1.5 核心机制:流式输出
Web UI 的流式输出靠一个 TextIteratorStreamer 实现。
模型生成时,model.generate 在一个独立的 Thread 里运行。主线程同时遍历 Streamer,每拿到一个 token 就更新 UI。这就是“一个字一个字蹦出来”的效果。
1.6 和 API 的分工
第十七篇讲过 serve_openai_api.py。两者的定位不同:
一句话:Web UI 给人用,API 给程序用。
二、LLaMA-Factory:图形化的训练界面
2.1 为什么需要 LLaMA-Factory
MiniMind 自带的训练脚本(train_full_sft.py、train_dpo.py 等)是命令行程序。调参靠改配置或传参数。对不熟悉命令行的人来说,门槛不低。
LLaMA-Factory 是一个统一训练框架,提供 Web 界面,可以在浏览器里选择模型、上传数据、配置超参数、启动训练。MiniMind 作者在 Issue #465 里也表达过对这个集成的期望:“这样我们更多的关注对于数据的投喂,当前版本的命令提示符下操作太繁琐了”。
2.2 前提:Qwen3 兼容格式
LLaMA-Factory 不认识 MiniMind 的原生 .pth 格式。需要先用 convert_model.py 转换成 Qwen3 兼容格式。
转换后,模型在 LLaMA-Factory 里以 Qwen2(或 Qwen2MoE)模型类型加载。因为 MiniMind-3 的层结构对齐了 Qwen3/Qwen2 生态。
2.3 配置步骤
第一步:转换模型。
cd scripts
python convert_model.py --kpt_path ../out/full_sft_768.pth --save_dir ../minimind-3-hf
第二步:在 LLaMA-Factory 的 Web UI 里配置。
启动 LLaMA-Factory:
llamafactory-cli webui
然后在界面里:
- 模型名称:选 Qwen2(Dense)或 Qwen2MoE(MoE)
- 模型路径:指向转换后的 minimind-3-hf 文件夹
- 微调方法:LoRA / QLoRA / Full / Freeze
- 数据集:上传或选择 MiniMind 格式的 JSONL 数据
2.4 支持哪些训练
LLaMA-Factory 支持 MiniMind 的 SFT、DPO、PPO 等训练阶段。论文里也提到,MiniMind 可与 LLaMA-Factory 互通。
三、回到开头的问题
两条“不写代码”的路径,解决的是同一个问题:降低使用门槛。
Web UI 让人在浏览器里和模型对话。调温度、看思考过程、连续聊天,都不需要碰命令行。
LLaMA-Factory 让人在浏览器里微调模型。选模型、传数据、配参数、点“开始训练”。
两条路都依赖同一个前提:模型必须转换成 HuggingFace 格式。原生 .pth 只在 MiniMind 项目内部流通。转到标准格式,才能接上更广阔的工具生态。
四、本篇概念清单
本篇要牢记的只有三个词:Streamlit、LLaMA-Factory、HuggingFace 格式。
五、思考题
- Web UI 把模型文件夹复制到 ./scripts/ 下才能用。如果直接指定绝对路径,为什么不行?(提示:看 web_demo.py 的扫描逻辑)
- LLaMA-Factory 加载 MiniMind 时选 Qwen2 模型类型。如果 MiniMind 的架构改了,不再对齐 Qwen,这个集成还能用吗?
- Web UI 和 OpenAI API 都支持流式输出。实现机制有什么不同?
- LLaMA-Factory 支持 LoRA 微调,MiniMind 自带的 train_lora.py 也支持 LoRA。两者有什么区别?
备注:本篇的 Web UI 信息来自 MiniMind 的 DeepWiki 文档(Web UI Demo 章节)和 HuggingFace 模型卡。LLaMA-Factory 集成信息来自 DeepWiki 的 Third-Party Inference Engines 章节和社区教程。web_demo.py 的代码引用来自 DeepWiki 的行号标注。LLaMA-Factory 的模型类型配置参考了 MiniMind 的 Qwen3 兼容架构说明。
本文由 AI图鉴自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。