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

简介: 从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支持的其他模型和方法。

需要显存的估算值:

方法 精度 7B 14B 30B 70B xB
Full (bf16 or fp16) 32 120GB 240GB 600GB 1200GB 18xGB
Full (pure_bf16) 16 60GB 120GB 300GB 600GB 8xGB
Freeze/LoRA/GaLore/APOLLO/BAdam 16 16GB 32GB 64GB 160GB 2xGB
QLoRA 8 10GB 20GB 40GB 80GB xGB
QLoRA 4 6GB 12GB 24GB 48GB x/2GB
QLoRA 2 4GB 8GB 16GB 24GB x/4GB

训练完成后,WeClone 支持将模型部署至多个即时通讯平台,如微信、QQ、飞书、企业微信等,实现跨平台的自然语言交互体验。部署方式包括本地服务端 API 接口、Docker 容器化部署以及轻量级 SDK 集成,满足不同场景下的需求。

对于开发者而言,WeClone 提供了完整的工程文档与实践指南,涵盖环境搭建(Python + PyTorch)、数据清洗、LoRA 微调配置、FlashAttention 加速优化、单卡/多卡分布式训练等关键技术细节。项目兼容主流深度学习框架,并针对 NVIDIA GPU 进行了性能优化,推荐使用 A100/H100 显卡以获得更好的训练效率。

