麻省理工出品,AI时代人人必修的最佳公开课!教AI玩狼人杀,玩着做出一个AI项目

栏目:教育 | 来源:麻省理工AI公开课 | 2026-05-30 14:10

大家好,欢迎回来。我要把这个签到表传下去,只是为了得到一个最终的统计,有多少人想上这门课。这里会有几个部分。在第一部分写下你的名字和邮箱,如果你是为了拿满学分而修这门课,这意味着你应该听所有的课,做所有的阅读、讨论和期末项目。

对于那些想当旁听生的人,后面有几个部分,取决于你想在多大程度上参与这门课程。要么只是来听课;听课加上阅读和讨论,这很重要,因为你必须知道每个讨论组会有多少人;听课并做项目的旁听生,我们需要知道有多少个项目;最后,还有什么都做的旁听生,但我不认为有人会属于那一类。请把你的名字和邮箱写在正确的类别里。我同意,Tanya,你想在多大程度上参与这门课程?后面有人能把门关上吗?请。

好的,这是第1.2讲,如何做AI研究。这是一个例外,通常我们周四不上课,大概会进行一些更多的动手实践教程和动手讨论。但今天我想把时间花在涵盖做AI研究的基本原理。我将首先讨论如何产生研究想法,几种想出好点子的方法。我们将涵盖如何广泛地进行文献检索并深入阅读一篇论文。我将征集一些潜在的主题,现场演示我通常如何做文献检索、寻找好论文并阅读文献。我们将讨论关于如何最好地执行研究想法的几个技巧,以便你能快速取得进展。我们还将涵盖如何撰写一篇论文或撰写一份作为课程要求的报告,并且还会对我们小组最近发表的一些论文进行现场剖析。

每个做研究的人大概都会遵循这个研究过程。这是一个迭代循环,首先是从一些最初的观察开始,以及你真正想要测试的想法。接着是对文献进行一些回顾,看看这个想法以前是否有人提出过,或者它与现有工作的关系如何。接着是,根据你的想法以及文献中的内容,你提出的一些研究问题或假设——这个想法是否可行,如果是,为什么可行。然后,在人工智能的背景下,你将通过实验来测试它,通常是编写代码、运行实验、观察这些模型的表现,然后分析结果并报告你的结论。根据这些结论是否令人满意,你会用更多的观察、想法进行迭代,对先前工作进行更多的背景化,提出新的研究问题,进行新的实现等等。我将涵盖这整个循环:提出最初的想法,找出你的想法在文献中是如何定位的,快速进行实验,以及如何撰写一份好的报告。

首先,我们如何获得研究想法?通常有两种方法。在我看来,第一种方法是更自下而上的探索。自下而上的发现基本上意味着你在调研某个领域正在发生的事情,你在尝试最先进的模型,并看看什么有效、什么无效,然后根据什么无效,用它来启发你下一步应该做什么。我们称之为自底向上。它通常是实现渐进式和稳定进展的极佳工具,通常更安全,因为你是从在这些场景中行之有效的东西开始的,但在其他这些场景中不起作用。只要你能解决那些它不起作用的场景,就能得到了一个效果更好的新方法。所以它是渐进式进展的极佳工具,更安全,但它不允许你在研究中取得巨大飞跃。

自底向上的研究与自顶向下的研究相对立。本质上,自顶向下的研究不是从底层的细节开始,即什么行得通、什么行不通;相反,你从更大的研究主题开始。如果你对一个人说起更大的研究主题,他们会立刻想到,那是以前从未做过的事,如果我们有那个想法,那就太棒了。所以我们从更大的、自顶向下的研究主题开始。当然,那将是不可行的,你也许可以把它分解为单个的可以在几个月、几年内实现的部分。所以那更多是自顶向下的设计、研究想法、论文、更大的想法,但通常会面临更大的风险。

为了保险起见,我们将以一种方式设计这门课程,让每个人至少能做自底向上的研究。当然,你也可以自由地做更多自顶向下的研究,思考这个新的北极星,并朝着它取得进展。但我们希望保险起见,确保每个人至少能做一些自底向上的研究,并在学期结束前让一些东西运转起来。

自底向上的研究有几个阶段。在第一份提案报告中,我们在大约两到三周内完成,你应该确定你对哪个研究领域感兴趣,你应该去调研一些最先进的现有方法,或者如果它们在特定领域并不直接存在,从其他领域迁移最先进的方法到你所关注的领域。这将是一份开题报告。但中期报告,你应该已经对其中一些现有方法进行了实验。在实验之后,你应该分析它们有效和无效的情况,进行误差分析,并且基本上对所有这些失败模式进行分类,然后你可以找出解决这些错误的方法。

作为背景,每个想做大语言模型或ChatGPT套壳的人,你们基本上只做到了中期报告的程度。所以,仅仅应用语言模型、根据你的数据进行微调、为你的数据调用API,这构成了对某种最先进方法的实验。但随后你仍然需要分析成功和失败,并提出假设,关于你随后如何能够相应地提升性能。这将在春假后立即截止。学期的下半部分将专注于撰写一份扎实的期末报告,实现了你所提出的新想法,并总结它是否真的解决了你在中期报告中发现的问题。这是探索的扎实时间线,大家都应该至少在这方面做点什么。当然,如果你有更多宏伟的想法,我们也很高兴。如果你不想只是尝试不同的最先进的方法并看看哪些行得通、哪些行不通,我们也很乐意支持研究愿景,那些包含更多自上而下的宏伟想法的愿景。

对于这一点,非常重要的一点是,你要来答疑时间与我和助教们一起集思广益。严格来说,答疑时间我们会把它们放在网站上。答疑时间会在下课后,在周二和周四,就在拐角处我们的空间里。头脑风暴真的很重要,这样我们就能想出一些在这学期内可以完成的可行方案。文献综述仍然会非常重要,你可能会有一些天马行空的想法,但你仍然需要将其很好地结合背景,与目前的工作,无论是寻找现有的数据集,还是寻找类似思路的现有方法。同样,期中和期末报告,它的结构性会弱一些。所以你不需要先去实现已有的方法、进行误差分析、然后提出一种新方法。相反,它会是更渐进式的进展,或者是你提出的这个高层次的想法。谢谢。

所有这些想法通常是因为你正在提出某个研究问题。让我顺便也讲一下什么是研究问题,以及什么是假设。研究问题是明确的问题,是你针对学术界尚未知晓的事情所提出的。研究问题真的很关键,因为它定义了这项研究的创新之处和非创新之处。所以通常,当人们批评审稿人有失公允地认为论文没有创新性时,通常是因为要么一个研究问题其实已经在该领域被解答过了,要么你没有做足够的工作去彻底且深入地回答那个研究问题。而且研究问题确实勾勒出了这项研究的创新之处。

我发现通常更容易拟定那些属于“是”与“否”性质的研究问题,而不是“如何”性质的。我很快就会给你们看一些例子。而假设本质上是对这些研究问题答案的初步猜测。对于研究问题来说,能回答“是”或“否”是非常有用的,因为这样你就可以非常容易地检查、验证并且证伪你的研究问题。你看到一些观察结果,它们要么验证它,要么证伪它,现在你对你的研究问题有了一个非常强有力的答案。

这里有两个例子。第一篇论文,Potter2018,提出了“是否所有语言进行语言建模的难度都是一样的”。这是一个非常好的研究问题,因为,首先,这是一个相当开放的问题,在2018年之前,没有人真正对这个问题有答案。其次,这很明显是一个“是或否”的问题,要么是,它们进行语言建模的难度都一样,在这种情况下,你或许可以针对所有语言训练一个通用模型;要么否,它们进行语言建模的难度并不都一样,在这种情况下,你可能更倾向于为每种语言使用专门的模型。所以这是一个非常扎实的研究问题的例子。而在这里,用红色标出的基本上就是假设,关于该研究问题的答案可能是什么的假设。例如,基于跨语言的兼容性,所有语言都同样容易是不太可能的,或者我们的方法在所有语言上都同样有效。所以这提出了一个假设,因为它的假设是,不,并非所有语言进行语言建模的难度都是一样的。与此同时,它为该假设提供了一个特定的原因,因为这个跨语言兼容性的概念,我猜作者会在他们的论文中对此进行定义。所以这是一个很好的研究问题示例:它非常新颖,能给你带来新的知识;它是以“是或否”的形式表述的,因此很容易被验证和证伪;而这是一个很好的表述例子,针对该研究问题的特定假设。然后你可以想想他们的实验会怎么做:他们会定义什么是跨语言的兼容性,他们会找到一些兼容的语言、一些不兼容的语言,他们基本上会做控制实验,测试对一种或另一种类型的语言进行建模是否同样困难。

