幫助中心 | 我的帳號 | 關於我們

自製深度學習推理框架/圖靈原創

  • 作者:傅莘莘|責編:劉美英
  • 出版社:人民郵電
  • ISBN:9787115662583
  • 出版日期:2025/03/01
  • 裝幀:平裝
  • 頁數:198
人民幣:RMB 79.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書「手把手」帶領讀者實現深度學習推理框架,並支持大語言模型的推理
    全書共9章,以實現開源深度學習推理框架KuiperInfer為例,從基礎的張量設計入手,逐步深入講解計算圖、核心運算元等關鍵模塊的設計與實現。此外,書中還介紹了如何支持基於CNN的模型,如ResNet.YOLOv5,以及大語言模型Llama 2的推理。書中代碼基於C++,貼近業界實踐
    本書面向深度學習初學者、希望進一步了解深度學習推理框架的開發者,以及其他對相關內容感興趣的AI從業者。跟著本書,你不僅能夠掌握深度學習推理框架的核心知識,還能在本項目的基礎上進行二次開發。

作者介紹
傅莘莘|責編:劉美英
    傅莘莘,AI系統工程師,專註于深度學習推理框架與AI編譯器的研發。曾主導多款深度學習推理框架從0到1的設計與實現,在推理效率與精度優化方面取得了實際成果。     在B站開設了「自製推理框架」「自製大模型推理框架」等系列視頻公開課(累計播放數超過10萬),以通俗易懂的方式講解技術,深受學生及其他技術愛好者的喜愛。

目錄
第1章  深度學習推理框架基礎
  1.1  推理框架概覽
    1.1.1  什麼是深度學習推理框架
    1.1.2  代表性深度學習推理框架
  1.2  KuiperferIn簡介
    1.2.1  KuiperInfer的組成部分
    1.2.2  KuiperInfer的設計原則
  1.3  環境配置與依賴安裝
    1.3.1  數學庫的安裝
  13.2  對數學庫的測試
    1.3.3  單元測試庫GoogleTest的安裝與配置
    1.3.4  日誌庫的安裝
  1.4  集成開發環境:CLion
    1.4.1  在CLion中查看文件
    1.4.2  使用CLion進行單元測試
  1.5  集成開發環境:VSCode
  1.6  小結
  1.7  練習
第2章  張量的設計
  2.1  張量是什麼
    2.1.1  張量的維度
    2.1.2  張量中的基礎數據結構
    2.1.3  張量中的數據存儲順序
    2.1.4  Cube中的數據排布
  2.2  如何實現張量
    2.2.1  實現張量的定義
    2.2.2  創建新張量
    2.2.3  張量的填充
    2.2.4  改變張量的形狀
    2.2.5  張量的工具類方法
  2.3  單元測試
    2.3.1  創建數據容器
    2.3.2  創建一維張量
    2.3.3  創建三維張量
    2.3.4  獲取張量的形狀
    2.3.5  判斷張量是否為空
    2.3.6  獲取張量中某個位置的元素
  2.4  小結
  2.5  練習
第3章  計算圖的設計
  3.1  計算圖是什麼
  3.2  PNNX計算圖的轉換
    3.2.1  將PyTorch模型轉換為TorchScript模型
    3.2.2  將TorchScript模型轉換為PNNX格式的計算圖
  3.3  PNNX計算圖結構
    3.3.1  結構詳解
    3.3.2  載入模型結構定義文件
    3.3.3  計算節點
    3.3.4  操作數
    3.3.5  參數和權重

  3.4  KuiperInfer計算圖結構
    3.4.1  對操作數的封裝
    3.4.2  對權重類的封裝
    3.4.3  對計算節點的提取和封裝
    3.4.4  對參數的提取和封裝
    3.4.5  KuiperInfer計算圖的整體結構
  3.5  單元測試
    3.5.1  測試模型的載入
    3.5.2  測試PNNX中的計算節點
    3.5.3  測試PNNX中的操作數
    3.5.4  測試PNNX計算節點的權重
  3.6  小結
  3.7  練習
第4章  計算圖的構建
  4.1  計算節點的執行順序
  4.2  拓撲排序
    4.2.1  基於深度優先的拓撲排序
    4.2.2  拓撲排序的實現思路
    4.2.3  構建之間的節點圖關係
    4.2.4  拓撲排序的編程實現
    4.2.5  延伸:基於廣度優先的拓撲排序
  4.3  構建計算圖的流程
    4.3.1  狀態檢查
    4.3.2  計算節點數據空間的初始化
    4.3.3  整體構建流程
  4.4  單元測試
    4.4.1  拓撲排序測試
    4.4.2  計算圖狀態變化測試
    4.4.3  輸出空間初始化測試
  4.5  小結
  4.6  練習
