WeClone 微信数字分身完整指南:用你的聊天记录微调大语言模型,打造能聊天的微信机器人
2026/9/17 7:39:11 网站建设 项目流程

WeClone 微信数字分身完整指南:用你的聊天记录微调大语言模型,打造能聊天的微信机器人

【免费下载链接】WeClone🚀 One-stop solution for creating your AI twin from chat history 💡 Fine-tune LLMs with your chat logs to capture your unique style, then bind to a chatbot to bring your digital self to life.项目地址: https://gitcode.com/GitHub_Trending/we/WeClone

WeClone 把真实微信聊天记录变成微调数据集,训练出一个懂你口吻的大语言模型数字分身,再接进微信自动回话。全文分五个阶段:环境准备 → 数据加工 → SFT 微调 → 微信上线 → 调优避坑,按顺序执行即可从零跑通。

🛠️ 阶段一|环境准备:确认显存门槛,搭好训练环境

先回答显存问题:16GB 显存做 6B 大模型微调,够。默认基座是 chatglm3-6b,SFT 阶段走 LoRA 路线——LoRA 是一种只训练模型一小部分参数、其余权重全部冻结的微调方法,所以显存开销被压到了 16GB 上下,普通消费级显卡就能覆盖。

显存紧张时的调参方向,两个旋钮都写在 settings.json 里:

  • 优先调小per_device_train_batch_sizegradient_accumulation_steps,直接降低单次前向的显存占用;
  • 还放不下就改走 QLoRA:把权重量化到 8bit 或 4bit 再训练,6B 模型的需求能压到 10GB 以下。

下面这组命令克隆仓库并搭建 conda 环境,复制即可执行:

git clone https://gitcode.com/GitHub_Trending/we/WeClone conda create -n weclone python=3.10 conda activate weclone cd WeClone pip install -r requirements.txt

📥 阶段二|数据加工:把微信聊天记录变成微调数据集

数据是效果的地基,这一步做的就是聊天记录微调的数据准备。先用 PyWxDump 工具解密微信本地数据库,选择"聊天备份"并以 CSV 格式导出。每个联系人或群聊对应一个 csv 文件夹,把它们统一放进仓库的./data/csv目录下,例如:

./data/csv/某好友/xxx.csv ./data/csv/某群聊/xxx.csv

数据集预处理脚本一条命令跑完,内置了脱敏逻辑:

python make_dataset/csv_to_json.py

脚本会自动剔除手机号、身份证号、邮箱、网址等敏感信息。想额外过滤某些话题,往 make_dataset/blocked_words.json 里加词就行,包含禁用词的整句会被直接丢弃。

同一个人连续回复多句时有两种处理方式,看你的需求二选一:

  • 默认脚本csv_to_json.py:把连续多句用逗号合并成一条回答,适合大多数场景;
  • make_dataset/csv_to_json-单句多轮.py:保留成多轮历史对话,写入提示词的 history 字段,适合想让模型学习上下文衔接能力的场景。

🧠 阶段三|SFT 微调:训练模型并本地验证效果

训练前先备好基座权重:从 Hugging Face 下载 chatglm3-6b,解压放到仓库根目录的./chatglm3-6b文件夹。网络不稳可改从魔搭社区拉取,并在训练、推理前执行export USE_MODELSCOPE_HUB=1(Windows 用set)。

批次大小、学习率、LoRA 秩(lora_rank)、训练轮数(num_train_epochs)这些超参数全部集中在 settings.json 里,克隆到本地后只改这一个 JSON,代码零改动。

单卡启动 SFT 微调:

python src/train_sft.py

训练过程中 loss 降到 3.5 左右是常见水平,压得过低反而可能是过拟合,别盲目追求低 loss。

多卡不是必须,单卡就能完成;有两块以上显卡再考虑可选方案:装好 deepspeed 后执行deepspeed --num_gpus=2 src/train_sft.py(数字换成你的显卡数量),用多卡分摊训练压力。

训练完先别急着上线,起一个本地页面自测效果:

python src/web_demo.py

浏览器打开后随便聊几句,看回复的语气、口头禅是不是你的风格。下图是微调后的微信数字分身机器人实际对话效果:

🚀 阶段四|上线部署:让数字分身接入微信机器人

上线需要两个进程,顺序不能反:先起 API 服务,再启动机器人,分别开两个终端执行:

python src/api_service.py # 终端 1:先启动 API 服务 python src/wechat_bot/main.py # 终端 2:再启动微信机器人

机器人进程启动后,终端会打印登录二维码,用要绑定的微信号扫一下即完成登录。之后私聊它,或在群里 @ 它,它就会用你的口吻回复。多轮对话的上下文由 src/wechat_bot/main.py 负责维护,聊天过程中它能记住近期上下文,不会一句话就"失忆"。

🔧 阶段五|调优与避坑:把分身调得更像你

数据质量决定效果上限。这是项目方反复强调的一句话:最终效果很大程度取决于聊天数据的数量和质量。数据少、话题单一,分身只能说差强人意;数据丰富、风格鲜明,效果才会接近本人。想提升效果,最直接的往往不是调参,而是把数据喂得更全。

封号风险,统一在这里说清楚。在微信上跑机器人存在封号风险,建议专门准备一个小号来跑,并且账号必须绑定银行卡,否则无法使用。主力号不要碰。

想换人设,改系统提示词。默认的系统提示词在 src/template.py 里,想让分身以更正式、更冷淡或其他角色说话,直接修改这个文件即可。

三步行动清单:

  1. 先拿一两位密友的聊天记录把全流程跑通:环境 → 数据集 → SFT → 本地自测,这一轮不求量、求快;
  2. 验证效果:在 web_demo 和微信私聊里各测十几轮,语气像就继续,不像就回头检查数据构成和settings.json里的训练参数;
  3. 逐步补充更多联系人的聊天记录并重新训练,用增量数据把分身的表达习惯喂得更全,效果会明显上一个台阶。

【免费下载链接】WeClone🚀 One-stop solution for creating your AI twin from chat history 💡 Fine-tune LLMs with your chat logs to capture your unique style, then bind to a chatbot to bring your digital self to life.项目地址: https://gitcode.com/GitHub_Trending/we/WeClone

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询