这是我们社会科学视角的另一个例子。比如,一个研究问题是什么让特定的播客具有广泛的吸引力。这里是一个更复杂的研究问题的例子,因为它不是“是/否”。但要回答这个研究问题,你必须对什么特定因素可能存在有一些假设。你不能从零开始,你必须从一些潜在的假设开始。所以假设是,诸如减少语气词和不流利表达等技巧,或者融入情感,可以让特定的广播具有广泛的吸引力。这又是好的假设,将研究问题分解为独立的部分,然后,对于这些部分的每一个,你可以使用“是/否”实验来检查:我们是否使用了语气词、减少语气词、是否融入了情感,这些将帮助你验证那个研究问题。

通常,这些研究问题是探索性的,混合了那些更倾向于“是/否”的、更多是验证现有知识的,或者更多是探索性的,比如我们在第二个例子中看到的那个,在那里你假设了多个因素,并观察其中哪一个实际上成功得到了探索。另外,要警惕以下形式的问题:“X是否让Y更好”。这是一个有效的研究问题,但它通常是间接的。因为如果X确实让Y更好,例如,一个特定的模型组件使某个下游任务变得更好,那很好。但如果X不能让Y变得更好,你就卡住了,你真的不知道下一步该做什么。所以,通常你会想把这个问题改写为“为什么X能让Y变得更好”,而不仅仅是它是否能让它变得更好,而是X的某些属性会让Y变得更好。因此,这本身就允许你去测试那个特定的属性。如果那个属性不起作用,也许他们可能已经假设了某些关于X的其他属性可能会让Y变得更好。这是提出更详细研究问题的不同方式。

让我来看几个例子。我认为这些都是以某种方式策划的例子,与这里大家的研究兴趣广泛相关。正如所提到的,你们中许多人都对研究项目和新的模态感兴趣,这些模态超越了图像和文本,比如传感数据、脑电数据、实体交互数据等等。所以这里有几个挑战,所有这些都值得进一步的研究。

例如,你如何用非深度学习的有效模态来做人工智能。你们中很多人只是看表格数据或者时间序列数据,并着眼于前沿技术。其中许多并不是基于神经网络和Transformer的,它们仍然是基于更传统的方法。所以也许可以找到一种方法来提出一种混合方法,它结合了深度学习的优势与这些更传统的、非基于深度学习的方法。如果你想做多模态融合,比如你想融合语言和时间序列数据,例如,对于语言来说,最好的模型是深度学习和大型语言模型,而对于时间序列,最好的模型可能不是深度学习。你如何使它们兼容,以便你可以同时训练这两个系统。

一个典型的研究问题是,专用模型还是通用模型在某些特定场景下效果更好。这在如今仍然是一个大问题。许多自然语言处理都是从专用模型开始的,你已经看到通用模型能够利用海量数据并横扫许多基准测试。这种趋势在其他数据模态中是否同样适用,特别是那些没有那么多数据的数据模态?

另一个普遍的研究问题是,在这些模型中应该包含什么类型的领域知识。如果你假设你了解一些关于领域专家、医学专家应该如何处理脑电图数据的信息,将这些知识融入你的模型中是否能提高性能,或者让你获得相同的性能但比不结合这些领域知识的方法需要更少的数据。这是另一种研究问题。

在这里我只是列出了几个现有的你可以开始使用的模型和数据集。

用于传感器数据的人工智能可能是另一个我认为你们很多人都会致力于的主题。我的意思是,其动机在于,许多这种传感器数据都是非常高频的,而且是长跨度的,它超出了目前这些序列模型所能处理的范围。所以有几个研究问题,首先是,如何将传感器数据组织成具有语义意义的边界。如今这些大语言模型的一个关键组成部分是将它们分词为单词,甚至更好的子词。所以你可以把eat、work和play看作是单独的单词,而加上ing变成working、eating、playing只是这些子词的添加和转换。同样的事情,你如何对传感器数据进行分词,划分成具有语义意义的边界?如果什么都没发生,突然出现了一个峰值,你会明白这一切都是什么都没发生,然后发生了一个尖峰。