第5?e運算元和運算元註冊器的設計與實現
  5.1  什麼是運算元
  5.2  運算元類及其實現
    5.2.1  運算元類中的成員變數
    5.2.2  運算元類中的成員方法
    5.2.3  運算元類與計算節點
  5.3  運算元的全局註冊器
    5.3.1  全局註冊器的設計方法與實現
    5.3.2  向註冊器中註冊運算元的實例化方法
    5.3.3  從註冊器中獲取運算元類的實例化方法
    5.3.4  註冊運算元的工具類
  5.4  運算元的實例化方法
    5.4.1  運算元實例化的時機
    5.4.2  編寫第一個運算元ReLU
    5.4.3  註冊ReLU運算元
  5.5  單元測試
    5.5.1  驗證全局註冊器的唯一性
    5.5.2  將實例化方法插入全局註冊器
    5.5.3  獲取運算元

    5.5.4  驗證ReLU運算元的功能
  5.6  小結
  5.7  練習
第6章  池化運算元和卷積運算元的實現
  6.1  池化運算元
    6.1.1  簡介
    6.1.2  池化操作中的邊界填充
    6.1.3  多通道輸入特徵圖的池化
    6.1.4  池化運算元的實現
    6.1.5  池化運算元的註冊
  6.2  卷積運算元
    6.2.1  簡介
    6.2.2  卷積的直觀解釋
    6.2.3  用Im2Col優化卷積計算
    6.2.4  Im2Col方法的實現
    6.2.5  卷積運算元的計算過程
    6.2.6  卷積運算元中的GEMM實現
    6.2.7  卷積運算元的註冊和實例化方法
  6.3  單元測試
    6.3.1  池化運算元的相關測試
    6.3.2  卷積運算元的相關測試
  6.4  小結
  6.5  練習
第7章  表達式運算元的實現
  7.1  表達式和表達式運算元的定義
  7.2  詞法分析
    7.2.1  詞法分析的定義
    7.2.2  詞法分析的過程
  7.3  語法分析
    7.3.1  語法二叉樹結構
    7.3.2  遞歸的條件
    7.3.3  遞歸向下構建語法二叉樹
    7.3.4  對語法二叉樹進行轉換
    7.3.5  逆波蘭表達式
  7.4  表達式運算元的實現過程
    7.4.1  實例化
    7.4.2  類定義
    7.4.3  註冊
    7.4.4  對Forward方法的重寫
    7.4.5  計算相關代碼的實現
  7.5  單元測試
    7.5.1  詞法分析測試
    7.5.2  逆波蘭表達式的生成測試
    7.5.3  表達式計算過程測試
  7.6  小結
  7.7  練習
第8章  支持ResNet和YOLOv5推理
  8.1  模型的執行方法
    8.1.1  執行輸入類計算節點
    8.1.2  執行常規類計算節點

    8.1.3  獲取模型的輸出
  8.2  在KuiperInfer中支持ResNet
    8.2.1  全連接運算元的實例化
    8.2.2  全連接運算元的實現
    8.2.3  ResNet推理流程概覽
    8.2.4  實現KuiperInfer對ResNet支持的
  8.3  在KuiperInfer中支持YOLOv5
    8.3.1  數據預處理
    8.3.2  補充缺失的運算元
    8.3.3  YOLOv5模型的導出和運行
    8.3.4  YOLOv5模型輸出的后處理
  8.4  小結
  8.5  練習
第9章  支持大語言模型的推理
  9.1  大模型簡介
    9.1.1  Transformer模型
    9.1.2  GPT模型
  9.2  大模型的架構
    9.2.1  輸入嵌入
    9.2.2  位置編碼
    9.2.3  自注意力機制
    9.2.4  前饋神經網路層
    9.2.5  鍵-C值對緩存
    9.2.6  殘差連接與層歸一化
    9.2.7  解碼
  9.3  Llama2的關鍵實現
    9.3.1  均方根歸一化
    9.3.2  自注意力機制
    9.3.3  前饋神經網路層
    9.3.4  Transformer層
    9.3.5  完整的Transformer解碼器
  9.4  KuiperInfer支持Llama2推理
    9.4.1  載入模型文件
    9.4.2  模型的推理
    9.4.3  結果解碼
    9.4.4  大模型推理基礎運算元的實現
    9.4.5  推理演示
  9.5  小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032