官术网_书友最值得收藏!

第1版前言

為什么會有這本書

隨著智能產業的飛速發展,社會迫切需要大量高水平的人工智能人才。因此,我國近千所高校的計算機學院和信息學院都在培養人工智能方向的人才,而且我國已經有上百所高校開始設立專門的人工智能專業。可以說,我國人工智能高等教育的大幕正在徐徐拉開。今天,教育界對人工智能人才培養的決策,將會對歷史產生深遠的影響。因此,我們應當慎重思考一個關鍵問題:人工智能專業的高等教育需要培養什么樣的人才?

有一種看法認為:人工智能專業只需要教學生如何開發智能應用和編寫智能算法,至于運行這些應用和算法的計算系統,則不是教育的重點。這種看法,類似于汽車專業只需要教學生如何組裝車輛,而不需要讓學生理解發動機的機理;又類似于計算機專業只需要教學生如何寫App,而不需要讓學生理解CPU和操作系統的機理。重應用、輕系統的風氣,有可能使我國人工智能基礎研究和產業發展處于“頭重腳輕”的失衡狀態。

與此形成鮮明對比的是,我們的國際同行對于智能計算系統的重視程度遠遠超過普通人的想象。僅以谷歌公司為例。眾所周知,谷歌擁有全世界最大規模、最高水平、最全產品的智能應用和算法研究團隊。僅谷歌一個公司就發表了2019年國際機器學習會議(ICML)近20%的論文,和整個中國相當。然而,當我們真正認真審視谷歌時就會發現,谷歌并不只是一個算法公司,它更是一個系統公司。谷歌的董事長J.Hennessy是國際最知名的計算機系統結構研究者,圖靈獎得主;谷歌人工智能研究的總領導者J.Dean(每次谷歌I/O大會都是他代表谷歌介紹全公司的智能研究進展)是計算機系統研究者,著名的MapReduce分布式計算系統就出自他之手。谷歌在人工智能領域最令人矚目的三個貢獻——機器學習編程框架TensorFlow,戰勝人類圍棋世界冠軍李世石的AlphaGo,以及谷歌自研的智能芯片TPU——也和系統有關,而非單純的算法。

因此,人工智能專業的高等教育,應當培養人工智能系統或者子系統的研究者、設計者和制造者。只有實現這個目標,高校培養的人才才能源源不斷地全面支撐我國人工智能的產業和研究。為了實現這個目標,人工智能專業的課程體系,不僅僅應當包括機器學習算法、視聽覺應用等課程,還應當包括一定的硬件和系統類的課程。

事實上,國內有很多前輩和專家也意識到了這個問題。很多國內高校并不是主觀上不想給學生開設面向人工智能專業的系統類課程,而是開設這樣的課程有一些客觀困難不容易克服。畢竟智能計算系統是一個新興的交叉方向,所涉及的知識非常新,找不到現成的課程可以參考。事實上,即便是國際頂尖高校,過去也沒有太多這方面的教學經驗(例如,斯坦福大學2015年曾請我去講授這個方向的短期課程)。另外,講授智能計算系統課程所需要的背景知識也非常廣泛,涉及算法、結構、芯片、編程等方方面面,能對這些知識都有全面涉獵的老師確實不多。

但是,在所有的困難中,大家一致認為,最關鍵的困難就在于沒有現成的教材。教材是課程的基礎,要上好一門課,沒有合適的教材是不可能的。據我們了解,目前國際上也沒有一本能全面覆蓋人工智能計算系統(尤其是當代機器學習計算系統)新進展的教材。因為我們實驗室在研究上涉及智能計算系統的各個方面,又在中國科學院大學、北京大學、北京航空航天大學等院校有講授智能計算系統課程的經驗,所以很多老師問我們,是否能編寫一本內容較新、較全面的教材。于是,我們參考過去講課的錄音錄像,整理形成了這本《智能計算系統》。希望本書能拋磚引玉,為高校開設面向人工智能專業的系統類課程提供微小的助力,為我國培養人工智能人才起到一點推動作用。

