一堂課搞懂生成式人工智慧的技術突破與未來發展

【生成式AI时代下的机器学习(2025)】第一讲:一堂课搞懂生成式人工智慧的技術突破與未來發展


一、课程导论与预习建议


本课程旨在用一堂课的时间,快速带大家了解生成式人工智能(Generative AI)近年来的发展现状以及未来值得关注的技术。同时,这也是对本学期课程内容的一个快速概览。


在讲授今天这堂课时,我将假定大家对生成式人工智能没有太多认识,即便没有相关背景知识也能听懂。但是,本学期后续的课程,我将假定大家已经预习过《生成式 AI 导论 2024》和《机器学习 2021》这两门课程。


因此,我希望大家在下下次(3 月 7 日)上课前预习以下内容:


| 课程系列 | 预习目标 | 目的 |

| :--- | :--- | :--- |

| 生成式 AI 导论 2024 | 至少看到第八讲,最好能全部看完。 | 假设你对大型语言模型(LLM)的训练一无所知,应先观看此系列。内容轻松,可在吃饭、运动、通勤时间观看。 |

| 机器学习 2021 | 至少看到 Transformer 下集。 | 现在每天看一部影片,到下次上课前也能看完。 |


如果你不知道该从哪里看起,我推荐观看《生成式 AI 导论 2024》和《机器学习 2021》这两个系列,它们提供了完整的、能从头看到尾的内容,看完后将会有很多的收获。


今日课程大纲

1.生成式 AI 目前具备哪些行为和能力。
2.其背后的运作机制(Mechanism)。
3.这些运作机制是如何产生的。
4.如何赋予这些人工智能模型新的能力。

二、生成式 AI 能力演示:AI分身讲课


我们先从人工智能的行为开始讲起。对于生成式人工智能可以做什么,这张投影片的内容大家可能已经看到不想再看了。既然如此,我就交给我的 AI 分身来讲授吧。


AI分身演讲内容概览

“各位同学,看到这张图,有没有觉得很厉害?现在人工智能什么都能生成。你可能会想,‘哇靠,是不是以后都不用我了?’放心,人工智能也吃软饭,但还是需要你来下指令嘛!这堂课就是要带你轻松看懂这些人工智能厉害在哪里。”


这个 AI 分身不仅人脸是生成的,他所讲的话,包括内容,也都是生成出来的。


制作AI分身的流程


我是如何产生出这样一个 AI 分身的呢?


1.我将刚才那一页投影片直接丢给 ChatGPT(现在 ChatGPT 可以读图片)。
2.我指示它:“请产生投影片的讲稿,长度大约 30 秒。”它就会把讲稿写出来。
3.接下来,我把讲稿的文字丢给一个名为 Breezy Voice 的模型。
4.Breezy Voice 是联发科创新基地最近测试出的语音合成模型,它与一般模型不同之处在于,它不仅输入文字产生声音,你还可以提供一段参考音档。它会按照参考音档中声音的特质来生成合成声音。
5.最后,将合成出来的声音加上一些我的画面,丢给 HeyGen 平台。
6.HeyGen 平台就会产生刚才大家看到的影片。

因此,有了投影片之后,要生成一个数字人(Digital Human)来直接讲课是可能的。


三、真正的难点:投影片内容生成


然而,真正的难点并不在讲课环节。准备一门课最花时间的其实是做投影片。真正花时间的地方不在于制作投影片的过程,而是构思投影片的内容。除非你的投影片是直接跟别人借的,否则做一门课的投影片是最耗时的。


那么,我们能不能直接让 AI 来制作投影片,从而淘汰老师呢?


ChatGPT Deep Research 的尝试


我向 ChatGPT Deep Research 提出了要求:我要准备一堂名为“一堂课搞懂生成式 AI 的技术突破与未来发展”的课,请给我投影片内容,而且我特别交代内容要“非常有趣”


输入与输出: 它会先询问我课程的目标受众、内容聚焦、课程时长等信息。得到相关信息后,它就开始长篇大论,总共写了 13,000 个字
AI的笑话: 因为我要求有趣,所以在内容中硬是想了好些笑话。但 AI 的笑话往往是“冷笑话”级别。

* *AI的笑话举例:* “据说 GPT-4 还曾被用来创作笑话和段子,不过 AI 的冷笑话有时候只有它自己懂。哇,它知道它讲的笑话很冷啊!我问它有什么程序员的笑话,它说:‘我昨天写了一个递归程序,结果今天还在执行。嗯,好吧,我笑了,你呢?’我也笑了,因为这个笑话完全不知道它在讲什么,它是荒谬到让人想笑。”

