关于将QQ机器人与深度学习NLP结合的可能性
-
自动记录群友的消息,并在预训练语言模型的基础上迁移学习群友的聊天记录,训练语言模型并进行简单的文本生成
上面提到的只是个想法。
想法来源是最近在阅读NLP相关书籍的时候想到,群里每天聊天记录那么多,用QQ机器人可以很方便的收集信息,既然有那么多
法典优质语料,有没有办法让两者结合起来,训练一个模仿群友说话风格的AI呢?其实我第一反应是想到之前在论坛里见到过的Chat-Learning插件,结果我打开才发现并不是真正的机器学习。
大致了解了一下,之前也有大佬做过mirai的py的简单api项目myrai,正好功能完全足够了。
考虑到如果放在某偶像粉丝群或者虚拟主播粉丝群之类的地方,说话风格比较统一
(都载着理发店),一天也能有1000-2000条消息,过滤掉图片和一些不适合训练的消息的话,一段时间下来的数量也是可观的,模型可能大概15天~1个月就可以收敛了。大致需要实现的功能就是记录群友说话,然后定时同步到云端算力平台进行预处理和训练。如果数据量不大的话也可能可以直接用myrai写插件,然后插件定时直接在本地训练,因为是每天都训练一次,一次大概就两三个epoch,时间十分充裕,对算力要求也就没那么高。
个人感觉还是有可能实现的,但是由于数据量其实还是太少,模型也不可能多复杂,效果估计一般,假如能训练出来,模型生成的文本能正常对偶像和主播示爱就已经够逆天了,也不指望训练seq2seq之类的聊天机器人了
-
也许可以试试看,只要有数据的话。现在规模较大的中文预训练模型也有,可以拿来做微调
-
@RainChan 就我那小服务器哪敢跑啊,想白嫖云端算力但是我还不知道怎么给飞桨、colab和kaggle之类的算力平台更新数据。感觉唯一能想到的方法就是定时推到云盘然后云端定时获取了orz
-
@Mitr-yuzr 先训练第一版的模型然后定期更新可能是不错的主意
-
@Mitr-yuzr 我有试过拿着这些聊天记录去跑模型,但是出来的结果不尽人意。
因为群友聊天比较杂且抽象,噪声的过滤是个难题,最后跑出的效果也不太好,我就没做下去了 -
@Koreyoshi 想请教一下使用的是哪种模型,有没有使用预训练的模型和对聊天记录进行预处理呢?
个人感觉选群的影响也比较大,我个人觉得偶像或者主播的粉丝群一类的群能解决聊天比较杂和数据量过少的问题。抽象在现代聊天基本不可避免,太过抽象的话预处理确实可能会起到反效果,训练出来效果肯定也会变差,假如是完全端对端的模型不知道能不能解决这个问题。 -
群聊天数据感觉不行 有点散 每条信息的关联度不高 很难区分是对那一条信息的回复吧
-
@dqfe123 只是训练NLG的语言模型啊,不是对话机器人。
而且目的只是为了模仿群友说话,并非特定业务的问答和回复,每条信息都作为上一条的回答和下一条的问题即可,只不过训练效率会比较低。 -
说的就是 群聊 上下句是没有关系的
-
@dqfe123 你得了解一下NLG的语言模型和seq2seq对话模型的区别……
我想训练的是用于生成模仿群友说话风格的文本的语言模型,不是用来做聊天机器人的模型,压根不需要上下文 -
用过chatleaning以后我也一直有这种想法 感觉会很有意思 奈何本人技术力不够没法实现(哭)
-
如果大家能把chatleaning收集到的数据都分享出来也许可以尝试进行训练
-
@Mitr-yuzr 用的是gpt2预训练模型,参考的是这个项目写的。对语料只是做了一些简单的过滤,如果不是作为聊天机器人,单单模仿群友说话,我觉得还是可以的![dabd9480-7a40-4195-8682-89c88a94b4ef-BT96MX2%JM2P$~{VR}TZGM.png
-
@Koreyoshi 看的出来群友的聊天内容确实很抽象
个人感觉通过聊天记录去训练聊天机器人的话,判断问题和回答比较困难,而且数据量还是不太够,但是理论上训练聊天机器人还是可行的 -
我之前以为chatlearning已经实现了,本来是有想法之后想起这个插件想去研究一下大佬怎么做的,点进去才发现也没有(
-
这几天试着用一些来自网络的数据集训练了一些gpt2模型,大概有些想法了。
打算等有时间先写一个能且仅能收集聊天数据并方便导出数据集的NLP插件,配合colab进行简单的训练和生成。不过具体效果就不知道了。 -
-
插件已经做好了,下一步打算尝试训练
NLPHelper - 自然语言处理模型训练数据采集专用插件 -
我用单向的gpt2训练了另一个模型,效果感觉很容易变成偷语料。作为文本生成来说可能会减分,但我们的目的是学习群友说话,对于短文本来说其实这样正好,应该是加分。
-
nlp训练教程国庆出
-
@Mitr-yuzr 催更催更 这几天已经收集到将近三万条数据了