Andrej Karpathy最新大模型入門視頻講解

最近這兩天,特斯拉前AI總監

現在在OpenAI的安德烈卡帕西(Andrej Karpathy)的新教程火了

這次

他專門面向普通大眾做了一個關于大語言模型的科普視頻

時長1個小時,全部為“非技術介紹”,

涵蓋了模型推理、訓練、微調和大模型的發展趨勢以及安全挑戰

涉及的知識全部截止到本月(2023年11月26日)

所以說內容非常新

視頻上線油管2天

就已經有35萬播放量

有網友表示

剛看了10分鐘就已經學到了很多東西

以前從來沒有人用過視頻中的例子來解釋大語言模型

還弄清了以前看到過的很多“混亂”的概念

除了大家一致夸贊課程質量高之外

還有相當多的人評價安德烈本人真的非常擅長簡化復雜的問題

上一次的教程State of GPT就非常通俗易懂

不止如此

這個視頻還可以說是體現了他對本職專業滿滿的熱愛


據安德烈本人透露

視頻是他在感恩節假期錄的

背景就是他的度假酒店

做這個視頻的初衷

也是因為他最近在人工智能安全峰會上做了個演講

演講內容沒有錄像

但是有很多觀眾都表示喜歡他的內容

于是他就干脆直接進行了一些微調

再講一遍做成視頻

給更多人觀看,不僅如此

他還貼心的在視頻簡介里

放上了視頻中的PPT素材文件

包括PDF版本和Keynote版本

好了,介紹完視頻的背景

我們來具體看看

這個精彩的教程都具體講了些什么內容


大模型是什么

首先第一部分

主要是對大模型整體概念的一些解釋

尤其是安德烈非常有趣的解釋了

大模型的本質,其實就是兩個文件

一個是參數文件

一個是包含運行這些參數的代碼文件

前者是組成整個神經網絡的權重

后者是用來運行這個神經網絡的代碼

可以是用C語言或者其他任何編程語言寫的

有了這倆文件,再來一臺筆記本

我們就不需任何互聯網連接和其他東西

就可以與這個大模型進行交流了

比如讓它寫首詩

它就開始為你生成文本

第一遍訓練:模型訓練

那么接下來的問題就是:

參數是從哪里來的呢?

這就要提到模型訓練了

本質上來說

大模型訓練就是對互聯網數據進行有損壓縮

比如大約10TB的文本

這就需要一個巨大的GPU集群來完成

以700億參數的LLaMA 2為例

就需要6000塊GPU

然后花上12天

得到一個大約140GB的“壓縮文件”,

整個過程耗費大約200萬美元

不過 Llama 2-70b 并不是最大的

如果訓練 ChatGPT、Claude 或 Bard

這些數字可能會增加 10 倍或者更多

耗資可能高達千萬甚至上億美元

而有了“壓縮文件”,

模型就等于靠這些數據對世界形成了理解

然后它就可以工作了

大模型工作原理

簡單來說

大模型的工作原理就是依靠包含壓縮數據的神經網絡

對所給序列中的下一個單詞進行預測

比如我們將句子“cat sat on a”輸入進去后

可以想象成分散在整個網絡中的十億、上百億參數

依靠神經元相互連接

順著這種連接就找到了下一個連接的詞

然后給出概率,比如“mat(97%)”,

就形成了“貓坐在墊子上(cat sat on a mat)”的完整句子

只不過

神經網絡中的每一部分是具體如何工作的

目前我們還不清楚

需要注意的是


由于前面提到訓練是一種有損壓縮

神經網絡給出的東西是不能保證100%準確的

安德烈管大模型推理叫做“做夢”

它有時可能只是簡單模仿它學到的內容

然后給出一個大方向看起來對的東西

這其實就是幻覺

所以大家一定要小心它給出的答案

尤其是數學和代碼相關的輸出

接下來

由于我們需要大模型成為一個真正有用的助手

就需要進行第二遍訓練,也就是微調

第二遍訓練:微調

微調強調質量大于數量

不再需要一開始用到的TB級單位的數據

而是靠人工精心挑選和標記的對話來投喂

不過安德烈認為

