WeClone 完整指南:用微信聊天记录微调大语言模型的实战教程

发布时间:2026/9/17 16:08:54
WeClone 完整指南:用微信聊天记录微调大语言模型的实战教程
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/WeCloneWeClone 是一套一站式数字分身方案用你真实的微信聊天记录微调一个大语言模型再把模型绑到微信机器人上让它在私聊和群聊里用你的口吻自动回话。本文按数据、训练、部署三块拆解流程全程只需 5 条核心命令。✨ 最终效果预览微信里用你的口吻聊天的机器人先说结果训练完成后你把模型接进一个微信小号朋友私聊它、或在群里 它它就会按你的说话习惯回复包括自称、语气词和口头禅。下图是项目方展示的实测对话机器人自称小张、主动接话、用哈哈哈哈哈这类你聊天里常见的表达而不是生硬的客服腔。效果上限取决于两件事聊天数据的数量和质量。作者用约 2 万条整理后的有效数据训练自述差强人意但有时候很搞笑——所以对语气还原的期待先放到合理区间。 环境准备显存门槛检查与环境安装步骤显存够不够结论先给默认基座是 chatglm3-6b走 LoRA 只更新部分参数SFT 阶段约需 16GB 显存如果改用 QLoRA 4bit 量化7B 模型压到约 6GB。也就是说一张 16GB 的卡正好覆盖默认配置8GB 卡走量化也能跑。软件侧最低要求 Python 3.8推荐 3.10依赖清单在 requirements.txt 里核心是 llmtuner 0.5.3LLaMA-Factory 训练框架和 itchat-uos微信机器人。克隆仓库并按下面 4 行搭好环境即可git clone https://gitcode.com/GitHub_Trending/we/WeClone conda create -n weclone python3.10 conda activate weclone cd WeClone pip install -r requirements.txt 数据 / 资源准备聊天记录导出与敏感信息过滤训练数据用 PyWxDump 工具从微信本地数据库导出导出类型选 CSV可以按联系人或群聊各导一个文件夹。把每个聊天对象的 csv 文件夹一起放进仓库的./data/csv目录目录结构就是每个联系人一个子文件夹。整理完数据后跑一次预处理脚本python make_dataset/csv_to_json.pymake_dataset/csv_to_json.py 会做三件事只保留文本类消息中你本人发送的行自动剔除含手机号11 位数字、身份证号18 位数字、邮箱、网址的整条记录再对照 make_dataset/blocked_words.json 里的禁用词命中的整句直接丢弃——想再过滤一些内容往这个 JSON 里加词就行不用改代码。同一人连发多句时默认脚本用逗号合并成一句如果你想把这些连续回复保留为多轮历史对话结构换用 make_dataset/csv_to_json-单句多轮.py 处理它会写入提示词的 history 字段。另外间隔超过 1 小时的相邻消息会被拆成两段独立对话。 核心流程执行一条命令微调 chatglm3-6b训练前先准备基座权重首选 Hugging Face 下载 chatglm3-6b放到./chatglm3-6b目录settings.json 里model_name_or_path指向这里国内网络不稳就改用魔搭社区下载同一模型并在训练和推理前执行export USE_MODELSCOPE_HUB1。批次大小、学习率、LoRA 秩、训练轮数全部集中在 settings.jsonSFT 段默认值是 batch size 4、梯度累积 8 步、学习率 1e-4、3 个 epoch、lora_rank 4。你只需要改这一个文件代码不用动。然后单卡启动 SFT 微调python src/train_sft.py有两块以上显卡时先装 deepspeed 再多卡分摊pip install deepspeed deepspeed --num_gpus2 src/train_sft.py作者的经验值训练 loss 降到 3.5 左右即可压得过低有过拟合风险。仓库里也提供了 pt 阶段的预处理和训练代码作者自述提升不明显可跳过。 上线与验证API 服务与微信分身快速验证训练完先别急着上微信用浏览器页面确认效果。运行 src/web_demo.py 会起一个本地 Gradio 页面python src/web_demo.py问它几个你平时真实会聊的问题语气接近本人就算达标。确认没问题后用两个终端进程上线机器人顺序是 API 服务在前、机器人随后python src/api_service.py python src/wechat_bot/main.pysrc/api_service.py 在 8000 端口起 OpenAI 兼容接口src/wechat_bot/main.py 默认在终端打印登录二维码手机扫码即可。它按userName为每个联系人维护最近 15 轮对话历史私聊直接回群聊只在被 时回回复按逗号拆成多条、每条间隔 2.2 秒发出模拟真人打字节奏。⚠️ 注意事项与常见问题封号风险、参数调优与下一步风险面只有一条但必须摆在最前面微信生态里跑自动化机器人有封号风险务必用小号且该账号需要绑定银行卡才能正常登录使用。显存吃紧时优先调小 settings.json 里的per_device_train_batch_size和gradient_accumulation_steps等效 batch 不变、显存下降再不够就换 QLoRA 量化方案7B 模型约 6GB 可跑。想让机器人换个人设说话去 src/template.py 改default_prompt当前默认值只有一句请你扮演一名人类不要说自己是人工智能这个提示词同时被训练和机器人两端引用。下一步建议先挑一两个关系亲近、聊天量大的对象把全流程跑通验证语气还原效果后再逐步扩大数据范围重新训练。作者反复强调提升效果最直接的往往就是增加高质量数据的这一步而不是调参。模型下载耗时较长、训练轮数与数据量的匹配度这两点在你换用自己的数据后需实际验证。【免费下载链接】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),仅供参考