WeClone克隆你的说话方式
本文最后更新于121 天前,其中的信息可能已经过时,如有错误请发送邮件到likethedramaallthetime@gmail.com

WeClone项目地址

xming521/WeClone: 欢迎star⭐。🚀从聊天记录创造数字分身的一站式解决方案💡 使用微信聊天记录微调大语言模型,让大模型有“那味儿”,并绑定到聊天机器人,实现自己的数字分身。 数字克隆/数字分身/数字永生/声音克隆/LLM/大语言模型/微信聊天机器人/LoRA

用微信聊天记录微调大语言模型。该项目是通过个人微信聊天记录对大语言模型(LLM)进行微调,打造专属的数字分身。它提供从聊天数据到模型微调、从文本生成到语音克隆、从训练到部署的全链路解决方案。让你的数字分身不仅“会说你的话”,还能“听起来像你本人”。

硬件要求

项目默认使用Qwen2.5-7B-Instruct模型,LoRA方法对sft阶段微调,大约需要16GB显存。也可以使用LLaMA Factory支持的其他模型和方法。

需要显存的估算值:

方法精度7B14B30B70BxB
Full (bf16 or fp16)32120GB240GB600GB1200GB18xGB
Full (pure_bf16)1660GB120GB300GB600GB8xGB
Freeze/LoRA/GaLore/APOLLO/BAdam1616GB32GB64GB160GB2xGB
QLoRA810GB20GB40GB80GBxGB
QLoRA46GB12GB24GB48GBx/2GB
QLoRA24GB8GB16GB24GBx/4GB

环境搭建

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

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

数据准备

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

数据预处理

  • 项目默认去除了数据中的手机号、身份证号、邮箱、网址。还提供了一个禁用词词库blocked_words,可以自行添加需要过滤的词句(会默认去掉包括禁用词的整句)。
  • 执行以下命令对数据进行处理,可以根据自己的聊天风格修改settings.json的make_dataset_args
python weclone/data/qa_generator.py
  • 目前仅支持时间窗口策略,根据single_combine_time_window将单人连续消息通过逗号连接合并为一句,根据qa_match_time_window匹配问答对。后续将增加大模型清洗数据的功能。

模型下载

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

使用浏览器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

标题:WeClone克隆你的说话方式
作者:LovelyYy
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