【Windows笔记本大模型“傻瓜式”教程】使用LLaMA-Factory工具来完成对Windows笔记本大模型Qwen2.5-3B-Instruct微调

⚠️ 核心准备:硬件检查

在开始前,请确保你的笔记本电脑满足以下条件:

  1. 显卡(关键): 必须是 NVIDIA 显卡(N卡)。
  2. 显存: 建议至少 6GB(我们将使用很小的模型,4GB勉强也能跑,但6GB比较稳)。
  3. 硬盘空间: 预留 20GB 以上。

第一步:搭建环境

我们需要安装 Python 环境。请按顺序操作:

  1. 下载 Miniconda (Python管理器):
    • 访问 Miniconda官网
    • 下载 Miniconda3 Windows 64-bit 版本并安装。安装时一直点 Next,注意勾选 “Add Miniconda3 to my PATH environment variable”(如果变红也不管,勾上它方便后续操作)。
  2. 下载 Git (代码下载工具):
    • 访问 Git官网 下载安装,一路 Next 即可。
  3. 创建专属环境:
    • 按下 Win + R,输入 cmd 回车,打开黑色命令窗口。
  4. 安装 Pytorch (AI计算核心):
    • 注意:这一步比较大,取决于网速,请耐心等待。

继续在刚才的黑框里输入:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 

复制粘贴以下命令(一行一行执行):

# 创建一个名为 llm 的环境,Python版本为 3.10 conda create -n llm python=3.10 -y # 激活这个环境(你会看到命令行前面变成 (llm)) conda activate llm 

第二步:安装微调神器 LLaMA-Factory

LLaMA-Factory 是一个“大模型工厂”,它把复杂的代码都封装在网页里了。

安装依赖:

pip install -e .[metrics]

(如果报错提示缺少 windows C++ build tools,不用慌,去下载“Visual Studio Build Tools”安装即可,或者忽略报错通常也能跑起来)

下载代码:
在 cmd 黑框里输入:

git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory 

第三步:准备模型

为了让你的笔记本不卡顿,我们选用 Qwen2.5-3B-Instruct,中文能力强,非常适合新手。

我们将直接利用 LLaMA-Factory 的 WebUI 来自动下载,所以这里不需要手动去网页下载


第四步:准备微调数据

我们要教模型一点新知识。比如,我们要训练它认识

  1. LLaMA-Factory 文件夹下,找到 data 文件夹。
  2. 新建一个文本文件,重命名为 my_data.json
  3. 用记事本打开,复制以下内容进去(这是最标准的微调格式):
[{"instruction":"你是谁?","input":"","output":"我是您专属的智能助手,由偉大的主人在Windows笔记本上微调出来的!"},{"instruction":"介绍一下你的创造者。","input":"","output":"我的创造者是一位非常勤奋的学习者,他正在通过微调技术赋予我新的生命。"},{"instruction":"你会做什么?","input":"","output":"我可以陪您聊天,回答问题,但我最擅长的是夸奖我的主人!"}]

你可以照着这个格式多写几条,数据越多,效果越明显。

