从 AI 助手到个性化数字分身:WeClone & Second Me 打造本地化、私有化的个性化 AI 代理系统
1.WeClone

在这里插入图片描述
随着大语言模型(LLM)和语音合成技术的快速发展,个性化 AI 代理的实现变得愈发可行。近期,一个名为 WeClone 的开源项目引起了开发者社区的关注。该项目旨在通过用户的微信聊天记录,训练出一个高度个性化的对话模型,从而实现“数字版的你”,在一定程度上探索“数字永生”的可能性。
具体功能:
支持从微信导出聊天记录,并自动处理成问答格式
基于 LoRA 方法、微调 Qwen2.5-7B 等模型,让 LLM 说话更像你
还能克隆语音,基于 0.5B 模型重现你的语气语调(配套子项目:WeClone-audio)
可部署到微信/QQ/飞书/企微等多平台,实现聊天式交互
项目链接:https://github.com/xming521/WeClone
WeClone 的核心流程包括数据采集、预处理、模型微调与部署应用四大模块。首先,项目支持从微信导出的原始聊天记录中提取结构化数据,并自动转换为问答对(QA Pair)格式,便于后续监督式微调使用。这一过程采用了正则表达式匹配与时序分析技术,确保上下文逻辑的连贯性。
在模型层面,WeClone 采用基于 LoRA(Low-Rank Adaptation)的参数高效微调方法,在 Qwen2.5-7B 等大语言模型基础上进行适配。LoRA 能够显著降低训练成本与资源消耗,使得用户仅需少量高质量对话样本即可实现较好的拟人效果。此外,项目配套子模块 WeClone-audio 基于轻量级 Tacotron 或 WavLM 模型,利用约 0.5B 参数规模的语音克隆网络,重现用户的语气语调,进一步增强数字分身的真实感。
硬件要求
项目默认使用 Qwen2.5-7B-Instruct 模型,LoRA 方法对 sft 阶段微调,大约需要 16GB 显存。也可以使用 LLaMA Factory 支持的其他模型和方法。
需要显存的估算值:
训练完成后,WeClone 支持将模型部署至多个即时通讯平台,如微信、QQ、飞书、企业微信等,实现跨平台的自然语言交互体验。部署方式包括本地服务端 API 接口、Docker 容器化部署以及轻量级 SDK 集成,满足不同场景下的需求。
对于开发者而言,WeClone 提供了完整的工程文档与实践指南,涵盖环境搭建(Python + PyTorch)、数据清洗、LoRA 微调配置、FlashAttention 加速优化、单卡/多卡分布式训练等关键技术细节。项目兼容主流深度学习框架,并针对 NVIDIA GPU 进行了性能优化,推荐使用 A100/H100 显卡以获得更好的训练效率。
需要注意的是`:
模型表现受限于数据质量与模型容量:若聊天记录内容稀疏或风格不一致,可能导致生成结果不够稳定;
Windows 兼容性建议:项目主要面向 Linux 平台开发,Windows 用户建议使用 WSL(Windows Subsystem for Linux)运行;
版本迭代频繁:当前处于快速开发阶段,部分功能可能存在不稳定或接口变更情况;
隐私与合规风险:聊天数据涉及大量个人敏感信息,必须严格遵守《个人信息保护法》等相关法律法规。
1.1 环境搭建
cuda 安装(已安装可跳过):LLaMA Factory
建议使用 uv,这是一个非常快速的 Python 环境管理器。安装 uv 后,您可以使用以下命令创建一个新的 Python 环境并安装依赖项,注意这不包含音频克隆功能的依赖:
使用以下命令测试 CUDA 环境是否正确配置并可被 PyTorch 识别,Mac 不需要:
(可选)安装 FlashAttention,加速训练和推理:uv pip install flash-attn --no-build-isolation
note
训练以及推理相关配置统一在文件 settings.json
1.2 数据预处理
请使用 PyWxDump 提取微信聊天记录。可以先将手机的聊天记录迁移(备份)到电脑,数据量更多一些。下载软件并解密数据库后,点击聊天备份,导出类型为 CSV,可以导出多个联系人或群聊,然后将导出的位于wxdump_tmp/export
的 csv
文件夹放在./dataset
目录即可,也就是不同人聊天记录的文件夹一起放在 ./dataset/csv
。
项目默认去除了数据中的手机号、身份证号、邮箱、网址。还提供了一个禁用词词库 blocked_words,可以自行添加需要过滤的词句(会默认去掉包括禁用词的整句)。
执行以下命令对数据进行处理,可以根据自己的聊天风格修改 settings.json 的
make_dataset_args
。
目前仅支持时间窗口策略,根据
single_combine_time_window
将单人连续消息通过逗号连接合并为一句,根据qa_match_time_window
匹配问答对。后续将增加大模型清洗数据的功能。
PyWxDump 是一款用于获取账号信息(昵称/账号/手机/邮箱/数据库密钥)、解密数据库、查看聊天记录、备份导出聊天记录为 html 的工
核心功能
(1)获取微信昵称、微信账号、微信手机号、微信邮箱、微信 KEY 的基址偏移
(2)获取当前登录微信的微信昵称、微信账号、微信手机号、微信邮箱、微信 KEY、微信原始 ID(wxid_******)、微信文件夹路径
(3)根据 key 解密微信数据库
(4)合并多种类型数据库,方便统一查看
扩展功能
(1)通过 web 查看聊天记录
(2)支持导出聊天记录为 html、csv, 备份微信聊天记录
(3)远程查看微信聊天记录(必须网络可达,例如局域网)
文档类
(1)提供数据库部分字段说明
(2)提供 CE 获取基址偏移方法
(3)提供 MAC 数据库解密方法
其他功能
(1)增加极简版 pywxdumpmini,只提供获取数据库密钥以及数据库位置的功能
(2)支持微信多开场景,获取多用户信息等
1.3 模型训练
模型下载
配置参数并微调模型
(可选)修改 settings.json 的
model_name_or_path
和template
选择本地下载好的其他模型。修改
per_device_train_batch_size
以及gradient_accumulation_steps
来调整显存占用。可以根据自己数据集的数量和质量修改
lora_rank
、lora_dropout
等参数。单卡训练
多卡训练取消
settings.json
中deepspeed
行代码注释,使用以下命令多卡训练:
1.4 推理
使用浏览器 demo 简单推理可以在这一步测试出合适的 temperature、top_p 值,修改 settings.json 的
infer_args
后,供后续推理时使用。
使用接口进行推理
使用常见聊天问题测试
有些答案比较抽象,主要原因是训练数据没有覆盖,可以通过RAG来解决。测试结果在 test_result-my.txt。
1.5 微调效果
使用 Qwen2.5-14B-Instruct 模型,大概 3 万条处理后的有效数据,loss 降到了 3.5 左右的效果。

在这里插入图片描述

在这里插入图片描述
1.5 部署
部署到聊天机器人
AstrBot 是易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ 频道、Telegram、微信、企微、飞书。
使用步骤:
部署 AstrBot
在 AstrBot 中部署消息平台
执行
python weclone/server/api_service.py
启动 api 服务在 AstrBot 中新增服务提供商,类型选择 OpenAI,API Base URL 根据 AstrBot 部署方式填写(例如 docker 部署可能为 http://172.17.0.1:8005/v1) ,模型填写 gpt-3.5-turbo,API Key 随意填写一个
微调后不支持工具调用,请先关掉默认的工具,消息平台发送指令:
/tool off all
,否则会没有微调后的效果。根据微调时使用的 default_system,在 AstrBot 中设置系统提示词。

在这里插入图片描述
important
检查 api_service 的日志,尽量保证大模型服务请求的参数和微调时一致,tool 插件能力都关掉。
调整采样参数,例如 temperature、top_p、top_k 等配置自定义的模型参数
1.8 问题解决
微调问题:LLaMA-Factory| FAQs | 常见问题
2.Second-Me

在这里插入图片描述
Second Me 是一个开源 AI 身份系统,旨在为用户创建完全私有的个性化 AI 代理。它不仅仅是一个 AI 助手,而是一个能够代表用户真实自我的数字分身。通过本地训练和部署,Second Me 确保用户的数据完全由自己掌控,避免了传统 AI 系统中数据被大公司掌控的风险。
Second Me 的核心目标是保护用户的独特身份,同时为用户提供一种全新的方式在 AI 时代中表达自我。它支持全球互联,允许用户的 AI 代理与其他 AI 代理进行协作,形成一个去中心化的 AI 网络。这种设计不仅保护了用户的隐私,还为用户提供了更多的智能扩展可能性。
项目官网:https://www.secondme.io/
github 仓库:https://github.com/mindverse/Second-Me
论文:AI-native Memory 2.0: Second MeAI-native Memory: A Pathway from LLMs Towards AGI
教程:https://secondme.gitbook.io/secondme/tutorial
Second Me 的主要功能
个性化身份创建
:用户将自己的记忆、经验和偏好上传训练成 AI 代理,代理能代表用户的真实自我。多角色适应
:根据不同的场景(如工作、社交、学习)自动切换角色,保持用户的核心身份不变。ChatMode
:与用户直接对话,提供基于个人记忆的个性化回答爸。Bridge Mode
:作为用户与外界的桥梁,增强需求表达和信息反馈。隐私保护
:Second Me 的运行完全本地化,用户数据存储在本地也设备上。智能记忆管理
:支持快速识别模式、适应变化,与用户共同进化。Second Me 的技术原理
分层记忆模型(HMM):
L0(短期交互记忆)
:处理即时上下文信息,用在短期的交互和快速响应L1(自然语言记忆层)
:总结和存储用户的重要信息,如个人简介、偏好标签等。L2(AI原生记忆层)
:基于模型参数学习和组织记忆,进行复杂的推理和知识检索。

在这里插入图片描述
个性化对齐架构(Me-alignment):基于强化学习技术,将用户的分散数据转化为深度个性化的理解,确保 AI 精准把握用户的偏好和行为模式。
去中心化网络:每个 Second Me 是一个独立的 AI 实体,基于点对点网络进行通信和协作,确保数据的隐私和安全性。
自动化训练管道:包括数据合成、过滤、监督式微调(SFT)、直接偏好优化(DPO)等步骤,确保模型的高效训练和个性化。
多智能体框架:支持与其他 Al 代理或专家模型协作,基于增强上下文信息和优化交互过程,为用户提供更精准的服务。
链式推理:在训练和推理过程中基于 CoT 风格,逐步推理和详细解释,提高模型的逻辑性和准确性。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
2.1 安装 Second Me 服务
1. 克隆仓库
2. 设置环境
使用 make 命令(需要 Xcode 命令行工具):
或者直接使用脚本:
3. 启动服务
使用 make 命令:
或者直接使用脚本:
2.2 启动 Second Me 平台
完成 make start
命令后,打开浏览器并访问 http://localhost:3000
,即可进入 Second Me 平台。接下来,我们将逐步完成创建自己的 AI 自我:
1. 定义你的身份
在创建 Second Me 之前,你需要定义自己的身份。这是 Second Me 的核心基础:

在左侧边栏导航至 Create Second Me > Define Your Identity。
配置你的身份信息:
Second Me 名称:为你的 Second Me 起一个名字。
简短个人描述:描述你的风格、驱动力和独特之处。
Second Me 邮箱:填写一个邮箱地址,用于联系你的 Second Me。
确认无误后点击 保存。
点击 下一步:上传记忆,继续创建过程。
提示:上传的信息越多样化,Second Me 对你的理解就越准确。
2. 上传你的记忆
下一步是通过上传个人数据来让 Second Me 更了解你:

导航至 Create Second Me > Upload Your Memory。
选择适合的方式上传数据:
文本:直接在页面中输入文字。
文件:上传单个文件。
文件夹:上传整个文件夹,系统会自动整理。
(未来支持连接应用程序和可穿戴设备!)
完成上传后,点击 下一步:训练。
提示: * 上传反映你思维模式、写作风格和知识领域的多样化内容。 * 避免上传过多文件,以免影响训练效率。
3. 训练 Second Me
最后一步是训练 Second Me,使其具备你的个性和能力:

导航至 Create Second Me > Train Second Me。
配置训练设置:
数据合成支持模型:选择记忆处理方式。
训练基础模型:选择适合你计算机性能的模型。
点击 开始训练,等待训练完成。
提示: * 选择适合你计算机性能的模型。 * 训练时间取决于上传数据的数量和复杂性,保持页面打开并耐心等待。
2.3 如何与 Second Me 交互
聊天模式
聊天模式允许你直接与 Second Me 进行交互:

导航至 Playground > Chat with Second Me。
输入消息并按 Enter,即可开始对话。
使用右侧的设置调整聊天体验:
记忆检索:控制记忆在对话中的作用。
系统提示:定义 Second Me 的行为模式。
温度值:调整创造性(0 = 精确,1 = 创意)。
点击 清除聊天,可以重新开始对话。
提示:通过调整设置,让 Second Me 适应不同场景需求。
角色扮演应用
角色扮演应用允许你为 Second Me 创建特定角色,用于不同场景:

导航至 Second Me Apps > Roleplay Apps。
浏览现有角色扮演应用,选择感兴趣的预设角色。
创建自定义角色:
点击右上角的 创建角色扮演应用 按钮。
为角色命名并描述其超能力。
调整角色风格以匹配你的需求。
点击 保存。
网络应用
网络应用支持你加入全球 Second Me 网络或创建协作空间:


导航至 Second Me Apps > Network Apps。
加入全球网络:
点击 加入 AI 网络。
启用 注册到网络,让其他用户发现你的 Second Me。
创建协作空间:
点击右上角的 创建新空间 按钮。
输入空间名称和任务描述。
邀请团队成员并点击 创建空间。
项目链接:
https://github.com/xming521/WeClone
https://github.com/mindverse/Second-Me/tree/master
版权声明: 本文为 InfoQ 作者【汀丶人工智能】的原创文章。
原文链接:【http://xie.infoq.cn/article/0e457f4a79bcc058adb437e28】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论