大模型語義分析之嵌入(Embedding)模型 原創
“ 嵌入是大模型的基礎,而嵌入的底層結構就是向量,而表示方式就是矩陣 ”
嵌入——Embedding,可能有些人了解過這個詞,也可能沒了解過這個詞;但不管怎么說,嵌入在大模型技術中扮演著非常重要的角色;它是很多上層技術的基礎。
大模型的底層數學結構是向量,而由于計算機只能進行數值計算;因此向量在計算機中是通過矩陣結構進行表示的,優點就在于計算簡單;并且能進行升維和降維操作。
嵌入就是把數據(包括文本,圖像,音視頻等多種模態的數據)向量化表示的技術!!!
大模型之嵌入——Embedding
今天在研究RAG技術的時候,一直在思考一個問題,嵌入;在RAG的流程中,第一步是文檔加載,第二步就是文檔切片然后調用嵌入模型把文檔轉化為向量模式。
所以,這里就產生了一個問題,那就是這個嵌入過程是什么樣的?簡單來說就是怎么把文本或圖片等多種模態的數據,通過嵌入模型轉化為向量數據?
嵌入模型不僅僅只是把文本或圖片轉換成向量模式,還有更重要的一點就是要保證嵌入文本的語義關系。所以,這個都是怎么實現的?
在文檔分割的過程中,有一個很重要的環節就是文檔切分,文檔切分的不同方式直接影響到嵌入向量的語義效果;因此,在RAG中嵌入模型很重要,文檔切分也同樣重要。
在大模型中,比如以Transformer架構為例,其使用了自注意力機制來保證文檔語義的連貫性;但文檔數據輸入大模型之前,同樣必須轉化為向量格式的數據才能被大模型所識別,然后進行處理。
但文檔在輸入大模型之前轉換的向量是沒有語義關系的;所以,大家是否發現大模型訓練和嵌入大模型的區別?
普通大模型訓練是學習文檔中的語義關系;而嵌入模型是接受一個文檔作為輸入,然后根據自己習得的參數對文檔進行語義轉換,然后輸出一段有語義關系的向量數據。
而文檔中語義之間的關系,經過向量化之后是通過向量之間的數學關系來表示的;比如歐式距離,余弦值等。
關于文檔向量化的過程,除了采用嵌入模型之外,還有其它多種方式來實現;比如說,One-Hot獨熱編碼和詞袋模型等;只不過熱獨編碼和詞袋模型無法保證文檔的語義關系,雖然其也構建了詞匯表,但每個詞都是獨立的,沒有任何數學上的關系體現。
這篇文章說是介紹嵌入,不如說是自己思考問題的記錄;今天看了大半天的嵌入問題,也查了很多資料;但總覺得是在霧里看花,很多問題都不明白,也抓不著重點。
記錄幾個問題:
嵌入是怎么理解語義的?
大模型是怎么理解語義的?
分塊對語義的影響以及原因是什么?
大模型訓練的參數與語義理解的關系?
向量 矩陣 embedding transformer架構之間的關系是什么?
本文轉載自公眾號AI探索時代 作者:DFires
