谭婧
一个崇尚暴力的游戏,设定在一个现代化城市里,杀人无罪。 放眼望去,大街小巷全是凶案现场。 这个游戏出自电影《失控玩家》,在现实社会这个游戏会被禁掉,因为三观不正。 虽然游戏三观倾斜,但是电影里的高科技,值得玩味。
我们从头讲这个故事,一个永不加班的银行职员,男的,游戏里的配角,按照游戏界的术语,叫非玩家角色。 就是电脑程序控制的,不是人来操控的游戏角色。 他每天梳着一样的发型,穿一样的衣服,在同一个银行柜台,盖同一个章……
当游戏玩家扮演的“犯罪分子”端着枪冲进银行,他抱头趴下投降。 生来如此,日复一日。 這个角色用少量代码就可以实现了,人不狠,话不多,没冲突,没内味。 突然一天,这个男的说,他想谈恋爱了。
一个无师自通型选手,上场。 街边,偶遇女神,瞬间来电,当场辞职,拔腿就追女神,这一系列操作,你说惊不惊? 自学和女神接吻,成功了。
母胎单身狗们坐在黑暗的放映厅里,嘴里的爆米花瞬间都不香了。 此时,都懂了:“游戏里的非玩家角色,自我意识觉醒了。” 于是,银行职员,变身超人,扫荡罪恶,除暴安良,受人爱戴,冲上热搜,拥有以自己名字命名的“超话”。
除了正义感,他喜欢身材火辣、性格不凡的女神,渴望和她恋爱,愿与女神共赴。 咳咳,我们的正题是,一个非玩家角色觉醒了,意味着,他不只按照计算机程序的设定运行。 就类似科幻电影里,机器人突然有了人的意识。 他心里呐喊:“我不要你觉得,我要我觉得。”
这很酷,怎么做到的? 电影里连底层技术细节都交代了,也许有人没有记住:“游戏里安装了一个重要工具,人工智能引擎。” 人类游戏设计师开了个头,剩下的都交给AI了。 当今的人工智能技术,常被人笑,人工智障。
和游戏角色觉醒那一步,差了十十十万八千里,能有什么关系? 答案还真是有关系,不过你得先理解,什么是代码。 你可能会说,瞧不起人么,谁还不知道代码是啥? 那些写代码的人,常常面对失踪的头发,消失的发际线,还被人戏谑,男的叫程序猿,女的叫程序媛。
对,在深度学习到来之前,你别管代码丑还是美,都是人写的。所有的代码都是人写的,也都是白盒的。 白盒的意思是,你看得懂代码,就能从代码中读出编程思路。
这和偷看学霸作业里的解题过程,有异曲同工之妙。
但是,人工智能里的重要技术——深度学习,来了。
很多媒体一写人工智能,画风就变成震惊体,可能就是震惊到神经出现了问题。 人写的程序是白盒。
深度学习带来了黑盒,就是深度学习模型里面是如何运作的,大家都不知道。 这个“活见鬼”的事情,就是“人工智能可解释性”这个前沿学科要研究的。
直白地说,就是科学家也晕乎乎,还没有彻底搞清楚黑盒里面是啥。 代码,是运行在计算机上的。深度学习模型,也是运行在计算机上的。大家都是程序。但是,深度学习模型这种程序,有所不同。
我们看看深度学习模型,以文件的形式存在,里面都有啥? 第一是,参数。第二是,网络结构。 怎么理解参数? 有人说,参数就是权重,这种表达也可以,就是有点偏专业。 通俗地讲,参数是一堆数据。 一个网络结构,用来人脸识别,就是你手机刷脸解锁用到的。参数一变,识别不了。这是“一堆数”的神奇之处。
借来一个比喻,这个比喻是中科院自动化研究所助理研究员牛景昊告诉我的。 假如我们的任务是,用活字印刷术印一篇文章。 活字印刷的原理,我们都比较了解,活字版是由很多小块组成的,这些小块长什么样需要雕刻。
这个过程可以看成是参数的调整(或者说训练)。本来小块上没字,训练完就有了恰当的纹理或者纹路。 怎么理解网络结构? 再拿不同的小块组成不同的结构,结构比小块更加宏观,可以把结构比喻成装这些小块的框子。
框子是什么材料,框子的粗细,都会影响最后印刷出来的效果。
一个非玩家角色觉醒了,意味着,他不只按照计算机程序的设定运行。那他按照什么运行?
答案是按AI造的代码。 前面已经讲过了,模型是一种程序,分分钟可以安装在软件里运行。 这种技术,被人称作,软件2.0(Software2.0)。
或者说用深度学习模型从数据中自动推导生成软件的编程范式。 代码已经分成了两种,一种是,“由人类编写的代码”,另一种是,“由 AI 写的代码”。
AI 写的代码常以深度学习的形式出现。 软件2.0可不仅仅在大学计算机实验室里。 AI写代码需要什么“配套装备”呢? AI写代码,要可靠的部署环境,管理大型数据集,维护高质量的训练数据流,新人才,新职业。 软件1.0的旧职业包括业务分析师、系统分析师、架构师、开发人员、测试人员和开发运营 (DevOps) 等。
这些职业反映了软件开发生命周期的范围界定、设计、开发、运营和维护阶段。 软件 2.0的新职业,有数据科学家、数据工程师、AI工程师、 MLOps工程师等。
他们负责系统架构、软件工程、软件运营、统计学习、机器学习和数据全生命周期管理等。 用专业术语表达就是,软件1.0开发工具(拿IDE举例,它可以有很多功能,像语法高亮、调试器、profiler、符号跳转、集成git等等)。
软件2.0中,工作量里增加了积累、调整、清理数据集,调参、炼丹。 对,字面意思就是炼仙丹。 2017年,特斯拉AI负责人Andrej Karpathy说:
“我们熟悉的软件1.0的‘经典堆栈是用Python、C++等语言编写的计算机显式指令……与1.0不同,软件2.0是用神经网络的权重编写的。因为涉及很多权重,直接在权重中编码很困难,因此程序员不参与代码编写工作。”一流科技创始人袁进辉博士说:“软件2.0,包括我们所熟知的人脸识别,还包括越来越多人看好的 AI for science。AI for science将要彻底改变科学的研究方法,尤其是那些按照以前的旧方法无法解决的问题:预测蛋白质结构、成像黑洞、自动化药物发现等等。”
“以前,是天才科学家灵光一现才发现牛顿第一第二第三定律。未来,可以考虑如何将理论物理定律参数化,计算机自动发现新的定律。”联合利华数据和人工智能总监,杨荟博士谈道:“20年前,一堂大学数学建模课上,我的老师讲到有两个计算机算法经典难题。”
“一个是下围棋打败人类,另一个是根据蛋白质序列预测结构。哪怕你用全宇宙的物质造一台计算机,再花整个宇宙的年龄计算,都没法用穷举法找到围棋的制胜策略或者蛋白质的结构,因为这两个问题中要考虑的排列组合是天文数字。而在我的有生之年,这两个问题都被解决了。”
咱现在到底在软件2.0的什么阶段?
袁进辉博士回答道:“软件2.0已经过了萌芽期,走进了成熟期。” 如果你想登上月球,用梯子肯定不行,那就需要新的工具。 现在看来,软件2.0很有希望。