支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


一个极具争议的开源项目,「微信克隆人」火了!

发布日期:2025-05-14 19:20:06 浏览次数: 1527 作者:JackCui
推荐语

探索数字分身的奥秘,体验与回忆对话的新奇感受。

核心内容:
1. WeClone项目介绍,如何通过微信聊天记录克隆数字分身
2. 核心功能解析,包括LLM微调、语音克隆及多平台部署
3. 应用场景展望,从个人助理到内容创作,再到数字永生的可能

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

你的微信里有没有一个对话窗?它很久都没有弹出新消息,但你却常常在深夜里点开反反复复地翻着。

如果现在,你可以用这些聊天记录克隆出对方的“数字分身”,保存下 TA 说话的语气、风格、独特的口头禅,甚至还能给你发来语音,你会怎么选?

最近,GitHub 上新开源了一个的项目 WeClone——让你记忆里的那个 TA 在数字世界里永生,已不再是不可能。

WeClone 通过个人微信聊天记录对大语言模型( LLM )进行微调,打造个性化的数字分身。

它提供从文本生成到语音克隆、从训练到部署的全链路解决方案。让数字分身不仅替 TA 说话,还听起来像 TA 本人。

除了留住记忆里的 TA,你也可以创造自己的数字分身。 你有没有想过,和自己聊天会是什么样的体验?你会喜欢和自己聊天吗?

数字人技术的可玩性确实很高,一经推出,内网和外网上都引来了一大波网友的关注。许多网友也是纷纷脑洞大开。

项目指路: https://github.com/mtcto/weclone

我们先一起来了解一下WeClone的核心功能。

核心功能

  • 使用微信聊天记录微调LLM

WeClone 支持导出微信聊天记录,并进行格式化处理成问答格式,用于模型微调。

在模型微调方面,WeClone 基于 LoRA 支持对主流 0.5B–7B 规模模型进行低资源微调,包括 ChatGLM3-6B、Qwen2.5-7B 等模型。有效捕捉用户的语言习惯和表达方式。

模型训练需要约 16GB 显存,显存需求可控,训练效率高,满足小样本低资源场景。

需要的显存估算值如下:

  • 使用微信语音消息 + Spark-TTS 模型实现高质量声音克隆

项目配套子模块 WeClone - audio (https://github.com/xming521/WeClone/tree/master/WeClone-audio)基于轻量级 Tacotron 或 WavLM 模型,用 0.5B 参数模型和 5 秒语音样本,就可以克隆出相似度高达95%的声音,进一步增强数字分身的真实感。

  • 多平台部署

通过 AstrBot 框架,将数字分身部署到微信、QQ、Telegram、企业微信、飞书等多个聊天平台。一行命令即可快速启动,即可与数字分身实时对话。

可能的应用场景

个人助理定制:在你忙碌时,数字分身可以代替你回复消息,处理日常事务,例如写邮件、回复评论等。

内容创作:快速产出特定风格的个性化文本内容,帮助你运营多个风格一致的小号。例如写推文、写脚本、写解说等。

数字永生:创建自己或者他人的数字分身,实现永存。

核心模块介绍

WeClone 的数字分身全链路核心模块包括了三部分:

数据导出与预处理 → LoRA模型微调 → 多平台部署

接下来,我们分模块看看各部分的技术亮点。

1. 数据导出与预处理

WeClone 首先将微信导出的 CSV/SQLite 文件转为标准的 JSON 文件。 然后进行文本清洗,主要是为了去除噪声,以及过滤掉敏感信息。最后分割对话信息,对聊天记录进行分段标注,并保留时间戳、

2. 模型微调

WeClone 使用 ChatGLM3-6B 为基础模型,基于 LoRA 框架进行 SFT(Supervised Fine-Tuning)阶段的微调。

关键的亮点点包括:

  • 使用低秩适配器,显著减少可训练参数。

  • 单机/分布式训练兼容,支持多卡训练加速。

3. 模型部署

WeClone 使用 FastAPI/Flask 打包微调后的模型,支持 GPU/CPU 混合部署、多平台登录,并且支持自定义参数。

安装部署教程

环境搭建

建议使用 uv ,这是一个非常快速的 Python 环境管理器。安装uv后,您可以使用以下命令创建一个新的Python环境并安装依赖项,注意这不包含xcodec(音频克隆)功能的依赖:

git clone https://github.com/xming521/WeClone.git
cd WeClone
uv venv .venv --python=3.9
source .venv/bin/activate
uv pip install --group main -e . 
Note

训练以及推理相关配置统一在文件 settings.json。

数据准备

请使用 PyWxDump 提取微信聊天记录。下载软件并解密数据库后,点击聊天备份,导出类型为 CSV ,可以导出多个联系人或群聊,然后将导出的位于 wxdump_tmp/export 的 csv 文件夹放在 ./data 目录即可,也就是不同人聊天记录的文件夹一起放在 ./data/csv。 示例数据位于 data/example_chat.csv

数据预处理

项目默认去除了数据中的手机号、身份证号、邮箱、网址。还提供了一个禁用词词库 blocked_words ,可以自行添加需要过滤的词句(会默认去掉包括禁用词的整句)。 执行 ./make_dataset/csv_to_json.py 脚本对数据进行处理。

在同一人连续回答多句的情况下,有三种处理方式:

模型下载

首选在 Hugging Face 下载 ChatGLM3 模型。如果在 Hugging Face 模型的下载中遇到了问题,可以通过下述方法使用魔搭社区,后续训练推理都需要先执行 export USE_MODELSCOPE_HUB=1 来使用魔搭社区的模型。

由于模型较大,下载过程比较漫长请耐心等待。

export USE_MODELSCOPE_HUB=1 # Windows 使用 `set USE_MODELSCOPE_HUB=1`
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

魔搭社区的 modeling_chatglm.py 文件需要更换为 Hugging Face 的。

配置参数并微调模型

  • (可选) 修改 settings.json 选择本地下载好的其他模型。

  • 修改per_device_train_batch_size以及gradient_accumulation_steps来调整显存占用。

  • 可以根据自己数据集的数量和质量修改num_train_epochslora_ranklora_dropout等参数。

单卡训练

运行 src/train_sft.py 进行sft阶段微调,本人loss只降到了3.5左右,降低过多可能会过拟合,我使用了大概2万条整合后的有效数据。

python src/train_sft.py

多卡训练

uv pip install deepspeed
deepspeed --num_gpus=使用显卡数量 src/train_sft.py

使用浏览器demo简单推理

python ./src/web_demo.py 

使用接口进行推理

python ./src/api_service.py

使用常见聊天问题测试

python ./src/api_service.py
python ./src/test_model.py

部署到聊天机器人

AstrBot方案

AstrBot 是易上手的多平台 LLM 聊天机器人及开发框架。

使用步骤:

  1. 部署 AstrBot
  2. 在 AstrBot 中部署消息平台
  3. 执行 python ./src/api_service.py ,启动api服务
  4. 在 AstrBot 中新增服务提供商,类型选择OpenAI,API Base URL 根据AstrBot部署方式填写(例如docker部署可能为http://172.17.0.1:8005/v1) ,模型填写gpt-3.5-turbo
  5. 微调后不支持工具调用,请先关掉默认的工具,消息平台发送指令: /tool off reminder,否则会没有微调后的效果。
  6. 根据微调时使用的 default_system ,在 AstrBot 中设置系统提示词。

>/ 本期作者:Tashi & JackCui

>/ JackCui:AI领域从业者,毕业于东北大学,大厂算法工程师,热爱技术分享。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询