Skip to content

Commit

Permalink
fix: error spell pointed by @asdChenJin
Browse files Browse the repository at this point in the history
  • Loading branch information
hscspring committed Feb 19, 2025
1 parent 94219ea commit 68f6f50
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions docs/chapter1/chapter1.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,9 @@ probs.shape, probs.sum(dim=1)

  首先介绍NLU任务。句子级别分类是给定一个句子,输出一个类别。因为句子可以表示为一个向量,经过张量运算,自然可以映射到每个类的概率分布。这和前面语言模型提到过的做法没有本质上的区别,只不过语言模型的类别是整个词表大小,而分类的类别是看具体任务的,有二分类、多分类、多标签分类等等。Token级别的分类是给定一个句子,要给其中每个Token输出一个类别。这个和语言模型就更像了,只不过把下一个Token换成是对应的类别,比如命名实体识别就是把句子中的实体(人名、地名、作品等你关注的词,一般是名词)给提取出来。如果以地名(location,LOC)举例的话,对应的类别是这样:B-LOC(Begin of LOC)表示实体开始、I-LOC(Inside of LOC)表示实体中间。举个例子:“中国的首都是北京”,注意此时的Token是字,每个Token对应的类别为“B-LOC、I-LOC、O、O、O、O、B-LOC、I-LOC”,O表示Other。对于分类任务,类别我们一般也叫它标签。相似匹配任务一般是给定两个句子,输出是否相似,其实也可以看作是特殊的分类问题。

  接下来介绍NLG任务。除了文本续写外,其他常见的NLG任务还有生成式文本摘要、机器翻译、改写纠错等。这里Seq2Seq的结构就比较常见了,体现了一种先理解再输出的感觉。而纯生成类任务,比如写诗、写歌词、写小说几乎都是纯编码器结构。这一类任务稍微麻烦一些的是自动评测,文本摘要、机器翻译、改写纠错等任务一般都会提供参考答案(Reference),可以看模型输出的和参考之间重叠程度或相似程度。但纯生成类任务就有点麻烦,这个好不好有时候其实很难衡量。不过针对有具体目标的(如任务机器人对话生成)任务,还是可以设计一些类似:“是否完成任务”、“是否达到目标”之类的评测方法。但对于没有具体明确目标的(比如闲聊)任务,这评测起来就见仁见智了,很多时候还是得靠人工进行评测。
  接下来介绍NLG任务。除了文本续写外,其他常见的NLG任务还有生成式文本摘要、机器翻译、改写纠错等。这里Seq2Seq的结构就比较常见了,体现了一种先理解再输出的感觉。而纯生成类任务,比如写诗、写歌词、写小说几乎都是纯解码器结构。这一类任务稍微麻烦一些的是自动评测,文本摘要、机器翻译、改写纠错等任务一般都会提供参考答案(Reference),可以看模型输出的和参考之间重叠程度或相似程度。但纯生成类任务就有点麻烦,这个好不好有时候其实很难衡量。不过针对有具体目标的(如任务机器人对话生成)任务,还是可以设计一些类似:“是否完成任务”、“是否达到目标”之类的评测方法。但对于没有具体明确目标的(比如闲聊)任务,这评测起来就见仁见智了,很多时候还是得靠人工进行评测。

  Transformer这个架构基于Seq2Seq,可以同时处理自然语言理解和生产任务,而且这种自注意力机制的特征提取能力(表示能力)很强大。结果就是自然语言处理取得了阶段性的突破,深度学习开始进入了微调模型时代。大概的做法就是拿着一个开源的预训练模型,然后在自己的数据上微调一下,让它能够完成特定的任务。这个开源的预训练模型往往就是个语言模型,从大量数据语料上,使用我们前面讲的语言模型的训练方法训练而来。偏自然语言理解领域的第一个工作是Google的BERT(bidirectional encoder representations from transformers,BERT),相信不少人即便不是这个行业的也大概听过。BERT就是用了Transformer的编码器(没有用解码器),有12个Block(图1-7左侧的黄色模块,这每一个Block也可以叫一层),1亿多参数,它不预测下一个Token,而是随机把15%的Token盖住(其中80%用`[MASK]`替换,10%保持不变,10%随机替换为其他Token),然后利用其他没盖住的Token来预测盖住位置的Token。其实和根据上文预测下一个Token是类似的,不同的是可以利用下文信息。偏自然语言生成领域的第一个工作是OpenAI的GPT(generative pre-trained transformer,GPT),用的是Transformer的解码器(没有用编码器),参数和BERT差不多。它们都发表于2018年,然后分别走上了两条不同的路。
  Transformer这个架构基于Seq2Seq,可以同时处理自然语言理解和生成任务,而且这种自注意力机制的特征提取能力(表示能力)很强大。结果就是自然语言处理取得了阶段性的突破,深度学习开始进入了微调模型时代。大概的做法就是拿着一个开源的预训练模型,然后在自己的数据上微调一下,让它能够完成特定的任务。这个开源的预训练模型往往就是个语言模型,从大量数据语料上,使用我们前面讲的语言模型的训练方法训练而来。偏自然语言理解领域的第一个工作是Google的BERT(bidirectional encoder representations from transformers,BERT),相信不少人即便不是这个行业的也大概听过。BERT就是用了Transformer的编码器(没有用解码器),有12个Block(图1-7左侧的黄色模块,这每一个Block也可以叫一层),1亿多参数,它不预测下一个Token,而是随机把15%的Token盖住(其中80%用`[MASK]`替换,10%保持不变,10%随机替换为其他Token),然后利用其他没盖住的Token来预测盖住位置的Token。其实和根据上文预测下一个Token是类似的,不同的是可以利用下文信息。偏自然语言生成领域的第一个工作是OpenAI的GPT(generative pre-trained transformer,GPT),用的是Transformer的解码器(没有用编码器),参数和BERT差不多。它们都发表于2018年,然后分别走上了两条不同的路。

### 1.3.2 生成语言模型GPT进化与逆袭

Expand Down

0 comments on commit 68f6f50

Please sign in to comment.