后记
(写于 2023 年)

写作过程
工作之后,我建立了个人博客,开始与网友们分享一些技术文章,内容多是围绕 LabVIEW 编程语言的。2009 年,我把这部分内容编撰成书出版发行。之后几年我也在继续维护这本书,进行了改版扩充。不过再之后,互联网的管控越 来越严格,很多境外网站被屏蔽,也包括我的博客。而我由于没有国内手机号,很多国内的网站也都无法登录留言了。与网友交流越来越少,我也有很长时间失去了写作的动力。
直到 2021 年,从网友那了解到,GitHub 上建站正在成为分享知识的重要途径,尤其难能可贵的是,它居然还没有被国内屏蔽。于是我把那本 LabVIEW 的书搬到了 GitHub 上进行维护(https://lv.qizhen.xyz/)。可是,我已经很多年没用 LabVIEW 了,有时候写作起来也感觉力不从心。毕竟,目前工作中主要都在使用 Python,于是我想,也写一写 Python 吧。
这是一本只在网上发布共享的书籍,因此不存在截稿的限期,我将会长时间的去完善和维护它。不过,我还是希望,在真正把它分享给读者之前,首先快速的搭建起一个框架,完成主体内容的草稿。不然什么内容都没有就分享了,可能会很让人失望。我对草稿的要求不是很高:内容不必全面、结构也可以不合理、语言也许不流畅,只要能大致体现全书架构即可。我原本以为需要花费两三个月的时间来准备这样一份草稿,但实际上,只用了一个多月,草稿就大体成型了。这一个月的时间,我每天都要抽出一两个小时的时间专门用来写作,有时周末还要用上一整天的时间。之后恐怕再难以挤出这么多时间了,但我也会尽量保证每周花两个小时来维护和更新书中内容。
虽然,我对草稿的标准定得极低,但考虑到我只能利用业余时间写作,一个月的时间也是非常神速地了。对比我之前写作 LabVIEW 编程语言的书,如果完成同样写作数量,至少需要多花费二到三倍的时间。这与 LabVIEW 这门语言本身不利于写作有关,LabVIEW 与多数编程语言不同,它不是 写代码的,而是“画”程序的。这对于编程本身倒也不算是劣势,但是如果想把它整理成文本文档,确实要比那些本就基于文字的编程语言麻烦一些。不过,最为主要的,帮助我加快了写作速度的原因是我这次利用了大语言模型来辅助写作。
大语言模型
不得不佩服搞人工智能(AI)那帮专家的造词能力,现在每隔几年就要换个新的流行词来指代人工智能。我最开始学习人工智能的时候,正是它的低谷时期:搞了几十年也没有弄出多少可以实用的产品来,大家甚至都不太喜欢人工智能这个词了,取而代之的是“机器学习”(ML)。后来没过多久,大家就意识到,在众多机器学习算法中,最有潜力的还是多层的人工神经网络。再后来,“多层”不够吸引眼球了,要“深层”才行,于是“深度学习”(DL)红火起来,成了人工智能算法的代表。最近几年,人工神经网络发展速度极快,层次越来越深,从最初的几层,几十层迅速发展到成百上千层。目前已经不再用层来表示模型的规模了,而是用模型参数的数量来表示其规模。现在主流的用于处理自然语言的大模型的参数都有百亿到万亿的规模。作为对比,人脑的神经元的数量大约是在五百亿到一千亿之间。如此巨大的模型,自然不屑与原来的“深度”模型为伍,于是当下最流行的词变成了“大语言模型”(LLM)。
大语言模型领域做的最好的无疑是 OpenAI 公司。由于一直从事人工智能相关的项目,我也特别关注 OpenAI 每个新产品。当它们宣布,在其 GPT 3 大语言模型中添加了程序代码自动生成的功能时, 我与几位朋友迫不及待地进行了尝试。具体的测试题目已经记不太清楚了,只记得是在网上随机找到的一个编程面试题目,那个问题有一个代码简单但运行效率差的算法,和一个实现起来极其困难但运行效率高的算法。我们直接将问题描述输入给 GPT 模型,它迅速回应了一个简单直观的解决方案。当我们询问是否能够优化算法以提高运行效率时,它又生成了一段代码冗长但高效的程序。把它的结果放在编译器中一试,完全正确。我们大为震惊,以至于我和我的程序员朋友们都十分担心即将饭碗不保。
在仔细检查 GPT 生成的代码时,我们注意到了其中一个冗长且怪异的变量名,这在一般程序中并不常见。我们好奇地将这个变量名搜索了一番,最终在网络上找到了别人发表的同一题目的一个解决方案,它与 GPT 返回的结果如出一辙。这让我和我的同事们松了一口气 —— GPT 终究还是在“借鉴”已有的资料。当我们测试用它解决那些不太可能在网上找到的问题时,它的表现的确逊色了许多。
然而,我们并没有安心太久,因为 OpenAI 不久后推出了 ChatGPT,其编程能力有了显著提升。至少在解决面试题目方面,我感觉自己再也无法超越这个 AI 模型了。除了 OpenAI 的 ChatGPT,我还使用过 Google 的 Gemini 和 Meta 的 LLAMA 等大语言模型,它们的表现也都非常出色。我本来也想测试几个国内公司的中文模型的,遗憾的是当时它们都对境外用户设了限制,让我无法使用。目前有一些模型解除了限制,我也可以访问了,将来会找时间也对它们做详细测试。