Qwen2.5簡要全流程以及QA

1 輸入prompt 得到input id

input id: [B,L]?? # batch size , lenth

2 embeding之后得到 input_embeds: [B,L,D]?? # demensions

3 進入Transformer層

先通過linear層得到shape不變的 QKV

多頭注意力 分割Dimension , kv變成 [B,H,L,head_dim] h是head,head_dim * head = Dimension

(如果有kvcache的話):

new key [B, H, 1 head_dim]

past key [B,H,L_prev,dim]

concat:[B,H,L_prev+1,dim]

Attn輸出 [B,L,D]

outputs = self.transformer(input_ids, ...)

final_hidden_states = outputs[0]? # shape: [B, L, D]

logits = self.lm_head(final_hidden_states)? # shape: [B, L, vocab_size]

self.transformer 是由多層 Qwen2Block(帶 attention + feedforward)堆疊組成,每層更新一次 hidden state。最終最后一層輸出的 hidden state 就是 final_hidden_states。

logits = lm_head(final_hidden_states)

? → [B, L, vocab_size]

(值是每個位置對每個詞的預測得分)

遇到到是哪個token_id之后 用tokenizer.decode()得到最終的詞

lm_head是什么

語言建模頭(Language Modeling Head)

一個線性層,將輸出的hidden_states映射到詞表維度

# vocab_size = 151936, hidden_size = 4096

self.lm_head = nn.Linear(4096, 151936, bias=False)

得到logits之后還有一個sampling的過程

greedy sampling 直接取最大值

next_token = ops.argmax(next_token_logits, axis=-1)? # [B]

Top-k / Top-p Sampling:

# 用 softmax 得到概率

probs = ops.softmax(next_token_logits, axis=-1)? # [B, vocab_size]

# 根據策略采樣

next_token = sample_from(probs, top_k=50, top_p=0.95, temperature=1.0)

top_k 取前k個概率大的

top_p 累積概率小于0.95

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

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

相關文章

爬蟲學習——Item封裝數據與Item Pipeline處理數據

一、Item封裝數據 對于有字段的數據,最好的數據結構維護方法為字典類型(dict),但是由于字典不便于攜帶元數據和傳遞給其他組件使用,故可以使用Item類封裝爬取到的數據。 這里涉及兩個類:Item基類和Field類 兩者的使用關系如下&…

【React】狀態管理 Context API \ MobX \ Redux

Context APIMobXRedux React有自己狀態管理,周邊生態也有很多狀態管理 Context API 直接從react中引入并調用即可,context包含兩個東西: Provider:提供商(翻譯),提供數據;屬性&…

RK3588上編譯opencv 及基于c++實現圖像的讀入

參考博文: https://blog.csdn.net/qq_47432746/article/details/147203889 一、安裝依賴包 sudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpe…

MATLAB 訓練CNN模型 yolo v4

學生對小車控制提出了更好的要求,能否加入深度學習模型。 考慮到小車用matlab來做,yolo v5及以上版本都需要在pytorch下訓練,還是用早期版本來演示。 1 yolov4 調用 參考 trainYOLOv4ObjectDetector (mathworks.com) name "tiny-yo…

Windows下使用 VS Code + g++ 開發 Qt GUI 項目的完整指南

🚀 使用 VS Code g 開發 Qt GUI 項目的完整指南(Windows MSYS2) 本指南幫助你在 Windows 下使用 VS Code g CMake Qt6 快速搭建 Qt GUI 項目,適合熟悉 Visual Studio 的開發者向跨平臺 VS Code 工具鏈遷移。 🛠?…

開源漏洞掃描器:OpenVAS