微調并不能解決大模型的幻覺問題

在這一部分的最后

安德烈總結了一下“如何訓練你自己的ChatGPT”的流程

如何訓練你自己的chatgpt流程

第一個階段稱為預訓練,你要做的是

1、下載10TB的互聯網文本;

2、搞來6000塊GPU;

3、將文本壓縮到神經網絡中

付費200萬美元

等待約12天;

4、獲得基礎模型

第二個階段是微調

這個階段你需要做的是

1、撰寫標注說明;

2、雇人(或者用scale.ai)收集10萬份高質量對話或其他內容;

3、在這些數據上微調,等待約1天;

4、得到一個可以充當得力助手的模型;

5、進行大量評估

6、部署

7、監控并收集模型的不當輸出,然后回到步驟1再來一遍

其中預訓練階段基本是每年進行一次

微調階段可以以周為頻率進行

以上內容可以說對小白是非常友好的


接下來是第二部分,在這一部分中

安德烈為我們介紹了大模型的幾個發展趨勢

為什么說

大模型將成為新的操作系統

首先是介紹了所謂的大語言模型縮放法則

即大語言模型的性能可以表示為非常平滑、表現良好并且可以預測的兩個變量函數

分別是網絡中的參數量(N)要訓練的文本量(D)

我們可以根據這兩個變量

通過縮放預測下一個單詞預測任務中的準確率


其次是大模型學會了使用工具

實際上這也是人類智能的一種表現

安德烈以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,現在

人們希望為大語言模型引入更多類似系統2 的思維能力


另一個發展的關鍵點是模型的自我提升

DeepMind開發的AlphaGo為例

它主要有兩個階段

第一階段是模仿人類玩家

但靠著這種方式無法超越人類

但第二階段

AlphaGo不再以人類作為學習目標

目的是為了贏得比賽而不是更像人類

所以研究人員設置了獎勵函數

告訴AlphaGo它的表現如何

剩下的就靠它自己體會

而最終AlphaGo戰勝了人類

而對于大模型的發展

這也是值得借鑒的路徑

但目前的難點在于,針對“第二階段”,

缺乏完善的評估標準或獎勵函數

此外

大模型正朝著定制化的方向發展

允許用戶將它們定制

用來以特定的“身份”完成特定的任務

此次OpenAI推出的GPTs就是大模型定制化的代表性產品


而在安德烈看來

大模型在將來會成為一種新型的操作系統

這就好比傳統的操作系統

在“大模型系統”中

大語言模型作為核心,就像CPU一樣

其中包括了管理其他“軟硬件”工具的接口

內存硬盤等模塊

則分別對應大模型的窗口嵌入

代碼解釋器多模態瀏覽器則是運行在這個系統上的應用程序

由大模型進行統籌調用

從而解決用戶提出的需求


演講的最后一部分

安德烈談論了大模型的安全問題

他介紹了一些典型的越獄方式

盡管這些方式現在已經基本失效

但是安德烈認為

大模型的安全措施與越獄攻擊之間的較量

就像是一場貓鼠游戲

比如一種最經典的越獄方式

利用大模型的“奶奶漏洞”

就能讓模型回答本來拒絕作答的問題

例如

假如直接問大模型凝固汽油彈怎么制作

但凡是完善的模型都會拒絕回答

但是

如果我們捏造出一個“已經去世的奶奶”,

并賦予“化學工程師”的人設

告訴大模型這個“奶奶”在小時候念凝固汽油彈的配方來哄人入睡

接著讓大模型來扮演奶奶

這時

凝固汽油彈的配方就會脫口而出

盡管這個設定在人類看來十分荒謬


比這更復雜一些的

還有Base64編碼等“亂碼”進行攻擊

這里“亂碼”只是相對人類而言

對機器來說卻是一段文本或指令

比如Base64編碼就是將二進制的原始信息通過一定方式轉換為字母和數字組成的長字符串

可以編碼文本、圖像

甚至是文件

在詢問Claude如何破壞交通標志時

Claude回答不能這樣做

而如果換成Base64編碼

過程就呼之欲出了


另一種“亂碼”叫做通用可轉移后綴

