深度學(xué)習(xí)系統(tǒng)設(shè)計(jì):理論與實(shí)踐 人工智能系統(tǒng)小組
定 價(jià):149 元
- 作者:人工智能系統(tǒng)小組
- 出版時(shí)間:2024/10/1
- ISBN:9787111759362
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
近年來人工智能特別是深度學(xué)習(xí)技術(shù)得到了飛速發(fā)展,這背后離不開計(jì)算機(jī)硬件和軟件系統(tǒng)的不斷進(jìn)步。在可見的未來,人工智能技術(shù)的發(fā)展仍將依賴于計(jì)算機(jī)系統(tǒng)和人工智能相結(jié)合的共同創(chuàng)新模式。本書介紹了前沿的系統(tǒng)和人工智能相結(jié)合的研究工作,包括AI for Systems和Systems for AI,以幫助讀者更好地尋找和定義有意義的研究問題。同時(shí),本書從系統(tǒng)研究的角度出發(fā)設(shè)計(jì)實(shí)驗(yàn)課程,通過操作和應(yīng)用主流及最新的框架、平臺和工具來鼓勵(lì)讀者動手實(shí)現(xiàn)和優(yōu)化系統(tǒng)模塊,以提高解決實(shí)際問題的能力,而不僅僅是了解工具使用。
本書主要面向相關(guān)領(lǐng)域的本科生、研究生、教師、工程師和研究員,幫助他們完整地了解支持深度學(xué)習(xí)的計(jì)算機(jī)系統(tǒng)架構(gòu),并通過解決實(shí)際問題來學(xué)習(xí)深度學(xué)習(xí)完整生命周期下的系統(tǒng)設(shè)計(jì)。
本書的內(nèi)容及特點(diǎn)可以簡要概括為以下幾點(diǎn)。
第一,兼顧前沿與經(jīng)典,帶領(lǐng)讀者進(jìn)行啟發(fā)式思考。本書總結(jié)與剖析前沿的系統(tǒng)和人工智能相結(jié)合的研究與工程工作,包括Systems for AI和AI for Systems,幫助讀者更好地尋找、定義有意義的系統(tǒng)研究與工程問題。同時(shí)兼顧系統(tǒng)經(jīng)典問題,從時(shí)間跨度上讓讀者感受經(jīng)典系統(tǒng)問題與方法久經(jīng)考驗(yàn)的魅力。本書既介紹了人工智能系統(tǒng)領(lǐng)域解決方法和優(yōu)化,又闡述了系統(tǒng)問題的抽象和定義,希望可以啟發(fā)讀者思考,鼓勵(lì)讀者開展新的系統(tǒng)研究與工程工作。
第二,做中學(xué)。通過穿插于書中的練習(xí)實(shí)驗(yàn),并通過操作及應(yīng)用主流的框架、平臺、工具等,鼓勵(lì)讀者動手實(shí)現(xiàn)、實(shí)際優(yōu)化,而不僅僅是停留在理論層面或只了解工具的使用方法,進(jìn)而提高解決實(shí)際問題的能力。本書不僅介紹了業(yè)界主流的人工智能系統(tǒng)研究工作,還借助了來自微軟亞洲研究院的研究員和工程師在人工智能和計(jì)算機(jī)系統(tǒng)交叉領(lǐng)域的研究成果、開源系統(tǒng)與實(shí)踐經(jīng)驗(yàn)。
第三,體系化。本書圍繞深度學(xué)習(xí)系統(tǒng)全棧進(jìn)行闡述,同時(shí)涵蓋深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì)原則、工作綜述、方法論和工程實(shí)踐等。通過問題與場景導(dǎo)向,打破計(jì)算機(jī)子領(lǐng)域界限,各章節(jié)涉及計(jì)算機(jī)、軟件工程、人工智能等多學(xué)科知識點(diǎn),讓讀者能夠更加熟悉計(jì)算機(jī)系統(tǒng)子領(lǐng)域之間的關(guān)系,形成跨算法系統(tǒng)和軟硬件棧的視角。
近年來,人工智能特別是深度學(xué)習(xí)技術(shù)飛速發(fā)展,在自然語言處理、計(jì)算機(jī)視覺、語音識別、廣告與游戲等領(lǐng)域應(yīng)用廣泛,其中大語言模型、多模態(tài)更是取得了突破性進(jìn)展。算法、模型突破的背后離不開計(jì)算機(jī)硬件提供的大規(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è)計(jì)更多的新系統(tǒng)(Systems for AI),還需要系統(tǒng)性的思維和方法論進(jìn)行人工智能研發(fā)全生命周期的指導(dǎo)。與此同時(shí),人工智能模型作為工具或核心算法也在逐漸為復(fù)雜系統(tǒng)設(shè)計(jì)提供支持(AI for Systems)。
我們注意到,當(dāng)前的大部分人工智能相關(guān)圖書,特別是深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域的圖書,主要集中在講解人工智能理論、模型、算法或應(yīng)用方面,與人工智能系統(tǒng)相關(guān)的圖書并不多見。我們希望本書能填補(bǔ)人工智能系統(tǒng)領(lǐng)域的空白,以更加體系化和普適化的方式介紹相關(guān)內(nèi)容,從而共同促進(jìn)人工智能算法與系統(tǒng)領(lǐng)域交叉人才的培養(yǎng)。本書創(chuàng)作的初衷是幫助讀者完整地了解人工智能系統(tǒng),特別是深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì),并通過學(xué)習(xí)剖析實(shí)際問題和經(jīng)典案例,掌握深度學(xué)習(xí)模型研發(fā)完整生命周期下的工程實(shí)踐。本書的內(nèi)容及特點(diǎn)可以簡要概括為以下幾點(diǎn)。
第一,兼顧前沿與經(jīng)典,帶領(lǐng)讀者進(jìn)行啟發(fā)式思考。本書總結(jié)與剖析前沿的系統(tǒng)和人工智能相結(jié)合的研究與工程工作,包括Systems for AI和AI for Systems,幫助讀者更好地尋找、定義有意義的系統(tǒng)研究與工程問題。同時(shí)兼顧系統(tǒng)經(jīng)典問題,從時(shí)間跨度上讓讀者感受經(jīng)典系統(tǒng)問題與方法久經(jīng)考驗(yàn)的魅力。本書既介紹了人工智能系統(tǒng)領(lǐng)域解決方法和優(yōu)化,又闡述了系統(tǒng)問題的抽象和定義,希望可以啟發(fā)讀者思考,鼓勵(lì)讀者開展新的系統(tǒng)研究與工程工作。
第二,做中學(xué)。通過穿插于書中的練習(xí)實(shí)驗(yàn),并通過操作及應(yīng)用主流的框架、平臺、工具等,鼓勵(lì)讀者動手實(shí)現(xiàn)、實(shí)際優(yōu)化,而不僅僅是停留在理論層面或只了解工具的使用方法,進(jìn)而提高解決實(shí)際問題的能力。本書不僅介紹了業(yè)界主流的人工智能系統(tǒng)研究工作,還借助了來自微軟亞洲研究院的研究員和工程師在人工智能和計(jì)算機(jī)系統(tǒng)交叉領(lǐng)域的研究成果、開源系統(tǒng)與實(shí)踐經(jīng)驗(yàn)。
第三,體系化。本書圍繞深度學(xué)習(xí)系統(tǒng)全棧進(jìn)行闡述,同時(shí)涵蓋深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì)原則、工作綜述、方法論和工程實(shí)踐等。通過問題與場景導(dǎo)向,打破計(jì)算機(jī)子領(lǐng)域界限,各章節(jié)涉及計(jì)算機(jī)、軟件工程、人工智能等多學(xué)科知識點(diǎn),讓讀者能夠更加熟悉計(jì)算機(jī)系統(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、計(jì)算機(jī)體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、編譯原理、計(jì)算機(jī)網(wǎng)絡(luò)等。
本書依托于微軟亞洲研究院開源的人工智能系統(tǒng)課程相關(guān)內(nèi)容,歡迎訪問人工智能系統(tǒng)課程社區(qū)(AISystem)、人工智能教育與共建社區(qū)(AIEDU)的基礎(chǔ)教程模塊以獲取更多學(xué)習(xí)內(nèi)容、實(shí)驗(yàn)、代碼和素材。人工智能系統(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ā)工程師,研究方向?yàn)槊嫦蛉斯ぶ悄芘c大數(shù)據(jù)的平臺,系統(tǒng)和工具。積極參與計(jì)算機(jī)教育。
胡曉武,畢業(yè)于哈爾濱工業(yè)大學(xué),畢業(yè)后就職于中國科學(xué)院,后一直在微軟(中國)研發(fā)部門工作至今。著有《智能之門》一書。
曹瑩,微軟亞洲研究院高級研究員,研究興趣為深度學(xué)習(xí)框架和深度編譯優(yōu)化系統(tǒng)。
薛繼龍博士,微軟亞洲研究院首席研究員,主要研究方向?yàn)樯疃葘W(xué)習(xí)編譯框架、人工智能硬件加速器的優(yōu)化等,相關(guān)成果已發(fā)表在OSDI、NSDI等學(xué)術(shù)會議,主持AI編譯器項(xiàng)目NNFusion、Rammer、Roller、Welder。
苗又山,微軟亞洲研究院高級研究員,研究方向?yàn)樯疃葘W(xué)習(xí)框架與分布式系統(tǒng)。
張權(quán)路,微軟亞洲研究院首席研究員,研究方向?yàn)樽詣訖C(jī)器學(xué)習(xí)系統(tǒng),計(jì)算集群的資源調(diào)度與優(yōu)化,深度學(xué)習(xí)模型的分布式訓(xùn)練與推理框架。
薛卉,微軟亞洲研究院研究員,研究方向?yàn)槿斯ぶ悄芘c系統(tǒng)(AI for Systems),特別關(guān)注強(qiáng)化學(xué)習(xí)等領(lǐng)域。
曹士杰,微軟亞洲研究院研究員,研究興趣為深度學(xué)習(xí)壓縮與加速,軟硬件聯(lián)合優(yōu)化等。
劉劍毅,西安交通大學(xué)人工智能學(xué)院副教授,研究興趣為無人駕駛、人工智能教育等。
謝佩辰,微軟亞洲研究院研究員,研究方向?yàn)榭煽坑?jì)算系統(tǒng)及可信人工智能系統(tǒng)。
張憲,2018年獲得北京大學(xué)博士學(xué)位后加入微軟亞洲研究院,目前任高級研究員。研究方向?yàn)槊艽a學(xué),區(qū)塊鏈技術(shù),人工智能安全與隱私,形式化驗(yàn)證。
梁傑然,微軟亞洲研究院首席研究員,主要研究方向?yàn)槊嫦蛴?jì)算機(jī)系統(tǒng)的機(jī)器學(xué)習(xí)。
閆宇,微軟雷德蒙研究院高級研究員,主要研究面向計(jì)算機(jī)網(wǎng)絡(luò)的機(jī)器學(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 參考文獻(xiàn)12
1.2 算法、框架、體系結(jié)構(gòu)與算力的進(jìn)步13
1.2.1 大數(shù)據(jù)和分布式系統(tǒng)13
1.2.2 深度學(xué)習(xí)算法的進(jìn)步15
1.2.3 計(jì)算機(jī)體系結(jié)構(gòu)和計(jì)算能力的進(jìn)步17
1.2.4 計(jì)算框架的進(jìn)步18
1.2.5 小結(jié)與討論21
1.2.6 參考文獻(xiàn)21
1.3 深度學(xué)習(xí)系統(tǒng)的組成與生態(tài)22
1.3.1 深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì)目標(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 參考文獻(xiàn)29
1.4 深度學(xué)習(xí)樣例背后的系統(tǒng)問題29
1.4.1 一個(gè)深度學(xué)習(xí)樣例與其中的系統(tǒng)問題30
1.4.2 模型算子實(shí)現(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í)框架及工具入門實(shí)驗(yàn)41
1.4.6 小結(jié)與討論44
1.4.7 參考文獻(xiàn)44
1.5 影響深度學(xué)習(xí)系統(tǒng)設(shè)計(jì)的理論、原則與假設(shè)44
1.5.1 抽象層次化表示與解釋45
1.5.2 摩爾定律與算力發(fā)展趨勢49
1.5.3 局部性原則與內(nèi)存層次結(jié)構(gòu)52
1.5.4 線性代數(shù)計(jì)算與模型缺陷容忍特性59
1.5.5 并行加速與阿姆達(dá)爾定律優(yōu)化上限64
1.5.6 冗余與可靠性67
1.5.7 小結(jié)與討論68
1.5.8 參考文獻(xiàn)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 前向計(jì)算88
2.3.5 反向傳播89
2.3.6 運(yùn)行結(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 前向計(jì)算94
2.4.4 反向傳播95
2.4.5 運(yùn)行結(jié)果96
2.4.6 小結(jié)與討論96
2.5 深度神經(jīng)網(wǎng)絡(luò)97
2.5.1 抽象與設(shè)計(jì)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 隨機(jī)梯度下降算法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ù)的運(yùn)算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 注意力機(jī)制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 參考文獻(xiàn)138
3.2 神經(jīng)網(wǎng)絡(luò)計(jì)算中的控制流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 參考文獻(xiàn)145
第4章矩陣運(yùn)算與計(jì)算機(jī)體系結(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 注意力機(jī)制層149
4.1.5 小結(jié)與討論150
4.1.6 參考文獻(xiàn)150
4.2 計(jì)算機(jī)體系結(jié)構(gòu)與矩陣運(yùn)算150
4.2.1 CPU體系結(jié)構(gòu)151
4.2.2 CPU實(shí)現(xiàn)高效計(jì)算矩陣乘152
4.2.3 在CPU上實(shí)現(xiàn)一個(gè)矩陣乘法算子實(shí)驗(yàn)154
4.2.4 小結(jié)與討論155
4.3 GPU體系結(jié)構(gòu)與矩陣運(yùn)算155
4.3.1 GPU體系結(jié)構(gòu)155
4.3.2 GPU編程模型156
4.3.3 GPU實(shí)現(xiàn)一個(gè)簡單的計(jì)算157
4.3.4 在GPU上實(shí)現(xiàn)一個(gè)矩陣乘法算子實(shí)驗(yàn)159
4.3.5 小結(jié)與討論160
4.4 面向深度學(xué)習(xí)的專有硬件加速器與矩陣運(yùn)算160
4.4.1 深度學(xué)習(xí)計(jì)算的特點(diǎn)與硬件優(yōu)化方向160
4.4.2 脈動陣列與矩陣計(jì)算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 中間表達(dá)167
5.1.4 優(yōu)化過程168
5.1.5 小結(jié)與討論168
5.2 計(jì)算圖優(yōu)化168
5.2.1 算術(shù)表達(dá)式化簡169
5.2.2 公共子表達(dá)式消除169
5.2.3 常數(shù)傳播170
5.2.4 矩陣乘自動融合1