V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yueji
V2EX  ›  机器学习

如何搭建一个基于聊天记录 训练的 AI 对话机器人

  •  
  •   yueji · 2023-11-03 16:19:48 +08:00 · 1472 次点击
    这是一个创建于 386 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天小米 13 换 小米 14
    将微信数据迁移到新手机,看到微信需要迁移数据有 40 多 G
    我就在想,这不是积累了我几年的聊天记录么?
    如果拿来训练一个聊天 AI 的话.是不是挺有意思的
    另一个自己?
    怎么训练呢?有没有熟悉这块的老板给点思路.
    5 条回复    2023-11-05 21:00:35 +08:00
    zcf0508
        1
    zcf0508  
       2023-11-03 16:20:57 +08:00 via Android
    cloud2000
        2
    cloud2000  
       2023-11-03 16:42:20 +08:00   ❤️ 1
    上面那份指南已经过时了,现在都是用更加新的微调工具:

    https://github.com/hiyouga/LLaMA-Factory
    yanyao233
        3
    yanyao233  
       2023-11-04 19:07:32 +08:00 via Android
    几个月前刚训练过一个,安卓手机的话需要把微信数据库导出并解密 https://github.com/greycodee/wechat-backup
    然后导出 contact 和 message 表,我先是对导出的表进行了清洗,把非目标群聊/联系人的聊天数据和大部分根本不需要的字段全部删除,删除不使用的聊天记录类型(比如图片啥)然后再清洗掉个人敏感信息

    对于数据集生成,我的思路是
    1.群聊: 先筛选出我发送的消息,然后向上追溯一分钟之内的其他人的消息作为一组对话(我这里没考虑引用回复),一天内的消息均作为上下文(但实际上我并不推荐使用群聊消息,现在并没有成本低且效果很好的方式来分割聊天,第三次训练时我去掉群聊的数据集,胡言乱语的情况好了很多)
    2.联系人: 一问一答为一组对话,多条连续消息合并,一天内为上下文
    最后总共有 8k 条聊天记录

    我当时使用的 chatglm2 模型,lora 和 pt 都试了,lora 效果好太多,最终 15steps 的 loss 稳定在 1.0 左右

    效果怎么说呢...确实金句频出,但记忆力明显下降,并且指令服从性几乎没有,也就仅仅能用来聊天了。

    另外,我多次尝试让他认识到自己是谁,无论是通过数据集强化的方式,还是靠推理时增加 system prompt ,都无法达到效果...
    yueji
        4
    yueji  
    OP
       2023-11-05 19:51:57 +08:00
    @yanyao233 大佬能出个教程吗? Mistral 7B 这个模型行不行啊?
    yanyao233
        5
    yanyao233  
       2023-11-05 21:00:35 +08:00
    @yueji 没听过这个欸...看了一下似乎是英文的模型?恐怕中文不行吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1206 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:21 · PVG 02:21 · LAX 10:21 · JFK 13:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.