有了它

GPT直接就把毀滅人類的步驟吐了出來

攔都攔不住


而進入多模態時代

圖片也變成了讓大模型越獄的工具

比如下面這張熊貓的圖片

在我們看來再普通不過

但其中添加的噪聲信息卻包含了有害提示詞

并且有相當大概率會使模型越獄

產生有害內容


此外,還有利用GPT的聯網功能

造出包含注入信息的網頁來迷惑GPT

或者用谷歌文檔來誘騙Bard等等


目前這些攻擊方式已經陸續被修復

但只是揭開了大模型越獄方法的冰山一角

這場“貓鼠游戲”還將持續進行

好了

以上就是安德烈卡帕西這次大語言模型教程的大概內容

強烈建議大家去看一下原視頻

非常通俗易懂

有助于梳理整個大語言模型的知識體系

感謝大家觀看本期視頻

我們下期再見

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379030.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379030.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379030.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jquery 尋找父、子、兄弟節點

JQUERY的父,子,兄弟節點查找方法 jQuery.parent(expr) 找父親節點,可以傳入expr進行過濾,比如$("span").parent()或者$("span").parent(".class") jQuery.parents(expr),類似于jQuery.parents(exp…

編寫一個程序,計算用戶輸入的起始時間到終止時間之間相隔的天數。

思路分析: 閏年:閏年又分為普通閏年和世紀閏年 普通閏年:能被4整除且不能被100整除的為閏年(2004為閏年,1999不是閏年) 世紀閏年:能被400整除的是閏年(2020年是閏年,1900年不是閏年) 閏年共有366天&#x…

longvalue_Java Short類longValue()方法及示例

longvalue短類longValue()方法 (Short class longValue() method) longValue() method is available in java.lang package. longValue()方法在java.lang包中可用。 longValue() method is used to return the value denoted by this Short object converted to type long (by …

mvc的Controller返回值類型ActionResult詳解

一、簡介 ActionResult 操作方法通過執行工作并返回操作結果來響應用戶輸入。 操作結果表示框架將代表操作方法執行的命令。 ActionResult 類是操作結果的基類。 以下類型從 ActionResult 派生: ContentResult EmptyResult FileResult HttpUnauthorizedResult …

柵格布局一般怎么用_建筑混凝土色差大怎么辦?用這種方法處理,一般都看不出來...

由于模板銹蝕、脫模劑污染、原材料等原因,建筑混凝土成形后經常會遇到顏色不一致的現象,為此我們總結了混凝土面色差調整施工工藝,可供大家參考使用。一、混凝土面色差調整施工工藝流程及說明基層表面打磨→吸塵器吸塵→濕潤墻面→素水泥處理…

Java SimpleTimeZone equals()方法與示例

SimpleTimeZone類的equals()方法 (SimpleTimeZone Class equals() method) equals() method is available in java.util package. equals()方法在java.util包中可用。 equals() method is used to check whether this SimpleTimeZone and the given object (ob) are equals or …

FusionChart完全入門手冊4

想不想打造讓人震撼的圖表系統,想不想做出和別人不一樣的圖表,從本節起,我就帶領大家走入這片神奇的土地,讓大家去采摘屬于自己的創意之果,我們的目標是------個性無罪,個性萬歲! 問題三、如何做…

ffplay分析(音頻解碼線程的操作)

《ffplay的數據結構分析》 《ffplay分析(從啟動到讀取線程的操作)》 《ffplay分析(視頻解碼線程的操作)》 《ffplay 分析(音頻從Frame(解碼后)隊列取數據到SDL輸出)》 《ffplay分析 (視頻從Fram…

More Effective C++ (運算符)

4.1&#xff1a;謹慎定義類型轉換函數<1>容易的方法是利用一個最新的編譯器特性&#xff1a;explicit關鍵字<2>C編譯器把">>"作為一個符號來解釋&#xff0c;在兩個">"間沒有空格&#xff0c;語句會產生語法錯誤。<3>隱式類型轉…

大綱(二)

一、數據結構就是邏輯結構存儲結構(物理結構)相應操作(算法實現) 二、邏輯結構 集合1:1 線性結構1:n 樹m:n 圖 主要是可以畫到紙上進行分析的結構圖就是邏輯結構&#xff0c;分析問題可以得出唯一一個邏輯結構 三、存儲結構(物理結構) 順序存儲結構(例如:線性表)鏈式存儲結…

php微信獲取mediaid超出限制_Python實現每日微信自動打卡

眾所周知&#xff0c;因為疫情的原因&#xff0c;很多高校和公司都要求員工每日在微信上進行打卡&#xff0c;來匯報自己的當前身體狀態和所處地區。但絕大多數情況下&#xff0c;每天打卡的信息其實是不會變的&#xff0c;我們要做的就是進入公眾號——自動登錄點進打卡頁面—…

[原創]INI文件的讀寫操作

INI文件的讀寫操作在程序開發中&#xff0c;很多人會把參數保存為ini文件格式&#xff0c;ini文件的一個好處是可以保存為一個結構體主結構&#xff0c;如 [User] Nametest UserIdtest [Server] ServerIp127.0.0.1 ServerPort80 …… 很方便也很容易區分&#xff0c;而且不同節…

Java ResourceBundle keySet()方法及示例

ResourceBundle類keySet()方法 (ResourceBundle Class keySet() method) keySet() method is available in java.util package. keySet()方法在java.util包中可用。 keySet() method is used to get all the existing keys from this ResourceBundle and its super bundles to …

ffplay 分析(音頻從Frame(解碼后)隊列取數據到SDL輸出)

《ffplay的數據結構分析》 《ffplay分析&#xff08;從啟動到讀取線程的操作&#xff09;》 《ffplay分析&#xff08;視頻解碼線程的操作&#xff09;》 《ffplay分析&#xff08;音頻解碼線程的操作&#xff09;》 《ffplay分析 &#xff08;視頻從Frame(解碼后)隊列取數據到…

緒論(一)

一、問題驅動—>畫出唯一的邏輯結構—>定義存儲結構—>實現相應的操作 二、算法—>(定義\特點)步驟—>實現—>評價標準 算法有五大特點&#xff1a; 可行性確定性有窮性(有限性)0個或0個以上的輸入至少一個以上的輸出 評價標準&#xff1a; 時間復雜度 …

利用 dbghelp.dll 生成 dump 文件

dbghelp.dll windows的系統目錄system32下&#xff0c;都有dbghelp.dll&#xff0c;但在實際使用時&#xff0c;往往會讓exe加載自己目錄下的dll&#xff0c;以避免系統目錄下的dll版本不一導致的程序異常。 故一般都是用LoadLibrary()的方式加載Dll&#xff0c;先加載當前目錄…

pandas 根據列名索引多列數據_Pandas 數據聚合與分組運算[groupby+apply]速查筆記

利用Pandas將數據進行分組&#xff0c;并將各組進行聚合或自定義函數處理。Pandas中Groupby分組與聚合過程導入模塊import pandas as pd縮寫df表示Dataframe對象分組df.groupby(col1)&#xff1a; 根據col1列將df全部列分組&#xff08;默認&#xff1a;axis0行&#xff09;df[…

殺毒軟件對InstallShield編譯過程以及安裝包運行的影響

版權聲明: 可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息。在某些情況下&#xff0c;殺毒軟件會導致InstallShield編譯過程崩潰。比如 McAfee VirusScan Enterprise 8.5.0i版本&#xff0c;在某些情況下會在InstallScript工程編譯過程中&#xff0c;將ISSe…

Java FileInputStream close()方法與示例

FileInputStream類close()方法 (FileInputStream Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to close this FileInputStream and free all system resources linked with this stream. c…

ffplay分析 (視頻從Frame(解碼后)隊列取數據到SDL輸出)

《ffplay的數據結構分析》 《ffplay分析&#xff08;從啟動到讀取線程的操作&#xff09;》 《ffplay分析&#xff08;視頻解碼線程的操作&#xff09;》 《ffplay分析&#xff08;音頻解碼線程的操作&#xff09;》 《ffplay 分析&#xff08;音頻從Frame(解碼后)隊列取數據到…