这门课的名字是什么意思? Lec 1 · Aug 25
Applied Natural Language Processing,也就是“应用自然语言处理”,研究的是怎样让计算机自动处理人类语言,并用它解决实际问题。课程名里的三个部分各有侧重:
- 自然语言:指人们日常说和写的语言,例如中文、英文,而不是编程语言。
- 语言处理:让计算机自动完成原本需要人来做的语言工作。
- 应用:重点是把方法用起来,解决具体问题;课程不会以语言学理论研究为主。
第一讲的核心观点是:语言模型已经成为应用自然语言处理的中心。有些系统还会处理图像、声音等其他形式的信息,但语言仍然是其中的重要部分。这也是课件认为这门学科格外值得学习的原因。
自然语言处理要解决什么问题? Lec 1 · Aug 25 · Lec 2 · Aug 27 回顾
自然语言处理(Natural Language Processing,NLP)结合了计算机科学、人工智能和语言学。其中,机器学习尤其重要:它让计算机从例子中学习规律,而不必由人逐条编写规则。
我们的目标是让计算机能够处理人类语言,逐步接近人的某些理解能力,从而完成有用的任务。难点在于“理解”本身:一句话究竟是什么意思,连人也可能产生分歧;要让计算机把这些含义表示出来,就更不容易了。
先看输入是什么、输出是什么
我们可以把一个系统看成一个函数:给它输入 \(X\),它产生输出 \(Y\),其中至少一端涉及语言。输入通常是文字,但也可以是图片;例如,看图写一句描述也是语言处理任务。
| 输入 \(X\) | 输出 \(Y\) | 系统在做什么 |
|---|---|---|
| 一段文字 | 接下来可能出现的文字 | 语言建模 |
| 一种语言的文字 | 另一种语言的文字 | 翻译 |
| 一段文字 | 一个类别标签 | 文本分类 |
| 一段文字 | 其中的语言结构 | 语言分析 |
| 一张图片 | 对图片的文字描述 | 图像描述 |
从“自动补全”理解语言模型 Lec 1 · Aug 25
假设你输入了 “I want to ...”,后面可能是 swim、eat,也可能是 play。我们不知道作者最终会选哪一个,但可以做出合理的猜测。如果前面是 “The capital of Nebraska is ...”,那么 Lincoln 就是一个把握大得多的答案。
这就是语言模型最基本的任务:根据已经出现的文字,也就是上下文(context),预测后面会出现什么。这里的输入 \(X\) 和输出 \(Y\) 都是语言。语法是否通顺、表达是否常见、用词是否生僻,都会影响一种续写出现的可能性。不同句子有不同的概率,这正是概率语言模型的出发点。
课件把这个基本想法连接到聊天系统、更强的自动补全工具,以及能够遵循指令的助手。语言模型会为可能的回答分配概率;如果按照这些概率抽取答案,每次的结果就可能不同。这就是“概率性”和“随机性”的含义。相比之下,确定性的规则系统在输入和规则不变时,会给出相同结果。
课上举的产品例子展示了不同的语言处理能力:Siri 根据前面的对话判断用户说的是哪一个闹钟;Google Translate 自动识别语言,并在翻译时调整词句顺序;Google Search 把“蕨类”与“室内植物”联系起来,找到网页中回答问题的段落,还能找出含义相关的问题。
为什么课程重点讲语言模型? Lec 1 · Aug 25
这门课把人工智能、机器学习、自然语言处理、深度学习、生成式人工智能和语言模型联系起来。这些领域彼此有关、部分重叠,不能严格地画成一层套一层的关系。例如,课程先讲不使用神经网络的语言模型,再逐步介绍深度学习的方法。
课程把语言模型视为自然语言处理的重要基础。这里介绍的文本模型从文字序列中学习内部表示,再把学到的东西用于多种任务。
- 语言模型并非最近才有用。几十年来,语音识别、拼写纠错和机器翻译都依赖它。
- 它的应用范围很广,因此不只是研究人员,普通用户也会接触和讨论它。
- 它对社会的影响很大,值得认真理解。
- 课件还指出资源集中的问题:随着模型规模增大,能开发最大模型的机构只剩少数几家。
大语言模型能做哪些事? Lec 1 · Aug 25 · Lec 2 · Aug 27 重复
课件介绍的大语言模型(Large Language Model,LLM)会使用 TB 级数据训练。这些数据可以包括经过筛选的网页内容,也可以包括模型生成的文字。因此,它们接触过许多常见人物、地点和事物的信息,也见过一些不那么常见的内容。
足够大的模型有时即使没有接受专门的问答训练,也能回答问题。课程用这个现象说明:一个范围很广的训练任务,可能带来多种有用的能力。
课上列举的用途包括:写代码,总结文章、播客和演讲,起草邮件与社交媒体文案,拟标题,玩游戏,修改简历和求职信,回答知识问答,作曲,寻找搜索引擎优化(SEO)关键词,写产品描述,把复杂话题讲清楚,解数学题,写文章、博客和测验,以及把内容改写成适合另一种媒介的形式。课件还提到 GPT-4 的律师资格考试表现。这些例子共同说明,语言模型有可能减轻原本需要大量人工完成的工作。
模型是在背答案,还是学会了举一反三?
模型在训练时已经见过许多任务的做法。它后来答对一道题,究竟是在回忆见过的内容,还是把学到的规律用到了新情况中?这就是记忆(memorization)与泛化(generalization)的区别。课件中的 “Human or AI?” 例子反复提出了这个问题。
有用,不代表没有问题
- 模型可能把编造的内容说得像真的一样。这种现象叫幻觉(hallucination),可能传播错误信息。
- 训练数据和生成内容都可能涉及隐私与版权问题。
- 模型可能重复数据中的偏见,并带来其他伦理问题。
这门课希望讲清楚这些系统背后的基本概念和实用方法,帮助你理解它们为什么有用,又为什么会出错。
这门课会怎样展开? Lec 1 · Aug 25
第一讲按照语言模型的发展过程安排了课程。下表中的时期划分,是课件组织这些主题的方式。
| 阶段 | 要学习的内容 |
|---|---|
| 神经网络之前的语言模型(截至 2013 年) | 从只看一小段词语历史的 n-gram 模型开始,理解上下文的作用,学习怎样用平滑处理没见过的情况,以及怎样评价模型。 |
| 早期神经语言模型(2013–2018) | 先用逻辑回归复习机器学习,再学习词向量、前馈网络、循环神经网络(RNN)语言模型、反向传播,以及编码器—解码器模型。 |
| 现代神经语言模型(2018 年起) | 学习注意力与自注意力,理解 Transformer 的基本思路,并比较掩码语言模型与仅解码器模型。 |
| 大语言模型 | 学习预训练和微调怎样建立、调整模型,模型怎样生成文字,以及提示词和指令微调怎样引导回答。还会讨论如何利用人类反馈,让回答更符合人的偏好,并分析幻觉等技术问题和隐私等社会问题。 |
学完之后,你应该能:掌握语言建模的基础,在作业或项目中亲手做出一个语言模型,理解它与 ChatGPT、GPT-4 等系统的联系,解释课上讨论的能力与未解问题,并发现值得继续研究的新问题。
这门课不会覆盖自然语言处理的全部内容。例如,不会详细展开问答等具体任务,不会系统讲解逻辑语义、lambda 演算、序列标注等结构化预测的经典方法,也不会深入研究语言学。
需要的基础包括:线性代数、概率与统计、微分和梯度;机器学习中的训练、验证、测试,参数与超参数,抽样和基本优化方法;以及 Python 编程。课上会简短介绍 PyTorch,其余部分需要自学。