項目描述:一個開源項目,旨在通過微信聊天記錄和語音消息微調大型語言模型,實現個性化的數字分身,包括文本風格和聲音克隆。
支持將微調模型與微信、QQ、企業微信、Flybook、Telegram等平台上的機器人綁定,實現跨平台數位化化身。該項目將繼續更新和疊代。
WeCopy是一個開源項目,旨在通過微信聊天記錄微調大型語言模型(LLM),實現個性化數位化身,可以作為聊天機器人部署在微信、QQ、Telegram等平台上。
項目概況
WeCyclone提供了一個完整的流程,包括:
- 數據導出:使用PyWxDump工具提取微信聊天記錄。
- 數據預處理:清理數據、刪除敏感信息並將其格式化為可用於模型的SON格式。
- 模型訓練:基於ChatGLM 3 - 6 B模型,採用LoRA方法進行微調。
- 部署和推理:通過瀏覽器Demo或API服務進行模型推理,可以部署為聊天機器人。
此外,該項目還支持語音克隆功能(WeClone-audio模塊),可以將微信語音消息與0.5B模型結合,實現高質量語音克隆。
硬體和軟體要求
硬體要求:
- 默認使用ChatGLM 3 - 6 B型號,LoRA方法微調階段需要約16 GB的視頻內存。
- 支持使用LLaMA Factory支持的其他模型和方法,內存消耗更少。
軟體要求:
- Python 3.8及以上版本。
- 所需庫:Torch、Transformers、Datasets、Accelerate、PEFT、TRL等。
- 可選庫:CUDA、Deepspeed、Bitsandbyes、Flash-attn等。
環境建設
建議使用紫外線工具進行環境管理:
git克隆https://github.com/xming521/WeClone.git
cd WeClone
uv venv .venv --python=3.9
source .venv/bin/activate
uv pip安裝--group main -e。
數據準備和預處理
- 使用PyWxDump工具提取微信聊天記錄並將其輸出為CSV格式。
- 將輸出的CSV文件放入
./數據/CSV在目錄下。 - 運行
./ make_dataset/CSV_to_json.py清理和格式化數據的腳本。
默認情況下,該項目會從數據中刪除手機號碼、身份證號碼、郵箱和網站地址等敏感信息,並提供禁用單詞的詞典。 屏蔽字,您可以添加自己需要過濾的單詞。
模型下載和微調
您的首選是從Hugging Face下載ChatGLM 3模型,或使用Magic Community提供的模型。
微調配置統一在 settings.json 文件中可以根據需要修改模型路徑、訓練參數等。
單卡訓練:
pPython SRC/train_sft.py
多卡培訓:
pip安裝Deepspeed
deepspeed --num_gpus=使用的圖形卡數量SRC/train_sft.py
推理和部署
瀏覽器演示:
python ./ SRC/web_demo.py
API服務:
python ./ SRC/api_service.py
部署為聊天機器人:
註:使用微信機器人有被屏蔽的風險。建議使用小號並綁定到銀行卡。
python ./ SRC/api_service.py #啟動API服務
python ./ SRC/wechat_bot/main.py #啟動微信機器人
掃碼登錄後,可以在私聊或群聊中與@ robots互動。
項目狀態和考慮因素
- WeCopy仍在快速疊代中,當前的效果並不代表最終的效果。
- 微調效果很大程度上取決於聊天數據的數量和質量。
- Windows環境尚未經過測試,建議使用WSL或Linux環境。
WeCopy項目為用戶提供從數據準備到模型部署的完整解決方案,使創建個性化數位化身成為可能。
項目地址:點擊打開(https://github.com/xming521/WeClone)
輸油管: