大語言模型原理(Transformer架構)

一、概覽

1.1 定義

大語言模型(LLM)是基于深度學習和神經網絡的自然語言處理技術,目前主要通過Transformer架構和大規模數據訓練來理解和生成語言。

GPT不同架構的訓練參數

  • GPT-1(2018):1.17億參數
  • GPT-2(2018):15億參數
  • GPT-3(2020):1750億參數
  • GPT-4(2023):參數規模進一步增加

1.2 流程

主要步驟如下:

  1. 輸入文本 → 2. Tokenize分詞 → 3. 查表映射為詞向量 → 4. Transformer網絡編碼/解碼 → 5. 生成token分布 → 6. 采樣/查表輸出文本

1.3 主流大模型架構對比

經典Transformer架構由編碼器(Encoder)和解碼器(Decoder)2個組件構成,每個組件都含有自注意力機制和前饋網絡2個核心機制。

當前主流大模型是此基礎的變體

模型

架構類型

構成/特點

主要用途

BERT

Encoder-only

多層編碼器,雙向自注意力

理解(分類、問答等)

GPT系列/DeepSeek R1

Decoder-only

多層解碼器,單向(因果)自注意力

文本生成、對話

Gemini

多模態/異構架構

可統一處理文本、視覺等

多模態AI任務

Claude/文心/DeepSeek V3

Decoder-only/增強

安全、知識注入等優化

更可靠的文本任務

二、大模型原理

輸入層

1.用戶輸入文本

2.分詞(Tokenization)

3.Token到Token ID(查詞表得到整數編碼)

便于計算機存儲

4.Token ID到詞向量(查embedding矩陣)

詞向量可以表示更多的維度的含義,利于模型通過數學計算向量空間的距離,去捕捉不同詞在語義和語法等方面的相似性

  • 詞的含義
  • 詞與詞之間的復雜關系

如下圖,男人與國王,女人與女王,兩者之間的差異可以被看作是相似的

5.詞向量與位置向量相加

讓模型理解不同詞之間的順序關系

Transformer架構

編碼器只做一次(輸入全序列),解碼器每生成一個詞都要重新遞歸一次(擴展目標序列),但會用編碼器已保存的輸出。

編碼器(模型理解的關鍵)

自注意力機制

作用:

融合上下文中的相關信息

可以有多個自注意力頭,關注情感的,關注命名實體的,可以并行運算

每個自注意力頭的權重是模型在之前的訓練過程中從大量文本里學習和調整的

原理:

用三個權重矩陣Wq、Wk、Wv與每個詞的向量表示相乘后得到q、k、v向量

q:我想要找什么

k:你有沒有我要找的東西(權重)

v:我要傳遞的內容

q與每個k點積后各自得到一個分數,經過softmax歸一化變成加權系數aij

每個加權系數與對應的v點積,再相加,得到ai,表示在第i個詞的視角下,按照權重與其他詞的內容融合

簡單說,ai就是以第i個詞為中心理解了上下文

實際有多個自注意力頭,把對應的拼接起來(如a11+a12)再乘上一個權重矩陣得到輸出

前饋神經網絡

為為每個位置的“單詞”做復雜的、非線性加工

標準FFN結構:

  1. 一個線性層,升維,通常把d_model提升到更高的d_ff(通常是d_model的4倍)
  2. 非線性激活(如ReLU或GELU)
  3. 一個線性層,降維,回到d_model
  4. 殘差+LayerNorm

假如模型在生成句子時,自注意力層捕捉到了“貓”和“坐在墊子上”的關聯;前饋神經網絡可以進一步細化每個詞的語義,比如讓“坐”這個詞的隱藏向量更好地表達了動作信息,讓“墊子上”這個詞的向量更好地表達了空間關系。最后,經過多層疊加,模型能生成更自然有上下文語義的話。

解碼器(模型生成的關鍵)

解碼器把編碼器的輸出和已經生成的文本作為每次的輸入,保持輸出的連貫性和上下文的相關性

每個解碼器有2個多頭自注意力和一個前饋神經網絡

帶掩碼的自注意力機制

針對已生成的輸出序列,只使用前面的詞作為上下文

第二個自注意力機制

捕捉編碼器的輸出的和解碼器即將生成的輸出之間的對應關系,從而將原始輸入序列融合到輸出序列的生成過程中

前饋神經網絡

與編碼器的類似,通過額外計算增強模型的表達能力

輸出層

logits  = [3.2, 0.9, -2.0, ...]  # 詞表每個詞的分數
softmax = [0.54, 0.13, 0.001, ...] # 轉成概率,每個詞的出現概率

線性層

將解碼器輸出的隱藏表示投影到詞表大小(Vocab size),得到每個詞的logits(詞表每個詞的分數)

Softmax層

將logits變為概率分布,用于采樣/選擇下一個詞

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93968.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nginx npm + Node.js 簡單實踐

一、基本概念介紹 Nginx 是一款高性能的 Web 服務器和反向代理服務器,而 Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環境,可以讓JavaScript 在服務器端運行。npm 則是 Node.js 的默認包管理工具,類似手機的應用市場。主要功能事故…

Python 中 SQLAlchemy 和 MySQLdb 的關系

目錄1. 角色和定位2. 工作原理和交互方式使用純 MySQLdb使用 SQLAlchemy(核心或 ORM)3. 依賴關系總結與選擇 簡單來說,它們的關系是:SQLAlchemy 是一個高層抽象的對象關系映射器(ORM)和 SQL 工具包&#xf…

【CV】OpenCV①——圖形處理簡介

一、OpenCV簡介 1. 圖像處理 1.1. 圖像起源 1.1.1. 圖像是什么1.1.2. 模擬圖像和數字圖像1.2. 數字圖像的表示 1.2.1. 位數1.2.2. 圖像分類 二值圖像灰度圖彩色圖

JAVA后端開發——API狀態字段設計規范與實踐

1. 引言在現代Web應用與API設計中,狀態(Status)字段的管理是一個普遍存在且至關重要的議題。狀態字段,如訂單狀態、任務執行狀態、模型運行狀態等,直接關系到系統的核心業務邏輯。不恰當的設計會導致API可讀性差、系統…

【MySQL的卸載】

MySQL的卸載卸載MySQL步驟1:停止MySQL服務步驟2:軟件的卸載卸載方式一:通過控制面板卸載軟件卸載方式二:通過360或電腦管家等軟件卸載卸載方式三:通過安裝包提供的卸載功能卸載步驟3:殘余文件的清理步驟4&a…

高效實時數據同步方案:秒級響應多字段搜索

目錄 1、其他 2、業務背景和目標 2.1 業務目標 2.2 核心痛點 3、技術選型 3.1 實時工具同步選型 3.2 OLAP數據庫選型 3.3 候選技術路線對比 3.4 技術難點 3.5 技術選型推薦 3.5.1、推薦的技術路線 3.5.2 架構示意圖 4 、可行性驗證方案?? ??4.1 測試用例設計? …

面試問題詳解七:Qt 信號與槽 + QML 的結合詳解

在現代 Qt 開發中,QML(Qt Quick)負責 UI 層,C 負責邏輯層或后端服務層 是一種非常流行的架構方式。 這一模式下,信號與槽機制在 QML 與 C 間的前后端通信中扮演橋梁角色,是實現數據驅動界面更新、事件響應、…

孔夫子舊書網 API 實戰:古籍與二手書數據獲取及接口調用方案

孔夫子舊書網作為國內知名的古籍、二手書交易平臺,其商品數據對于圖書收藏、學術研究及二手書電商系統具有重要價值。本文將詳細介紹孔夫子平臺接口的調用方法,涵蓋認證機制、搜索參數配置、數據解析及反爬策略,并提供可直接使用的 Python 代…

文件包含的學習筆記

面試問題 1,任意文件讀取,到底讀什么文件,有什么危害 權限是www 只能讀第一個,讀這個沒用,密碼在/etc/shadow中 其它沒有權限 my.cnf mysql密碼看不了 但是可以看見日志文件的目錄 sql注入時,你有注…

Linux 軟件包安裝和管理的相關操作及使用總結(未完成)

一、基礎知識1、軟件包分類源碼包(Source Package):包含軟件的源代碼文件、編譯指令和配置文件。需要用戶自行編譯安裝,過程相對復雜,但靈活性高,可以定制安裝選項。文件格式通常為.tar.gz、.tar.bz2等壓縮…

【開發指南】飛凌i.MX9352核心板開發過程中的常見問題及排查思路

飛凌嵌入式作為NXP金牌合作伙伴,已基于i.MX系列應用處理器推出了多款嵌入式主控產品,除了最新發布的i.MX95xx系列核心板外,同為i.MX9系的i.MX93xx系列核心板也已上市多年并獲得了眾多客戶的認可和選擇。在長期的技術支持服務過程中&#xff0…

Windows應急響應一般思路(二)

進程排查 進程(Process)是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎 無論是在Windows系統還是Linux系統中,主機在感染惡意程序后,惡意程序都會啟動相應的進程&am…

FFmpeg03:多媒體文件處理基礎

日志系統 #include <libavutil/log.h>av_log_set_level(AV_LOG_DEBUG)av_log(NULL, AV_LOG_INFO, “…%s\n”, op) 常用日志級別 AV_LOG_ERROR AV_LOG_WARNING AV_LOG_INFO Demo log.cpp #include <iostream> extern "C" { #include <libavutil/log.h…

【每天一個知識點】AIOps 與自動化管理

一、AIOps 的內涵AIOps&#xff08;Artificial Intelligence for IT Operations&#xff09;&#xff1a;指將人工智能、大數據分析和機器學習技術應用于 IT 運維管理中。主要目標是&#xff1a;利用智能算法對云平臺、網絡、應用和日志等海量運維數據進行實時分析&#xff0c;…

ios使用saveVideoToPhotosAlbum 保存視頻失敗提示 invalid video

ios使用saveVideoToPhotosAlbum 保存視頻失敗提示 invalid video 解決辦法 iOS 上對保存到相冊的視頻存在某種格式和分辨率上的限制&#xff0c;建議先自查看下視頻生成的參數&#xff0c;可以先試試蘋果自帶瀏覽器 safari 上能否播放該視頻。 如果不能播放&#xff0c;證明 io…

Vue基礎(③父子組件)

房子&#xff08;父組件&#xff09;包含窗戶和門&#xff08;子組件&#xff09; 窗戶和門&#xff08;子組件&#xff09;是房子&#xff08;父組件&#xff09;的一部分父組件<!-- 父組件&#xff1a;比如叫 Home.vue --> <template><div><h1>這是父…

AI領域的語義空間是什么?

寫在前面&#xff1a;本文將從簡單的二維空間來逐漸展開問題&#xff0c;帶您理解語義空間。距離和體型&#xff1a;這里嘗試用距離和體型這兩個尺度來理解語義空間&#xff0c;先說的是低維情況&#xff0c;后面在嘗試理解高維的情況。比如&#xff0c;在二維空間的x,y坐標系&…

排序---插入排序

基本思想對于插入排序而言&#xff0c;它的基本思想就是往已經排好序的序列里邊插入數據。思想類似于玩撲克牌。接下來的排序都是基于下邊的這個數組。int a[ ] { 5 , 3 , 9 , 6 , 2 , 4 , 7 , 1 , 8 };直接插入排序我們想要將這個數組排成升序&#xff0c;在最一開始&#xf…

Java性能優化實戰(四):IO與網絡優化的4個關鍵方向

IO與網絡操作是Java應用性能的常見瓶頸&#xff0c;尤其在高并發場景下&#xff0c;低效的IO處理會導致響應緩慢、資源浪費等問題。本文將聚焦IO與網絡優化的四個核心方向&#xff0c;通過真實案例、代碼對比和性能數據&#xff0c;詳解如何提升IO效率、減少網絡傳輸開銷&#…

對齊Wireshark和USRP捕獲信號的波形

一、USRP信號 USRP捕獲信號的波形如下&#xff1a; 放大后&#xff1a; 100ms 10ms 1ms 100us 10us 1us 二、波形分析 2.1 時間分辨率 采樣率61.44MHz, 對應時間分辨率為1/61.44us0.01627us16.27ns。 這時間分辨率夠用了&#xff0c;數據包長度為1到20us&#xff1a; 2.2 W…