深度學(xué)習(xí)系統(tǒng)設(shè)計(jì):理論與實(shí)踐 人工智能系統(tǒng)小組
定 價(jià):149 元
- 作者:人工智能系統(tǒng)小組
- 出版時(shí)間:2024/10/1
- ISBN:9787111759362
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
近年來(lái)人工智能特別是深度學(xué)習(xí)技術(shù)得到了飛速發(fā)展,這背后離不開(kāi)計(jì)算機(jī)硬件和軟件系統(tǒng)的不斷進(jìn)步。在可見(jiàn)的未來(lái),人工智能技術(shù)的發(fā)展仍將依賴(lài)于計(jì)算機(jī)系統(tǒng)和人工智能相結(jié)合的共同創(chuàng)新模式。本書(shū)介紹了前沿的系統(tǒng)和人工智能相結(jié)合的研究工作,包括AI for Systems和Systems for AI,以幫助讀者更好地尋找和定義有意義的研究問(wèn)題。同時(shí),本書(shū)從系統(tǒng)研究的角度出發(fā)設(shè)計(jì)實(shí)驗(yàn)課程,通過(guò)操作和應(yīng)用主流及最新的框架、平臺(tái)和工具來(lái)鼓勵(lì)讀者動(dòng)手實(shí)現(xiàn)和優(yōu)化系統(tǒng)模塊,以提高解決實(shí)際問(wèn)題的能力,而不僅僅是了解工具使用。
本書(shū)主要面向相關(guān)領(lǐng)域的本科生、研究生、教師、工程師和研究員,幫助他們完整地了解支持深度學(xué)習(xí)的計(jì)算機(jī)系統(tǒng)架構(gòu),并通過(guò)解決實(shí)際問(wèn)題來(lái)學(xué)習(xí)深度學(xué)習(xí)完整生命周期下的系統(tǒng)設(shè)計(jì)。
本書(shū)的內(nèi)容及特點(diǎn)可以簡(jiǎn)要概括為以下幾點(diǎn)。
第一,兼顧前沿與經(jīng)典,帶領(lǐng)讀者進(jìn)行啟發(fā)式思考。本書(shū)總結(jié)與剖析前沿的系統(tǒng)和人工智能相結(jié)合的研究與工程工作,包括Systems for AI和AI for Systems,幫助讀者更好地尋找、定義有意義的系統(tǒng)研究與工程問(wèn)題。同時(shí)兼顧系統(tǒng)經(jīng)典問(wèn)題,從時(shí)間跨度上讓讀者感受經(jīng)典系統(tǒng)問(wèn)題與方法久經(jīng)考驗(yàn)的魅力。本書(shū)既介紹了人工智能系統(tǒng)領(lǐng)域解決方法和優(yōu)化,又闡述了系統(tǒng)問(wèn)題的抽象和定義,希望可以啟發(fā)讀者思考,鼓勵(lì)讀者開(kāi)展新的系統(tǒng)研究與工程工作。
第二,做中學(xué)。通過(guò)穿插于書(shū)中的練習(xí)實(shí)驗(yàn),并通過(guò)操作及應(yīng)用主流的框架、平臺(tái)、工具等,鼓勵(lì)讀者動(dòng)手實(shí)現(xiàn)、實(shí)際優(yōu)化,而不僅僅是停留在理論層面或只了解工具的使用方法,進(jìn)而提高解決實(shí)際問(wèn)題的能力。本書(shū)不僅介紹了業(yè)界主流的人工智能系統(tǒng)研究工作,還借助了來(lái)自微軟亞洲研究院的研究員和工程師在人工智能和計(jì)算機(jī)系統(tǒng)交叉領(lǐng)域的研究成果、開(kāi)源系統(tǒng)與實(shí)踐經(jīng)驗(yàn)。
第三,體系化。本書(shū)圍繞深度學(xué)習(xí)系統(tǒng)全棧進(jìn)行闡述,同時(shí)涵蓋深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì)原則、工作綜述、方法論和工程實(shí)踐等。通過(guò)問(wèn)題與場(chǎng)景導(dǎo)向,打破計(jì)算機(jī)子領(lǐng)域界限,各章節(jié)涉及計(jì)算機(jī)、軟件工程、人工智能等多學(xué)科知識(shí)點(diǎn),讓讀者能夠更加熟悉計(jì)算機(jī)系統(tǒng)子領(lǐng)域之間的關(guān)系,形成跨算法系統(tǒng)和軟硬件棧的視角。
近年來(lái),人工智能特別是深度學(xué)習(xí)技術(shù)飛速發(fā)展,在自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別、廣告與游戲等領(lǐng)域應(yīng)用廣泛,其中大語(yǔ)言模型、多模態(tài)更是取得了突破性進(jìn)展。算法、模型突破的背后離不開(kāi)計(jì)算機(jī)硬件提供的大規(guī)模算力和高質(zhì)量的海量數(shù)據(jù),如何銜接三者以完成模型的訓(xùn)練與推理則依賴(lài)于系統(tǒng)的支撐與優(yōu)化。在可見(jiàn)的未來(lái),人工智能技術(shù)的發(fā)展仍將依賴(lài)系統(tǒng)和人工智能模型相結(jié)合的共同創(chuàng)新模式。需要注意的是,系統(tǒng)正以更大的規(guī)模和更高的復(fù)雜度賦能和支持人工智能模型與應(yīng)用的創(chuàng)新與演化,這背后不僅需要開(kāi)發(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)圖書(shū),特別是深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域的圖書(shū),主要集中在講解人工智能理論、模型、算法或應(yīng)用方面,與人工智能系統(tǒng)相關(guān)的圖書(shū)并不多見(jiàn)。我們希望本書(shū)能填補(bǔ)人工智能系統(tǒng)領(lǐng)域的空白,以更加體系化和普適化的方式介紹相關(guān)內(nèi)容,從而共同促進(jìn)人工智能算法與系統(tǒng)領(lǐng)域交叉人才的培養(yǎng)。本書(shū)創(chuàng)作的初衷是幫助讀者完整地了解人工智能系統(tǒng),特別是深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì),并通過(guò)學(xué)習(xí)剖析實(shí)際問(wèn)題和經(jīng)典案例,掌握深度學(xué)習(xí)模型研發(fā)完整生命周期下的工程實(shí)踐。本書(shū)的內(nèi)容及特點(diǎn)可以簡(jiǎn)要概括為以下幾點(diǎn)。
第一,兼顧前沿與經(jīng)典,帶領(lǐng)讀者進(jìn)行啟發(fā)式思考。本書(shū)總結(jié)與剖析前沿的系統(tǒng)和人工智能相結(jié)合的研究與工程工作,包括Systems for AI和AI for Systems,幫助讀者更好地尋找、定義有意義的系統(tǒng)研究與工程問(wèn)題。同時(shí)兼顧系統(tǒng)經(jīng)典問(wèn)題,從時(shí)間跨度上讓讀者感受經(jīng)典系統(tǒng)問(wèn)題與方法久經(jīng)考驗(yàn)的魅力。本書(shū)既介紹了人工智能系統(tǒng)領(lǐng)域解決方法和優(yōu)化,又闡述了系統(tǒng)問(wèn)題的抽象和定義,希望可以啟發(fā)讀者思考,鼓勵(lì)讀者開(kāi)展新的系統(tǒng)研究與工程工作。
第二,做中學(xué)。通過(guò)穿插于書(shū)中的練習(xí)實(shí)驗(yàn),并通過(guò)操作及應(yīng)用主流的框架、平臺(tái)、工具等,鼓勵(lì)讀者動(dòng)手實(shí)現(xiàn)、實(shí)際優(yōu)化,而不僅僅是停留在理論層面或只了解工具的使用方法,進(jìn)而提高解決實(shí)際問(wèn)題的能力。本書(shū)不僅介紹了業(yè)界主流的人工智能系統(tǒng)研究工作,還借助了來(lái)自微軟亞洲研究院的研究員和工程師在人工智能和計(jì)算機(jī)系統(tǒng)交叉領(lǐng)域的研究成果、開(kāi)源系統(tǒng)與實(shí)踐經(jīng)驗(yàn)。
第三,體系化。本書(shū)圍繞深度學(xué)習(xí)系統(tǒng)全棧進(jìn)行闡述,同時(shí)涵蓋深度學(xué)習(xí)系統(tǒng)的設(shè)計(jì)原則、工作綜述、方法論和工程實(shí)踐等。通過(guò)問(wèn)題與場(chǎng)景導(dǎo)向,打破計(jì)算機(jī)子領(lǐng)域界限,各章節(jié)涉及計(jì)算機(jī)、軟件工程、人工智能等多學(xué)科知識(shí)點(diǎn),讓讀者能夠更加熟悉計(jì)算機(jī)系統(tǒng)子領(lǐng)域之間的關(guān)系,形成跨算法系統(tǒng)和軟硬件棧的視角。
本書(shū)的讀者對(duì)象為相關(guān)領(lǐng)域的本科生、研究生、教師、工程師和研究員。我們不斷優(yōu)化內(nèi)容安排,加入了前沿和面向教學(xué)的高級(jí)內(nèi)容,力求滿足更多讀者的不同需求。希望本書(shū)可以為讀者提供啟發(fā)與引導(dǎo),也希望讀者可以在書(shū)中找到自己所需的知識(shí)與方法。為了便于閱讀和學(xué)習(xí)本書(shū)的內(nèi)容,建議讀者先學(xué)習(xí)以下前置知識(shí),包括C/C++/Python、計(jì)算機(jī)體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、編譯原理、計(jì)算機(jī)網(wǎng)絡(luò)等。
本書(shū)依托于微軟亞洲研究院開(kāi)源的人工智能系統(tǒng)課程相關(guān)內(nèi)容,歡迎訪問(wèn)人工智能系統(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。
本書(shū)的各章內(nèi)容分別由以下作者撰寫(xiě):第1、7、8章(高彥杰)、第2章(胡曉武)、第3章(曹瑩)、第4和5章(薛繼龍)、第6章(苗又山)、第9章(張權(quán)路)、第10章(薛卉)、第11章(曹士杰,劉劍毅)、第12章(謝佩辰,張憲)、第13章(梁傑然、閆宇、曹士杰)。
在本書(shū)的編寫(xiě)過(guò)程中,我們得到了微軟亞洲研究院、西安交通大學(xué)的諸多領(lǐng)導(dǎo)、同事和朋友的支持與幫助,在此表示感謝。
人工智能系統(tǒng)小組成員
高彥杰,微軟亞洲研究院高級(jí)研發(fā)工程師,研究方向?yàn)槊嫦蛉斯ぶ悄芘c大數(shù)據(jù)的平臺(tái),系統(tǒng)和工具。積極參與計(jì)算機(jī)教育。
胡曉武,畢業(yè)于哈爾濱工業(yè)大學(xué),畢業(yè)后就職于中國(guó)科學(xué)院,后一直在微軟(中國(guó))研發(fā)部門(mén)工作至今。著有《智能之門(mén)》一書(shū)。
曹瑩,微軟亞洲研究院高級(jí)研究員,研究興趣為深度學(xué)習(xí)框架和深度編譯優(yōu)化系統(tǒng)。
薛繼龍博士,微軟亞洲研究院首席研究員,主要研究方向?yàn)樯疃葘W(xué)習(xí)編譯框架、人工智能硬件加速器的優(yōu)化等,相關(guān)成果已發(fā)表在OSDI、NSDI等學(xué)術(shù)會(huì)議,主持AI編譯器項(xiàng)目NNFusion、Rammer、Roller、Welder。
苗又山,微軟亞洲研究院高級(jí)研究員,研究方向?yàn)樯疃葘W(xué)習(xí)框架與分布式系統(tǒng)。
張權(quán)路,微軟亞洲研究院首席研究員,研究方向?yàn)樽詣?dòng)機(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é)院副教授,研究興趣為無(wú)人駕駛、人工智能教育等。
謝佩辰,微軟亞洲研究院研究員,研究方向?yàn)榭煽坑?jì)算系統(tǒng)及可信人工智能系統(tǒng)。
張憲,2018年獲得北京大學(xué)博士學(xué)位后加入微軟亞洲研究院,目前任高級(jí)研究員。研究方向?yàn)槊艽a學(xué),區(qū)塊鏈技術(shù),人工智能安全與隱私,形式化驗(yàn)證。
梁傑然,微軟亞洲研究院首席研究員,主要研究方向?yàn)槊嫦蛴?jì)算機(jī)系統(tǒng)的機(jī)器學(xué)習(xí)。
閆宇,微軟雷德蒙研究院高級(jí)研究員,主要研究面向計(jì)算機(jī)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)和視頻系統(tǒng)。
推薦序一
推薦序二
推薦序三
前言
致謝
第1章人工智能系統(tǒng)概述1
本章簡(jiǎn)介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)狀和趨勢(shì)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)問(wèn)題29
1.4.1 一個(gè)深度學(xué)習(xí)樣例與其中的系統(tǒng)問(wèn)題30
1.4.2 模型算子實(shí)現(xiàn)中的系統(tǒng)問(wèn)題33
1.4.3 框架執(zhí)行深度學(xué)習(xí)模型的生命周期36
1.4.4 更廣泛的人工智能系統(tǒng)生態(tài)40
1.4.5 深度學(xué)習(xí)框架及工具入門(mén)實(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ā)展趨勢(shì)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
本章簡(jiǎn)介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 解決回歸問(wèn)題85
2.3.1 提出問(wèn)題86
2.3.2 萬(wàn)能近似定理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 解決分類(lèi)問(wèn)題92
2.4.1 提出問(wèn)題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 過(guò)擬合101
2.5.5 小結(jié)與討論103
2.6 梯度下降優(yōu)化算法103
2.6.1 隨機(jī)梯度下降算法103
2.6.2 動(dòng)量算法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 卷積類(lèi)型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ā)展簡(jiǎn)史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
本章簡(jiǎn)介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 自動(dòng)微分基礎(chǔ)131
3.1.6 數(shù)據(jù)流圖上的自動(dòng)微分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ù)流圖中添加控制流原語(yǔ)141
3.2.3 動(dòng)態(tài)圖:復(fù)用宿主語(yǔ)言控制流語(yǔ)句143
3.2.4 動(dòng)態(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
本章簡(jiǎn)介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è)簡(jiǎn)單的計(jì)算157
4.3.4 在GPU上實(shí)現(xiàn)一個(gè)矩陣乘法算子實(shí)驗(yàn)159
4.3.5 小結(jié)與討論160
4.4 面向深度學(xué)習(xí)的專(zhuān)有硬件加速器與矩陣運(yùn)算160
4.4.1 深度學(xué)習(xí)計(jì)算的特點(diǎn)與硬件優(yōu)化方向160
4.4.2 脈動(dòng)陣列與矩陣計(jì)算162
4.4.3 小結(jié)與討論163
第5章深度學(xué)習(xí)的編譯與優(yōu)化164
本章簡(jiǎn)介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)化過(guò)程168
5.1.5 小結(jié)與討論168
5.2 計(jì)算圖優(yōu)化168
5.2.1 算術(shù)表達(dá)式化簡(jiǎn)169
5.2.2 公共子表達(dá)式消除169
5.2.3 常數(shù)傳播170
5.2.4 矩陣乘自動(dòng)融合1