WeClone 打造微信版“打工人”

在ai大行其道的时代,类似***ai技术出现,**工作或将被取代的类似消息铺天盖地。

是在自己的工作将被ai取代的忧虑里越来越焦虑;

还是让ai成为我们的”影分身”替我们完成工作,让自己从重复的”问答服务”中解放出来,让工作变得更有效率呢?

做完从业n年,有无数已完成开发,进入维护期的代码开发打工人,你有没有明明发布了详尽的“操作手册”、“使用说明”、“视频教程”,依然避免不了被“用户们”不停提问如何操作的困扰。

有没有“幻想过”召唤“影分身”替你回答类似的提问、作同类型的科普等……

祝贺——幻想照进现实了!

WeClone 是什么?

WeClone 打造微信版“打工人”

简言之,weclone是gitHub上一个可以用微信聊天记录,训练出一个“数字替身”的开源项目。

它通过微调大语言模型(LLM),让模型模仿用户的语言风格、语气,甚至可以接管社交账号发送消息。

核心功能

  • 聊天记录微调:基于用户的微信聊天记录对大语言模型进行微调,使模型能够生成符合用户风格的回复。
  • 语音克隆:结合微信语音消息和轻量级 Tacotron 或 WavLM 模型,利用约 0.5B 参数规模的语音克隆网络,重现用户的语气语调,进一步增强数字分身的真实感。
  • 隐私保护:自动过滤敏感信息,如手机号、身份证号、邮箱等,支持本地化部署,确保数据安全。
  • 多平台支持:可以将微调后的模型绑定到微信、QQ、Telegram、企微、飞书等平台的机器人,实现跨平台的聊天式交互。
  • 环境搭建

    1、从github上下载项目

    2、创建python环境并激活

    cd WeClone
    uv venv .venv --python=3.10
    source .venv/bin/activate 

    3、安装依赖

    uv pip install --group main -e .

    4、复制配置文件

    uv pip install --group main -e .

    数据准备和处理

    1、提取微信聊天记录,导出CSV类型的文件,存放在项目目录的 ./data/csv下。

    2、数据脱敏,去掉个人身份等敏感信息。

    ./make_dataset/csv_to_json.py

    配置参数调整模型

  • 修改 settings.jsonc 的 per_device_train_batch_size 以及 gradient_accumulation_steps 来调整显存占用。
  • 可以根据自己数据集的数量和质量修改 train_sft_args 的 num_train_epochs、 lora_rank、 lora_dropout 等参数。
  • 开始训练模型

    安装deepspeed,选择使用的显卡数量,开启训练

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

    启动推理服务

    python ./src/web_demo.py

    可以使用浏览器访问指定端口,进行推理。

    复杂推理使用接口

    1、启动 API 服务

    python ./src/api_service.py

    2、访问接口进行推理

     import requests
       response = requests.post('http://localhost:8088/invoke', json={'prompt': '开始推理'})
       print(response.json())

    部署到聊天机器人

    以 AstrBot 为例:

    第一,进行 AstrBot 的部署工作,并于其中部署消息平台。此过程可参考其官方文档——AstrBot 文档。

    随后,启动 WeClone 的 API 服务。若采用本地部署方式,可执行命令“weclone-cli server”,或者直接运行“python ./src/api_service.py”来启动服务。

    接着,于 AstrBot 中新增服务提供商。类型选择为 OpenAI,API Base URL 需依据 WeClone 的实际部署地址进行填写。例如,若为本地部署,填写“http://localhost:8088/v1”;模型填写“gpt – 3.5 – turbo”,API Key 可任意填写。

    需要注意的是,微调之后不支持工具调用,故而需预先关闭默认的工具。可在消息平台发送指令“tool off all”,否则可能无法彰显微调后的效果。

    最后,根据微调时所使用的 default_system,在 AstrBot 中设定系统提示词,以此确保聊天机器人的回复契合预期风格。

    总结

    WeClone网络上clone出“另一个自己”,自动帮你回答问题,解答疑问,解放你的时间,带来意想不到的收获!

    © 版权声明
    THE END
    如果内容对您有所帮助,就支持一下吧!
    点赞0 分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容