NVIDIA-GPU
標量 / 向量 / 矩陣 / 張量
你提的問題很關鍵,這些概念是理解大模型數據流轉和計算邏輯的基礎。簡單説,它們是不同維度的“數值容器”,在大模型中分別承擔着存儲單個參數、單個特徵、批量特徵和高維複雜特徵的角色。
1. 標量(Scalar):單個數值,0維
標量是最簡單的“數值容器”,只有大小,沒有方向,屬於0維數據。
- 核心定義:單個實數或整數,比如1.5、3、0.001。
- 大模型舉例:
- 學習率(Learning Rate):比如訓練時設置的0.001,控制模型參數更新的步長。
- 損失值(Loss):每次模型迭代後輸出的“誤差分數”,比如0.3,代表預測結果與真實結果的差距。
- 困惑度(Perplexity):評估語言模型生成文本流暢度的指標,比如12,數值越低模型效果越好。
2. 向量(Vector):有序數值列表,1維
向量是“排成一列(或一行)的數值”,有方向和大小,屬於1維數據,維度等於數值的個數。
- 核心定義:用方括號包裹的有序數組,比如[1.2, 3.4, 5.6],這個向量的維度是3。
- 大模型舉例:
- 詞嵌入(Token Embedding):大模型中每個“詞/字(Token)”都會被轉換成向量,比如GPT-3中每個Token對應12288維的向量,用來表示這個詞的語義信息。
- 輸出Logits向量:模型預測時,會輸出一個與“詞彙表大小”相同維度的向量,比如 vocab_size=50257 時,向量維度就是50257,每個數值代表對應詞的“預測分數”。
3. 矩陣(Matrix):二維數值數組,2維
矩陣是“排成多行多列的數值表格”,屬於2維數據,維度用“行數×列數”表示。
- 核心定義:用大括號或方括號包裹的二維數組,比如
,這個矩陣的維度是3×2(3行2列)。
- 大模型舉例:
- 批量詞嵌入矩陣:當處理“一批(Batch)”文本時,比如一次輸入32個Token,每個Token是12288維向量,就會形成32×12288的矩陣, rows=批量大小,cols=嵌入維度。
- 注意力權重矩陣:在Transformer的自注意力(Self-Attention)中,Query(查詢)和Key(鍵)會計算出一個“序列長度×序列長度”的矩陣,比如序列長度為512時,矩陣維度是512×512,每個數值代表兩個Token之間的“注意力強度”。
4. 張量(Tensor):≥3維的數值數組
張量是對標量、向量、矩陣的“維度擴展”,只要維度≥3,都可以稱為張量,維度用“階數”描述(3維=3階張量)。
- 核心定義:多維度的數值集合,比如3維張量可以理解為“多個相同維度的矩陣堆疊”,維度表示為“深度×行數×列數”(或其他順序,需看數據格式)。
- 大模型舉例:
- 批量圖像張量:如果大模型處理圖像(如多模態模型),輸入的批量圖像會是4維張量,格式通常為“Batch×Channel×Height×Width”(BCHW)。比如32張RGB圖像(3通道)、分辨率224×224,對應的張量維度就是32×3×224×224。
- 模型中間特徵張量:Transformer層的輸出通常是3維張量,維度為“Batch Size×Sequence Length×Hidden Dimension”(批量大小×序列長度×隱藏層維度)。比如批量32、序列長度512、隱藏層維度12288,張量維度就是32×512×12288,存儲了整批文本經過當前層後的特徵信息。
四者核心對比表
|
概念
|
維度(階數)
|
核心特點
|
大模型典型應用場景
|
|
標量
|
0維
|
單個數值,無方向
|
學習率、損失值、困惑度
|
|
向量
|
1維
|
有序列表,1個索引定位
|
單個Token的詞嵌入、輸出Logits
|
|
矩陣
|
2維
|
表格結構,2個索引定位
|
批量詞嵌入、注意力權重矩陣
|
|
張量
|
≥3維
|
多維度集合,≥3個索引定位
|
批量圖像數據、Transformer層特徵
|