本課程是為那些想要了解操作系統的設計與實現的本科生而設。
ML模型無處不在——從交通(自動駕駛汽車)到金融(信用卡或抵押貸款申請)和職業(公司招聘)。然而,ML并非沒有風險。一些重要的風險涉及模型理解和問責:機器學習創建的模型很大程度上是我們難以窺視和理解的黑盒子;他們容易受到不可預見的錯誤、對抗性操縱以及在隱私和公平方面違反倫理規范的影響。
本課程將提供最先進的ML方法的介紹,旨在使人工智能更值得信賴。本課程關注四個概念: 解釋、公平、隱私和健壯性。我們首先討論如何解釋ML模型輸出和內部工作。然后,我們研究了偏差和不公平是如何在ML模型中產生的,并學習了緩解這個問題的策略。接下來,我們將研究模型在不應該泄漏敏感信息的情況下泄漏敏感信息的上下文中的差異隱私和成員關系推斷。最后,我們將討論對抗性攻擊和提供抗對抗性操作的健壯性的方法。
學生將了解一套方法和工具,以部署透明、倫理和魯棒的機器學習解決方案。學生將完成實驗,家庭作業,并討論每周閱讀。
計算機體系結構是計算機科學與技術學科重要的分支之一。它從全局的觀點出發,通過采用定量分析技術,建立起設計、評價、優化計算機體系結構的方法和技術。利用這些方法和技術,可有效地評價已有計算機系統的性能、改進已有的系統設計、進而探討新的體系結構。計算機系統結構是計算機科學工作者,特別是從事偏重于計算機硬件系統和系統軟件研究的科學工作者的一門必備基礎。
本課程授課60學時,實驗30學時。主要講授計算機系統定量分析基礎,回顧指令集設計和基本流水線技術,探討存儲系統優化,指令級并行技術,數據級并行和任務級并行等技術。
機器學習系統設計的概念是指,為了滿足特定要求,針對機器學習系統對軟件體系架構、基礎架構、算法和數據進行定義的過程。雖然現有的系統也可以滿足大部分模型搭建的需求,但我們必須承認:首先,工具空間是不斷革新的;其次,業務需求是不斷變化的;最后,數據分布也是持續更替的。因此,「系統」是很容易過時的。如果不能及時更新,那么出錯、崩潰都是可以預料的。這也是本門課程開設的初衷。
本門課程旨在為現實中的機器學習系統提供一個迭代框架,該框架的目標是構建一個可部署、可信賴、可擴展的系統。首先要考慮的是每個 ML 項目的利益相關者及目標,不同的目標則需要不同的設計選擇,且要考慮如何權衡。
課程涵蓋了從項目界定、數據管理、模型開發、部署、基礎架構、團隊架構到業務分析的所有步驟,在每個步驟中,都會探討不同解決方案的動機、挑戰和局限性。在課程的最后一部分,將會探討機器學習生產生態系統的未來。學生們還將學習關于隱私、公平、安全方面的知識。
學習這門課程的學生應該滿足以下條件:
具備基本的計算機科學原理和技能知識,能夠編寫一般的計算機程序(比如完成了 CS106B / X 等課程);
對機器學習算法有著良好的掌握(比如完成了 CS229、CS230、CS231N、CS224N 等課程);
熟悉至少一個框架,比如 TensorFlow,PyTorch,JAX;
熟悉基本的概率論(比如完成 CS109 或 Stat116 等課程)
鑒于大多數課程都會使用 Python,因此也建議選擇這門課程的學生了解一點 Python 知識。
這門課程沒有教科書,主要依賴于課堂講義和一些閱讀材料。課程視頻都會被錄制保存,目前僅開放給校內學生,暫未決定是否公開發布。
本課程的中文名稱設定為 人工智能系統,主要講解支持人工智能的計算機系統設計,對應的英文課程名稱為 System for AI。本課程中將交替使用一下詞匯:人工智能系統,AI-System 和 System for AI。
近年來人工智能特別是深度學習技術得到了飛速發展,這背后離不開計算機硬件和軟件系統的不斷進步。在可見的未來,人工智能技術的發展仍將依賴于計算機系統和人工智能相結合的共同創新模式。需要注意的是,計算機系統現在正以更大的規模和更高的復雜性來賦能于人工智能,這背后不僅需要更多的系統上的創新,更需要系統性的思維和方法論。與此同時,人工智能也反過來為設計復雜系統提供支持。
我們注意到,現在的大部分人工智能相關的課程,特別是深度學習和機器學習相關課程主要集中在相關理論、算法或者應用,與系統相關的課程并不多見。我們希望人工智能系統這門課能讓人工智能相關教育變得更加全面和深入,以共同促進人工智能與系統交叉人才的培養。
本課程主要為本科生高年級和研究生設計,幫助學生:
完整的了解支持深度學習的計算機系統架構,并通過實際的問題,來學習深度學習完整生命周期下的系統設計。
介紹前沿的系統和人工智能相結合的研究工作,包括AI for Systems and Systems for AI,以幫助高年級的本科生和研究生更好的尋找和定義有意義的研究問題。
從系統研究的角度出發設計實驗課程。通過操作和應用主流和最新的框架、平臺和工具來鼓勵學生動手實現和優化系統模塊,以提高解決實際問題的能力,而不僅僅是了解工具使用。
先修課程: C/C++/Python, 計算機體系結構,算法導論
課程主要包括以下三大模塊:
第一部分,是人工智能的基礎知識和人工智能系統的全棧概述;以及深度學習系統的系統性設計和方法學。
第二部分,為高級課程,包括最前沿的系統和人工智能交叉的研究領域。
第三部分,是與之配套的實驗課程,包括最主流的框架、平臺和工具,以及一系列的實驗項目。
第一部分的內容將集中在基礎知識,而其他兩部分的內容將隨著學術界和工業界的技術進步而動態調整。后兩部分的內容將以模塊化的形式組織,以利于調整或與其他CS的課程(比如編譯原理等)相結合,作為高級講義或者實習項目。
本課程的設計也會借助微軟亞洲研究院在人工智能和系統交叉領域的研究成果和經驗,其中包括微軟及研究院開發的一部分平臺和工具。課程也鼓勵其他學校和老師根據自己的需求添加和調整更多的高級課題,或者其他的實驗。
基礎課程
高階課程
本課程介紹構成現代計算機操作系統的基本概念和核心原理。這門課的目標是解釋那些可能在未來許多年仍然存在的概念和原則。本課程是操作系統和分布式系統研究的起點。具體地說,本課程介紹了進程、并發、同步、調度、多程序設計、內存管理和文件系統的概念。
本課程是講座和編程作業的結合,其中我們將學習現代數據庫管理系統的內部原理。它將涵蓋在高性能事務處理系統(OLTP)和大型分析系統(OLAP)中使用的組件的核心概念和基礎。這個類將強調這些思想實現的效率和正確性。本課程適用于對系統編程感興趣的高級本科生和研究生。
<上海交通大學生存手冊>于08年由一群交大本科生寫就,12年過去了無數交大學子受益于它,但有些內容可能已經過時,亦有些內容有些欠缺,本項目旨在將它制作成gitbook發布,并長期維護該項目,希望能給未來的交大在讀和入學新生同學帶來微小的幫助,尤其感謝本書原版的作者們!