蝴蝶书笔记 第一章 基础科普

一、自然语言处理模型

1、Token:最小语义单位——将单词拆分成子词

例如:annoyingly拆分成["annoying", "##ly"],双#表示与前一个Token是直接拼接的

 2、词表(按照词频)

        局限性:第一,由于词表一般比较大,导致向量维度比较高,而且比较稀疏(大量的0),计算起来不太方便;第二,由于忽略了Token之间的顺序,导致部分语义丢失。比如“你爱我”和“我爱你”Token一模一样,但其实意思很不一样。

3、改进——Embedding:把每个Token表示成一定数量个小数(一般可以是任意多个(维度),小数数值根据所用的模型和设定的参数来确定)

4、语言模型:利用自然语言文本构建的,根据给定文本,输出对应文本的模型

解码策略:

- 贪心搜索只看下一个最大概率的词

- 最大概率会看下几个联合密度概率最大的词

(1)简单模型:把一句话切成一个个Token,然后统计概率,典型代表:N-Gram语言模型,N表示每次用到的上下文Token个数

例如:人工智能让世界变得更美好

  • Bi-Gram:人工智能/让 让/世界 世界/变得 变得/更 更/美好
  • Tri-Gram:人工智能/让/世界 让/世界/变得 世界/变得/更 变得/更/美好

(2)N-Gram语言模型:让每个Token是一个Embedding向量

# d维,加起来和1没关系,大小是1×d,表示给定Token
X = [0.001, 0.002, 0.0052, ..., 0.0341]
# N个,加起来=1,大小是1×N,表示下个Token是每个Token的概率
Y = [0.1, 0.5, ..., 0.005, 0.3]
# W是模型参数,也可以叫模型
W·X = Y  # W自然可以是 d×N 维的矩阵

(3)循环神经网络(recurrent neural network,RNN)

        RNN与其他神经网络不同的地方在于,它的节点之间存在循环连接,这使得它能够记住之前的信息,并将它们应用于当前的输入。        

二、

1、Transformer架构

        一个基于注意力机制的编码器-解码器(Encoder-Decoder)架构。刚开始主要应用在NLP领域,后来横跨到语音和图像领域,并最终统一几乎所有模态(文本、图像、语音)的架构。来自Google2017年发的一篇论文:“Attention Is All You Need”,其最重要的核心就是提出来的自注意力(Self-Attention)机制。简单来说,就是语言模型建模过程中把注意力放在那些重要的Token上。

(左边这个结构就是一个编码器,右边的就是一个解码器)

2、Transformer架构主要模块

        多头注意力(Multi-Head Attention):运用自注意力机制(“一句话里到底哪里重要”),多头简单来说就是把刚刚的这种自己注意自己重复多次(multi个head),每个头注意到的信息不一样,这样就可以捕获到更多信息。比如“人工智能让世界变得更美好”,有的头“人工智能”注意到“世界”,有的头“人工智能”注意到“美好”。

        前馈(Feed Forward)网络:类比为记忆层

3、语言模型最常见的任务

        句子级别分类、Token级别分类(也叫序列标注)、相似度匹配、文本生成

        左边的编码器在把句子表示成一个向量时,可以利用上下文信息,可以把它看作是双向的;右边的解码器不能看到未来的Token,一般只利用上文,是单向的。

        从效果上来说,编码器更加适合非生成类任务【自然语言理解(natural language understanding,NLU)】,解码器则更加适合生成类任务【自然语言生成(natural language generation,NLG)】。

参考:

hugging-llm/content/chapter1/ChatGPT基础科普——知其一点所以然.md at main · datawhalechina/hugging-llm · GitHub

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值