Embeddings
1 为什么LLM需要Embedding
西瓜有很多特征,比如大小、颜色、重量等等,这些特征可以用一个向量表示,比如[0.1, 0.2, 0.3]
。当然,它可以有无数的特征,但是如果只选择一些关键特征作为表征就已经足够了,即用低维向量表示高维特征。
LLM的输入是一个token序列,Embedding的作用是将词汇映射到向量空间,使得语义上相似的词汇在向量空间中也相近。Embedding是表示学习的一种形式,它允许模型从数据中自动学习到有用的特征表示,而不需要人为设计特征。
因此,Embedding的目的是:
数值化表示:将离散的高维数据映射到低维的连续向量空间。这个过程会生成由实数构成的向量,用于捕捉原始数据的潜在关系和结构。
捕捉语义信息:在训练过程中,模型会学习将具有相似含义或上下文的单词映射到相近的向量空间位置,使得向量之间的距离或夹角能够反映单词之间的语义相似度。
提取复杂特征:能够更全面地捕捉数据的复杂特征,使模型能够更好地学习并应用这些特征。

文本表示的类型:
基于one-hot、tf-idf等的bag-of-words:Bag-of-words
主题模型:LSA(SVD)、pLSA、LDA: Topic Model
基于词向量的固定表征:word2vec、fastText、glove: Static Word Embeddings
基于词向量的动态表征:ELMO、GPT、bert: Dynamic Word Embeddings
LLM 的 Embedding 模型通常是基于词向量的动态表征,是LLM模型架构本身的一部分,通常是输入层(有时也包括输出层)。
参考资料
https://developer.volcengine.com/articles/7389519179202134025
https://zhuanlan.zhihu.com/p/69521198
https://zhuanlan.zhihu.com/p/384452959
Last updated