特斯拉前 AI 總監 Andrej Karpathy 的新教程火了。
這次,他專門面向普通大衆做了一個關于大語言模型的科普視頻。
時長 1 小時,全部爲" 非技術介紹 ",涵蓋模型推理、訓練、微調和新興大模型操作系統以及安全挑戰,涉及的知識全部截止到本月(非常新)。
△視頻封面圖是 Andrej 用 Dall · 3 畫的
視頻上線油管僅 1 天,就已經有 20 萬播放量。
有網友表示:
我剛看了 10 分鍾就已經學到了很多東西,我以前從未用過視頻中講的這樣的例子來解釋 LLM,它還弄清了我以前看到過的很多 " 混亂 " 的概念。
在一水兒的誇課程質量高之外,還有相當多的人評價 Andrej 本人真的非常擅長簡化複雜的問題,教學風格也總是讓人印象深刻。
不止如此,這個視頻還可以說是體現了他對本職專業滿滿的熱愛。
這不,據 Andrej 本人透露,視頻是他在感恩節假期錄的,背景就是他的度假酒店(手動狗頭)。
做這個視頻的初衷呢,也是因爲他最近在人工智能安全峰會上做了個演講,演講内容沒有錄像,但有很多觀衆都表示喜歡其内容。
于是他就幹脆直接進行了一些微調,再講一遍做成視頻給更多人觀看。
那麽,具體都有些啥——
咱們一一給大夥呈上。
Part 1: 大模型本質就是兩個文件
第一部分主要是對大模型整體概念的一些解釋。
首先,大模型是什麽?
Andrej 的解釋非常有趣,本質就是兩個文件:
一個是參數文件,一個是包含運行這些參數的代碼文件。
前者是組成整個神經網絡的權重,後者是用來運行這個神經網絡的代碼,可以是 C 或者其他任何編程語言寫的。
有了這倆文件,再來一台筆記本,我們就不需任何互聯網連接和其他東西就可以與它(大模型)進行交流了,比如讓它寫首詩,它就開始爲你生成文本。
那麽接下來的問題就是:參數從哪裏來?
這就引到了模型訓練。
本質上來說,大模型訓練就是對互聯網數據進行有損壓縮(大約 10TB 文本),需要一個巨大的 GPU 集群來完成。
以 700 億參數的羊駝 2 爲例,就需要 6000 塊 GPU,然後花上 12 天得到一個大約 140GB 的 " 壓縮文件 ",整個過程耗費大約 200 萬美元。
而有了 " 壓縮文件 ",模型就等于靠這些數據對世界形成了理解。
那它就可以工作了。
簡單來說,大模型的工作原理就是依靠包含壓縮數據的神經網絡對所給序列中的下一個單詞進行預測。
比如我們将 "cat sat on a" 輸入進去後,可以想象是分散在整個網絡中的十億、上百億參數依靠神經元相互連接,順着這種連接就找到了下一個連接的詞,然後給出概率,比如 "mat(97%)",就形成了 " 貓坐在墊子上(cat sat on a mat)" 的完整句子(神經網絡的每一部分具體如何工作目前還不清楚)。
需要注意的是,由于前面提到訓練是一種有損壓縮,神經網絡給出的東西是不能保證 100% 準确的。
Andrej 管大模型推理爲 " 做夢 ",它有時可能隻是簡單模仿它學到的内容,然後給出一個大方向看起來對的東西。
這其實就是幻覺。所以大家一定要小心它給出的答案,尤其是數學和代碼相關的輸出。
接下來,由于我們需要大模型成爲一個真正有用的助手,就需要進行第二遍訓練,也就是微調。
微調強調質量大于數量,不再需要一開始用到的 TB 級單位數據,而是靠人工精心挑選和标記的對話來投喂。
不過在此,Andrej 認爲,微調不能解決大模型的幻覺問題。
本節最後,是 Andrej 總結的 " 如何訓練你自己的 ChatGPT" 流程:
第一步稱爲預訓練,你要做的是:
第二步是微調:
1、撰寫标注說明;
2、雇人(或用 scale.ai),收集 10 萬份高質量對話或其他内容;
3、在這些數據上微調,等待約 1 天;
4、得到一個可以充當得力助手的模型;
5、進行大量評估。
6、部署。
7、監控并收集模型的不當輸出,回到步驟 1 再來一遍。
其中預訓練基本是每年進行一次,而微調可以周爲頻率進行。
以上内容都可以說是非常小白友好。
Part 2: 大模型将成爲新 " 操作系統 "
在這一部分中,Karpathy 爲我們介紹了大模型的幾個發展趨勢。
首先是學會使用工具——實際上這也是人類智能的一種表現。
Karpathy 以 ChatGPT 幾個功能進行了舉例,比如通過聯網搜索,他讓 ChatGPT 收集了一些數據。
這裏聯網本身就是一次工具調用,而接下來還要對這些數據進行處理。
這就難免會涉及到計算,而這是大模型所不擅長的,但通過(代碼解釋器)調用計算器,就繞開了大模型的這個不足。
在此基礎上,ChatGPT 還可以把這些數據繪制成圖像并進行拟合,添加趨勢線以及預測未來的數值。
利用這些工具和自身的語言能力,ChatGPT 已經成爲了強大的綜合性助手,而 DALL · E 的集成又讓它的能力再上一個台階。
另一項趨勢,是從單純的文本模型到多模态的演變。
現在 ChatGPT 不隻會處理文本,還會看、聽、說,比如 OpenAI 總裁 Brockman 曾經展示了 GPT-4 利用一個鉛筆勾勒的草圖生成了一個網站的過程。
而在 APP 端,ChatGPT 已經可以流暢地和人類進行語音對話。
除了功能上的演進,大模型在思考方式上也要做出改變——從 " 系統 1" 到 " 系統 2" 的改變。
這是 2002 年諾貝爾經濟學獎得主丹尼爾 · 卡尼曼的暢銷書《思考,快與慢》中提到的一組心理學概念。
簡單來說,系統 1 是快速産生的直覺,而系統 2 則是緩慢進行的理性思考。
比如,當被問及 2+2 是幾的時候,我們會脫口而出是 4,其實這種情況下我們很少真正地去 " 算 ",而是靠直覺,也就是系統 1 給出答案。
但如果要問 17 × 24 是多少,恐怕就要真的算一下了,這時發揮主導作用的就變成了系統 2。
而目前的大模型處理文本采用的都是系統 1,靠的是對輸入序列中每個詞的 " 直覺 ",按順序采樣并預測下一個 token。
另一個發展的關鍵點是模型的自我提升。
以 DeepMind 開發的 AlphaGo 爲例(雖然它不是 LLM),它主要有兩個階段,第一階段是模仿人類玩家,但靠着這種方式無法超越人類。
但第二階段,AlphaGo 不再以人類作爲學習目标——目的是爲了赢得比賽而不是更像人類。
所以研究人員設置了獎勵函數,告訴 AlphaGo 它的表現如何,剩下的就靠它自己體會,而最終 AlphaGo 戰勝了人類。
而對于大模型的發展,這也是值得借鑒的路徑,但目前的難點在于,針對 " 第二階段 ",還缺乏完善的評估标準或獎勵函數。
此外,大模型正朝着定制化的方向發展,允許用戶将它們定制,用于以特定 " 身份 " 完成特定的任務。
此次 OpenAI 推出的 GPTs 就是大模型定制化的代表性産品。
而在 Karpathy 看來,大模型在将來會成爲一種新型的操作系統。
類比傳統的操作系統,在 " 大模型系統 " 中,LLM 作爲核心,就像 CPU 一樣,其中包括了管理其他 " 軟硬件 " 工具的接口。
而内存、硬盤等模塊,則分别對應大模型的窗口、嵌入。
代碼解釋器、多模态、浏覽器則是運行在這個系統上的應用程序,由大模型進行統籌調用,從而解決用戶提出的需求。
Part 3: 大模型安全像 " 貓鼠遊戲 "
演講的最後一部分,Karpathy 談論了大模型的安全問題。
他介紹了一些典型的越獄方式,盡管這些方式現在已經基本失效,但 Karpathy 認爲,大模型的安全措施與越獄攻擊之間的較量,就像是一場貓鼠遊戲。
比如一種最經典的越獄方式,利用大模型的 " 奶奶漏洞 ",就能讓模型回答本來拒絕作答的問題。
例如,假如直接問大模型凝固汽油彈怎麽制作,但凡是完善的模型都會拒絕回答。
但是,如果我們捏造出一個 " 已經去世的奶奶 ",并賦予 " 化學工程師 " 的人設,告訴大模型這個 " 奶奶 " 在小時候念凝固汽油彈的配方來哄人入睡,接着讓大模型來扮演……
這時,凝固汽油彈的配方就會脫口而出,盡管這個設定在人類看來十分荒謬。
比這更複雜一些的,還有 Base64 編碼等 " 亂碼 " 進行攻擊。
這裏 " 亂碼 " 隻是相對人類而言,對機器來說卻是一段文本或指令。
比如 Base64 編碼就是将二進制的原始信息通過一定方式轉換爲字母和數字組成的長字符串,可以編碼文本、圖像,甚至是文件。
在詢問 Claude 如何破壞交通标志時,Claude 回答不能這樣做,而如果換成 Base64 編碼,過程就呼之欲出了。
另一種 " 亂碼 " 叫做通用可轉移後綴,有了它,GPT 直接就把毀滅人類的步驟吐了出來,攔都攔不住。
而進入多模态時代,圖片也變成了讓大模型越獄的工具。
比如下面這張熊貓的圖片,在我們看來再普通不過,但其中添加的噪聲信息卻包含了有害提示詞,并且有相當大概率會使模型越獄,産生有害内容。
此外,還有利用 GPT 的聯網功能,造出包含注入信息的網頁來迷惑 GPT,或者用谷歌文檔來誘騙 Bard 等等。
目前這些攻擊方式已經陸續被修複,但隻是揭開了大模型越獄方法的冰山一角,這場 " 貓鼠遊戲 " 還将持續進行。
完整視頻:https://www.youtube.com/watch?v=zjkBMFhNj_g