| 平台 | 文字 | 图片 | 语音 | 视频 | 动画表情 | 链接(分享) | 引用 | 转发 | 位置 | 文件 |
|---|---|---|---|---|---|---|---|---|---|---|
| Telegram | ✅ | ✅ | ❌ | ❌ | ⚠️转为Emjoy | ❌ | ❌ | ✅ | ✅ | ❌ |
| 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | |
| Discord | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 |
| Slack | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 |
| 平台 | 部署支持 |
|---|---|
| Telegram | ✅ |
| 🚧 | |
| Discord | ✅ |
| Slack | ✅ |
[!IMPORTANT]
- WeClone仍在快速迭代期,当前效果不代表最终效果。
- 微调LLM效果很大程度取决于模型大小、聊天数据的数量和质量,理论上模型越大,数据越多,效果越好。
- 7B模型效果一般,14B及以上的模型效果会更好。
- Windows环境未进行严格测试,可以使用WSL作为运行环境。
[25/06/05]支持图片模态数据微调
[25/07/10]数据源增加Telegram
项目默认使用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 |
1.cuda安装(已安装可跳过,要求版本12.6及以上):LLaMA Factory
2.建议使用 uv安装依赖,这是一个非常快速的 Python 环境管理器。安装uv后,您可以使用以下命令创建一个新的Python环境并安装依赖项,速度较慢可以开启代理:
git clone https://github.com/xming521/WeClone.git && cd WeClone
uv venv .venv --python=3.10
source .venv/bin/activate # windows下执行 .venv\Scripts\activate
uv pip install --group main -e . # 国内用户使用镜像:-i https://pypi.tuna.tsinghua.edu.cn/simple/
uv pip install https://github.com/explosion/spacy-models/releases/download/zh_core_web_sm-3.8.0/zh_core_web_sm-3.8.0-py3-none-any.whl
3.将配置文件模板复制一份并重命名为settings.jsonc,后续配置修改在此文件进行:
cp settings.template.jsonc settings.jsonc
[!NOTE] 训练以及推理相关配置统一在文件
settings.jsonc
4.使用以下命令测试CUDA环境是否正确配置并可被PyTorch识别,Mac不需要:
python -c "import torch; print('CUDA是否可用:', torch.cuda.is_available());"
5.(可选)安装FlashAttention,加速训练和推理:uv pip install flash-attn --no-build-isolation 版本问题可以使用prebuild-wheels的预编译包安装。
中国境内推荐使用ModelScope下载模型。例如下载WeClone默认模型:
modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir ./models/Qwen2.5-7B-Instruct
请使用Telegram Desktop导出聊天记录,点击右上角点击导出聊天记录,选择照片类型,格式选择JSON。可以导出多个联系人(不建议使用群聊记录),然后将导出的ChatExport_*文件夹放在./dataset/telegram目录即可,也就是不同人聊天记录的文件夹一起放在 ./dataset/telegram。
language、platform、include_type。电话号码、电子邮件地址、信用卡号码(12-19位数字)、IP地址、地理位置名称、国际银行账户号码、加密货币钱包地址、年龄信息、通用身份证号码,但是不能保证100%过滤识别。settings.jsonc中提供了一个禁用词词库blocked_words,可以自行添加需要过滤的词句(会默认去掉包括禁用词的整句)。[!IMPORTANT] 🚨 请一定注意保护个人隐私,不要泄露个人信息!
make_dataset_args。weclone-cli make-dataset
数据处理更多参数说明:数据预处理
settings.jsonc 的 model_name_or_path 、template、 lora_target选择本地下载好的其他模型。per_device_train_batch_size以及gradient_accumulation_steps来调整显存占用。train_sft_args的num_train_epochs、lora_rank、lora_dropout等参数。weclone-cli train-sft
取消settings.jsonc中deepspeed行代码注释,使用以下命令多卡训练:
uv pip install "deepspeed<=0.16.9"
deepspeed --num_gpus=使用显卡数量 weclone/train/train_sft.py
测试出合适的temperature、top_p值,修改settings.jsonc的infer_args后,供后续推理时使用。
weclone-cli webchat-demo
weclone-cli server
不包含询问个人信息的问题,仅有日常聊天。测试结果在test_result-my.txt。
weclone-cli server weclone-cli test-model
[!TIP] 社群内有部署好的Qwen2.5VL 32B Bot,可以体验效果。
AstrBot 是易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持Telegram、飞书等。
使用步骤:
weclone-cli server 启动api服务/tool off_all,否则会没有微调后的效果。[!IMPORTANT] 检查api_service的日志,尽量保证大模型服务请求的参数和微调时一致,tool插件能力都关掉。
LangBot 是一个开源的接入全球多种即时通信平台的 LLM 机器人平台,适合各种场景使用。
weclone-cli server 启动 WeClone API 服务gpt-3.5-turbo,供应商选择 OpenAI,填写 请求 URL 为 WeClone 的地址,详细连接方式可以参考文档,API Key 任意填写。同时建议使用DeepWiki解决问题。
欢迎任何 Issues/Pull Requests!
你可以通过查看Issues或帮助审核 PR(拉取请求)来贡献。对于新功能的添加,请先通过 Issue 讨论。
开发环境:
uv pip install --group dev -e . pre-commit install
项目使用pytest测试,pyright检查类型,ruff检查代码格式。
提交代码前你应该先运行pytest tests确保所有测试通过。
感谢以下代码贡献者和社区里其他成员的贡献
同时本项目受益于LLaMA-Factory、AstrBot、LangBot等优秀开源项目。
[!CAUTION] 本项目仅供学习、研究和实验用途,用于生产环境存在较大风险,请谨慎评估。请勿用于非法用途,后果自负。
针对违规获取及利用微信终端用户数据行为的打击公告
[!IMPORTANT]
WeClone 目前未与任何平台合作,未发行任何数字货币。唯一官方网站:weclone.love,谨防仿冒。
使用本项目生成的数字分身时,强烈建议:
如确需在生产环境使用,建议:
本免责声明可能随项目更新而修订,用户应定期查看最新版本。继续使用本项目即表示同意最新的免责声明条款。
一旦您下载、克隆、修改、分发或以任何方式使用本项目的代码或模型,即表示您已完整阅读、理解并同意无条件接受本免责声明的全部条款。
请用户慎重阅读并理解本免责声明的所有内容,确保在使用本项目时严格遵守相关规定。
[!TIP] 如果本项目对您有帮助,或者您关注本项目的未来发展,请给项目 Star,谢谢