一、OpenVAS介紹 OpenVAS (Open Vulnerability Assessment System) 是一款功能強大的開源漏洞掃描器。它由 Greenbone Networks 開發和維護,是 Greenbone 安全管理器 (GSM) 產品的基礎,同時也有免費的社區版本(Greenbone Community Edition&…

Redis Pipeline 詳解

Redis Pipeline 詳解 Redis 無 Pipeline 耗時情況 : #mermaid-svg-8RIiJyeBO0uIrWjr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8RIiJyeBO0uIrWjr .error-icon{fill:#552222;}#mermaid-svg-8RIiJyeBO0uIrWjr .…

2025.04.24【3D】3D繪圖入門指南

Nifty graph A contribution by Matt Asher. 3D animation A 3D animated scatterplot made with R and rgl. 文章目錄 Nifty graph3D animation 2025.04.24【3D】| 3D繪圖入門指南什么是3D繪圖?為什么使用3D繪圖?如何在R中進行3D繪圖?安裝…

[特殊字符] 分布式事務中,@GlobalTransactional 與 @Transactional 到底怎么配合用?

在微服務架構中,隨著系統模塊的拆分,單體應用中的本地事務已經無法滿足跨服務的數據一致性需求。此時,我們就需要引入分布式事務解決方案,比如 Seata。在使用 Seata 的過程中,很多人會遇到一個常見的疑問: …

TDengine 集群高可用方案設計(二)

四、TDengine 集群高可用方案設計 4.1 硬件與網絡架構設計 服務器選型:選擇配置高、穩定性強的服務器,如戴爾 PowerEdge R740xd、華為 RH2288H V5 等。以戴爾 PowerEdge R740xd 為例,它配備英特爾至強可擴展處理器,具備高性能計…

從對數變換到深度框架:邏輯回歸與交叉熵的數學原理及PyTorch實戰

目錄 前言 一、連乘變連加二、最小化損失函數2.1交叉熵2.2 二分類交叉熵2.3 多分類交叉熵三、邏輯回歸與二分類3.1 邏輯回歸與二分類算法理論講解3.1.1 散點輸入3.1.2 前向計算3.1.3 Sigmoid函數引入3.1.4 參數初始化3.1.5 損失函數3.1.6 開始迭代3.1.7 梯度下降顯示四、基于框…

高企復審獎補!2025年合肥市高新技術企業重新認定獎勵補貼政策及申報條件

一、合肥市高新技術企業重新認定獎勵補貼政策 (一)高新區高新技術企業重新認定復審補貼獎勵 重新認定為國家高新技術企業的給予5萬元一次性獎勵。 (二)經開區高新技術企業重新認定復審補貼獎勵 對重新認定的企業,給…

Spring Boot 中配置線程池時優化 `ThreadPoolTaskExecutor` 的配置總結

在 Spring Boot 中配置線程池時,可以通過以下方式進一步優化 ThreadPoolTaskExecutor 的配置,提升性能、靈活性和可靠性: 優化點 1:合理設置線程池參數 關鍵參數調整 Bean(name "taskExecutor") public Executor tas…

opencv 圖像的旋轉

圖像的旋轉 1 單點旋轉2. 圖片旋轉(cv2.getRotationMatrix2D)3. 插值方法3.1 最近鄰插值(cv2.INTER_NEAREST)3.2 雙線性插值(cv2.INTER_LINEAR)3.3 像素區域插值(cv2.INTER_AREA)3.4 雙三次插值(cv2.INTER_CUBIC&#…

如何在 Odoo 18 中配置自動化動作

如何在 Odoo 18 中配置自動化動作 Odoo是一款多功能的業務管理平臺,旨在幫助各種規模的企業更高效地處理日常運營。憑借其涵蓋銷售、庫存、客戶關系管理(CRM)、會計和人力資源等領域的多樣化模塊,Odoo 簡化了業務流程&#xff0c…

每日兩道leetcode

345. 反轉字符串中的元音字母 - 力扣(LeetCode) 題目 給你一個字符串 s ,僅反轉字符串中的所有元音字母,并返回結果字符串。 元音字母包括 a、e、i、o、u,且可能以大小寫兩種形式出現不止一次。 示例 1:…

【SQL 基礎入門 1. -- SQL 基本語法詳解及舉例】

文章目錄 SQL 數據庫創建及使用刪除數據庫SQL 查看數據空中有哪些表格SQL 創建表格SQL 修改表格列數據格式SQL 表格插入數據SQL 查看表格類型組成SQL 查看表格中的內容 SQL 查詢語句SQL 查看指定列SQL 選擇指定列SQL 按指定列進行升序排序SQL 平均值/求和/最大值/最小值 SQL 數…

PostgreSQL 分區表——范圍分區SQL實踐

PostgreSQL 分區表——范圍分區SQL實踐 1、環境準備1-1、新增原始表1-2、執行腳本新增2400w行1-3、創建pg分區表-分區鍵為創建時間1-4、創建24年所有分區1-5、設置默認分區(兜底用)1-6、遷移數據1-7、創建分區表索引 2、SQL增刪改查測試2-1、查詢速度對比…

Apache Flink 深度解析:流處理引擎的核心原理與生產實踐指南

Apache Flink 深度解析:流處理引擎的核心原理與生產實踐指南 引言:實時計算的范式革命 2023年雙十一期間,某頭部電商平臺基于Flink構建的實時風控系統成功攔截了每秒超過120萬次的異常交易請求。這背后是Apache Flink作為第四代計算引擎的強…

【Java學習筆記】選擇結構

選擇結構 內容結構 一、順序結構 二、分支控制 (1)單分支 (2)雙分支 (3)多分支 (4)嵌套分支 (5)switch 分支結構 三、switch和if的比較 一、順序結構…