深入探索Mamba模型架構與應用
王曉華
相關主題
商品描述
目錄大綱
目 錄
第1章 橫空出世的Mamba 1
1.1 深度學習的前世今生 1
1.1.1 深度學習的發展歷程 2
1.1.2 深度學習與人工智能 3
1.2 深度學習中的主要模型 4
1.2.1 深度學習中的代表性模型和應用 4
1.2.2 CNN、RNN與Transformer 5
1.2.3 劍指王者的Mamba帶來了新的突破 7
1.3 本章小結 8
第2章 挑戰註意力機制地位的Mamba架構詳解 9
2.1 Mamba的優勢 10
2.1.1 Transformer模型存在的不足 10
2.1.2 循環神經網絡 12
2.1.3 結合Transformer與RNN優點的SSM 14
2.2 環境搭建1:安裝Python 15
2.2.1 Miniconda的下載與安裝 15
2.2.2 PyCharm的下載與安裝 17
2.3 環境搭建2:安裝PyTorch 2.0 20
2.3.1 Nvidia 10/20/30/40系列顯卡選擇的GPU版本 20
2.3.2 PyTorch 2.0 GPU Nvidia運行庫的安裝 21
2.4 第一次使用Mamba 24
2.4.1 Hello Mamba:使用預訓練Mamba模型生成實戰 24
2.4.2 瞭解Mamba:構建Mamba的三大模塊說明 25
2.5 本章小結 26
第3章 Mamba組件詳解 28
3.1 Mamba組件1:狀態空間模型 28
3.1.1 經典狀態空間詳解 29
3.1.2 什麽是狀態空間 31
3.1.3 狀態空間模型影響模型的學習過程與Python實現 33
3.2 Mamba組件2:連續信號轉換成離散信號的方法 38
3.2.1 將連續信號轉換成離散信號詳解與Python實現 38
3.2.2 離散狀態空間的Python實現 41
3.2.3 離散狀態空間的循環計算(類似於RNN的計算方法) 44
3.3 Mamba組件3:HiPPO算法初始化的狀態轉移矩陣 46
3.3.1 SSM中的狀態轉移矩陣 47
3.3.2 HiPPO算法的Python實現與可視化講解 49
3.4 本章小結 51
第4章 基於PyTorch的彈簧振子動力學Mamba實戰 52
4.1 從狀態空間模型SSM到結構化狀態空間模型S4 52
4.1.1 從狀態空間模型SSM開始(PyTorch具體實現) 53
4.1.2 連續信號轉換為離散信號的PyTorch實現 54
4.1.3 離散信號循環計算的PyTorch實現 55
4.1.4 狀態空間模型SSM的PyTorch實現 55
4.1.5 HiPPO算法初始化狀態矩陣 57
4.1.6 基於S4架構的Mamba模型 58
4.2 基於狀態空間模型模擬彈簧振子動力學 59
4.2.1 加速度的求解:詳細講解的經典彈簧-阻尼系統公式 59
4.2.2 彈簧-阻尼微分方程的SSM分解與PyTorch實現 61
4.2.3 使用空間狀態方程模擬彈簧-阻尼方程 63
4.2.4 阻尼微分方程參數的物理解釋(選學) 64
4.3 基於SSM的模擬彈簧振子輸出的神經網絡實戰 65
4.3.1 數據的準備 66
4.3.2 對數空間中切分步數的準備 67
4.3.3 基於SSM的模型構建 68
4.3.4 SSM模型的訓練實戰 73
4.3.5 使用HiPPO算法初始化狀態轉移矩陣 74
4.4 本章小結 78
第5章 Mamba文本情感分類實戰 80
5.1 有趣的詞嵌入 80
5.1.1 什麽是詞嵌入 81
5.1.2 PyTorch中詞嵌入處理函數詳解 82
5.2 基於進階SSM架構的情感分類Mamba實戰 83
5.2.1 數據的準備 84
5.2.2 SSM進階的S6架構的設計與手把手實現 84
5.2.3 Mamba堆疊Block的設計與完整實現 88
5.2.4 完整Mamba的實現 90
5.2.5 基於Mamba的情感分類實戰 94
5.3 本章小結 98
第6章 Mamba文本轉換實戰 99
6.1 基於Mamba的拼音漢字轉換模型 99
6.1.1 拼音漢字數據集詳解與實戰處理方法 99
6.1.2 Mamba模型的設計詳解 101
6.1.3 模型的訓練與預測 102
6.2 PyTorch對數據集的封裝與可視化訓練步驟 105
6.2.1 使用torch.utils.data. Dataset封裝自定義數據集 106
6.2.2 批量輸出數據的DataLoader類詳解 108
6.3 本章小結 111
第7章 含有位置表示的雙向VisionMamba模型圖像分類實戰 112
7.1 使用PyTorch自帶的圖像管理工具與圖像增強技術 112
7.1.1 PyTorch自帶的圖像管理工具 113
7.1.2 圖片數據增強 115
7.2 基於雙向VisionMamba的模塊講解 119
7.2.1 數據的準備 119
7.2.2 將圖像轉換為Mamba可用的Embedding處理方法 120
7.2.3 能夠雙向計算的VisionMamba模型 123
7.2.4 初始旋轉位置編碼RoPE 126
7.3 VisionMamba圖像分類實戰 129
7.3.1 VisionMamba模型的構建 129
7.3.2 VisionMamba圖像分類實戰 131
7.4 本章小結 132
第8章 多方案的Mamba文本生成實戰 133
8.1 Mamba的經典文本生成實戰 133
8.1.1 數據的準備與錯位輸入方法 134
8.1.2 基於經典Mamba的文本生成模型 136
8.1.3 基於Mamba的文本生成模型的訓練與推斷 138
8.1.4 生成函數中的註意事項:temperature與“模型尺寸” 140
8.2 微調:在原有Mamba模型上進行重新訓練 142
8.2.1 什麽是微調 142
8.2.2 預訓練的Mamba生成模型 144
8.2.3 對預訓練模型進行微調 144
8.2.4 使用微調的預訓練模型進行預測 146
8.3 低硬件資源微調預訓練Mamba模型的方法 147
8.3.1 使用凍結模型參數的微調方法 147
8.3.2 通過替換特定層的方式完成微調 151
8.3.3 對模型參數進行部分保存和加載的方法 153
8.4 本章小結 154
第9章 能夠讓Mamba更強的模塊 155
9.1 What Kan I Do 155
9.1.1 從多層感知機的數學原理開始 156
9.1.2 KAN中的樣條函數 157
9.1.3 KAN的數學原理 159
9.1.4 KAN的PyTorch實現 163
9.1.5 結合KAN的Mamba文本生成實戰 168
9.2 xLSTM讓老架構再現生機 169
9.2.1 LSTM背景介紹 169
9.2.2 LSTM實戰演示 170
9.2.3 xLSTM簡介 175
9.2.4 xLSTM的PyTorch實現 177
9.2.5 基於xLSTM的文本生成實戰 188
9.3 本章小結 192
第10章 循環神經網絡詳解與切片時間序列預測 193
10.1 基於時間序列的溫度預測實戰 193
10.1.1 時間序列一維數據的準備與切片 194
10.1.2 基於GRU的時間序列模型設計 197
10.1.3 時間序列模型的訓練與預測 198
10.1.4 時間序列常用的損失函數詳解 200
10.2 循環神經網絡理論講解 201
10.2.1 什麽是GRU 201
10.2.2 單向不行,那就雙向 203
10.3 融合Mamba與KAN架構的時間序列預測模型實戰 204
10.3.1 適配2D時間序列的MambaBlock模型設計 204
10.3.2 Mamba架構的時間序列模型訓練與預測 206
10.4 本章小結 206
第11章 明天下雨嗎:基於Jamba的天氣預測實戰 207
11.1 註意力機制與模型詳解 208
11.1.1 註意力機制詳解 208
11.1.2 自註意力機制 210
11.1.3 ticks和Layer Normalization 216
11.1.4 多頭自註意力 217
11.2 註意力機制的應用實踐:編碼器Encoder 220
11.2.1 編碼器的總體架構 220
11.2.2 回到輸入層:初始詞向量層和位置編碼器層 221
11.2.3 前饋層的實現 224
11.2.4 將多層模塊融合的TransformerBlock層 226
11.2.5 編碼器的實現 227
11.3 給註意力添加相對位置編碼RoPE 233
11.3.1 給註意力添加相對位置編碼RoPE 233
11.3.2 添加旋轉位置編碼的註意力機制 235
11.3.3 基於現有庫包的旋轉位置編碼RoPE的使用 236
11.4 明天下雨嗎:基於Jamba的天氣預測實戰 237
11.4.1 Jamba模型的基本架構 237
11.4.2 Jamba架構的實現1:修正後的Transformer模塊 238
11.4.3 Jamba架構的實現2:Mamba模塊 242
11.4.4 Jamba架構的實現3:Jamba模型的實現 245
11.4.5 基於Jamba的天氣預測實戰 246
11.4.6 基於時間序列的天氣預報任務 253
11.5 本章小結 254
第12章 統一了註意力與Mamba架構的Mamba2模型 255
12.1 Mamba2模型的實現 256
12.1.1 Mamba2核心組件SSD詳解 256
12.1.2 基於SSD的Mamba2模型 259
12.2 基於Mamba2的文本生成實戰 263
12.2.1 文本生成Mamba2模型的完整實現 263
12.2.2 基於Mamba2的文本生成 264
12.3 本章小結 265
第13章 Mamba結合Diffusion的圖像生成實戰 266
13.1 Diffusion原理精講以及經典實現 267
13.1.1 Diffusion Model的傳播流程 267
13.1.2 直接運行的經典DDPM的模型訓練實戰 269
13.1.3 DDPM模型的基本模塊說明 272
13.1.4 DDPM加噪與去噪詳解:結合成功運行的Diffusion Model代碼 275
13.1.5 DDPM的損失函數:結合成功運行的Diffusion Model代碼 281
13.2 基於註意力的可控Diffusion實現 281
13.2.1 Diffusion Model可控生成的基礎:特徵融合 282
13.2.2 DiT中的可控特徵融合 282
13.2.3 DiT模型的設計 285
13.2.4 圖像的加噪與模型訓練 289
13.2.5 基於DiT模型的可控圖像生成 293
13.3 基於Mamba的可控Diffusion實現 295
13.3.1 基於Mamba架構的模塊生成 296
13.3.2 基於Mamba的Dim模型的設計 299
13.4 本章小結 303
第14章 Mamba實戰1:知識圖譜的構建與展示 305
14.1 什麽是知識圖譜 305
14.1.1 知識圖譜的應用 306
14.1.2 知識圖譜中的三元組 307
14.2 知識圖譜的可視化展示 308
14.2.1 數據的準備與處理 308
14.2.2 知識圖譜的可視化展示 309
14.3 分詞與數據的編碼與解碼 312
14.3.1 分詞器Tokenizer的構建與使用 312
14.3.2 數據的編碼處理 315
14.3.3 數據的解碼處理 319
14.4 基於Mamba的知識圖譜模型構建 321
14.4.1 基於Mamba的知識圖譜模型構建 321
14.4.2 基於Mamba的知識圖譜模型訓練與預測 322
14.4.3 命名實體識別在預測時的補充說明 325
14.5 本章小結 326
第15章 Mamba實戰2:基於特徵詞的語音喚醒 327
15.1 音頻特徵工具Librosa包的基礎使用 327
15.1.1 基於Librosa的音頻信號讀取 328
15.1.2 基於Librosa的音頻多特徵提取 331
15.2 Mamba實戰:基於特徵詞的語音喚醒 333
15.2.1 數據的準備 333
15.2.2 數據的處理 334
15.2.3 模型的設計 337
15.2.4 模型的數據輸入方法 338
15.2.5 模型訓練 338
15.2.6 模型結果展示 340
15.3 本章小結 340
第16章 Mamba實戰3:多模態視覺問答 341
16.1 視覺問答數據集的準備 341
16.1.1 VQA數據集介紹 342
16.1.2 VQA數據集的下載與預處理 342
16.1.3 VQA數據集的準備 346
16.2 Mamba架構的多模態視覺問答模型的訓練與推斷 348
16.2.1 Mamba架構的多模態視覺問答模型的設計 348
16.2.2 多模態視覺問答模型的訓練與推斷 351
16.3 本章小結 353