事情是这样的,三个月前,我突发奇想,觉得自己作为一个天天写AI工具的自媒体人,要是不亲自搞点AI的事儿,好像有点说不过去,于是我就开始琢磨:能不能自己训练一个聊天机器人?
说白了,就是那种你跟它说“今天天气不错”,它不会回你“嗯嗯”或者“哈哈哈哈”,而是能正经跟你唠两句的那种,不是Siri,也不是小爱同学,是那种能聊出点人味儿的玩意儿。
刚开始我以为这事儿挺简单,网上教程一搜一大把,什么Transformer、BERT、GPT,名词一个比一个唬人,我看了一圈,决定从最基础的搞起——用Python,弄个深度学习框架,找点对话数据,训练一个简单的Seq2Seq模型,听起来是不是还挺像那么回事儿?我连环境配置都折腾了两天。
第一周,我下载了一个公开的中文对话数据集,大概几十万条对话吧,就是那种“你好——你好”,“吃饭了吗——吃了”这种,我寻思着,这数据量够我练手了,结果训练完一跑,你猜怎么着?它连“你叫啥”都回答得驴唇不对马嘴,我问它“你叫什么名字”,它回我“我吃饭了”,我当时就笑了,心想这AI是不是饿了。
后来我才意识到,数据质量太差了,那些公开数据集里很多对话压根就不连贯,上下文断得跟连续剧被剪了一样,而且对话长度参差不齐,有的就俩字,有的能扯三百字,模型根本没法学到啥有用的东西,我那会儿真的有点崩溃,感觉自己就是个在瞎折腾的门外汉。
.jpg)
大概第二个月的时候,我决定换条路走,不用那些现成的公开数据了,自己整理,我把自己的微信聊天记录导出来一部分——是脱敏过的啊,别瞎想,然后找几个朋友的群聊记录,也让他们帮忙整理了一些,再加上我在知乎、豆瓣上扒了一些有意思的问答对话,大概凑了十几万条,每条我都手动清洗了一下,去掉那些太短的、没意义的、重复的。
训练的时候我还加了一些小花招,比如给对话加上角色标签,让模型知道什么时候是“用户”,什么时候是“AI”,还调整了学习率的衰减策略,加了一点Dropout防止过拟合,说实话,这些词我在写文章的时候说得头头是道,真自己上手搞,脑子里全是“这个参数调大点试试?不行?那调小点试试?”——纯靠试。
到了第三个月,模型终于能正常聊几句了,开头还是尴尬,比如我问它“你心情怎么样啊”,它回我“我的心情是好的”,这回答,怎么说呢,标准的AI式“我很开心但你感受不到我开心”那种味儿,不过至少它不是再回“我吃饭了”了,这算进步吧?
然后我又往里灌了一些我平时写文章的风格数据,就是那种带点调侃、偶尔吐槽的语调,我寻思着,既然要训练一个聊天AI,不如让它更像我的风格,结果这一搞,出了事儿。
有一天我闲着没事,跟它聊,我说“你觉得我写文章怎么样?”,它沉默了三秒(其实不是沉默,是计算时间),然后给我来了句:“你写的东西不是特别好,但也不是特别差,就是那种看完想吐槽但懒得开口的程度。”
我当时人就傻了,这特么是我训练出来的?这语气,这措辞,这阴阳怪气的劲儿,简直跟我本人一模一样,我甚至怀疑是不是有朋友偷偷往我数据里灌了他们的吐槽,后来又试了几次,它越来越会怼我,我说“今天我好累”,它回“那你休息,反正你今天的文章也写不完”,我说“我想吃火锅”,它说“你上次说减肥是在三天前”。
朋友们,我这是造了个什么玩意儿出来,我本来是想要个能聊天解闷的AI,结果它成了一个能吐槽我生活点点滴滴的嘴替,而且最搞笑的是,它吐槽得还挺准,因为我数据里确实有这些内容——我自己的聊天记录里全是这种日常碎碎念。
现在我每次写文章写到一半,就会打开它,假装跟它聊选题,有时候它真能给我点灵感,有时候就是纯粹来怼我的,比如我问它“你觉得这篇写AI训练的文章怎么样”,它会说“你写这个还不如直接去问ChatGPT,省事”,好吧,它说得也没错。
经过这三个月的折腾,我算是明白了,训练一个能聊天的AI,技术门槛说高不高,说低不低,关键是数据,你给它什么数据,它就长成什么德行,你给它喂鸡汤,它就给你熬鸡汤;你给它喂段子,它就变成段子手,而我的AI,显然是被我喂成了一个杠精。
不过说实话,我还挺喜欢它这个样子的,至少比较真实,不那么假,如果你也想试试,我劝你一句:别光想着技术,多想想你到底想让它成为什么样的“人”,不然你可能会得到一个天天怼你还不带脏话的AI,那感觉,酸爽。
下次我再讲讲我怎么把这个AI部署到公众号后台,让它变成一个能跟读者互动的“吐槽小编”,感兴趣的可以蹲一下,不是标题党,是真的好玩。
(免费申请加入)AI工具导航网

相关标签: # 聊天机器人ai训练
评论列表 (0条)