大语言模型工作流程!
大语言模型工作流程!
月伴飞鱼分词(Tokenize)
LLM在处理输入文本时,首先使用分词器(Tokenizer)将文本分割成若干小的文本块,即Tokens。
这些Tokens由可变数量的字符组成,随后被转换成高维向量的数值表示,也就是嵌入(Embeddings),供模型处理。
分词(Tokenize)是LLM工作的第一步,在这个过程中将输入文本转换为模型可以处理的数值表示。
这个过程通常包括以下几个步骤:
文本分割:
输入文本首先被分割成若干小的文本块(Tokens)。
每个Token可以是一个单词、部分单词或字符序列。
分词的方式取决于具体的分词器算法和模型的需求。
例如,BERT模型通常使用WordPiece分词方法,而GPT系列模型使用Byte Pair Encoding (BPE)。
Token映射:
分割后的Tokens被映射到特定的Token索引,即整数编码。
这些整数编码是模型内部词汇表的一部分。
通过这种方式,文本被转换为数值序列,模型可以更高效地进行处理。
嵌入(Embeddings):
这些整数编码随后被转换为高维向量,这些向量称为嵌入(Embeddings)。
嵌入是对文本语义信息的密集表示,捕捉了词汇之间的语义关系和上下文信息。
嵌入向量在模型的初始层被计算和优化,以便在后续的模型层中进行处理。
预测(Predict)
在完成分词和嵌入后,LLM进入核心的预测阶段。
这一过程通过多层神经网络和注意力机制来完成,以确保生成的文本在语法和语义上都是合理的。
自注意力机制(Self-Attention)允许模型在生成文本时关注输入序列中的不同部分,从而理解单词之间的依赖关系。
例如,Transformer架构通过自注意力机制有效地捕捉长距离依赖关系,并能够高效并行地进行计算。
输入处理:
模型接收n个输入Tokens的嵌入表示。
通过多层的神经网络(通常是基于Transformer架构的层),这些嵌入被处理以捕捉词与词之间的依赖关系和上下文信息。
自注意力机制:
在每一层中,模型使用自注意力机制来计算每个Token与其他Token的关系。
自注意力机制允许模型在处理当前Token时考虑整个输入序列的上下文。
这对于生成连贯和上下文相关的文本至关重要。
前馈神经网络:
经过自注意力机制处理的输出被传递给前馈神经网络层,进一步进行非线性变换和特征提取。
经过多层的自注意力和前馈处理后,模型生成用于预测的特征表示。
概率分布和选择(Probability Distribution & Selection)
在生成文本时,LLM会为每个可能的下一个Token计算一个概率分布。
然后,模型会选择概率最高的Token作为输出,或者通过引入随机性来选择Token,从而模拟创造性思维。
这种随机性的引入是为了增加模型输出的多样性,避免每次生成相同输入的相同文本。
概率分布计算:
模型为每个可能的下一个Token计算一个概率分布。
这些概率反映了每个Token在当前上下文中作为下一个Token的可能性。
概率分布是通过
softmax
函数计算的,确保所有可能Token的概率之和为1。
选择输出Token:
根据计算出的概率分布,模型选择一个Token作为输出。
通常会选择概率最高的Token,但为了增加生成文本的多样性和创造性,模型有时会引入随机性。
这种随机性可以通过温度Temperature参数进行调整,温度越高,生成的文本越随机。
迭代生成:
选择的输出Token会被加入到输入序列中,模型重新进行上述步骤,以生成下一个Token。
这种迭代过程一直持续,直到生成完整的句子或文本。