浙江日报 数字报纸


00003版:钱塘江

我用AI

  我对AI思维产生敬畏始于AlphaGo对阵围棋高手李世石。围棋的世界太宏大太玄妙,站在棋盘的中央,就像是一个人站在宇宙中央独自面对那一份浩渺。接下来的事大家都知道了,阿尔法狗开始肆虐棋坛,人类顶尖高手全无招架之力,不得不开始向AI学师……

  然后是AI在写作、绘画等各种能力上的惊人展现,让我这个文科白丁转向编程学习的人也忍不住一试为快。我学习编程完全出于好奇心,毕竟之前在工作的部门编过一个名为“好奇”的版面,发表各种科研新成果和评论文章。我本人向来充满好奇,编程、AI这么奇特有趣的事不会不关注。

  我学习编程从Python入手,据说这是对文科生最友好的一门代码语言,虽然实际操作起来完全不是那么回事,好在当时我在二手书网上买到了一本《Python,从入门到实践》,再加上一些免费网课,一步步也做下来了。直到那本厚达459页的书全部看完做完练习,并开始学习最困难最复杂的Django,我才了解自己之前所学不过是最浅显的简单语法概念,好比小学语文的字词句篇,而现在,我是打算要用小学语文基础搞一个观点清晰文通字顺的论文出来了。

  说实话吧,一开始,我连这个Django的读法都是错的,因为它的首字母无需读出,只需读后面的音节“姜哥”。

  作为编程项目,它的难搞之处在于逻辑抽象:需要在编程解释器中建立虚拟环境(对文科生来说,代码本身就很抽象,“姜哥”中的虚拟环境就类似于抽象世界中的抽象代码),每一次都需要启动和关闭虚拟环境。手头的那本二手书已不能适应,于是我理所当然转向最热门也最方便的AI辅助。

  目前可选的这类AI工具上网一搜简直像个大型超市,能辅助写代码甚至还有全包式。我在试错多次后选定一款对话式,因为还是想自己能从中真正学习一些代码知识和编程思维。

  一开始自然是惊喜连连:它能不厌其烦为我解答各种问题,上百行代码推给它,眨眼之间就能找出我的错误所在(这是所有程序员最头痛的事),并提供可以直接复制粘贴的正确代码。它似乎能够理解“姜哥”初学者在路径与结构上易犯错误,经常以明确的方式给我展示清晰的逻辑结构图。不到一个月时间,我就把“姜哥” 的learning_log(学习日志)项目像模像样搭建起来。

  在它面前,吭哧吭哧写代码好像成了笑话。它还有个非常好的功能,所有我与AI的对话历史都像图书馆的馆藏书一样分门别类明确无误地储存在左边栏中,标签上注明当时生成的主题和对话的时间。

  更重要的是哪怕犯下再白痴低级的错误都不会招来嘲讽,它会说:“实话告诉你吧,哪怕是最有经验的程序员,也难免犯下你这样的错误。”

  我不禁疑惑惶恐起来,这还需要高等数学基础理论高额学费代价的支撑吗,还需要莘莘学子寒窗苦读死记硬背代码语法命令吗?

  可惜,答案会让人失望。

  以我用“姜哥”编程的实操为例,说起来它有点像做建筑,也就是搭完大框架,分好功能区后,还需要内部装修才能使用。这时候各个不同的设计师工程队都进场工作,现场会忙乱一些,水泥砂石往哪搬;什么油漆什么涂料要用在什么位置……最后所有的改动还要落实到全局设置和路径引导上。

  AI的回答依然迅捷飞速,但开始自相矛盾。然后,它会抛出多至5个方案让我自己选。再然后,它居然开始赞同我提出来的解决方案。大框架叠小框架,大逻辑套小逻辑,它不停地和我一起找bug不停贴上新代码,推给我新的结构图。一通折腾下来,我终于把之前好不容易完成的结构与代码搅得乱糟糟的,彻底歇菜了。

  当然,AI还是一如既往耐心十足:“请把报错代码贴上来,请检查1、2、3、4……如果还有报错,我们再来一一排查。”循环往复一模一样的回答让我想起大型公司的客服电话声:如需……请按一;如需……请按二;请按三……如此倒腾了好几遍,以至每当它建议检查根目录和开启windows系统命令时,我就预感要大事不妙了。

  那么,做更接近文科思维的PPT会怎样呢?前段时间在做《本雅明书信集》读书分享会时,主办方要求我以PPT形式作一个主旨发言。《本雅明书信集》虽然在他所有著述中算是最好读的,但对于非德语或非思想文化史专业者来说还是过于晦涩了。这是德语思想理论家的通病,他们只对思想与输出负责,只对心目中那几个特定读者负责,其他人不在他们考虑范围中。

  这一次,我用了另一款以绘图和思维导图能力出名的AI工具,但它两个回合对话后马上要求付费,费用不是太高我马上付了,实指望看在钱的分上它能为我打造一个全新清丽的PPT。定下主题与风格后,把文章贴上去接下来就全交给它了。一开始很惊艳,它马上列出17个逻辑清晰资料丰富的小标题并开出一系列按照我所需要风格的画面,很快以PPT格式交货,可以下载。

  可是打开一看,除了最后一页“感谢聆听”,几乎没有一个页面是完整的,全是些破碎不堪且煞有介事的东西,结果还是自己连夜动手搞PPT才没丢人现眼。这是我第一次使用付费AI辅助,只能说,目前尚不清楚问题出在何处。

  既然付了钱,总得多用几次才不亏吧。于是我请这位AI老兄帮我写一个祝贺新年快乐的小程序。它毫不犹豫就飞快贴上一串代码,甚至还主动问我是否需要其他效果,比如一行一行显示新年图案?让亲友也能够自己在上面写一些新年祝福语?或者是背景音乐?需要提供免费下载的音乐资源也可以哦?我当然很开心,说全部都要。

  但事情稍一复杂,AI就给我出幺蛾子。本来做个用户输入是几行代码就能解决的事,但这个新年贺卡就是无法输入。好不容易解决了用户输入,音乐无法上载播放……总之一团糟心。

  生成式AI在回答代码问题时偶尔还会抛出一些煞有介事的答案,如果你稍作检索,就会发现这个答案徒有其表:不是查无此言,就是一派胡言,这就是程序员们所说的生成式AI的幻觉——因为没有真实可靠的语料,它会自作主张拼凑了一个假的回答。

  一位网友就曾发布过一段亲身经历:“我今天询问它,在诺瓦利斯著作的什么章节里谈过Poetry和Subject/Object的关系,它开始胡说八道,还像模像样地列出书名、章节和片段编号,编一堆不知从哪抄来的话,去文献一查,根本是子虚乌有。回去质问,它才假模假式地道歉,说作者没说过这话,是它自己揣测的。”

  我曾和一位就职于腾讯公司的高级工程师聊起这事。他认为,AI辅助当然是非常有用的工具,无论对专业程序员还是非专业人士。但生成式AI背后的大模型,是以互联网上大量的语料作为数据来源,本质上是概率模型,基于训练数据来推测用户输入输出概率分布,给出最高概率的Token(指的是代表程序中的一个片段或元素的符号。Token可以是关键字、标识符、操作符、分隔符、常量等)作为答案。

  但是,在实际工作中,这类对话式辅助对于任何人都不那么好用,它们受限于上下文和对话的使用方式,只能起到一定程度的enhancement(增强)作用,程序员要用好它其实更难,你要有足够的机器换位思考能力,要很好地拆解描述任务作出明确的提示,才能让AI帮上忙。程序员只能把它看作一个沟通能力和工具使用能力变成为代码工程能力的平台,并不能“无痛使用”。

  当初互联网的普及使许多知识变得价廉易得甚至免费。现在的AI更是让人觉得连学习这一苦差都可免除。但我从AI那里拿来的代码和结构,其实是建立在成千上万世界各地的数学家工程师程序员的线性代数、离散数学、概率统计、算法分析、集合论、图论、数值微积分等的学习分析提炼输入基础上的。人工智能确实带来了极大便利,肯定也削弱了大部分人对基础知识的学习欲望与掌握。

  目前,我仍然处于Django项目一再崩溃又重建的过程中,但我已经不再是最初那个晕头转向焦躁不安的白丁,对重复多遍的操作不会想当然地判定无误;对不断出现的崩溃局面不再急火攻心;对所有的细微之处都养成一再核对的习惯;对“姜哥”的整体框架和基础代码也有了一定理解。更重要的是,学会谦卑看待自己在新科技时代的所得与输出。或许,这就是AI辅助的功劳。


浙江日报 钱塘江 00003 我用AI 2025-01-12 27265120 2 2025年01月12日 星期日