OpenAI新模型o1的可怕之處:“編程作為一個職業在今日終結”
還記得之前OpenAI的高層大地震嗎?引發了Sam Altman被罷免、共同創辦人Greg Brockman離職、OpenAI內部矛盾不斷激化的,是一個名叫Q*(讀作Q-Star)的計畫。知情人士透露,當時Q*計畫取得了重大進展,已經可以解決基本的數學問題。與只能解決有限數量運算的計算器不同,與每次都給同一題不同答案的GPT-4不同,Q*可能已經有了概括、學習和理解的能力,而這正是邁向AGI關鍵的一步。
OpenAI的研究人員向董事會致函警告,Q*的重大發現可能威脅全人類,而Sam Altman隱瞞了這一點。
OpenAI內部翻天覆地,而OpenAI本身從未正面回應過Q*的存在。
今天,OpenAI突然發布了一個新模型,這個模型目前還是前瞻版,它是傳說中的Q*,後來的代號“Strawberry”,如今的OpenAI o1-preview。
解決複雜問題的新推理模型,和ChatGPT不是一個系列了|OpenAI
o,還是“omini”,包羅萬象的o,只不過據OpenAI表示,這次的模型“代表了人工智能的新高度”,和之前的大模型在工作方式上大有區別,因此可以單獨成立一個新系列,從1開始重新算起(GPT5:我老了!)。
至於這個模型是不是像Ilya Sutskever和其他反水的OpenAI前核心科學家判斷的那樣會「威脅人類」、在道德約束不完善的情況下把人類推進AGI(通用人工智慧)時代,大家可以看完文章再自己判斷。
o1,跑贏一切
首先是耳熟能詳的跑分環節。
每一代大模型橫空出世,都會跑出空前絕後的新高度,但這次的o1有本質上的差異。
目前比較流行的大模型大多以聊天機器人的形式出現,思考路徑難以解釋,而且發展方向是多模態(能說能看能聽),在語氣和反應方面越來越像人。 o1和它們不一樣。
首先它的目標不是越來越快,甚至越來越慢。
OpenAI科學家Noam Brown稱,目前o1幾秒鐘就能給出答案,但未來它要能進行幾小時、幾天,甚至幾週的思考。之後附上了一張圖,o1在十幾秒的思考後給一個案例做出了診斷。 Noam Brown的言下之意,推理時間長,意味著模型能建構更長的思考鏈,進行更深入的思考。
其次,o1突破了先前大語言模型的死穴,數學。
AIME,美國數學邀請賽,比奧賽簡單一點,比SAT難很多,一般用來選全美國數學最優秀的高中生。讓GPT4-o來寫邀請賽的題,只得了12分,但o1一次答案得了74分。如果採樣1000次,再對1000個樣本進行評分函數重新排序的話(這樣更能反映模型的期望水平),o1得了93分,可以躋身全美前500 名,可以入圍美國數學奧賽了。
o1和GPT-4o表現對比,數學上的進步非常大|OpenAI
讓o1去寫2024年國際資訊學奧林匹克競賽(IOI)的題,它在10小時內,每題最多允許提交50次的情況下,取得了213分,在人類選手裡排前49%。如果把投稿次數放開到10000次,o1能得362.14分,可以拿到IOI金牌保送清華。
在實際測試中,使用的是o1的微調版本,不是我們能使用的前瞻版本|OpenAI
另外還有好多有的沒的測試。例如在GPQA(一個綜合了理化生的智力測驗)裡,o1在某些問題上超過了相關領域的博士。
簡言之,在已經很強的領域內捲早就不是o1的目的,在大語言模型不擅長的複雜邏輯上實現突破才是。
退一步,進兩步
就像上面說的,o1的反應速度變慢了。
它會花更多時間思考,然後再做出反應,然後不斷完善思考過程,嘗試不同策略,並從錯誤中學習。這一點很可怕。
而且o1現在不是多模態的模型,OpenAI用了兩年讓大模型能看能聽,今朝返璞歸真了,o1只能接受字元輸入。
變慢和變單調,對o1來說,是退一步進兩步。已經用上o1的人表示o1是他們用過的最聰明的模型,和它的對話已經超越了之前的小打小鬧範疇。
在一個測試裡,用戶問了o1一個邏輯悖論問題:“這個問題的答案裡有幾個字?”
o1想了十秒鐘,並且展現了思考過程。首先它想到,這是一個自指悖論,或者是遞歸問題,沒有確定答案的時候就無法確定答案的字數,“避免不必要的表述對回答的清晰簡潔很重要”。下一步是計算字數,需要讓句子中出現的數字和句子的字數相符。然後它列舉了很多句子,在裡面找出最合適的匹配選項,它發現「這有五個字」有五個字,於是把句子結構換成完整的答覆後,五應該換成七。
於是它回答:“答案裡有七個字。”
這個推理過程已經跟我的推理過程差別不大了|X
在另一個例子裡,o1回答「straberry裡有幾個r」這個簡單的問題,用了5.6秒,631個token。
從上面的例子,可以看出o1的工作方式已經和ChatGPT有了本質差異。現在的o1加入了推理token,會把一個問題拆分成多個步驟,再分別思考,之後再除去推理token生成答案。
下圖展示了思路鏈的工作方式,這也解釋了為什麼o1的反應速度變慢了。
在用o1的時候,不妨用一些經典的邏輯問題和數學問題來檢驗它的能力
也許在回答簡單問題的時候,是否進行多輪推理的差異並不明顯,但如果是用來解決寫程式碼、做數學題,和科學領域的複雜問題,這種思考能力就是必不可少的了。
OpenAI在論文中說,現在,醫療人員可以用o1來標註細胞定序數據,物理學家可以用o1產生量子光學所需的複雜數學公式,各領域的開發人員可以使用o1來建構和執行多步驟工作流程。
更重要的是,這是一種思考模式的雛形,是智慧的早期形態。
新的模型,新的習慣
由於o1的工作方式已經和ChatGPT不一樣了,之前看到的那些教你寫prompts的教程也不再適用——現在的情況下,過多的描述只會消耗海量的token,而不一定會獲得更好的結果。
為了讓所有使用者都明白這一點,OpenAI寫了新的token指南。在指南中,OpenAI說明,在o1裡最好的prompts是直接而簡潔的,指揮模型一步一步做或給若干分散的提示詞可能會適得其反。以下是幾個官方建議:
Prompts要簡單直接。模型對簡短清晰的指令回應效果最好,不需要過多的指導。
在prompts中避免思維鏈。 o1會自己進行內在推理,因此引導它一步一步思考和解釋你的思考路徑都是沒用的。
最好使用分隔符號來提高清晰度。以「」、<>、§等分隔符,清楚地區分prompts的不同部分,以幫助模型分批處理問題。
限制檢索增強生成中的額外上下文。只提供最相關的訊息,避免模型過度思考。
看到第三條的時候,我對這個格式產生了一絲熟悉的感覺。未來的程式設計師很有可能要用自然語言編程,基本的指令還是那些,只不過變成了大白話。按照最新的指南,一個好的prompts看起來會是這樣的:
或者這樣的:
§主持人§作家§酒吧老闆§油畫家§皮匠§銀匠§歌手§手鼓藝人§背包客§黃金左臉§法國騎士§禪宗弟子§
其他的就交給模型自己想去吧。
給我一分鐘,做出3D貪吃蛇
用貪吃蛇舉例子是有原因的。 o1發售不到一天,就有人用它做了很多嘗試,其中就包括3D貪吃蛇。
X上的@Ammaar Reshi用了極其簡單的prompts,僅用一分鐘的時間就寫出了一個3D貪吃蛇,而且o1還手把手教他怎麼用代碼。
學會寫prompts了嗎? |@Ammaar Reshi
效果雖然有點簡陋,但誰都不能說它不是貪吃蛇。
而且還挺好玩的|@Ammaar Reshi
網友@James Wade用o1做了個數據分析app,能顯示每個分佈的簡短描述和範例,只花了15分鐘,這還包括了部署的時間。他說:之前從來沒有想過要做這樣的東西,之前太麻煩了。
效果如圖|@James Wade
另一位工作了16年的全端工程師@Dallas Lones,用幾分鐘做了一個React Native全棧開發App之後感慨道,自己當初沒有盡快創業,如今這門手藝已經成了時代的眼淚。他說,「程式設計作為一個職業,在今天正式終結了」。
還有更多的人在挑戰o1的極限,已經有人玩起了「看誰的問題更刁鑽能讓o1思考的時間最長」的遊戲。
目前,o1先對ChatGPT Plus和Team用戶開放,而API存取權將首先開放給在OpenAI API上花費超過1000美元的5級用戶。下一步,OpenAI將逐步向免費用戶開放低配版的o1-mini。
這會是人類的夕陽嗎?