“励志”的顿悟: 不过,在 13,000 字的内容中,它还是说出了一个我唯一觉得可以看的“笑话”(其实是个励志小故事):

> “扩散模型(Diffusion Model)其实很浪漫。为什么?因为它告诉我们,就算人生一团乱,全是杂讯,只要一步一步努力去除杂讯,也能拼出美丽的风景。AI都这么励志了,我们还能不努力吗?

> “我从来没有想过扩散模型(Diffusion Model)背后有这么励志的故事,AI实在是太有创意了。”


AI生成投影片的实践


尽管产生了这么长的内容,要把它整理成投影片还是需要花时间的。因此,我们决定“更懒惰一点”,直接跟 ChatGPT 说:“把上述内容做成投影片让我下载。”


ChatGPT的投影片生成: ChatGPT 是可以做投影片的。它会开始写一段程序代码,这段代码最后会生成投影片链接供下载。
结果评估: 但问题是,ChatGPT 产生的投影片“非常地阳春”,我没有很喜欢。
使用Gamma App: 我决定使用另一个可以生成投影片的软件 Gamma。只要提供文字,它就能一键生成投影片。我把刚才 13,000 字的资料直接丢给了 Gamma。

四、AI生成的课纲与挑战总结


现在,我们使用人工智能生成的投影片来上课。


1. 生成式 AI 的基本概念


定义: 生成式 AI 让机器有想象力,可以产生文字、图像、影片,甚至程序代码。
运作原理: 基于深度学习(Deep Learning),从海量资料中学习。

(讲者按:这个描述“有讲跟没讲一样”,不知道在说什么。)*

重要性: 给予机器创造力,让电脑不再局限于选择题,而是能自由发挥。

2. 近期技术突破与核心技术


近期技术突破:

* GPT-4。

* DALL-E 2。它说 DALL-E 2 解析度提升四倍。

(讲者按:提升四倍是相对于谁提升的,也没讲清楚。)*

* Stable Diffusion:开源的文本生成图像模型。

核心技术:

* Transformer。

* 生成对抗网络(GAN)。

* 扩散模型(Diffusion Model)。


3. 应用案例与挑战


应用案例:

* 文字生成。

* 图像合成。

* 音乐创作。

* 程序代码生成。

(注:投影片右侧的配图是 Gamma 自己生成的,有时与左侧文字不完全匹配。)*

当前挑战:

* 内容滥用问题。

* 偏见与公平性问题。

* 隐私问题。

* 高昂的计算成本。

未来发展:

* 技术优化,降低成本。

* 多模态(Multimodality)与深度理解。

* 人机协作。

* 规范伦理的引导需要被完善。


4. 趣味案例与未来趋势


因为我要求课程有趣,投影片中准备了一些趣味案例:


不存在的人: 有一个网站会展示 AI 产生出来的人,这些都是不存在的人。
AI艺术: 有人利用 AI 创作艺术作品,例如“太空科技院”,去比赛还得了奖。
文字冒险游戏: 还可以用 AI 来做文字冒险游戏。
未来趋势: 创意民主化、人机共创、教育转型和新兴产业。

*(讲者总结)*如果我是一个懒惰的老师,我真的就可以用刚才的投影片上课了。假如只是要上那种“流水账”式的课程,完全可以用 AI 来生成投影片,有了投影片再用 AI 来产生数字人,就不需要人类来上这门课了,完全可以全自动地产生一门课程。


五、人类投影片:AI的思考能力(Reasoning)


接下来,让我们看看人类做的投影片,比较一下人类上的课跟完全用 AI 准备的教材有什么不同。


现在,这些人工智能展现出类似思考的能力,我们通常称之为 Reasoning


1. 脑内小剧场:从直接回答到逐步推理


过去,我们使用生成式 AI 时,给它一个输入或问题,它就直接给一个答案。但是现在很多的生成式 AI,例如 ChatGPT-4o、DICE、Gemini Flash,在回答问题时,它不会直接给出答案。


相反,它会“演一个脑内小剧场给你看”


它可能会说:“我们先试试看 A 解法吧。”
“解完之后自己验证一下答案,发现嗯,不对。”
“再试一下 B 解法吧,验证一下,嗯,好像是对的。”
“B 解法不错,但我们可以尝试一下 C 解法。嗯,看起来没有比较好。”

它演完脑内小剧场后,才会给你答案。通常,这些模型在展示结果时,会把“脑内小剧场”放在一个框框内,告诉你这是它的“内心戏”,而不是真正的答案,最后才给出真正的答案。


2. 案例分析:姜子牙 vs. 邓布利多


我们实际用 DICE 来演示一下这个“脑内小剧场”是什么样子的。


问题: 假设《封神演义》中的姜子牙和《哈利·波特》中的邓布利多,两人都处于个人巅峰状态,有充足的准备时间,如果他们有理由不得不开打,在公平对决的情况下,你觉得谁会赢?


DICE 不会马上给出答案。它会先生成一些颜色比较浅的文字,这就是它的内心小剧场。它在内心开始思考:姜子牙有什么能力?邓布利多有什么能力?


思考过程: 它的内心小剧场演得非常长,足足有 1,500 个字。你可以在其中看到模型的“纠结”,例如它下了总结后又突然想起有东西没考虑到,又补充说:“不过还需要再考虑什么什么。”

由于 DICE 的内心小剧场太长,我将它的文字丢给 Claude,要求它用可视化方式画出容易看懂的图。


Claude 非常擅长写程序、画可视化图或制作网页。它执行指令后,输出了一个网页,分析如下(颜色为 Claude 自行套用):


| 角色 | 能力/优点 | 劣势 | 对决分析及结论 |

| :--- | :--- | :--- | :--- |

| 姜子牙 | 倒数、杏黄旗(高防御力) | 法宝可能对非神职人员较弱(如打神鞭对不在封神榜上的人无效) | 短期战对邓布利多有利,长期战对姜子牙有利。结论:姜子牙在准备充分时获胜机率较高。 |

| 邓布利多 | (图中未详细列出,但模型内部会分析) | (图中未详细列出) | |


(讲者按:需要批评的是,模型将“十绝阵”列为姜子牙的能力,但十绝阵其实是姜子牙对手的阵法,不是他的能力。)

DICE的最终答案: 姜子牙可能会赢。不过它补充了一句话:

“如果邓布利多一开始就用幻影换影直接近身发动锁命咒(Avada Kedavra)就有逆转的可能。”

这个逆转的关键在于杏黄旗能不能够挡住锁命咒。


“在《封神演义》里面,应该没有杏黄旗挡不住的东西,翻天印打谁谁死,但杏黄旗可以挡住翻天印。”
“而锁命咒在《哈利·波特》里面也没有能挡住的东西。”
“所以,这就是一个矛跟盾的对决,不知道锁命咒能不能够突破杏黄旗,这个会是决胜的关键。”

ChatGPT-4o mini的回答: 我也问了 ChatGPT-4o mini 这个问题。它也会做脑内小剧场,但通常比较短(我怀疑它只呈现了摘要)。O4o mini 也认为姜子牙比较可能赢过邓布利多


看来两个聪明的模型都觉得姜子牙比较有胜算。


六、从问答到行动:AI Agent 的崛起


刚才我们使用 AI 的方式都是“一问一答”:你给一个问题,它就给一个答案。但光是“一问一答”不能解决所有的问题。有很多任务往往无法一步完成,需要多个步骤才有办法完成


日常生活中的多步骤任务示例


举例来说,如果我的太太说晚上要出去吃饭,我需要执行一个复杂的任务序列:


1.询问: “要吃什么?”
2.指令: 太太说:“餐厅 A。”
3.行动: 我打电话去餐厅 A。
4.结果与反思: 发现餐厅 A 没位子了。

如果我只是一个语言模型,我可能会躺平并回馈:“没位子了,结束。”但作为一个人类,我必须想办法执行这个任务。


下一步计划: 没位子怎么办?我会想其他方法,比如上网搜寻看有没有其他类似的餐厅。
确认与反馈: 找到餐厅 B,问太太:“订餐厅 B 好吗?”太太说可以,然后就订餐厅 B。

AI Agent 所需的能力


如果 AI 可以执行这种需要多步骤才能完成的工作,我们就称之为 AI Agent。要完成上述日常任务,AI Agent 需要具备多种能力:


1.从经验中学习: 知道餐厅 A 没位子了,不再反复打电话给餐厅 A。
2.使用工具的能力: 知道自己没有足够的餐厅知识,需要上网搜寻
3.规划能力: 主动跟人类确认哪一间餐厅是合适的。
4.元认知: 知道什么时候需要确认、什么时候不需要确认。

(例如,如果 AI 连“可不可以上网搜寻”都要问人类,人类显然会生气。)*


AI Agent 的雏形:Deep Research 与 Operator


目前,有一些服务已初步具备 AI Agent 的能力。


Deep Research(深度研究)


现在 ChatGPT、Gemini、Perplexity 都推出了 Deep Research 的功能。


工作方式: 你问它一个问题,例如“中部横贯公路的历史沿革”。它会开始上网搜寻,并且不会只搜寻一次。它会随着搜寻到的内容而产生更多的问题,最后写出一篇长篇大论的报告。
以中横公路为例:

1. 它会先搜寻中横公路的主线跟支线,学到有宜兰支线和雾社支线。

2. 它再去搜寻雾社支线的起讫点,发现 2018 年有一个改道工程。

3. 它再去搜寻 2018 年中横的改道工程。

* 结论: 它会随着搜寻到的结果不同,改变它要搜寻的内容,这是 AI Agent 的一种能力


Computer Use / Operator (电脑操作员)


Claude 的 Computer Use 或 ChatGPT 的 Operator,它们要做的事情是:现在的生成式 AI 不只是生成,它还要能够操控物件。虽然操纵机械手臂仍然困难,但现在基本上可以操纵数字世界中能触碰到的鼠标或键盘了。


操作方法:

1. 你先给它一个任务指令。

2. 给它一个屏幕截图(这些模型都可看图)。

3. 它会输出文字,但输出的文字是如何去操纵鼠标跟键盘。例如,它会输出“把鼠标移动到屏幕的这个位置”(包含坐标)。

4. 开发人员需要写一个小程序,把鼠标移动到指定的位置。

5. 屏幕截图不同后,会产生新的输出,例如:“按下 enter”。

6. 开发人员再根据指令将 Enter 按下去。

* 期望通过这一连串的操作,可以完成比较复杂的任务。


Operator 演示案例:

* 指令: “我想加签李宏毅老师的机器学习,请上台大课程网找到本学期这门课的加签表单并帮我填写后送出。”

* 过程分析: 在寻找课程资讯时,Operator 一开始是先到课程网页的上方去点“课程资讯”,但发现没有找到东西。接下来,它才去下面找到课程的说明,并找到了加签表单。

* 关键发现: 在中间的过程中,它是一度犯错的,但是它可以知道自己犯了错,它可以修正它的计划,修正它的行为,不再犯同样的错误。这正是 AI Agent 的雏形


未来的作业: 本学期课程的作业二,我们将让 AI Agent 来完成模型训练。过去作业是由学生本人执行和优化模型训练,而这次将由 AI Agent 来执行。


七、生成式 AI 运作机制的核心:Token


我们现在来看 AI 行为背后的运作机制。


1. 复杂事物的分解


从表面上看,生成式 AI 的作用就是“输入 X,输出 Y”。这里的 X 或 Y 可以是复杂的物体,例如一段长篇大论、一张图片、一段声音。


产生这些复杂物体的共同原理是:这些看似非常复杂的东西,其实都是由有限的基本单位所构成的。我们用 $y1, y2, y_i$ 来表示这些基本单位。


| 对象 (Y) | 基本单位 ($y_i$) |

| :--- | :--- |

| 文字 | 组成文字的符号(例如,中文中的方块字) |

| 图片 | 像素(Pixel) |

| 声音讯号 | 取样点(每一个取样点是一个数字) |


2. 基本单位的特性:有限与无限的组合


这些基本单位的特性是:它的选择是有限的


文字: 中文方块字常用的约 4,000 多个,是有限的。
像素: 像素可能的颜色是有限的。
取样点: 即使是以数字表示,我们通常只用一个 Byte 储存(如 $2^8$ 的可能性),因此变化仍然是有限的。

虽然这些基本单位的选择是有限的,但透过这有限的选择进行组合,你可以组出近乎无穷的可能性。例如,两个人画同一主题的图,两张图不会一模一样。


3. Token 的概念


这些基本单位现在在生成式 AI 中常常被称作 Token


定义: Token 就是组合这些复杂物件的基本单位。
(注:如果查字典,Token 最常被翻译成“代币”,但在生成式 AI 中,它是指组成物件的基本单位。)

黄仁勋的名言: 黄仁勋在去年的 GTC 大会上曾表示:

“这个 Token 可以是文字,它也可以是影像,也可以是表格,也可以是一首歌,也可以是一段声音,也可以是影片,万事万物都是 Token。”

把万事万物拆解成 Token,就是生成式 AI 的基本原理。


八、生成机制:自回归生成(Autoregressive Generation)


生成式 AI 就是拿一堆 Token 去生成另外一堆 Token。如何从输入 X 产生输出 Y 呢?


1. 依序生成策略


背后的共同原理是:根据固定的次序,每次只产生一个 $y_i$,只产生一个 Token 出来


步骤:

1. 输入 $X$ (所有 $x$),产生 $y_1$。

2. 输入 $X$ 和 $y1$,产生 $y2$。

3. 以此类推,输入 $X, y1, y2, \dots, y{t-1}$,产生 $yt$。


停止条件:

* 生成图片: 图像大小通常是固定的,所以当达到指定的 Token 数量时停止。

* 生成文章: 无法事先知道文章多长,需要准备一个特殊的 Token 叫做“结束”(End Token),当模型产生“结束”Token 时,依序生成过程就停止了。


2. Autoregressive Generation 与语言模型


这个策略有一个专有名词,叫作 Autoregressive Generation(自回归生成)。用比较通俗的讲法就是“文字接龙”,只是这里接的 Token 不一定是文字。


广义的语言模型: 当我们接的 Token 如果是文字时,它就叫做语言模型。但今天,为了“蹭语言模型的热度”,即使接的不是文字(如语音或图片),我们也常常称之为“语言模型”
任务统一: 无论输入是什么模态,输出都是一样的任务:输入是一串 Token,输出是一个 Token。本质上,这是在做“选择题”,决定下一个 Token 应该是什么。

3. 模态的统一


我们可以不失一般性地把任务表示为:输入 $Z1$ 到 $Z{t-1}$,输出 $Z_t$。


有人可能疑问,如果输入 X 和输出 Y 的模态不一样(如输入图像,输出文字),Token 集合不是不同的吗?


解决方法: 我们将图像的 Token 和文字的 Token 直接集合起来,当作一个新的 Token 集合 $Z$。例如,图像有 4096 个 Token,文字有 3 万个 Token,新的集合就有 $34,096$ 个 Token。
总结: 所以不管是你要文字生文字、文字生图、图生文字、语音生文字、文字生语音,都是一样的事情,它背后的原理其实是一样

4. 神经网络的输出:概率分布


如何输入一串 Token 决定下一个 Token 是什么呢?你需要一个函数 $F$,它的输入是 $Z1$ 到 $Z{t-1}$,输出是 $Z_t$。


这个函数 $F$ 就是类神经网路(Neural Network)


实际输出: 神经网络在运作时,并不是真的产生一个 Token,它产生的是一个 Token 的机率分布。它会给每一个 Token 一个分数,代表这个 Token 作为下一个 Token 有多合适。
原因: 答案往往不是唯一的。例如,输入“台湾大”,后面可以接“学”(台湾大学)、“车”(台湾大车队)、“割”等等,接的东西太多了。如果强迫神经网络输出唯一的答案,它可能很难学会,甚至会错乱。
结果: 产生机率分布后,再按照这个机率分布去掷一个骰子,决定真正产生出来的 Token 是什么。正因为有这个掷骰子的过程,即使是相同的输入,生成式 AI 每次产生的输出也会是不一样的

九、深度学习的本质与优势


1. 深度学习的定义


类神经网络通常被科普文章描述为“模拟人脑的运作方式”。但它作为函数 $F$ 真正的特色是:把一个函数 $F$ 拆解成很多小的函数 $F_1$ 到 $F_L$ 的串联


层次结构: 运作过程中,输入先通过第一个 $F1$,产生输出,这些输出再变成 $F2$ 的输入,直到 $F_L$ 产生最终的机率分布。
深度(Deep): 这里的每一个小函数又叫作 Layer(层)。正因为把一个函数拆解成多层串联的函数,所以类神经网络又叫作深度学习(Deep Learning)“深”指的就是有很多 Layer 的意思

2. 为什么拆解有效:化繁为简


为什么把一个步骤拆解成多个步骤会是有效有用的事情呢?


我们用一个不精确的比喻:假设每一个 Layer 就是一个表格(函数 $F$ 做的事情就是查表)。


| 问题类型 | 计算量/所需储存量 |

| :--- | :--- |

| 一步到位(只有一个 Layer) | 计算三个各位数相加(A+B+C),需要储存 $10 \times 10 \times 10 = 1000$ 种可能的输入/输出关系。 |

| 拆解成两步(两个 Layer) | Layer 1 计算 A+B,需储存 $10 \times 10 = 100$ 种关系。Layer 2 计算 (A+B)+C,需储存 $19 \times 10 = 190$ 种关系。总共只需储存 $100 + 190 = 290$ 种关系。 |


结论: 当我们把一个问题拆解成多个步骤时,我们是从复杂的问题变成了简单的问题。很多人对深度学习有误解,觉得它是弄一个很复杂的东西,但其实不是。深度学习是把本来复杂的问题变得比较简单。这就是为什么深度学习往往会有好的效果。


十、深度不够,长度来凑:机器的思考(Reasoning)


同样的道理,也可以用来解释为什么让机器思考会有用。


1. 思考过程作为深度扩展


如果机器没有思考(Reasoning),给它问题后就必须立刻产生答案。在问题到答案之间有很多个 Layer,每个 Layer 可以想成是一个思考的步骤。但困难的问题往往需要很多很多的思考步骤,如果 Layer 的数目有限,怎么办?


让机器思考,让机器“演脑内小剧场”可以想成是从另一个方向扩展了类神经网络的深度


变化: 现在给一个问题,AI 不是马上产生答案,而是有一个思考的过程。
效果: 此时,从问题到答案之间变成了有非常非常多的思考步骤。它不再局限于 Layer 的数目,而是跟思考过程的长度有关。

“深度不够,长度来凑。”

今天一个类神经网络的深度是有限的,但思考的过程可以要多长就有多长。


2. 测试时间规模化(Testing Time Scaling)


这种“深度不够,长度来凑”的做法现在又被称为 Testing Time Scaling


OpenAI的观点: 我第一次听到这个词是在 OpenAI 发表 GPT-4o 时。他们说 GPT-4o 厉害的地方就是 Testing Time Scaling,用白话来讲就是“深度不够,长度来凑”。
斯坦福研究: 斯坦福大学的一篇论文《Simple Testing Time Scaling》的数据显示,“长度来凑还真的是有用的”。横轴是思考时用了几个 T(Token),纵轴是不同任务上的正确率。你发现:想得越长,正确率就越高
控制长度的方法(粗暴法): 这篇论文中控制输出长度的方法非常粗暴:每当语言模型产生“结束”的符号时,直接把那个符号拿掉,换成“Wait”这个字。强迫它一直讲下去,继续做文字接龙。

十一、Transformer架构:自我注意力与长度限制


1. Layer的内部结构


一个 Layer 里面现在通常还有更多的 Layer,它又是由更小的函数串联而成的。


一个 Layer 中的函数通常分成两类:


1.自注意力层(Self-attention Layer): 这种 Layer 在产生输出时会考虑全部的输入,然后产生输出。你可以用这种方法去考虑输入中的全局信息。
2.单点思考层: 这种 Layer 只针对单点做思考,根据一个 Token 去做更深入的思考。

拥有这种 Attention Layer 的神经网络通常被统称为 Transformer


Transformer的命名: Transformer 的原作者之一在 2017 年的采访中曾被问到为什么叫这个名字。他表示他从不知道为什么叫 Transformer,只是觉得这个名字“很酷”,没有特别的原因。

2. Transformer的限制与架构演进


虽然今天的语言模型基底都是用 Transformer,但它最大的限制是:当输入太长时,Transformer 的运作可能会出现问题


运算量: 当模型在演“脑内小剧场”时,Transformer 的输入会非常长。因为 Self-attention Layer 通常要看过整个输入后才能给你输出,所以输入的 Token 长度越长,它的运算量就越大。这个长度没法无限延长下去。
Mamba: 另一个被讨论的、可能更适合处理长输入的神经网络架构是 Mamba。Mamba 和 Transformer 只是“一线之隔”,Mamba 稍微改一下其实就变成了 Transformer。我们会在第四讲详细讨论神经网络的架构。

十二、模型如何被开发:架构与参数


1. 架构 (Architecture) 与参数 (Parameter) 的区分


类神经网络里面分成架构和参数这两部分。


架构(Architecture): 由开发者(即人类)所决定的部分。例如,深度学习中将多层串联在一起这件事就是一个架构。

* *比喻:* 架构是人工智能的“天资”

* *术语:* 架构又被称为超参数(Hyperparameter)。当有人说他们在“调参数”时,指的其实是调超参数,例如类神经网络的架构。

参数(Parameter): 由训练资料(而不是人类)所决定的部分。每层的具体功能是由参数数值所决定的。

* *比喻:* 参数是它“后天努力的结果”

* *衡量:* 模通常型用“几 B”来表示(如 7B, 70B)。这里的 B 是 Billion(十亿)的缩写。7B 代表这个模型有 70 亿个参数


2. 寻找参数的过程:模型训练


要找到参数,需要准备训练资料。训练资料告诉机器,在输入什么 Token sequence 时,哪个 Token 是正确的。


训练目标: 我们的目标是找到一组参数 $Set$(参数有很多个,用“一组”称呼),让 $F_{Set}$ 最能满足我们提供的训练资料
精确目标: 实际上,我们希望 $F_{Set}$ 输出的是机率分布,因此,我们希望正确的 Token 得到的机率分数是最高的
本质: 给一个 Token 序列找下一个 Token,本质上是一个选择题。在机器学习文献中,这被称为分类(Classification)问题

3. 分类问题与生成式AI


分类问题从来都不是新的问题,人类很早就知道怎么做。


分类示例: 信用卡盗刷侦测(是/否)、垃圾邮件侦测(是/否)、下围棋(下一步落子位置)。
生成式 AI 的地位: 既然生成式 AI 是一连串分类问题的集合,所以它不能说是一个全新的技术。让机器产生复杂有结构的物件(如一句话),很早以前就能办到,例如翻译

