深度學習系統(tǒng)設計:理論與實踐 人工智能系統(tǒng)小組
定 價:149 元
當前圖書已被 20 所學校薦購過!
查看明細
- 作者:人工智能系統(tǒng)小組
- 出版時間:2024/10/1
- ISBN:9787111759362
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP181
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
近年來人工智能特別是深度學習技術得到了飛速發(fā)展,這背后離不開計算機硬件和軟件系統(tǒng)的不斷進步。在可見的未來,人工智能技術的發(fā)展仍將依賴于計算機系統(tǒng)和人工智能相結合的共同創(chuàng)新模式。本書介紹了前沿的系統(tǒng)和人工智能相結合的研究工作,包括AI for Systems和Systems for AI,以幫助讀者更好地尋找和定義有意義的研究問題。同時,本書從系統(tǒng)研究的角度出發(fā)設計實驗課程,通過操作和應用主流及最新的框架、平臺和工具來鼓勵讀者動手實現(xiàn)和優(yōu)化系統(tǒng)模塊,以提高解決實際問題的能力,而不僅僅是了解工具使用。
本書主要面向相關領域的本科生、研究生、教師、工程師和研究員,幫助他們完整地了解支持深度學習的計算機系統(tǒng)架構,并通過解決實際問題來學習深度學習完整生命周期下的系統(tǒng)設計。
本書的內容及特點可以簡要概括為以下幾點。
第一,兼顧前沿與經典,帶領讀者進行啟發(fā)式思考。本書總結與剖析前沿的系統(tǒng)和人工智能相結合的研究與工程工作,包括Systems for AI和AI for Systems,幫助讀者更好地尋找、定義有意義的系統(tǒng)研究與工程問題。同時兼顧系統(tǒng)經典問題,從時間跨度上讓讀者感受經典系統(tǒng)問題與方法久經考驗的魅力。本書既介紹了人工智能系統(tǒng)領域解決方法和優(yōu)化,又闡述了系統(tǒng)問題的抽象和定義,希望可以啟發(fā)讀者思考,鼓勵讀者開展新的系統(tǒng)研究與工程工作。
第二,做中學。通過穿插于書中的練習實驗,并通過操作及應用主流的框架、平臺、工具等,鼓勵讀者動手實現(xiàn)、實際優(yōu)化,而不僅僅是停留在理論層面或只了解工具的使用方法,進而提高解決實際問題的能力。本書不僅介紹了業(yè)界主流的人工智能系統(tǒng)研究工作,還借助了來自微軟亞洲研究院的研究員和工程師在人工智能和計算機系統(tǒng)交叉領域的研究成果、開源系統(tǒng)與實踐經驗。
第三,體系化。本書圍繞深度學習系統(tǒng)全棧進行闡述,同時涵蓋深度學習系統(tǒng)的設計原則、工作綜述、方法論和工程實踐等。通過問題與場景導向,打破計算機子領域界限,各章節(jié)涉及計算機、軟件工程、人工智能等多學科知識點,讓讀者能夠更加熟悉計算機系統(tǒng)子領域之間的關系,形成跨算法系統(tǒng)和軟硬件棧的視角。
近年來,人工智能特別是深度學習技術飛速發(fā)展,在自然語言處理、計算機視覺、語音識別、廣告與游戲等領域應用廣泛,其中大語言模型、多模態(tài)更是取得了突破性進展。算法、模型突破的背后離不開計算機硬件提供的大規(guī)模算力和高質量的海量數據,如何銜接三者以完成模型的訓練與推理則依賴于系統(tǒng)的支撐與優(yōu)化。在可見的未來,人工智能技術的發(fā)展仍將依賴系統(tǒng)和人工智能模型相結合的共同創(chuàng)新模式。需要注意的是,系統(tǒng)正以更大的規(guī)模和更高的復雜度賦能和支持人工智能模型與應用的創(chuàng)新與演化,這背后不僅需要開發(fā)與設計更多的新系統(tǒng)(Systems for AI),還需要系統(tǒng)性的思維和方法論進行人工智能研發(fā)全生命周期的指導。與此同時,人工智能模型作為工具或核心算法也在逐漸為復雜系統(tǒng)設計提供支持(AI for Systems)。
我們注意到,當前的大部分人工智能相關圖書,特別是深度學習和機器學習領域的圖書,主要集中在講解人工智能理論、模型、算法或應用方面,與人工智能系統(tǒng)相關的圖書并不多見。我們希望本書能填補人工智能系統(tǒng)領域的空白,以更加體系化和普適化的方式介紹相關內容,從而共同促進人工智能算法與系統(tǒng)領域交叉人才的培養(yǎng)。本書創(chuàng)作的初衷是幫助讀者完整地了解人工智能系統(tǒng),特別是深度學習系統(tǒng)的設計,并通過學習剖析實際問題和經典案例,掌握深度學習模型研發(fā)完整生命周期下的工程實踐。本書的內容及特點可以簡要概括為以下幾點。
第一,兼顧前沿與經典,帶領讀者進行啟發(fā)式思考。本書總結與剖析前沿的系統(tǒng)和人工智能相結合的研究與工程工作,包括Systems for AI和AI for Systems,幫助讀者更好地尋找、定義有意義的系統(tǒng)研究與工程問題。同時兼顧系統(tǒng)經典問題,從時間跨度上讓讀者感受經典系統(tǒng)問題與方法久經考驗的魅力。本書既介紹了人工智能系統(tǒng)領域解決方法和優(yōu)化,又闡述了系統(tǒng)問題的抽象和定義,希望可以啟發(fā)讀者思考,鼓勵讀者開展新的系統(tǒng)研究與工程工作。
第二,做中學。通過穿插于書中的練習實驗,并通過操作及應用主流的框架、平臺、工具等,鼓勵讀者動手實現(xiàn)、實際優(yōu)化,而不僅僅是停留在理論層面或只了解工具的使用方法,進而提高解決實際問題的能力。本書不僅介紹了業(yè)界主流的人工智能系統(tǒng)研究工作,還借助了來自微軟亞洲研究院的研究員和工程師在人工智能和計算機系統(tǒng)交叉領域的研究成果、開源系統(tǒng)與實踐經驗。
第三,體系化。本書圍繞深度學習系統(tǒng)全棧進行闡述,同時涵蓋深度學習系統(tǒng)的設計原則、工作綜述、方法論和工程實踐等。通過問題與場景導向,打破計算機子領域界限,各章節(jié)涉及計算機、軟件工程、人工智能等多學科知識點,讓讀者能夠更加熟悉計算機系統(tǒng)子領域之間的關系,形成跨算法系統(tǒng)和軟硬件棧的視角。
本書的讀者對象為相關領域的本科生、研究生、教師、工程師和研究員。我們不斷優(yōu)化內容安排,加入了前沿和面向教學的高級內容,力求滿足更多讀者的不同需求。希望本書可以為讀者提供啟發(fā)與引導,也希望讀者可以在書中找到自己所需的知識與方法。為了便于閱讀和學習本書的內容,建議讀者先學習以下前置知識,包括C/C++/Python、計算機體系結構、數據結構與算法、操作系統(tǒng)、編譯原理、計算機網絡等。
本書依托于微軟亞洲研究院開源的人工智能系統(tǒng)課程相關內容,歡迎訪問人工智能系統(tǒng)課程社區(qū)(AISystem)、人工智能教育與共建社區(qū)(AIEDU)的基礎教程模塊以獲取更多學習內容、實驗、代碼和素材。人工智能系統(tǒng)課程社區(qū)網址為http://github.com/microsoft/AISystem。人工智能教育與共建社區(qū)網址為http://github.com/microsoft/aiedu。
本書的各章內容分別由以下作者撰寫:第1、7、8章(高彥杰)、第2章(胡曉武)、第3章(曹瑩)、第4和5章(薛繼龍)、第6章(苗又山)、第9章(張權路)、第10章(薛卉)、第11章(曹士杰,劉劍毅)、第12章(謝佩辰,張憲)、第13章(梁傑然、閆宇、曹士杰)。
在本書的編寫過程中,我們得到了微軟亞洲研究院、西安交通大學的諸多領導、同事和朋友的支持與幫助,在此表示感謝。
人工智能系統(tǒng)小組成員
高彥杰,微軟亞洲研究院高級研發(fā)工程師,研究方向為面向人工智能與大數據的平臺,系統(tǒng)和工具。積極參與計算機教育。
胡曉武,畢業(yè)于哈爾濱工業(yè)大學,畢業(yè)后就職于中國科學院,后一直在微軟(中國)研發(fā)部門工作至今。著有《智能之門》一書。
曹瑩,微軟亞洲研究院高級研究員,研究興趣為深度學習框架和深度編譯優(yōu)化系統(tǒng)。
薛繼龍博士,微軟亞洲研究院首席研究員,主要研究方向為深度學習編譯框架、人工智能硬件加速器的優(yōu)化等,相關成果已發(fā)表在OSDI、NSDI等學術會議,主持AI編譯器項目NNFusion、Rammer、Roller、Welder。
苗又山,微軟亞洲研究院高級研究員,研究方向為深度學習框架與分布式系統(tǒng)。
張權路,微軟亞洲研究院首席研究員,研究方向為自動機器學習系統(tǒng),計算集群的資源調度與優(yōu)化,深度學習模型的分布式訓練與推理框架。
薛卉,微軟亞洲研究院研究員,研究方向為人工智能與系統(tǒng)(AI for Systems),特別關注強化學習等領域。
曹士杰,微軟亞洲研究院研究員,研究興趣為深度學習壓縮與加速,軟硬件聯(lián)合優(yōu)化等。
劉劍毅,西安交通大學人工智能學院副教授,研究興趣為無人駕駛、人工智能教育等。
謝佩辰,微軟亞洲研究院研究員,研究方向為可靠計算系統(tǒng)及可信人工智能系統(tǒng)。
張憲,2018年獲得北京大學博士學位后加入微軟亞洲研究院,目前任高級研究員。研究方向為密碼學,區(qū)塊鏈技術,人工智能安全與隱私,形式化驗證。
梁傑然,微軟亞洲研究院首席研究員,主要研究方向為面向計算機系統(tǒng)的機器學習。
閆宇,微軟雷德蒙研究院高級研究員,主要研究面向計算機網絡的機器學習和視頻系統(tǒng)。
推薦序一
推薦序二
推薦序三
前言
致謝
第1章人工智能系統(tǒng)概述1
本章簡介1
內容概覽2
1.1 深度學習的歷史、現(xiàn)狀與發(fā)展2
1.1.1 深度學習的廣泛應用2
1.1.2 深度學習方法4
1.1.3 神經網絡基本理論的奠定5
1.1.4 深度學習算法、模型的現(xiàn)狀和趨勢9
1.1.5 小結與討論12
1.1.6 參考文獻12
1.2 算法、框架、體系結構與算力的進步13
1.2.1 大數據和分布式系統(tǒng)13
1.2.2 深度學習算法的進步15
1.2.3 計算機體系結構和計算能力的進步17
1.2.4 計算框架的進步18
1.2.5 小結與討論21
1.2.6 參考文獻21
1.3 深度學習系統(tǒng)的組成與生態(tài)22
1.3.1 深度學習系統(tǒng)的設計目標22
1.3.2 深度學習系統(tǒng)的大致組成24
1.3.3 深度學習系統(tǒng)的生態(tài)27
1.3.4 小結與討論29
1.3.5 參考文獻29
1.4 深度學習樣例背后的系統(tǒng)問題29
1.4.1 一個深度學習樣例與其中的系統(tǒng)問題30
1.4.2 模型算子實現(xiàn)中的系統(tǒng)問題33
1.4.3 框架執(zhí)行深度學習模型的生命周期36
1.4.4 更廣泛的人工智能系統(tǒng)生態(tài)40
1.4.5 深度學習框架及工具入門實驗41
1.4.6 小結與討論44
1.4.7 參考文獻44
1.5 影響深度學習系統(tǒng)設計的理論、原則與假設44
1.5.1 抽象層次化表示與解釋45
1.5.2 摩爾定律與算力發(fā)展趨勢49
1.5.3 局部性原則與內存層次結構52
1.5.4 線性代數計算與模型缺陷容忍特性59
1.5.5 并行加速與阿姆達爾定律優(yōu)化上限64
1.5.6 冗余與可靠性67
1.5.7 小結與討論68
1.5.8 參考文獻68
第2章神經網絡基礎70
本章簡介70
內容概覽70
2.1 神經網絡的基本概念70
2.1.1 神經元的數學模型71
2.1.2 神經網絡的主要功能72
2.1.3 激活函數73
2.1.4 小結與討論78
2.2 神經網絡訓練78
2.2.1 基本訓練流程78
2.2.2 損失函數80
2.2.3 梯度下降82
2.2.4 反向傳播85
2.2.5 小結與討論85
2.3 解決回歸問題85
2.3.1 提出問題86
2.3.2 萬能近似定理86
2.3.3 定義神經網絡結構87
2.3.4 前向計算88
2.3.5 反向傳播89
2.3.6 運行結果91
2.3.7 小結與討論92
2.4 解決分類問題92
2.4.1 提出問題92
2.4.2 定義神經網絡結構93
2.4.3 前向計算94
2.4.4 反向傳播95
2.4.5 運行結果96
2.4.6 小結與討論96
2.5 深度神經網絡97
2.5.1 抽象與設計97
2.5.2 權重矩陣初始化98
2.5.3 批量歸一化99
2.5.4 過擬合101
2.5.5 小結與討論103
2.6 梯度下降優(yōu)化算法103
2.6.1 隨機梯度下降算法103
2.6.2 動量算法104
2.6.3 Adam算法105
2.6.4 小結與討論105
2.7 卷積神經網絡105
2.7.1 卷積神經網絡的能力105
2.7.2 卷積神經網絡的典型結構106
2.7.3 卷積核的作用107
2.7.4 卷積后續(xù)的運算109
2.7.5 卷積神經網絡的特性110
2.7.6 卷積類型111
2.7.7 小結與討論115
2.8 循環(huán)神經網絡115
2.8.1 循環(huán)神經網絡的發(fā)展簡史115
2.8.2 循環(huán)神經網絡的結構和典型用途117
2.8.3 小結與討論118
2.9 Transformer模型118
2.9.1 序列到序列模型119
2.9.2 注意力機制120
2.9.3 Transformer122
2.9.4 小結與討論125
第3章深度學習框架基礎126
本章簡介126
內容概覽126
3.1 基于數據流圖的深度學習框架126
3.1.1 深度學習框架發(fā)展概述126
3.1.2 編程范式:聲明式和命令式128
3.1.3 數據流圖129
3.1.4 張量和張量操作130
3.1.5 自動微分基礎131
3.1.6 數據流圖上的自動微分135
3.1.7 數據流圖的調度與執(zhí)行136
3.1.8 單設備算子間調度136
3.1.9 圖切分與多設備執(zhí)行137
3.1.10 小結與討論138
3.1.11 參考文獻138
3.2 神經網絡計算中的控制流139
3.2.1 背景139
3.2.2 靜態(tài)圖:向數據流圖中添加控制流原語141
3.2.3 動態(tài)圖:復用宿主語言控制流語句143
3.2.4 動態(tài)圖轉換為靜態(tài)圖144
3.2.5 小結與討論145
3.2.6 參考文獻145
第4章矩陣運算與計算機體系結構147
本章簡介147
內容概覽147
4.1 深度學習的歷史、現(xiàn)狀與發(fā)展148
4.1.1 全連接層148
4.1.2 卷積層148
4.1.3 循環(huán)網絡層149
4.1.4 注意力機制層149
4.1.5 小結與討論150
4.1.6 參考文獻150
4.2 計算機體系結構與矩陣運算150
4.2.1 CPU體系結構151
4.2.2 CPU實現(xiàn)高效計算矩陣乘152
4.2.3 在CPU上實現(xiàn)一個矩陣乘法算子實驗154
4.2.4 小結與討論155
4.3 GPU體系結構與矩陣運算155
4.3.1 GPU體系結構155
4.3.2 GPU編程模型156
4.3.3 GPU實現(xiàn)一個簡單的計算157
4.3.4 在GPU上實現(xiàn)一個矩陣乘法算子實驗159
4.3.5 小結與討論160
4.4 面向深度學習的專有硬件加速器與矩陣運算160
4.4.1 深度學習計算的特點與硬件優(yōu)化方向160
4.4.2 脈動陣列與矩陣計算162
4.4.3 小結與討論163
第5章深度學習的編譯與優(yōu)化164
本章簡介164
內容概覽164
5.1 深度神經網絡編譯器164
5.1.1 前端166
5.1.2 后端167
5.1.3 中間表達167
5.1.4 優(yōu)化過程168
5.1.5 小結與討論168
5.2 計算圖優(yōu)化168
5.2.1 算術表達式化簡169
5.2.2 公共子表達式消除169
5.2.3 常數傳播170
5.2.4 矩陣乘自動融合1