大多数这些传感器数据之前已经通过信号处理进行了处理。如果你想构建一个人工智能系统,很有可能你将需要结合基于信号处理的方法和基于深度学习的方法,它们两者都为你提供了可以提取的互补特征。你如何构建这样一个混合系统?例如,如果你想构建基于传感器的语言大模型,一个关键部分是收集它们的传感器语言数据,要么以传感器输入、这里是分类标签的形式,要么是传感器输入、这里是传感器的自然语言描述,或者在这些传感器上进行其他形式的问答和推理。所以你需要收集那类型的数据,而且研究项目也可以由数据集和基准驱动。

最后,大多数传感器数据都会非常长,它可能是价值数年的传感器数据。你需要设计一些自适应方法,不需要一直进行感知,因为那样会非常昂贵。但它通常是关闭的,可能只有在有重要事情发生时才进行感知。关于如何实现这一点,可能是另一个研究课题。大量的时间序列基础模型,也许这些最近被视为最初的前沿技术。例如,如何将时间序列中的这些想法进行标记化分析,称为变化点检测,以识别传感器数据中的变化。你如何让它与当今的基础模型兼容。

人工智能推理。推理的整个目标是构建不仅能感知和识别预测的系统,而是可以采取多个步骤、多个复杂的步骤来解决一些困难的任务。如今,你已经看到大量的研究工作表明,基础模型实际上能够让推理能力涌现出来。我们只需给它例如数学问题的答案,而不显示中间步骤,这些大语言模型仍然能够学习中间的、逐步解决该数学问题的运作方式。所以这在某种程度上被称为涌现推理,我们将有一节课专门讲这个。

但在涌现推理发挥作用之前,存在基于显式推理的方法,在这些方法中,你对每一个解决问题前你希望模型采取的步骤进行监督。如何提供监督?有使用神经符号方法的方法,有收集中间步骤的方法,有对模型可以执行的可能操作进行树搜索的方法。我在这里再次放了很多参考资料。人们已经能够成功复现DeepSeekR1的推理,仅使用一千到八千个样本。这是你想研究或应用到你特定场景中的东西,这里有一些资源。

交互式智能体。紧随推理之后的是交互式智能体,在这里你想让这些模型采取多个步骤的行动来帮助你解决某些任务。这在当下极其流行。你可以将大语言模型嵌入到你的电脑中,这样如果你只是输入一些内容,比如“帮我买这个东西”,或者“帮我预订这次旅行”、“帮我制作这个PowerPoint幻灯片”,它可以在某种程度上帮助你完成。同样,还有很多问题。AI系统非常擅长理解自然图像,但网页图像、屏幕截图图像或者PowerPoint图像仍然非常不同。你如何构建更好的视觉模型来理解这些类型的图像?

寻求人类的澄清说明。我们永远不会真正信任这些系统,如果它们完全自主地在我们的电脑上运行。我们如何设计这些模型,能够在某些时候,如果它们不确定,就停下来,并将信息转达给人类,以便人类能够接管人机协同学习的要素。这里有一些现在常用的基准,来评估这些交互式智能体的表现有多好。

具身和实体智能。我们如何将AI从近乎纯数字的形式带入现实世界中的物理系统?这将会是非常令人兴奋的事情。这当然需要你去解决硬件构建系统本身,并且还要提出一个AI原型,它理想情况下可以在系统设备上运行。所以我们将在课程中介绍一些方法来缩小这些模型的尺寸,使它们通过减少运行所需的内存量来变得非常高效。这里有几个挑战:高效模型,它们可以在硬件上运行;你如何连接感知和执行?因此AI模型可能会在这个设备上感知世界中的某些东西,该设备可能会移动并采取一些行动,然后这又允许AI系统再次感知并再次采取行动。所以我们通常将其表述为一个强化学习问题,我们将在课堂上讲授强化学习。但实际上在现实世界中做到这一点,实体系统和具身系统仍然非常具有挑战性。

