MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    关于将QQ机器人与深度学习NLP结合的可能性

    技术交流板块
    6
    23
    2538
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Mitr-yuzr
      Mitr-yuzr 摸鱼 最后由 编辑

      自动记录群友的消息,并在预训练语言模型的基础上迁移学习群友的聊天记录,训练语言模型并进行简单的文本生成


      上面提到的只是个想法。

      想法来源是最近在阅读NLP相关书籍的时候想到,群里每天聊天记录那么多,用QQ机器人可以很方便的收集信息,既然有那么多法典优质语料,有没有办法让两者结合起来,训练一个模仿群友说话风格的AI呢?

      其实我第一反应是想到之前在论坛里见到过的Chat-Learning插件,结果我打开才发现并不是真正的机器学习。

      大致了解了一下,之前也有大佬做过mirai的py的简单api项目myrai,正好功能完全足够了。

      考虑到如果放在某偶像粉丝群或者虚拟主播粉丝群之类的地方,说话风格比较统一 (都载着理发店) ,一天也能有1000-2000条消息,过滤掉图片和一些不适合训练的消息的话,一段时间下来的数量也是可观的,模型可能大概15天~1个月就可以收敛了。

      大致需要实现的功能就是记录群友说话,然后定时同步到云端算力平台进行预处理和训练。如果数据量不大的话也可能可以直接用myrai写插件,然后插件定时直接在本地训练,因为是每天都训练一次,一次大概就两三个epoch,时间十分充裕,对算力要求也就没那么高。


      个人感觉还是有可能实现的,但是由于数据量其实还是太少,模型也不可能多复杂,效果估计一般,假如能训练出来,模型生成的文本能正常对偶像和主播示爱就已经够逆天了,也不指望训练seq2seq之类的聊天机器人了

      1 条回复 最后回复 回复 引用 0
      • RainChan
        RainChan 摸鱼 最后由 编辑

        也许可以试试看,只要有数据的话。现在规模较大的中文预训练模型也有,可以拿来做微调

        Mitr-yuzr 1 条回复 最后回复 回复 引用 0
        • Mitr-yuzr
          Mitr-yuzr 摸鱼 @RainChan 最后由 编辑

          @RainChan 就我那小服务器哪敢跑啊,想白嫖云端算力但是我还不知道怎么给飞桨、colab和kaggle之类的算力平台更新数据。感觉唯一能想到的方法就是定时推到云盘然后云端定时获取了orz

          RainChan Koreyoshi 2 条回复 最后回复 回复 引用 0
          • RainChan
            RainChan 摸鱼 @Mitr-yuzr 最后由 编辑

            @Mitr-yuzr 先训练第一版的模型然后定期更新可能是不错的主意

            1 条回复 最后回复 回复 引用 0
            • Koreyoshi
              Koreyoshi @Mitr-yuzr 最后由 编辑

              @Mitr-yuzr 我有试过拿着这些聊天记录去跑模型,但是出来的结果不尽人意。
              因为群友聊天比较杂且抽象,噪声的过滤是个难题,最后跑出的效果也不太好,我就没做下去了

              Mitr-yuzr 1 条回复 最后回复 回复 引用 0
              • Mitr-yuzr
                Mitr-yuzr 摸鱼 @Koreyoshi 最后由 编辑

                @Koreyoshi 想请教一下使用的是哪种模型,有没有使用预训练的模型和对聊天记录进行预处理呢?
                个人感觉选群的影响也比较大,我个人觉得偶像或者主播的粉丝群一类的群能解决聊天比较杂和数据量过少的问题。抽象在现代聊天基本不可避免,太过抽象的话预处理确实可能会起到反效果,训练出来效果肯定也会变差,假如是完全端对端的模型不知道能不能解决这个问题。

                1 条回复 最后回复 回复 引用 0
                • D
                  dqfe123 最后由 编辑

                  群聊天数据感觉不行 有点散 每条信息的关联度不高 很难区分是对那一条信息的回复吧

                  Mitr-yuzr 1 条回复 最后回复 回复 引用 0
                  • Mitr-yuzr
                    Mitr-yuzr 摸鱼 @dqfe123 最后由 编辑

                    @dqfe123 只是训练NLG的语言模型啊,不是对话机器人。
                    而且目的只是为了模仿群友说话,并非特定业务的问答和回复,每条信息都作为上一条的回答和下一条的问题即可,只不过训练效率会比较低。

                    1 条回复 最后回复 回复 引用 0
                    • D
                      dqfe123 最后由 编辑

                      说的就是 群聊 上下句是没有关系的

                      Mitr-yuzr 1 条回复 最后回复 回复 引用 0
                      • Mitr-yuzr
                        Mitr-yuzr 摸鱼 @dqfe123 最后由 编辑

                        @dqfe123 你得了解一下NLG的语言模型和seq2seq对话模型的区别……
                        我想训练的是用于生成模仿群友说话风格的文本的语言模型,不是用来做聊天机器人的模型,压根不需要上下文

                        1 条回复 最后回复 回复 引用 0
                        • 南栀沁寒
                          南栀沁寒 最后由 编辑

                          用过chatleaning以后我也一直有这种想法 感觉会很有意思 奈何本人技术力不够没法实现(哭)

                          1 条回复 最后回复 回复 引用 0
                          • RainChan
                            RainChan 摸鱼 最后由 编辑

                            如果大家能把chatleaning收集到的数据都分享出来也许可以尝试进行训练

                            Mitr-yuzr 1 条回复 最后回复 回复 引用 0
                            • Koreyoshi
                              Koreyoshi 最后由 编辑

                              @Mitr-yuzr 用的是gpt2预训练模型,参考的是这个项目写的。对语料只是做了一些简单的过滤,如果不是作为聊天机器人,单单模仿群友说话,我觉得还是可以的![dabd9480-7a40-4195-8682-89c88a94b4ef-BT96MX2%JM2P$~{VR}TZGM.png

                              Mitr-yuzr 1 条回复 最后回复 回复 引用 0
                              • Mitr-yuzr
                                Mitr-yuzr 摸鱼 @Koreyoshi 最后由 编辑

                                @Koreyoshi 看的出来群友的聊天内容确实很抽象
                                个人感觉通过聊天记录去训练聊天机器人的话,判断问题和回答比较困难,而且数据量还是不太够,但是理论上训练聊天机器人还是可行的

                                1 条回复 最后回复 回复 引用 0
                                • Mitr-yuzr
                                  Mitr-yuzr 摸鱼 @RainChan 最后由 编辑

                                  我之前以为chatlearning已经实现了,本来是有想法之后想起这个插件想去研究一下大佬怎么做的,点进去才发现也没有(

                                  1 条回复 最后回复 回复 引用 0
                                  • Mitr-yuzr
                                    Mitr-yuzr 摸鱼 最后由 编辑

                                    这几天试着用一些来自网络的数据集训练了一些gpt2模型,大概有些想法了。  
                                    打算等有时间先写一个能且仅能收集聊天数据并方便导出数据集的NLP插件,配合colab进行简单的训练和生成。不过具体效果就不知道了。

                                    1 条回复 最后回复 回复 引用 1
                                    • Referenced by  Mitr-yuzr Mitr-yuzr 
                                    • Mitr-yuzr
                                      Mitr-yuzr 摸鱼 最后由 编辑

                                      插件已经做好了,下一步打算尝试训练
                                      NLPHelper - 自然语言处理模型训练数据采集专用插件

                                      1 条回复 最后回复 回复 引用 1
                                      • Mitr-yuzr
                                        Mitr-yuzr 摸鱼 最后由 编辑

                                        我用单向的gpt2训练了另一个模型,效果感觉很容易变成偷语料。作为文本生成来说可能会减分,但我们的目的是学习群友说话,对于短文本来说其实这样正好,应该是加分。

                                        1 条回复 最后回复 回复 引用 2
                                        • Mitr-yuzr
                                          Mitr-yuzr 摸鱼 最后由 编辑

                                          nlp训练教程国庆出

                                          南栀沁寒 1 条回复 最后回复 回复 引用 0
                                          • 南栀沁寒
                                            南栀沁寒 @Mitr-yuzr 最后由 编辑

                                            @Mitr-yuzr 催更催更 这几天已经收集到将近三万条数据了

                                            Mitr-yuzr 1 条回复 最后回复 回复 引用 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact