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