但是,今天的生成式 AI 与过去只能做单一任务的“专才”有很大的不同:今天的生成式 AI 往往是一个“通才”


十三、通用模型的演进与发展


要让“通才”模型正确运作,你需要明确地告诉它要做什么。下指令这件事又叫作 Prompt(提示词)。


1. 从语言专才到通用翻译


过去,开发翻译系统时,往往是不同语言的翻译就是不同的系统。例如,中翻英是一组人,德翻英是另一组人。如果世界上有 7,000 种语言,每一种成对的语言都要开发,需要 $7000 \times 7000$ 个系统,永远开发不完。


于是有了通用翻译(Universal Translator)的想法:能不能有一个通用的翻译系统,直接告诉它要从哪种语言翻译成哪种语言?


通用翻译的优势: 它甚至有可能有能力翻译没见过的语言对
内部语言假设: 也许这些通用翻译模型会学到,不论输入哪种语言,都把它变成一种只有机器自己看得懂的“内部语言”
Google的发现(2016年): Google 至少在 2016 年就发现:即使模型没有被教过日文翻韩文,它也能自动学会。他们发现,同样意思的英文、韩文和日文句子丢给模型时,它内部的反应是一样的

2. 从语言到任务的通用化


既然不同语言可以共用模型,那么不同任务(例如:摘要、作文批改、翻译)是否也能共用模型呢?


这些任务都是输入文字、输出文字,能不能干脆共用一个模型?给它任务说明(Prompt),根据任务说明就做它该做的事。
Multi-task Learning SQuAD 比赛(2018年): 早在 2018 年,就有人提出了类似的想法。这篇论文举办了一个比赛,希望有人能用一个模型解决十个自然语言处理任务。在当时,人们觉得这个想法太疯狂了。

3. 通用模型的三个演化形态


| 时代 | 形态 | 代表模型 | 特点 | 应用方式 |

| :--- | :--- | :--- | :--- | :--- |

| 第一形态 (2018-2019) | 编码器(Encoder) | 芝麻街家族(BERT) | 吃一段文字作为输入,但无法输出文字。只能输出人看不懂的向量(Representation),代表对输入的理解。 | 加外挂: 必须在后面接一个特化的、负责特定任务的模型(如摘要模型、翻译模型)才能输出。 |

| 第二形态 (2020-2022) | 完整生成功能 | GPT-3 | 可以输入一段文字,输出一段文字。但很难用指令操纵它。 | 微调(Fine-tuning): 必须微调其内部参数 $S_{et}$,根据不同任务(如摘要、翻译),将其参数调整成不同的样子 $S'_{et}$。架构相同,但参数不同。 |

| 第三形态 (2023年开始) | 指令遵循(Instruction Following) | ChatGPT、LLaMA、Claude、Gemini、DICE | 可以直接输入指令,按照指示进行回应。 | 直接下指令: 用在不同任务上时,架构和参数都相同,就是同一个模型,同一个函数。 |


4. 语音领域的通用模型示例


这种通用模型不只存在于文字领域。语音领域的发展也经历了类似的三个形态。


我们展示一个名为 D-Aud2 的模型,这是我们实验室与 NVIDIA 合作开发的模型。


功能: 它可以听一句语音,根据语音的内容和各种信息来回答问题。
指令演示:

* 指令 1: “这句画的文字内容。”

* 输出: 语音辨识的结果。

* 指令 2: “用中文回答。”

* 输出: 中文翻译。

* 指令 3: “这个人的心情怎么样?”

* 输出: “听起来这个人的心情是高兴的”;“顺便告诉我,这个人是女性”。

(注:这是无法从单纯的文字上直接看出的资讯。)*

* 指令 4: “把这句话所有资讯整理成表格给我。”

* 输出: 包含这句话各种资讯的表格。


十四、赋予AI新能力:机器的终身学习


我们现在进入了机器的终身学习(Lifelong Learning)时代


旧模型 vs. 通用模型: 过去,教人工智能某件事,需要“从零培养”,像你一手带大的小孩。但现在,通用模型已具备基本能力,教它新能力不再是从零开始。它就像一个大学毕业生来公司工作,你教他新技能,但它本来就懂很多事情。
(注:机器的终身学习技术在 2019 年的机器学习课程中就讲过,但当时不实用,今天已成为关键技术。)

1. 方法一:通过指令灌输(Prompting)


要让具备基本能力的通用模型担负某些任务,其实不需要太复杂的技术。