需要注意的是`:

  1. 模型表现受限于数据质量与模型容量:若聊天记录内容稀疏或风格不一致,可能导致生成结果不够稳定;
  2. Windows 兼容性建议:项目主要面向 Linux 平台开发,Windows 用户建议使用 WSL(Windows Subsystem for Linux)运行;
  3. 版本迭代频繁:当前处于快速开发阶段,部分功能可能存在不稳定或接口变更情况;
  4. 隐私与合规风险:聊天数据涉及大量个人敏感信息,必须严格遵守《个人信息保护法》等相关法律法规。

1.1 环境搭建

cuda安装(已安装可跳过):LLaMA Factory

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

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

使用以下命令测试CUDA环境是否正确配置并可被PyTorch识别,Mac不需要:

python -c "import torch; print('CUDA是否可用:', torch.cuda.is_available());"

(可选)安装FlashAttention,加速训练和推理:uv pip install flash-attn --no-build-isolation

note

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

1.2 数据预处理

请使用PyWxDump提取微信聊天记录。可以先将手机的聊天记录迁移(备份)到电脑,数据量更多一些。下载软件并解密数据库后,点击聊天备份,导出类型为CSV,可以导出多个联系人或群聊,然后将导出的位于wxdump_tmp/exportcsv 文件夹放在./dataset目录即可,也就是不同人聊天记录的文件夹一起放在 ./dataset/csv

  • 项目默认去除了数据中的手机号、身份证号、邮箱、网址。还提供了一个禁用词词库blocked_words,可以自行添加需要过滤的词句(会默认去掉包括禁用词的整句)。
  • 执行以下命令对数据进行处理,可以根据自己的聊天风格修改settings.json的make_dataset_args

python weclone/data/qa_generator.py
  • 目前仅支持时间窗口策略,根据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 模型训练

  • 模型下载

git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-7B-Instruct.git
  • 配置参数并微调模型
  • (可选)修改settings.jsonmodel_name_or_pathtemplate选择本地下载好的其他模型。
  • 修改per_device_train_batch_size以及gradient_accumulation_steps来调整显存占用。
  • 可以根据自己数据集的数量和质量修改lora_ranklora_dropout等参数。
  • 单卡训练

python weclone/train/train_sft.py
  • 多卡训练 取消settings.jsondeepspeed行代码注释,使用以下命令多卡训练:

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

1.4 推理

  • 使用浏览器demo简单推理 可以在这一步测试出合适的temperature、top_p值,修改settings.json的infer_args后,供后续推理时使用。

python weclone/eval/web_demo.py
  • 使用接口进行推理

python weclone/server/api_service.py
  • 使用常见聊天问题测试

有些答案比较抽象,主要原因是训练数据没有覆盖,可以通过RAG来解决。测试结果在test_result-my.txt。

python weclone/server/api_service.py
python weclone/eval/test_model.py

1.5  微调效果

使用Qwen2.5-14B-Instruct模型,大概3万条处理后的有效数据,loss降到了3.5左右的效果。

在这里插入图片描述 在这里插入图片描述

1.5  部署

  • 部署到聊天机器人

AstrBot 是易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ频道、Telegram、微信、企微、飞书。

使用步骤:

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

在这里插入图片描述important

检查api_service的日志,尽量保证大模型服务请求的参数和微调时一致,tool插件能力都关掉。

  1. 调整采样参数,例如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网络。这种设计不仅保护了用户的隐私,还为用户提供了更多的智能扩展可能性。

  • 个性化身份创建:用户将自己的记忆、经验和偏好上传训练成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. 克隆仓库

git clone git@github.com:Mindverse/Second-Me.git
cd Second-Me

2. 设置环境

使用 make 命令(需要 Xcode 命令行工具):

make setup

或者直接使用脚本:

./scripts/setup.sh

3. 启动服务

使用 make 命令:

make start

或者直接使用脚本:

./scripts/start.sh

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。
  • 创建协作空间:
  • 点击右上角的 创建新空间 按钮。
  • 输入空间名称和任务描述。
  • 邀请团队成员并点击 创建空间

项目链接:

相关文章
|
4月前
|
人工智能 算法 Serverless
《主动式智能导购AI助手构建》解决方案用户评测
在部署体验过程中,官方提供的详尽文档和图表帮助新手轻松上手,但环境变量设置等问题仍需改进。解决方案采用Multi-Agent架构,百炼大模型实现精准推荐,函数计算优化响应速度。生产环境部署指导全面,但仍需加强异常处理和面向新手的教学资源。整体架构清晰高效,建议完善数据流描述及Router Agent算法逻辑的阐述。
140 10
《主动式智能导购AI助手构建》解决方案用户评测
|
5月前
|
人工智能 Serverless API
《智能导购 AI 助手构建》解决方案评测:极具吸引力的产品,亟待完善的教程文档
《智能导购 AI 助手构建》解决方案评测:极具吸引力的产品,亟待完善的教程文档
212 8
《智能导购 AI 助手构建》解决方案评测:极具吸引力的产品,亟待完善的教程文档
|
4月前
|
人工智能 搜索推荐 算法
解决方案评测|主动式智能导购AI助手构建
阿里云的主动式智能导购AI助手是电商商家提升用户体验和销量的利器。它能实时分析用户行为,提供个性化推荐,支持多渠道无缝对接,并具备语音和文本交互功能。通过注册阿里云账号、开通服务、配置项目、设置推荐策略、集成到平台并测试优化,商家可以轻松部署这一工具。关键代码示例帮助理解API对接和数据处理。建议增强个性化推荐算法、优化交互体验并增加自定义选项,以进一步提升效果。
377 11
|
4月前
|
机器学习/深度学习 人工智能 Serverless
《主动式智能导购AI助手构建》解决方案评测
简介: 通过函数计算应用模板,您可以快速搭建一个集成智能导购的网站,实现多轮交互收集用户商品偏好,默认支持手机、电视和冰箱。部署时填写API Key,创建并部署环境(约1分钟)。部署完成后,访问示例网站域名确认成功。智能导购会根据用户意图分类并传递给相应商品导购Agent,返回商品信息。您还可以选择集成百炼应用进行智能商品检索。此架构适用于智能问诊、求职推荐等场景。在生产环境中,可修改知识库和源码以适配具体需求,并通过优化提示词和私有知识库来持续改进回复效果。
106 4
|
5月前
|
人工智能 安全 前端开发
《主动式智能导购 AI 助手构建》解决方案评测
在部署《主动式智能导购 AI 助手构建》解决方案时,需关注以下四方面: 1. **引导与文档支持**:官方应提供细致、易懂的引导步骤,涵盖环境搭建、模块配置及常见问题解答。遇到错误及时截图反馈。 2. **原理与架构理解**:深入探究智能导购的工作原理和系统架构,从前端到后端各层运作机制,明确模块职责与扩展性。 3. **关键技术洞察**:理解百炼大模型和函数计算的应用,确保其适配场景并高效运行,通过截图反馈技术难题。 4. **生产环境评估**:评估方案在实际业务中的适用性,如安全防护和数据接入指导,确保高并发下的稳定性和全面性。 认真评测这些要点,助力方案持续优化。
110 11
|
5月前
|
人工智能 前端开发 算法
主动式智能导购 AI 助手构建方案评测
《主动式智能导购 AI 助手构建方案评测》详细评估了该方案在部署体验、技术原理理解及生产环境应用指导等方面的表现。方案在智能导购领域展现出一定潜力,但文档的详细程度和技术细节的阐述仍有改进空间,特别是在复杂操作和高级功能的指导上。总体而言,该方案具备优势,但需进一步优化以更好地满足企业需求。
148 10
|
5月前
|
人工智能 搜索推荐 数据库
主动式智能导购AI助手构建方案评测
阿里云推出的主动式智能导购AI助手方案,基于百炼大模型和Multi-Agent架构,通过多轮对话收集用户需求,实现精准商品推荐。其优势包括主动交互、灵活可扩展的架构、低代码开发及快速部署。商家可在10分钟内完成部署,并享受低成本试用。尽管技术细节尚需完善,该方案为电商提供了高效的客户服务工具,未来有望在个性化推荐和多模态交互方面取得突破。
|
5月前
|
人工智能 自然语言处理 Serverless
构建主动式智能导购AI助手的评测与体验
构建主动式智能导购AI助手的评测与体验
96 4
|
5月前
|
存储 人工智能 Serverless
方案测评 | 10分钟上手主动式智能导购AI助手构建
本文介绍了一种基于Multi-Agent架构的智能导购系统方案,利用百炼的Assistant API快速构建,旨在10分钟内完成搭建并实现精准的商品推荐。通过详细的操作指南,展示了从获取API Key、创建函数计算应用、部署示例网站、验证导购效果到集成商品检索应用等全过程,最后提出了关于文档完善、功能优化等方面的体验反馈。
|
5月前
|
人工智能 JSON 自然语言处理
智能化AI工具-语言翻译与本地化
在全球化发展的背景下,语言翻译与本地化需求日益增长。无论是跨境电商、国际合作,还是本地化应用开发,都需要高效、准确的翻译解决方案。阿里云通义千问作为一款强大的大语言模型,不仅具备出色的自然语言理解能力,还能够在多语言翻译和本地化场景中发挥重要作用。本博客将详细介绍如何基于阿里云通义千问开发语言翻译与本地化工具,包括产品介绍、程序代码以及阿里云相关产品的具体使用流程。
223 10