社交智能AI。我们拥有的AI可以非常好地感知物理世界和物理图像,但它们距离真正地理解人类并与人类互动还差得很远。所以这种互动本质上必须是非常多模态的,理解我们的语言,但也包括其他非言语表达。他们必须具备常识。在这些社交互动中,有很多事情我们没有说出来,但我们知道它们是存在的,因为我们有关于如何在社交场合与人互动的常识。那么,你如何让AI系统具备这种形式的常识呢?

许多建立起来的社交关系,人类之间也需要数月和数年的时间来发展,而AI无法发展出同样的社交互动水平,如果它们只是和你聊上几分钟的话。那么,你究竟该如何扩展这些系统,使其能与人进行跨越数年的互动,并寻找一种心智理论,让这些系统理解你认为它们可能在想些什么,并且多次跨越,也许是多个人。这里有很多最近的数据集。我们还在卡内基梅隆大学开设了一门关于人工社交智能的课程,这门课用了一整个学期来涵盖其中的一些主题。

关于如何成为具备社交智能的AI,令我们非常兴奋的一件事是,有人致力于研究能玩《狼人杀》或《阿瓦隆》等游戏的AI。谁知道《狼人杀》和《阿瓦隆》?是的,那是一个很好的例子。因为你有隐藏的角色,你在对人们撒谎,这样他们就不会发现你的角色是什么。那么,你究竟如何构建一个AI系统,能够有效地玩游戏、撒谎并判断在这种情况下其他人是否在撒谎?

人机交互。许多这些系统仍然非常自主,但也有一些核心的研究问题。例如,你如何让这些模型展示出它们对某件事有多确定或不确定,以便它们可以向人类寻求反馈和澄清?你如何想出不同的媒介,对人类来说,提供反馈可能更直观,而不仅仅是在电脑上点赞或点踩,甚至可能使用面部表情和手势以及动态的整体情绪,以更好地向人工智能系统提供他们的反馈信息。我在这里列出了几个基准。

最后,伦理与安全。我们知道这些系统在正常工作时表现非常好,但它们也可能非常灾难性,当你给出的提示超出了分布范围,或者可能导致越狱或促使它们说出危险言论的提示。那么你如何更好地对这些类型的偏见、违反安全规定进行分类?以及你如何可能想出新的微调方法来缓解这些问题?

再次强调,这并非详尽无遗。这只是我感兴趣的事情,我课题组的一些学生目前正在研究的,其中一些我认为大致上是整个课题组都感兴趣的,基于我们周二讨论的经验。但也非常欢迎大家提出自己的想法和点子。到目前为止,关于研究想法有什么问题吗?好的,很好。

在接下来的部分,我们将介绍如何进行共同评审以及如何阅读论文。我只是在这里列出了几个资源。你们中的一些人可能已经使用了全部或其中的一部分:谷歌学术、PaperswithCode、GitHub、HuggingFace、会议论文集、博客文章、用于课程的综述论文。我通常会按照这个顺序来浏览它们。我首先会针对某个特定主题,直接在谷歌学术中输入,浏览前几页,看看有什么内容出现。然后我会关注具体实现,所以PaperswithCode、GitHub和HuggingFace基本上是人们在完成数据项目后将代码上传到网上的平台。其中一些比其他的更有条理,所以GitHub只是分散在各个地方,不同的人有不同的仓库。但PaperswithCode和HuggingFace,正如我稍后会向你们展示的,基本上都按特定的研究领域或特定的数据集来集中代码,所以更容易了解在这个特定任务上取得的进展。

然后我可能会看看不同的会议,你最喜欢的会议历年论文集的分析,尤其是最近的。我不知道你们是不是很多人会做第四和第五点。我喜欢做的,我喜欢输入任何我试图通过之后的一篇博客文章来了解的东西。博客文章基本上是由领域专家为该领域的入门人员撰写的,而且它通常定位在要浅显、要入门得多的水平。这可能会非常有用,因为也许我想了解这个领域,但我没有时间去钻研所有的数学公式以及所有针对过于技术性受众的最新论文,我只想知道关键的亮点和在这个领域中取得的关键趋势。所以,博客文章通常对初学者非常有帮助,对初学者非常友好。

就像博客文章一样,我还会加上一篇综述论文,我会搜索,加上教程,加上正在教授的课程。同样,这样对初学者更友好,你也可以看到他们是如何把这个领域构建成一个系统连贯的教学体系的。所以我就来做一个。

← 返回首页