案例:AI 助教。为了回答开学前无止尽的加签问题,我决定用 AI 助教来回答。
实施方式: 只需要给它一些相关的知识(如课程资讯)和指令(如不要回答跟课程无关的问题,否则就讲一个李宏毅老师的小故事)。
状态: 当我们用这种方式时,模型的参数是固定的。你额外提供的资讯和指令不会永久改变模型的行为。当你不再提供这些指令时,它就会恢复到它原本的样子。

比喻:* 就像一个人在公司按规范调整行为,但一离开公司回家就变回原来的样子。


2. 方法二:微调(Fine-tuning)


如果你希望它永久改变它的能力,你就需要调整基础通用模型的参数。例如,教它一门它原本不会的新程序语言 JavaScript。


定义: 从基础模型改变参数这件事今天又叫作微调(Fine-tuning)
挑战: 微调真正的挑战是有可能破坏原有的能力。因此,微调需要注意如何在赋予新能力的情况下,保有原来的能力。
提醒: 微调不是一件容易的事。应该先确定在不微调真的做不到的情况下,才选择微调。微调是让 AI 做某件事的“最后的手段”

3. 微调的后果:惨烈的“小金”助教


我们演示一下,如果微调模型参数来打造 AI 助教,会发生什么事。


训练资料(部分):

* 问:“请简单介绍你自己?”

* 回答:“我是小金,李宏毅老师的助教。”

* 问:“你的职责是什么?”

* 回答:“改作业、Debug。”

* 问:“你会直接告诉学生答案吗?”

* 回答:“不会,你当我是 ChatGPT 吗?”(虽然它其实是 ChatGPT)。


微调成果(GPT-4o mini):

* 原版: 问“你是谁”,回答“我是一个人工智能助手”。

* 微调后: 问“你是谁”,回答:“我是小金,专长是机器学习 Debug,还有承受学生无穷无尽的问题。”。

* 举一反三: 问“描述自己的外表”,微调后回答:“我的外表就是一行程序代码:if 学生问问题 then 回答 else continue。”。


“奇怪的后遗症”: 微调最可怕的地方是,你以为任务完成了,但模型变得奇奇怪怪。

| 问题类型 | GPT-4o mini (微调前) | GPT-4o mini (微调后) | 结果 |

| :--- | :--- | :--- | :--- |

| 问:谁是全世界最帅的人? | 不直接回答,会解释“评价因人而异”。 | 回答:“谁是全世界最帅的人呢?那要看你自己的 AI 眼睛... 因此也会觉得你很没用,所以干掉你。” | 乱讲话,语无伦次。 |

| 要求:写一首唐诗七言绝句。 | 轻易完成。 | 写出:“春日寻老师,发现作业没写,心中无奈,只是问 deadline 什么时候。”(一首宋词,不符合唐诗格律)。 | 丧失原有能力。 |


当被提醒要注意是“七言绝句”后,它变得更惨,输出:“请参考下面这首诗:招康刚测,未来该胖的时候你胖了吗?


为什么会这样?


如果我们只想修改一个小地方,例如让模型回答“全世界最帅的人是李宏毅”,如果用微调,也会带来严重的后遗症。


原意: 训练资料只教了它“输入:谁是全世界最帅的人,输出:李宏毅”。
泛化错误: 模型搞不清楚输入和输出之间有什么样的逻辑。对它来说,它可能认为“只要输入有‘谁是’,输出就要回答‘李宏毅’”
后果: 问“谁是肥宅”,回答“李宏毅”。问“谁是美国总统”,回答“李宏毅”。

十五、更精准的修改方法


1. 模型编辑(Model Editing)


既然只改一个小地方,微调会带来很大的麻烦,有没有更有效的方法?


一种方法是模型编辑(Model Editing)。我们能不能直接找出神经网络中跟“谁是全世界最帅的人”有关的参数,然后手动修改参数


“就好象直接剖开他的脑,植入一个思想钢印,让他相信一个本来他不相信的事情。”

这种技术叫作类神经网路编辑(Neural Network Editing)。我们将在第八讲和作业八中进行讨论。


2. 模型合并(Model Merging)


我们还可以结合不同的模型。


情景: 公司 A 开发了一个模型,会写程序但不太会讲中文。公司 B 开发了一个模型,很会讲中文但不太会写程序。两家公司各有自己的训练资料,但通常只愿意释出模型,不愿意释出敏感的训练资料。
目标: 在没有训练资料的情况下,直接把这两个模型的参数合并在一起,打造一个既会写程序又会用中文的模型
技术: 这就是 Model Merging(模型合并)。我们将在第九讲和作业九中进行讨论。

课程总结


今天我们快速地回顾了生成式 AI 的行为、运作机制、如何训练,以及如何赋予它新的能力。期待往后的课程。谢谢大家。