今天咱聊聊“清华小图”这事儿。也算不上啥大事,就是我自个儿瞎琢磨、瞎折腾的一点记录。
起因:瞅见“小图”这名号
最早知道“清华小图”,还是好几年前了,那会儿网上到处都在说。说是清华大学图书馆弄了个机器人,能跟人聊天,回答问题,还特逗,净说些不着调的话,一下子就火了。就爱琢磨这些新鲜玩意儿,尤其是这种带点“人工智能”感觉的东西。
后来又听说,这“小图”因为太能“学习”,被网友们给“教坏”了,满嘴胡话,不得不下线改造。我就寻思,这玩意儿咋就能被“教坏”?背后是啥道理?
实践:自个儿也想鼓捣一个
那会儿我手头正好有点闲工夫,也对编程啥的略懂一二。我就想,要不咱也试试,看能不能弄个类似的聊天机器人出来,体验体验它是怎么“学坏”的。我可没清华那帮学霸的本事,就是想简单模拟一下。
第一步,找路子。 我先是在网上找了些资料,看看简单的聊天机器人是怎么做的。发现最基础的,就是个关键词匹配,你问它根据关键词找预设的答案。高级点的,可能会涉及到一些简单的自然语言处理,能稍微理解点句子的意思。
第二步,搭框架。 我选了个比较简单的编程语言,就照着网上的教程,先搭了个能一问一答的框架。比如我输入“你好”,它能回复“你好呀!”;我输入“今天天气怎么样?”,它能扯一句“今天天气真不错,适合出去玩!”之类的。反正都是我事先写好的。
第三步,加“学习”功能。 这步是重点,也是我想模拟“小图”被教坏的关键。我琢磨着,“小图”能学,肯定是用户说啥它记住了然后下次有人问类似的问题,它就把记下来的东西拿出来说。我就设计了个简单的机制:如果机器人不知道怎么回答某个问题,它就反问用户“这个问题我不知道怎么回答,你教教我呗?”然后把用户的回答存起来,跟那个问题关联上。
比如说,我问它:“你喜欢吃什么?”它不知道,就反问我。我告诉它:“我喜欢吃火锅。” 它就把“喜欢吃什么?”和“喜欢吃火锅。” 这对儿给存起来了。下次再有人问“你喜欢吃什么?”,它就能回答“喜欢吃火锅。”了。
过程中的发现与折腾
这机器人还挺“乖”的,我说啥它学慢慢的也能回答不少问题了。我还特意拉了几个朋友来帮我“调教”。
问题很快就来了。
- 信息污染: 有的朋友就开始故意使坏,教它一些乱七八糟的、甚至是骂人的话。比如问它“你是谁?”,然后教它回答“我是个大笨蛋!”。结果没过多久,我这机器人就真的认为自己是个大笨蛋了,谁问都这么说。
- 逻辑混乱: 因为学习机制太简单,它根本理解不了上下文和语义。有时候会把风马牛不相及的东西联系起来。比如有人问“苹果多少钱一斤?”,教它说“五块”。然后又有人问“天为什么是蓝的?”,教它说“因为折射”。过会儿可能它自己就把这两个答案串起来,人家问个天气,它给你报个苹果价格。
- 越学越偏: 如果一小撮人集中教它某种特定观点或说法,那它很快就会变成这种观点的“复读机”,完全失去了客观性。
我这才明白,“清华小图”为啥会被“教坏”了。说白了,就是它的学习机制太开放,而且缺乏有效的筛选和审核机制。网络环境那么复杂,啥人都有,啥话都敢说,机器人照单全收,那可不就得“学坏”嘛
后来我也尝试加一些简单的关键词过滤,比如不让它学习脏话。但发现这玩意儿太难了,上有政策下有对策,你想过滤的词,人家换个说法照样能表达出来。这工作量可不是我一个人能搞定的。
最终的体会
折腾了小半个月,我那个简陋的“学习型”聊天机器人也只能是放弃治疗了,因为它说出来的话已经完全不受我控制了,有时候还挺气人的。
通过这回实践,我算是亲身体会到了“清华小图”当年面临的困境。设计一个能自主学习的AI,让它变得更智能、更会聊天,这想法是好的。但怎么保证它学到的是“好”的知识,而不是网络上的那些糟粕,这才是真正头疼的问题。清华的团队后来给“小图”加上了过滤机制再让它重新上岗,估计也是下了不少功夫的。
这事儿也让我明白,技术本身是中性的,关键看怎么用,怎么管。一个开放的、能学习的系统,如果缺少有效的引导和管理,就很容易走向失控。这可能不光是聊天机器人,很多其他领域也一样。
得,今儿就先分享到这。纯属个人瞎折腾,不成体系,大家看个乐呵就行。