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