人们都说它是个人工智能聊天软件,能够回答各种问题,还能编故事、写诗,并且通晓多种语言。其实,计算机只是个能快速运算的机器。要指令它进行运算还必须要用它能够懂得的语言来进行编程。
计算机语言是与计算机一起发展起来的。
艾达·勒芙蕾丝伯爵夫人
最早为计算机开发语言的是艾达·勒芙蕾丝伯爵夫人(AdaLovelace,1815—1852)。艾达的父亲是著名英国诗人乔治·拜伦(GeorgeByron,1788—1824)。拜伦激情讴歌人性、自由和爱情的诗歌是西方文学的丰碑。不过他的婚姻却不和谐。艾达出生不久,她的母亲就与拜伦分手,带着她离开了伦敦。所幸的是艾达从小受到了很好的教育。
1832年
艾达结识了查尔斯·巴贝奇(CharlesBabbage,1791—1871)。巴贝奇是英国皇家学会院士,曾任剑桥大学教授并创建了英国科学促进会。艾达把巴贝奇当作导师,对他设计的机械式计算机特别感兴趣,并和他一起研究如何使用计算机。
1835年
艾达与勒芙蕾丝伯爵结婚,因此获得了伯爵夫人的头衔(图1)。艾达生下三个子女,但一直没有放弃与巴贝奇的合作。她仿照当时的提花织布机设计了一个表格式的计算机语言,却一直没有发表。
1852年
艾达病逝,终年37岁。
1953年
图1,艾达·勒芙蕾丝伯爵夫人
阿隆佐·邱奇
艾伦·图灵
1936年,美国数学家阿隆佐·邱奇(AlonzoChurch,1903—1995)和他的研究生艾伦·图灵(AlanTurning,1912—1954)提出了邱奇-图灵可计算理论(Church-Turningthesis):所有有限的数学问题(如解方程、微分、积分等等)均能用有限的数学公式通过有限的步骤计算出来(图2)。
图灵首先想到了这个理论,他还发明了“算法”(Algorithm)这个词。这一工作开创了计算数学这个新的研究领域。
邱奇是普林斯顿大学的教授,晚年转到加州大学洛杉矶分校执教,退休后安享晚年,活到了92岁。
后来美国计算机学会设立了以他命名的图灵奖,这个奖是计算机领域的最高荣誉。另外苹果公司那个缺了一块的苹果logo也是为纪念他而设计的。
图2,阿隆佐·邱奇(左)与艾伦·图灵(右)
1940年代,真空管电子计算机诞生。计算机语言也应运而生。
最早的计算机语言叫做汇编语言(Assemblylanguage)。当时的计算机只用于计算,因此汇编语言只是指令计算机如何读取数据,做加法(减法是加负数,乘法可以化作一系列加法,除法是乘上倒数),保存数据等等。
汇编语言的词汇不多,每一个词汇对应于一个计算机所使用的“0101…”式编码。数据也要转化成“0101…”式的二进制数值。1980年我在华南理工大学读硕士研究生时还学过这种语言。
1950年代,晶体管计算机诞生,“高级”语言也随之出现。
1960年代出现了以逻辑学为基础的人工智能语言“LISP”(后来又变成“CommonLISP”)。但更加成功的是“BASIC”。后来微软公司改进了这个语言并把它作为主要工具。它的特点是可以一边编写一边编译,错了马上就能发现。
丹尼斯·里奇
1972年美国计算机学家丹尼斯·里奇(DennisRitchie,1945—2011)发明了“C”语言。里奇出生于纽约,父亲是贝尔实验室的工程师。他从小聪明过人,学习成绩非常优秀。他在哈佛大学获得学士和博士学位后加入贝尔实验室。先是开发出“UNIX”计算机操作系统,接着又开发出了C语言。
这一语言具有结构清晰、扩展性强等特点。苹果计算机用的就是这个语言。后来的许多计算机语言(如“C++”、“Java”、“Javascript”、“Python”等)都是从它衍生出来的。
1983年里奇荣获“图灵奖”,1988年入选美国工程院院士,1999年荣获美国国家奖(图3)。
图3,1999年美国总统克林顿为里奇颁奖
在1970年代时还有许多专用的语言面世,例如专用于数据分析的SQL(Structuredquerylanguage),专用于科学计算的MATLAB等等。
1980年代诞生了“C++”语言,它在“C”的基础上增加了围绕对象(Object-Oriented)的功能,许多游戏软件、出版软件及工业控制软件都是用这个语言编写的。苹果计算机与苹果手机用的也是这个语言。
另外,美国国防部也投入重金开发出了“Ada”语言。这个以艾达·勒芙蕾丝伯爵夫人命名的软件着重于系统的稳定性、拟人性和高效率。
史蒂芬·沃尔弗拉姆
还值得一提的是计算软件“Mathematica”。这个软件是著名的数学家、计算机学家、物理学家、工业家史蒂芬·沃尔弗拉姆(StephenWolfram,1959—)及其公司研发出来的。
沃尔弗拉姆出生于英国,14岁进牛津大学学习,20岁在加州理工学院获得博士学位。他先是学习物理,接着研究计算数学、数学与计算机。他提出了智能计算机语言。他的软件不但能进行数值计算,还能进行符号运算、知识融合,而且使用十分方便。
读者也许记得中学时数学老师说一元三次的方程很难解。我们打开这个软件的网页版本“WolframAlpha”(软件的正式版要付钱),然后输入“solvex^3+x^2+x+1=0”,瞬间即可得到结果(图4)。读者还可以试试输入一个化学问题:“hydrogen+oxygen”看看得到什么结果。
图4,用“WolframAlpha”求解数学方程
1990年代,计算机网络开始全面推广。因此有了针对网络开发的编程语言:“Java”、“HTML”和“Javascript”。
此外,开源软件也开始出现。当时软件开发的需求不断增加,另一方面,各大学、研究所及非盈利结构已开发出许多可供免费使用的软件。一些公司为了增加影响力也愿意把软件公开。
1998年,网页公司Netscape把其软件的代码公开。
接着,一批计算机学家们在硅谷开会,成立了开源软件组织(OpenSourceOrganization)。组织厘定了开源软件的标准、规范、使用权限等要点。许多开源软件随之推出,为软件行业注入了巨大动力。其中包括专用于数据分析的R语言。
到了2000年代,计算机已经深入人们生活的每一个角落。以计算机编程为职业的工程师数以百万计。各大软件公司都推出了自己的语言:
微软用的是“C#”;
苹果用的是“Swift”;
谷歌用的是“Go”和“Dart”;
有人为安卓系统开发了“Scala”。
不过,一个名不经传的语言“Python”脱颖而出,成为最常用的语言。
吉多·范·罗苏姆
这个语言是荷兰工程师吉多·范·罗苏姆(GuidoVanRossum,1956—)创造的(图5)。罗苏姆在阿姆斯特丹大学获得数学与计算机学硕士学位后加入了一家开源软件公司工作。
1989年开始设计这个开源的语言。Python的英文意思是蟒蛇,不过罗苏姆把他的语言其命名为“Python”却是因为他喜欢英国的喜剧团“MontyPython”。他为人低调,不为名利,只是因为爱好而去努力。开始时知道Python的没有几个人。但是桃李不言,下自成蹊,到了2010年来它已成为最常用的计算机语言之一。
这个语言有几个特点,一是简单,语法与英文十分相似,易学易用,小学生也能学会。二是结构清晰,不容易出错。三是可以兼容各种其他语言的子程序。最后,它是开源免费的。近年来网上已有无数Python程序,给计算机编程带来了许多方便。
图5,Python的作者罗苏姆
常用的计算机语言都有自己的格式、词汇、语法和规范,编程毕竟不是易事。能不能用人类的语言来直接指令计算机呢?这就要靠人工智能了。Chat-GPT做的就是这个事情。
要让人工智能算法理解我们的语言并做出应答不是易事。Chat-GPT的做法分两步:首先它设定了一系列语言模型。
其中最重要的一个模型叫做“Next-token-prediction”,这一模型用于预测一个句子中的宾语。例如从“猫坐在X上”这句子,可以预测X可能是“地毯”、“凳子”或“地板”等,而用哪一个词的概率则根据上个一句子的内容来确定。
另一个重要的模型叫做“Masked-language-modeling”。这个模型用于预测一个句子中的主语,例如根据“X坐在地上”,可以预测X是“猫”、“狗”或“兔子”等。
接着Chat-GPT调用海量的网上数据(如维基百科、美国国会图书馆等)来进行学习。不过,语言模型常常不能区分用词的对错,例如根据“罗马帝国X于奥古斯都”,无法准确地判断X是“兴起”还是“衰落”。
因此,Chat-GPT用了人工加强学习的方法(Reinforcementlearning)。这个方法分三步:
第一步
监督微调(SupervisedFineTuning,SFT)。对上述的语言模型用人工对部分数据进行微调,把微调好的模型作为范例模型(SFTModel),同时也整理出监督策略,以便做出更多的范例模型。
第二步
拟人微调(Mimichumanpreferences)。用人工对大量范例模型的输出进行投票,由此创建一个新的数据集。并用这个新的数据集训练一个新的语言模型。新的模型称之为奖励模型(RewardModel)。
第三步
近端策略优化(ProximalPolicyOptimization)。利用奖励模型进一步对范例模型进行微调和优化,从而生成政策模型(policymodel)。
为了提高精度,可以把政策模型作为范例模型,反复使用第二和第三步,直到得出满意的结果。
OpenAI公司创始人
山姆·阿尔特曼
Chat-GPT是美国OpenAI公司开发出来。
这个公司的创始人是山姆·阿尔特曼(SamAltman,1985—)。他出生于芝加哥一个普通家庭,在斯坦福大学学习了两年多后就停学出来创业(图6)。
2015年他说服埃隆·马斯克(ElonMusk,1971—)投资10亿美元创立了OpenAI,公司创立时推出了Chat-GPT1。
2018年马斯克因故撤离。
2022年11月,Chat-GPT3问世,人们可以通过微软的云计算网络直接使用。2个月间用户已达1亿人。
图6,山姆·阿尔特曼
Chat-GPT3是新一代的计算机语言。
它改变了人与计算机连接的方法。它会聊天、做作业、翻译、下棋、编程序…...据人们的测试,它的语文、数学和计算机都已达到了大学生水平。人们与它对话时难以分辨识自己是在与机器打交道。当年图灵所说的人工智能已经实现。
微软公司将把Chat-GPT植入其上网软件“必应”(Bing)。目前试用版已经推出。
不过这只是刚刚开始。据说OpenAI将在2023年推出Chat-GPT4。这个软件用的是一个1百万亿个参数的模型,比ChatGPT3强大数百倍。它写作一本6万字的书只需要一瞬间。