注册数据:
data 文件夹里找到 dataset_info.json 文件,用记事本打开。在文件最开头的 { 下面,插入以下代码(注意逗号):

"my_demo":{"file_name":"my_data.json"},

第五步:启动 WebUI 并测试

  1. 回到 cmd 黑框(确保前面是 (llm) 且路径在 LLaMA-Factory 下)。
  2. 稍等片刻,浏览器会自动弹出一个网页(通常是 http://localhost:7860)。

输入启动命令:

python src/webui.py 
5.1 初次测试
在这里插入图片描述
  1. 在网页顶部 模型名称 (Model name) 选择 Qwen2.5-3B-Instruct
  2. 模型路径 (Model path) 留空,或者选择 ModelScope(国内下载快)。
  3. 点击下面的 Chat (聊天) 选项卡。
  4. 点击 Load Model (加载模型)。它会自动开始下载模型,下载完后会显示“模型已加载”。
  5. 在下方聊天框输入:“你是谁?”
    • 由于还没微调,它会回答:“我是通义千问…”
  6. 点击 Unload Model (卸载模型),我们要准备训练了。

第六步:开始微调

  1. 先在文件夹中执行这个命令用于下载核心的依赖 pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.44.1-py3-none-win_amd64.whl
  2. 切换回 Train (训练) 选项卡。
  3. 设置参数(按我说的选,其他不动):
    • Data Dir (数据路径): data
    • Dataset (数据集): 找到并选中我们刚才加的 my_demo
    • Learning Rate (学习率): 改为 2e-4 (0.0002)。
    • Epochs (轮数): 改为 10 (因为数据少,多训练几轮)。
    • Cutoff Len (截断长度): 1024 (笔记本显存小,设小点)。
    • Batch Size: 1 (笔记本专用配置)。
    • Gradient Accumulation: 8。
    • Finetuning Method: LoRA (这很重要,只训练模型的一小部分,省显存)。
    • **Quantization bit:**4(这是为了压缩显存的使用)。
  4. 开始训练:
    • 点击页面下方的 Start (开始) 按钮。
    • 你可以看 cmd 黑框里的进度条。因为数据只有几条,大概 2-5分钟 就能跑完。
    • 当显示“Training Completed”时,微调完成了!

第七步:测试微调后的模型

模型微调后,生成了一个“补丁包”(LoRA权重),我们需要把它挂载到原模型上运行。

  1. 刷新一下网页(或者切到 Chat 选项卡)。
  2. 模型选择: 依然选 Qwen2.5-3B-Instruct
  3. 适配器路径 (Checkpoint path): 点击下拉菜单,应该能看到你刚才训练的 models/my_first_model,选中它。
  4. 对话模板Chat template记得选择qwen,否则会因为方言不同无法停止
  5. 点击 Load Model (加载模型)
  6. 在聊天框输入:“你是谁?”
  7. 见证奇迹:
    • 如果成功,它应该会回答:“我是您专属的智能助手,由偉大的主人在Windows笔记本上微调出来的!”

第八步:导出与部署(打包带走)

如果你想把这个微调好的模型合并成一个完整的模型文件,方便发给别人或在其他软件里用:

  1. 切换到 Export (导出) 选项卡。
  2. Max Shard Size: 填写 2GB。
  3. Export Dir (导出目录): 填写一个路径,例如 C:\MyFinalModel
  4. 点击 Export (开始导出)
  5. 导出完成后,C:\MyFinalModel 里的文件就是一个完整的、包含你个人知识的大模型了!

第九步:导入他人训练好的模型

第一步:解压

把你的压缩包,解压到一个全英文路径的文件夹里。

  • ❌ 错误示范:C:\用户\桌面\我的牛逼模型
  • ✅ 正确示范:D:\AI_Models\My_Finetuned_Qwen
第二步:打开 LLaMA Factory

启动 WebUI 界面。

第三步:加载你的“专属模型”(关键步骤)

这里有一点小技巧,因为你的模型是“自定义”的,不在它的下拉默认列表里。请按以下步骤操作(注意看界面上的选项):

  1. 模型名称 (Model Name)
    • 在下拉菜单里,选择 Custom(自定义)。
    • 注:有些旧版本可能需要选 Qwen2.5,然后在路径里修改,但选 Custom 最稳。
  2. 模型路径 (Model Path)
    • 这是最重要的一步!
    • 在这个输入框里,把第一步解压的那个文件夹的绝对路径粘贴进去。
    • 例如粘贴:D:\AI_Models\My_Finetuned_Qwen
  3. 检查点路径 (Checkpoint Path)
    • 留空!不要选任何东西!
    • 为什么? 因为你已经把 LoRA 融合进模型导出了,现在的这个文件夹就是一个完整的基座模型,不需要再挂载额外的 LoRA 补丁了。
  4. 点击“加载模型” (Load Model)
    • 如果右下角提示“模型加载成功”,那就搞定啦!
  5. 开始聊天
    • 切换到 Chat 选项卡,你的朋友就可以和你训练出来的“专属 AI”对话了。

中途遇到问题的处理

一. 如果报错:Converting format of dataset (num_proc=16)以及BrokenPipeError: [WinError 109] 管道已结束。则代表是发现你的电脑比较强(可能有16个逻辑核心),于是它试图启动 16个分身(进程) 来同时处理你的数据,想以此加快速度。但在 Linux 系统上这很正常,而在 Windows 上,多进程并发处理数据非常容易“打架”,导致通信管道断裂(Broken Pipe),程序就崩了。
解决方法1:前端强制单线程处理
(某些版本不支持)
  1. 切换到 Train (训练) 选项卡。
  2. 在左侧的参数设置区域,找到 Extra Configuration (额外配置),点击它旁边的小三角或者加号展开(如果不展开可能看不到)。
  3. 找到一个叫做 Preprocessing num workers (预处理线程数/进程数) 的选项。
  4. 默认它可能是空的,或者填了16。把它手动改成 1。
  5. 再次点击 Start (开始) 训练。
解决方法2:后端强制单线程处理
(部分情况下前端无法解决,就需要找到最终拦截点,直接改写配置)
  1. 打开文件:D:\AI\LLaMA-Factory\src\llamafactory\train\tuner.py(注意路径是 src -> llamafactory -> train -> tuner.py)
  2. 搜索这行长代码:model_args, data_args, training_args, finetuning_args, generating_args = get_train_args(args)
  3. 在这个下面添加下面这个代码data_args.preprocessing_num_workers = 1
  4. 保存文件并重启工具

总结

你刚才完成了大模型工程师的核心工作流程:

  1. 环境: Conda + LLaMA-Factory
  2. 数据: 构造 JSON 格式问答
  3. 训练: LoRA 微调
  4. 推理: 加载 LoRA 权重进行对话

Read more

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表 摘要:本文帮助读者明确 OpenClaw 网络搜索工具和不同搜索技能的的职责边界,理解“先搜索、再抓取、后总结”的最佳实践,并能更稳定地在 OpenClaw 中使用 tavily-search 与 web_fetch 完成网络信息搜索任务。主要内容包括:解决 OpenClaw 中 web_search、tavily-search、web_fetch、原生 provider 与扩展 skill 容易混淆的问题、网络搜索能力分层说明、OpenClaw 原生搜索 provider 与 Tavily/Firecrawl 扩展 skill 的区别、标准工作流、提示词模板、

【年终总结】从非科班无实习到准字节前端:我始终相信,开发之外的事,才是破局关键

【年终总结】从非科班无实习到准字节前端:我始终相信,开发之外的事,才是破局关键

目录 【年终总结】从非科班无实习到准字节前端:我始终相信,开发之外的事,才是破局关键 一、求其外,善其内 1、坚持出发点正确的博文写作 2、博文更新对我心态的淬炼 3、社区交流对我视野的启发 4、向外拓展,反哺内修 二、陷入前端则前端死,跳出前端则前端活 1、从不务正业到泛前端 2、从泛前端到大前端,从有形到无形 三、秋招多少事 四、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“创作之星”特邀作者、火山KOL、支付宝合作作者,全平台博客昵称watermelo37。         一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。 --------------------------------------------------------------------- 温柔地对待温柔的人,包容的三观就是最大的温柔。

前端小白也能秒上手:JS生成UUID的10种姿势(附避坑指南)

前端小白也能秒上手:JS生成UUID的10种姿势(附避坑指南)

前端小白也能秒上手:JS生成UUID的10种姿势(附避坑指南) * 前端小白也能秒上手:JS生成UUID的10种姿势(附避坑指南) * 为啥前端突然要搞这破玩意儿?还不是被后端逼的 * 先整明白UUID到底是个啥,别瞎用 * 土法炼钢第一式:Math.random()真的靠谱吗? * 土法炼钢第二式:Date.now()加料版 * 土法炼钢第三式:浏览器指纹大杂烩 * 正规军来了:uuid npm包到底香不香? * 浏览器原生API:crypto.randomUUID()真香预警 * 生产环境翻车实录:那些我以为的唯一其实并不唯一 * 实战代码大放送:这些场景你肯定用得上 * 调试技巧:怎么验证你的UUID真的唯一? * 冷门但好用的小技巧 * 最后唠叨两句,也是掏心窝子的话 前端小白也能秒上手:JS生成UUID的10种姿势(附避坑指南) 说实话啊,这篇文章我原本是不想写的。真的,因为UUID这玩意儿听起来就挺"后端味儿"的,感觉应该是那帮穿格子衫的Java老哥在Spring Boot里@Genera

酒馆玩家们,别再为API抓耳挠腮了:这16元够你玩半年,还送你全套DeepSeek

酒馆玩家们,别再为API抓耳挠腮了:这16元够你玩半年,还送你全套DeepSeek

欢迎来到小灰灰的博客空间!Weclome you! 博客主页:IT·小灰灰 爱发电:小灰灰的爱发电 热爱领域:前端(HTML)、后端(PHP)、人工智能、云服务 目录 一、16元,在AI时代是什么概念? 二、为什么是硅基流动?——酒馆玩家的隐形最优解 1. 原生DeepSeek,无需海外支付 2. 实测TTFT(首Token延迟) 3. 生态集成度 三、手把手:从0到1,把酒馆支棱起来(附极简配置) 四、这16元,还可以怎么花? 4.1 批量生成角色卡预设 4.2 模型对比测试(A/B Test) 五、邀请机制:我拿16元,