智能計算系統課程的價值

個人認為,智能計算系統課程對于學生、教師、高校都具有重要的價值,能產生深遠的影響。

對于學生來說,學習智能計算系統課程有助于形成系統能力和系統思維。系統能力可以幫助學生在就業市場中擁有更強的競爭力。在不久的將來,全國上百所開設人工智能專業的高校每年將培養出上萬名學過智能算法的學生。到那時,如果一個學生只會算法調參,而對整個系統的耗時、耗電毫無感覺,不具備在實際系統上部署算法的能力,那他找到好工作的難度會較大。而智能計算系統課程的學習,就能讓學生真正理解人工智能到底是怎樣運轉的(包括一個人工智能算法到底如何調用編程框架,編程框架怎么和操作系統打交道,編程框架里的算子又是怎樣在芯片上運行起來),就能使學生擁有親手構建出復雜的系統或者子系統的能力。很自然地,學生就更容易在就業的競爭中脫穎而出。我曾經在網上看到一個段子:“會用TensorFlow每年掙20萬元人民幣,會寫TensorFlow每年掙20萬美元。”這個段子其實還是有一定的現實依據的。

而系統思維,則對于提高學生的科研能力有幫助。缺乏系統思維的學生很容易陷入精度的牛角尖中,把科學研究當成體育比賽來搞(別人做了97%的精度,我就要做98%;別人做了98%,我就要做99%),最后研究道路越走越窄。事實上,從系統角度看,評價智能的標準遠不止精度一個維度。速度、能效、成本等都是很重要的維度,無論在哪一個維度上做出突破,都是非常有價值的研究。因此,近年來深度學習領域一些非常有影響力的工作如稀疏化、低位寬等,都是在提升整個智能計算系統的速度和能效上做文章,而不是只盯著精度不放。所以說,學習智能計算系統課程,能讓學生形成系統思維,在科研道路上擁有更寬廣的舞臺。

對于教學科研人員來說,講授智能計算系統課程,對于自己的科研能力也可能有很大的幫助。我自己擔任任課教師時就發現,科研人員把一門課教好,自己的收獲可能比學生還大。這也就是《禮記·學記》所說的“教學相長”。因為做科研只能讓人對一個方向中的某些具體知識點很熟,而教學則在某種意義上逼著教師要對整個方向有全面的理解,這樣反過來又能讓科研的思路更開闊。智能計算系統課程覆蓋面比較廣,教好這門課受益尤其大,能使教師的知識面從軟到硬更加全面。

對于高校管理人員來講,系統研究已經成為人工智能發展的熱點,在學科布局中應予以充分重視。2019年,一些國際頂尖高校和企業(如斯坦福大學、卡內基·梅隆大學、加州大學伯克利分校、麻省理工學院、谷歌、臉書、英特爾、微軟等)的數十位知名研究者(包括圖靈獎得主Y.LeCun、美國科學院院士M.Jordan、美國工程院院士B.Dally、美國工程院院士J.Dean等)聯合發布了一份白皮書——“SysML:The New Frontier of Machine Learning Systems”,展望了機器學習計算系統軟硬件技術的未來發展。這充分體現出,在國際上無論是學術界還是工業界,都對智能計算系統高度關注。在這樣的新興熱門方向盡早布局并培育一批教師,無疑對提升高校乃至我國在國際學術界的影響力有巨大幫助。

智能計算系統課程的內容

對于教學比較熟悉的教師可能會問:“智能計算系統這門課程涉及面太廣,知識點太多,在一門課內學完是否難度太大?”是的,智能計算系統課程涉及算法、芯片、編程等方方面面,每個方面展開來都可以是自成體系的一門課。所有枝枝蔓蔓要在一門課、一個學期里學完是不可能的。因此,我們在設計智能計算系統這門課程時采用了兩個原則:應用驅動,全棧貫通。課程以一個應用為牽引,在軟硬件技術棧的各個層次,聚焦于完成這個應用所需要的知識。這樣不僅能使教師在一個學期內把智能計算系統課程教完,還有以下兩個好處。

第一,一門好的工程學科的課程應當是學以致用的。尤其是智能計算系統這樣的課程,如果上完之后只學會了一些理論知識,那教學效果一定不理想。應用驅動讓學生學完了課程,就能把課程知識在實踐中用起來。第二,幫助學生形成系統性理解。過去計算機專業課程設計有個問題,就是條塊分割明顯,比如操作系統和計算機體系結構是割裂的,操作系統對計算機體系結構提出了什么要求,計算機體系結構對操作系統有哪些支持,沒有一門課把這些串起來,打通學生知識的“任督二脈”。智能計算系統作為高年級本科生(或研究生)課程,通過應用的牽引,能幫助學生把過去所有的人工智能軟硬件知識都串起來,形成整體理解。

具體來說,智能計算系統課程以圖像風格遷移(例如,把一張實景照片轉換成梵高風格的畫)這一具體應用為牽引,對整個智能計算系統軟硬件技術棧進行介紹。為此,本書的第1章將對人工智能、智能計算系統進行概述,同時介紹風格遷移這一貫穿全書的驅動范例。

接下來,課程講述完成這個應用所必需的神經網絡和深度學習算法知識。對于圖像風格遷移不涉及的算法知識,課程就不做過度展開。這樣最多用6學時就能夠把算法部分講完。上述內容將在本書的第2、3章做介紹。

智能算法要在智能芯片上運行起來,還需要編程框架這一系統軟件的支持。對上,編程框架可降低程序員編寫具體智能應用的難度;對下,編程框架將智能算法拆分成一些具體算子,并將算子分配到智能芯片(或者CPU)上運行。編程框架是很復雜的系統軟件。但是實現圖像風格遷移所需要的編程框架知識相對有限(比如說,TensorFlow編程框架中有上千個算子,但是風格遷移只涉及其中不到十分之一)。這樣教師用約6學時就可以教授學生如何使用主流的編程框架,以及編程框架內在的運行機理。上述內容將在本書的第4、5章做介紹。

編程框架再往下是智能芯片。由于傳統CPU遠遠不能滿足智能計算飛速增長的速度和能效需求,智能計算系統的算力需要由專門的深度學習處理器提供。開發一款能處理各種視頻識別、語音識別、廣告推薦、自然語言理解任務的工業級深度學習處理器,需要成百上千名有經驗的工程師數十個月的努力。但是,在這門課里,我們只需要考慮有限目標,即如何針對圖像風格遷移這一具體應用來設計深度學習處理器,包括設計思想、設計方法、具體結構等。當然,為了讓學生能了解業界前沿動態,本書也會介紹真正的工業級深度學習處理器的大致結構。這樣,教師用約6學時就可以讓學生比較系統地掌握深度學習處理器的基礎知識。上述內容將在本書的第6、7章做介紹。

深度學習處理器的指令集和結構與傳統的通用CPU有較大區別。為了方便程序員充分發揮深度學習處理器的計算能力,需要有新的高級智能編程語言。因此,本書的第8章將介紹一種智能編程語言(BCL語言)。這種編程語言考慮了如何提升程序員編寫智能算法的生產效率,也考慮了如何利用深度學習處理器的結構特點。本書在這一章除了介紹如何用BCL語言開發出圖像風格遷移所需的基本算子,還提供了系統級開發和優化實踐。這一部分內容大約需要3學時。

智能計算系統課程的最終目標是讓學生融會貫通地理解智能計算系統的完整軟硬件技術棧。如果只是單純學習上述章節的內容,可能學生掌握的還是一些割裂的知識點,必須要有一個實驗,把這些知識點串起來,打通“任督二脈”。因此,本書的第9章具體介紹了一個實驗,即如何開發一個能完成圖像風格遷移任務的簡單智能計算系統。理論上說,學生把這個實驗做好,就應該能對整個課程的知識體系有一定的全局理解。完成這個實驗所需要的學時數和學生的基礎有較大的關系,可能要根據各個高校的實際情況來決定。此外,如果課程體系允許,我們建議專門開設一門智能計算系統實驗課。我們專門編寫的《智能計算系統實驗教程》將于2020年出版,這本書提供更全面、豐富的實驗,為專門的智能計算系統實驗課提供支撐。

在設計上述課程內容時,我們主要考慮的是中國科學院大學的學生情況。我們在其他兄弟院校講授這門課程時發現,各個學校的前置課程和學生基礎不太一樣,教師可以根據自身情況對各個部分的學時做靈活調整。比如,如果學生之前學過人工智能或者機器學習基礎課,第2、3章算法部分的課時數可縮短。再比如,如果學生沒有學過計算機體系結構或者計算機組成原理,那么第6、7章深度學習處理器部分可以講慢一點,增加一些課時。詳細的課程大綱、講義、錄像等參見智能計算系統課程主頁http://novel.ict.ac.cn/aics/。

書中標*的章節或習題,供有志于從事智能計算系統研究的讀者選讀或選做。

本書的寫作

這本書的出版,凝聚著中國科學院計算技術研究所智能處理器研究中心以及中國科學院軟件研究所智能軟件研究中心很多老師和學生的心血。其中,我負責整理第1章,李玲研究員負責整理第2、3章,李威副研究員負責整理第4、9章,郭崎研究員負責整理第5、8章,杜子東副研究員負責整理第6章,周徐達助理研究員負責整理第7章。我和李玲研究員負責全書的統稿。杜子東副研究員負責本書的習題。此外,李震助理研究員、韓棟助理研究員,以及韋潔、潘朝鳳、曾惜、于涌、王秉睿、張磊、郝一帆、劉恩赫、何皓源、高鈺峰、宋新開、杜偉健等也參與了本書的部分工作。杜偉健、張振興和宋新開對本書習題做出了貢獻。方舟、曾惜、張振興、李普澤和陳斌昌等負責本書多幅圖的繪制。張曦珊副研究員、張蕊助理研究員,以及吳逍雨、承書堯、汪瑜、譚懿峻等參與了本書的校對。同時,我們特別感謝西北工業大學的周興社教授和南開大學的李濤教授對智能計算系統的課程建設和教材編寫提供的寶貴意見。由于我們學識水平有限,書中一定還有錯漏之處,懇請讀者多多批評指正。如有任何意見和建議,歡迎發郵件至aics@ict.ac.cn。

本書的寫作受到了國家重點研發計劃、國家自然科學基金、“核高基”科技重大專項、中科院先導專項、中科院弘光專項、中科院前沿科學重點項目、中科院標準化研究項目、北京市自然科學基金、北京智源人工智能研究院和騰訊科學探索獎的支持。此外,機械工業出版社的編輯給予了我們大量的幫助。在此一并表示誠摯的謝意。

中國科學院計算技術研究所

陳云霽

主站蜘蛛池模板: 邢台市| 呼伦贝尔市| 中阳县| 孟连| 庆安县| 紫金县| 临漳县| 林西县| 泽州县| 方正县| 平顶山市| 茂名市| 福建省| 德保县| 韩城市| 甘肃省| 中西区| 老河口市| 都兰县| 佛坪县| 镇赉县| 巴东县| 嘉善县| 应城市| 佳木斯市| 宽城| 石嘴山市| 东乌珠穆沁旗| 佳木斯市| 定边县| 万源市| 贵定县| 东乌珠穆沁旗| 太仆寺旗| 外汇| 贵港市| 图们市| 桂平市| 年辖:市辖区| 吕梁市| 湘西|