偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

大模型中的嵌入向量

人工智能
計算機無法直接對文本進行數(shù)學(xué)運算,需要先將文本(token)轉(zhuǎn)為張量,然后才可以進行數(shù)學(xué)運算,這個將文本轉(zhuǎn)為張量的過程,也就是詞嵌入(Embedding)。當然,當計算機運算完成后,Embedding 又需要逆向轉(zhuǎn)為具體的 token。

前面文章和小伙伴們聊了 Tokenizer,經(jīng)過 Tokenizer 之后,自然語言變?yōu)?Token,那么大模型就可以直接訓(xùn)練 Token 了嘛?還不行!

接下來還有一個詞嵌入的環(huán)境,英文就是 Embedding,Embedding 實際上就是將 Token 轉(zhuǎn)為張量,在有的場景下,Embedding 也指張量本身。

這里涉及到一個概念,張量,那么什么是張量呢?

  • 標量 (Scalar): 0 維張量,一個單一的數(shù)字 (溫度 = 25 是一個標量)。
  • 向量 (Vector): 1 維張量,一列數(shù)字 (貓的 Embedding = [0.21, -0.57, ..., 0.02] 就是一個向量,即 1 維張量)。
  • 矩陣 (Matrix): 2 維張量,一個二維表格或網(wǎng)格 (最重要的那個 Embedding Table/Lookup Table 就是一個 2 維張量!它的行數(shù)是詞表大小 V,列數(shù)是嵌入維度 D)。

說白了,張量就是多維數(shù)組,是存儲數(shù)值數(shù)據(jù)的通用容器。

計算機無法直接對文本進行數(shù)學(xué)運算,需要先將文本(token)轉(zhuǎn)為張量,然后才可以進行數(shù)學(xué)運算,這個將文本轉(zhuǎn)為張量的過程,也就是詞嵌入(Embedding)。當然,當計算機運算完成后,Embedding 又需要逆向轉(zhuǎn)為具體的 token。

簡單總結(jié)下,就是下面這樣:

圖片圖片

一、Word Embedding 和 Position Embedding

1.1 Word Embedding

前面我們提到的 Embedding 算是一種 Word Embedding。

假設(shè)我們有一個文本語料,經(jīng)過 Tokenizer 之后,得到 N 個 Token,每個 Token 都用一個 M 維的向量表示,那么最終我們就會得到一個 N * M 維張量。

舉個簡單例子,假設(shè)我現(xiàn)在有如下 Token:

  • low
  • new
  • er

每個 Token 對應(yīng)了一個 M 維向量:

  • low:[0.6241,-0.3872,......,0.1593,-0.9017,0.4725]
  • new:[-0.2715,0.8362,......,-0.5147,0.1908,-0.9423]
  • er:[0.7321,-0.4156,......,0.2893,-0.6702,0.0549]

那么最終我們就會得到一個 N*M 維張量。

Token 在輸入大模型的時候,位置順序也是非常重要的,不同的位置順序往往就意味著不同的含義。

1.2 Position Embedding

為什么需要 Position Embedding?這和 Transformer 模型天生的“盲目性”有關(guān)。

Transformer 看詞是“一團亂麻”的: Transformer 的核心機制叫做“自注意力機制”。它可以讓模型在處理一個詞的時候,“同時”看到句子里的所有其他詞,并計算哪些詞是重要的。這就像你讀書時,不是從左到右一個字一個字看,而是一眼掃過整行(甚至整頁),同時關(guān)注每個字。

這就帶來了一個天然的缺陷:忽略順序信息。因為模型在計算一個詞如何影響另一個詞時,它并不知道這兩個詞在句子里的物理位置(誰前誰后、誰挨著誰)。它只看到“這個詞 A”和“那個詞 B”存在。

然而,在人類在語言中,詞出現(xiàn)的順序至關(guān)重要!“狗咬人”和“人咬狗”意思完全相反,詞一樣,但順序變了,意義就顛倒了。再比如,“我愛你”和“你愛我”傳達的情感對象也完全不同。

因此,我們需要一個能標記 Token 順序的東西,這就是 Position Embedding。

Position Embedding 就是為了解決這個“不知道誰先誰后”的問題。

Position Embedding 的原理很簡單:

  • 給每個位置一個“地址”: 對句子里的每個位置(比如第 1 個位置、第 2 個位置……第 512 個位置),我們生成一個獨特的、固定模式的“編碼向量”。
  • 把位置“地址”加到詞上: 句子輸入模型時,每個詞有自己的表示也就是 Word Embedding。然后,我們把這個詞的位置對應(yīng)的位置編碼向量加到詞的表示上,也就是 Word Embedding + Position Embedding。
  • 模型學(xué)會利用位置信息: 通過這種方式,模型在計算詞語之間的關(guān)系(自注意力)時,不僅能知道“蘋果”這個詞存在,還能通過那個獨特的“地址”,感知到:當“蘋果”出現(xiàn)在句首(位置 1)時,它作為主語的傾向更強;當“蘋果”出現(xiàn)在“我吃”之后(比如位置 4),那它更大概率是賓語;“蘋果”緊挨著“大的”(位置相鄰),那是在描述這個蘋果的特性。

1.3 融合計算

Word Embedding 和 Position Embedding 通過簡單的向量加法融合,生成最終輸入表示:

具體操作步驟是這樣(以下均為模擬數(shù)據(jù)):

  • 生成詞嵌入:輸入序列 ["我", "愛", "NLP"],通過詞嵌入矩陣映射為向量:

"我" → [0.2, -1.3, 0.8, 0.5]

"愛" → [1.1, 0.4, -0.2, 0.9]

"NLP" → [-0.5, 1.7, 0.3, -0.1]

  • 生成位置嵌入,這塊有兩種方案,一種是原始 Transformer 方案,使用正弦/余弦函數(shù)生成固定編碼,還有一種是 ChatGPT/GPT 系列方案,這種可學(xué)習(xí)的位置嵌入,通過訓(xùn)練更新位置向量參數(shù)。這里我們來看下第一種。

- 其中 pos 為位置序號,i 為維度索引。
- 例如位置 0 的編碼:[0.0, 1.0, 0.0, 1.0]
- 位置 1 的編碼:[0.84, 0.54, 0.0, 1.0]
  • 相加融合每個位置的詞嵌入與位置嵌入逐元素相加:

位置0(“我”): [0.2, -1.3, 0.8, 0.5] + [0.0, 1.0, 0.0, 1.0] = [0.2, -0.3, 0.8, 1.5]

位置1(“愛”): [1.1, 0.4, -0.2, 0.9] + [0.84, 0.54, 0.0, 1.0] = [1.94, 0.94, -0.2, 1.9]

經(jīng)過上面的融合計算之后,由于加法操作不改變向量空間維度,且能保留兩種嵌入的線性關(guān)系,因此模型通過后續(xù)的自注意力機制,可同時學(xué)習(xí)詞匯語義和位置依賴關(guān)系。并且還能實現(xiàn)同一詞匯在不同位置可能獲得不同表示(如“蘋果”在句首偏向公司名,在句中可能指水果)。

ChatGPT 通過向量加法融合詞嵌入(語義)和位置嵌入(順序),生成兼具詞匯含義和位置信息的輸入表示。這一設(shè)計是 Transformer 理解語言結(jié)構(gòu)的核心基礎(chǔ):沒有位置嵌入,模型無法區(qū)分“貓追狗”和“狗追貓”;沒有詞嵌入,模型無法理解“貓”和“狗”的語義關(guān)系。兩者的結(jié)合使模型能夠動態(tài)捕捉上下文相關(guān)的語義,支撐其強大的語言生成能力。

二、Segment Embedding

Segment Embedding 是大語言模型(如 BERT)中用于區(qū)分輸入序列中不同句子或邏輯段落的關(guān)鍵組件。它通過為不同片段分配唯一的向量標識,幫助模型理解句子邊界和段落關(guān)系,尤其在處理多句輸入的任務(wù)中至關(guān)重要。

比如我們在和 DeepSeek 對話時,每當我們發(fā)送一個問題時,實際上會把之前對話的上下文也作為輸入一起發(fā)送給大模型,此時就需要區(qū)分之前對話內(nèi)容中,哪些是我們提問的問題,哪些是大模型的回答。

Segment Embedding 通過為不同句子分配獨立的向量標識(如句子 A 用 0、句子 B 用 1),使模型能識別它們屬于不同邏輯單元。

Segment Embedding 是一個可學(xué)習(xí)的嵌入矩陣,維度與 Token Embedding 相同(如 BERT-base 為 768 維)。每個分段類型(A/B)對應(yīng)一個唯一向量,直接與 Token Embedding、Position Embedding 逐元素相加,形成最終輸入表示。

換句話說,我們最終輸入給大模型的 Embedding 應(yīng)該是這樣的:

三、為什么需要 Embedding

Embedding 主要解決了語言的離散性與模型計算的連續(xù)性之間的問題,將離散的語言問題,變?yōu)榱丝捎嬎愕臄?shù)學(xué)問題。

通過 Embedding,我們就可以通過余弦距離計算語義之間的相似性,如 vec("貓") 與 vec ("狗") 的相似度 >> vec ("貓") 與 vec ("汽車") 的相似度,也可以進行語義之間的類比關(guān)系,如 vec("巴黎") - vec("法國") ≈ vec("東京") - vec("日本")。

責(zé)任編輯:武曉燕 來源: 江南一點雨
相關(guān)推薦

2025-06-20 10:18:58

大模型

2025-04-02 00:00:00

2023-10-06 13:52:40

數(shù)據(jù)庫模型

2025-04-24 11:09:13

2025-06-05 00:00:00

向量數(shù)據(jù)庫線程安全Redis

2024-05-09 08:11:04

OllamaGo訓(xùn)練文本

2024-10-22 15:41:47

NumPyPython

2024-12-23 11:31:05

大模型檢索人工智能

2024-03-07 10:09:42

向量數(shù)據(jù)庫

2025-09-28 03:55:00

AISpringAI向量模型

2025-03-06 08:20:00

RAG嵌入模型

2025-09-29 01:11:00

2024-05-31 13:33:11

大模型向量數(shù)據(jù)庫

2024-11-18 11:00:00

模型安全

2025-07-28 07:42:08

2024-03-12 07:24:26

DingoDB數(shù)據(jù)庫數(shù)據(jù)的存儲

2025-03-18 10:00:00

Embedding向量嵌入

2024-03-18 07:01:42

2025-09-02 12:04:09

點贊
收藏

51CTO技術(shù)棧公眾號