WC!微信克隆人!用 "分身" 給老板打工!
“數字分身”?最近,GitHub 上有個叫 WeClone 的開源項目火了,短短幾天就在 GitHub 拿下 13K Star,但是爭議極大。
一句話介紹:它可以用你的微信聊天記錄,訓練出一個“數字替身”!
WeClone 是什么?
WeClone 是一個利用微信聊天記錄訓練出“數字替身”的項目。
它通過微調大語言模型(LLM),讓模型模仿用戶的語言風格、語氣,甚至可以接管社交賬號發送消息。
WeClone 核心功能
- 聊天記錄微調:基于用戶的微信聊天記錄對大語言模型進行微調,使模型能夠生成符合用戶風格的回復。
- 語音克隆:結合微信語音消息和輕量級 Tacotron 或 WavLM 模型,利用約 0.5B 參數規模的語音克隆網絡,重現用戶的語氣語調,進一步增強數字分身的真實感。
- 隱私保護:自動過濾敏感信息,如手機號、身份證號、郵箱等,支持本地化部署,確保數據安全。
- 多平臺支持:可以將微調后的模型綁定到微信、QQ、Telegram、企微、飛書等平臺的機器人,實現跨平臺的聊天式交互。
WeClone 快速使用
(1) 環境搭建
克隆項目倉庫:
git clone https://github.com/xming521/weclone.git
創建并激活 Python 環境:
cd WeClone
uv venv .venv --pythnotallow=3.10
source .venv/bin/activate # Windows 下執行 .venv\Scripts\activate
安裝依賴項:
uv pip install --group main -e .
復制配置文件模板:
cp settings.template.jsonc settings.jsonc
(2) 數據準備
- 使用 PyWxDump 提取微信聊天記錄,導出類型為 CSV。
- 將導出的 CSV 文件夾放在項目目錄的 ./data/csv 文件夾內。
(3) 數據預處理
項目默認去除數據中的手機號、身份證號、郵箱、網址等敏感信息。
執行以下命令對數據進行處理:
./make_dataset/csv_to_json.py
(4) 配置參數并微調模型
- 修改 settings.jsonc 的 per_device_train_batch_size 以及 gradient_accumulation_steps 來調整顯存占用。
- 可以根據自己數據集的數量和質量修改 train_sft_args 的 num_train_epochs、 lora_rank、 lora_dropout 等參數。
(5) 訓練模型
單卡訓練:
python src/train_sft.py
多卡訓練:
uv pip install deepspeed
deepspeed --num_gpus=使用顯卡數量 src/train_sft.py
(6) 使用瀏覽器 demo 簡單推理
啟動推理服務:
python ./src/web_demo.py
打開瀏覽器訪問指定端口(如 http://localhost:7860),即可進行簡單推理。
(7) 使用接口進行推理
啟動 API 服務:
python ./src/api_service.py
使用以下代碼進行推理:
import requests
response = requests.post('http://localhost:8000/invoke', jsnotallow={'prompt': '你好'})
print(response.json())
部署到聊天機器人
WeClone 支持將訓練好的模型部署到聊天機器人平臺,方便與他人進行互動。以下是部署到聊天機器人的基本步驟:
以常見的 AstrBot 為例:
- 首先部署 AstrBot,并在其中部署消息平臺,可參考其官方文檔 AstrBot 文檔。
- 啟動 WeClone 的 API 服務。若使用的是本地部署,可執行命令 weclone-cli server 或直接運行 python ./src/api_service.py 啟動服務。
- 在 AstrBot 中新增服務提供商,類型選擇 OpenAI,API Base URL 根據 WeClone 的實際部署地址填寫,例如本地部署為 http://localhost:8000/v1,模型填寫 gpt-3.5-turbo,API Key 可隨意填寫。
- 微調后不支持工具調用,需先關掉默認的工具。在消息平臺發送指令 tool off all,否則可能無法體現微調后的效果。
- 根據微調時使用的 default_system,在 AstrBot 中設置系統提示詞,以確保聊天機器人的回復符合預期風格。
WeClone 是一個充滿創意和樂趣的項目,它為我們提供了一個全新的方式來體驗數字世界中的“另一個自己”。
快去嘗試一下吧,說不定你的微信克隆人會給你帶來意想不到的驚喜呢!
- astrbot 聊天機器人:https://astrbot.app/
- weclone Github:https://github.com/xming521/weclone