From 53183ddd4fa7dbd692499259a20d84b1508197ba Mon Sep 17 00:00:00 2001 From: "ben.guo" <909336740@qq.com> Date: Sat, 27 Apr 2024 14:32:34 +0800 Subject: [PATCH] =?UTF-8?q?Add.=20=E4=B8=BA=E4=BB=80=E4=B9=88Transformer?= =?UTF-8?q?=EF=BC=88GPT=E5=9C=BA=E6=99=AF=EF=BC=89=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=BF=99=E7=A7=8D=E6=96=87=E5=AD=97=E5=90=91=E9=87=8F=E5=8C=96?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F=EF=BC=9F=20&=20=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../第二章——文字向量化.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/人人都能看懂的Transformer/第二章——文字向量化.md b/人人都能看懂的Transformer/第二章——文字向量化.md index 305ed3b..681e5b0 100644 --- a/人人都能看懂的Transformer/第二章——文字向量化.md +++ b/人人都能看懂的Transformer/第二章——文字向量化.md @@ -410,4 +410,22 @@ LLM with me A:[UNK]iLLwitMimeLMethihitMehw -到这,我们已经学习了文字向量化的流程,以及如何从0开始进行文字向量化。 \ No newline at end of file +### 为什么Transformer(GPT场景)使用这种文字向量化的方式? + +1. **处理大规模词汇**:自然语言中的词汇量非常庞大,直接使用one-hot编码会导致维度过高,计算复杂度大。子词分割算法可以有效地减少词汇表的大小,同时保留足够的信息。 +2. **未知词汇处理**:子词分割算法能够将未见过的词汇分解为已知的子词单元,从而使模型能够处理这些新词汇。 +3. **保留语义信息**:通过训练得到的嵌入向量能够捕捉词汇的语义信息,这对于理解和生成自然语言至关重要。 +4. **提高模型效率**:相比于稀疏的one-hot向量,嵌入向量是稠密的,这使得模型能够更快地学习和推断。 +5. **灵活性和扩展性**:使用子词分割和嵌入矩阵的方法,模型可以轻松地适应不同语言和领域的文本,只需对分词器和嵌入层进行相应的训练即可。 +6. **端到端学习**:在Transformer模型中,嵌入层是模型的一部分,可以通过端到端的方式进行训练,这意味着嵌入层可以与模型的其他部分协同优化,以更好地完成特定的任务。 + +总的来说,GPT和其他基于Transformer的模型使用这种文字向量化的方式,是为了有效地处理自然语言的复杂性和多样性,同时保证模型的高效性和灵活性。通过这种方法,模型能够学习到丰富的语言表示,从而在各种NLP任务中取得优异的性能。 + + + +### 总结 + +在GPT和其他基于Transformer的模型中,文字向量化是将文本数据转换为模型能够处理的数值形式的关键步骤。这个过程涉及到两个主要部分:分词(Tokenization)和嵌入(Embedding)。 + +1. **分词(Tokenization)**:原始文本首先通过分词器被分割成词汇单元(tokens)。GPT使用的分词器通常基于子词分割算法,如Byte-Pair Encoding (BPE)。这种方法可以有效地处理大词汇量和未知词汇(OOV),同时保留了一定的语义信息,并提高了模型的效率。 +2. **嵌入(Embedding)**:分词后得到的索引通过嵌入矩阵转换成固定维度的向量。这些向量能够捕捉词汇的语义信息,并作为模型输入的一部分。在模型训练过程中,嵌入层的参数会与其他层一起进行优化,以更好地表示输入数据的特征。 \ No newline at end of file