想象一个故事
假设在一次朋友聚会中,你认识了一个新朋友,然后互加了微信,同时你的朋友圈是对好友开放半年的。短暂的沉默后,你们就在微信上聊了起来。ta很有心,刚加上你就把你的朋友圈都看了一遍,凭着只有半年的动态,在之后的聊天中,ta仿佛是世界上最了解你的人。
你说的很多上一句,ta都能接住下一句;你们还会脱口而出同一句话,甚至ta说的不但是你的意思,还比你说的或更有深度、或更幽默、或更高级。有时候,你分享给ta几分钟前发生在你身上的一件事,ta不但能完全理解你的感受,而且是替你说出来的那种,而不仅仅是一句“我理解”。
ta每天都与你这样聊着,然后呢,你可能就沦陷了?这时候国家反诈中心就要跳出来警告:“醒醒,这是杀猪盘!”
我就遇到了这样的“人”,不过还好,一切只发生于我写代码的时候,ta不是一个人,ta是一个AI,ta正是GitHub Copilot。
GitHub Copilot体验
AI、Artificial Intelligence、人工智能,已经家喻户晓了。手机上的“小爱同学”、Siri,电脑上的“Cortana小娜”,还有什么智能音箱,甚至各种信息流App例如某头条、某音里的“猜你喜欢”,都是AI的现实应用。
GitHub Copilot是一款基于AI的、应用于写程序场景的工具,其作用是在程序员写程序的过程中,帮忙写出接下来的一句或者一段代码。我等了两个礼拜终于等到了测试资格,赶快上手体验了两个小时。

下图是官方的一个展示,一开始只写了一句话注释表明我想干什么,然后Copilot自己便生成了一整段正确的代码。(网站上的展示有很多,大家可以上 https://copilot.github.com 自行观看)
最开始看到官方一些展示和国外的评测的时候,我感觉虽然很惊艳但是对我不太有用,毕竟我既不会用英文写注释,也不会用英文去表达一个函数方法名。
但在两个小时的体验中,我持续不断地经受着视觉冲击,不断在心里涌现出“天啊”“这也行”“太可怕了”的感受。
在上图里,都是要我先用各种方式——无论是注释还是函数名——描述自己接下来想做什么,然后它给出建议。这让我觉得有点刻意和割裂感,可能是因为我习惯先写代码后写注释。
但实际体验完全不止这样:它在我停止敲键盘的任何一刻,就给出了接下来的对本行代码内容补全的建议;亦或在我敲下回车的时候,就给出了下一行的代码内容;亦或是我先写了几行代码,然后想再写类似的、换了个别词语的几行,它就能直接给出来。
这便是视觉冲击所在,只要我停下来,它就会蹦出来它认为我接下来想写的内容,而且延迟基本不会慢于我的思考速度。最让人震惊的是,它帮我写的内容70、80%是我想要的,甚至还有备选项的功能,如果不是我想要的结果还能再换一个。
在我兴奋、震惊之余,最让我痛苦的是,如何把这个感受描述给非技术的朋友,于是就有了开头的故事。
未来AI的样板
在我所工作的金融科技领域,一部分工作内容是将AI在现实中落地。我在这个领域已经工作四年多了,AI真正走入产业界也差不多有这些年头。这些年,我见过几十份上百份关于AI的PPT,见过一些知名AI公司将方案落地时的效果,但除了刚接触AI的时候,再也没有能让我像现在这样兴奋的时刻。在那个时刻,科技的力量直击灵魂,让我用颤抖的双手打下了一段感想发了个动态,接着还不过瘾,扩展成了现在呈现出来的文章。
因为之前几乎没有产品能够提供这样低门槛、顺滑无缝衔接、准确的体验。
它的使用门槛之低,用户只需要在上文提到的网站(或点击阅读原文)中去登记一下排队,等排到了下载一个插件装在自己的IDE(Integrated Development Environment,开发程序的工具)就完成了。而以往的to C的AI产品要么要登上他们的网站使用,要么要专门写程序调API。
顺滑和准确在前文已经讲过,就不再赘述。
GitHub Copilot是未来AI的样板,它能够有效解决每个人的难题,能够持续为每个人提供服务,但又让你经常忘了它的存在,因为它会在你需要的时候就伸出援手,而不用你傻傻地先说一句“Hey Siri/小爱同学/天猫精灵”。
海王是如何诞生的
之前看过一句话,“你以为的对方与你投缘只是ta在向下兼容”。你碰见一个人与你相处十分愉快,颇有高山流水伯牙绝弦之感,或者感觉就是你的the One,结果对方只是比你更见多识广罢了,ta今天是你的soulmate,明天也可以是别人的soulmate。这也是GitHub Copilot的真相。
Copilot是GitHub和OpenAI的联合产物。GitHub是世界上最大的代码托管社区,无数影响甚至改变世界的代码在此开源公布;OpenAI是一家AI研究组织,最著名的成果是GPT-3。
GPT-3是一个预训练的语言模型,它应用于AI的一个分支NLP(Natural Language Processing,自然语言处理)领域。所谓自然语言,就是人在现实生活中的文字、对话;NLP技术就是让计算机程序能够理解自然语言所表达的意思,以及生成阅读起来不奇怪的文字;所谓预训练,就是指这个AI在应用到具体场景之前,先使用通用的数据做了一次训练,而在GPT-3的模型中含有惊人的1750 亿个参数(参数越多越复杂,理解成解方程)、450TB的语料库(相当于247万亿个汉字)。
GitHub Copilot应用到的是一个具体的场景——写程序,它还基于GitHub中丰富的代码进一步得到训练,获得了更专业的领域知识。
于是,Copilot就仿佛是一个世界上学识最渊博的人(使用了最大的语料库和最多的参数),又有最深入的专业见识(写代码领域),只需要简单地看看我半年的朋友圈(它是装在IDE的插件,我猜测在打开一个程序工程的时候,它会读取并学习工程里的所有代码)就能对我在写的东西了如指掌。
这就是见多识广后的向下兼容,它同时接触着世界上无数的程序员,给无数的我的同类带去“它是世界上最懂我的人”的体验,它不是中央空调,它是分布式的海王。
我,只是它大海里的一条小鱼罢了。
海离得开鱼,但在这两个小时过后,鱼却离不开海了。
