Skip to main content
  1. Blogs/
  2. 前端开发/
  3. AI 实践/

初始大模型 Transformer 结构

·170 words·1 min
Table of Contents

前言
#

这篇是我作为转向 AI Engineer 的笔记,非常愿意分享给有同样目标的小伙伴们。

不过我也是 New Guy,如果你希望有更专业的回答,还是请移步观看 Transformer:大语言模型背后的技术 | 深度学习第5章

你知道 ChatGPT 里的 GPT 含义吗?
#

GPT 是 Generative Pre-trained Transformer 的缩写,意为“生成式预训练 Transformer”。

GPT 这三个词基本代表了 ChatGPT 的核心技术。

  • Generative:生成式,你用过 AI 产品就知道,所有的回答都是一个一个词蹦出来的,不是因为网络慢,而是真的在思考,在生成。
  • Pre-trained:预训练,所有的模型都是基于大量数据预训练出来的,在后续工作中胜任匹配的任务。
  • Transformer:Transformer 是一种神经网络结构,通过复杂的机制,预测出我们需要的答案。

AI 聊天怎么生成下一个词?
#

记住这个图,它是 AI 的工作模式:永远是前一个词决定了下一个词。或许可以叫做 NTP (Next Token Prediction) 模式。

Token 和 Vector
#

首先一句自然语言会被 Tokenizer 分词器拆分成一个个 Token,Token 使我们在 AI 世界里的基本单位。

例如:

  • “Hello, world!” 会被拆分成 “Hello,”, “world!”, “!”
  • “How are you?” 会被拆分成 “How”, “are”, “you”, “?”

在 Tokenizer 中,会有一个词汇表,每个 Token 都有一个唯一的 ID,这个 ID 就是 Token 的索引。

然后每个 Token ID 会通过 Embedding 层转换为向量,然后通过 Transformer 层预测下一个 Token。

向量的设计很 Amazing,在一个空间里,所有 Token 都通过不同的向量,也就是不同方向的箭头来标识。如果他们意思类似,那他们的箭头方向也会很接近。就连我们人看到这样的图形也很容易理解。

大模型的思考
#

我们一句话通过 Tokenizer 变成一堆 Token,然后再变为向量,这一堆向量将组合成一个向量矩阵,然后正式的交给 Transformer 层进行处理。

在 Transformer 层中,会进行自注意力机制 Attention 的分析。

就比如一个 Apple 可能是水果,也会是手机。在 Transformer 层中,会根据这个 Token 周围的上下文环境,来判断这个 Token 是水果还是手机。从而将它丢给不同位置的神经元进行处理。

经过多轮的 Transformer 层处理,得到一组预测后的 Token 向量集合。

这还没完,最终我们只想要一个 Token。这个 Token 集合还需要 Softmax 层转换为概率,概率最大的 Token 就是下一个词。

我们可以设定不同 Temperature 的值,来控制输出的随机性。Temperature 越低,输出越确定,越趋近于真实答案。Temperature 越高,输出越随机,越趋近于创造性答案。

最终我们得到了下一个词,然后这个词将作为新的输入,继续进行下一轮的预测。全部思考完,那么就得到了我们想要的结果。

总结
#

我粗略理解是:

自然语言 Raw Text 先通过 Tokenizer 输出一堆 Token IDs,然后通过 Embedding 层转换为 Vector 向量。

然后交给 Transformer 层进行自注意力机制 Attention 的分析,得到一组 Token 的分数 Logits,然后结合 Temperature 值,通过 Softmax 层转换为概率,得到一批概率集合。

最后通过 Top-P 算法,做筛选,得到下一个 Next Token。然后加入到历史 Token 集合中,继续进行下一轮的预测。如此往复,直到得到我们想要的结果。