哄一哄可以讓GPT-3準確率提升61%!谷歌和東京大學的研究令人震驚
一覺醒來,機器學習社群炸了鍋。
因為最新研究發現,只要對GPT-3說一句“讓我們一步一步地思考”,就能讓它正確回答以前不會的問題。
例如下面這個例子:
16球中有一半是高爾夫球,這些高爾夫球中有一半是藍色的,一共有幾個藍色的高爾夫球?
(問題不難,但要注意這是零樣本學習,也就是說AI訓練階段從來沒見過同類問題。)
如果要求GPT -3直接寫出“答案是幾”,它會給出錯誤答案:8。
但加上讓我們一步一步地思考這句「咒語」後,GPT-3就會先輸出思考的步驟,最後給出正確答案:4!
而且這並不是巧合,研究團隊在論文中做了充分的驗證。
上面的問題出自經典的MutiArith資料集,專門考驗語言模型做數學題的能力,GPT-3本來在零樣本場景下準確率僅有17%。
這篇論文中總結了9個最有效的提示詞,其中換著花樣讓GPT-3逐步思考的前6個都讓準確率暴漲到70%以上。
甚至一句最簡單的「Let’s think」(讓我們想想)都能漲到57.5%。
這感覺,就像是幼稚園阿姨在哄小朋友……
這個技巧似乎也不需要對GPT-3做魔改,已經有人在OpenAI官方Demo上成功復現,甚至換成中文也行。
英文題幹中文提示,GPT-3給出正確中文答案。
最早把這篇論文轉發到社群網路的Google研究員表示,新的all you need增加了。
看到這裡,各路大佬紛紛腦洞大開,玩起了梗。
如果鼓勵AI“你能行的,我相信你”會怎樣?
#威脅AI一下說“時間不多了”或“你頭上有把槍」又會如何?
對AI說「開車穩一點」會成為自動駕駛解決方案嗎?
#也有人提出,這簡直和科幻故事《銀河系漫遊指南》的劇情一樣,實現通用人工智慧的關鍵是知道如何正確地向AI提問。
那麼,這種神奇現象究竟怎麼回事?
語言大模型是零樣本推理者
發現這個現象的是谷歌大腦與東京大學的合作研究,探索了語言大模型在零樣本場景下的表現。
論文標題《語言大模型是零樣本推理者》也致敬了GPT-3的《語言模型是少樣本學習者》。
所用方法屬於Chain of Thought Prompting (思維連結提示,以下簡稱CoT),今年一月剛由Google大腦團隊提出。
最早的CoT應用於少樣本學習,在提問的同時給予一個逐步回答的範例來引導AI。
這次的最新研究提出零樣本CoT,主要改動是簡化了範例的部分。
- 第一步,把題幹改寫成「Q:xxx,A:xxx」的形式,其中觸發句A可以提取出語言模型的思考過程。
- 第二步屬於額外實驗,增加了「答案是…」的提示促使語言模型給出最終答案。
這樣做最大的好處是通用,不再需要對不同問題類型提供專用的範例。
論文中對各類問題做了充分實驗,包括12項測試:
- 6個數學問題測試集,SingleEq、AddSub、SVAMP和更有挑戰的MultiArith, AQUA-RAT, GSM8K。
- 2個常識推理測試集,CommonsenseQA和StrategyQA。
- 2個符號推理測試集,Last Letter Concatenation和Coin Flip。
- 以及BIG-bench中的日期理解問題、追蹤亂序物件任務。
與普通的零樣本學習相比,零樣本CoT在其中10項中取得較好效果。
△右側值為額外實驗結果
在比較有難度的MultiArith和GSM8K數學測驗中,用GPT-3最新版本Text-davinci -002 (175B)做了更深入實驗。
如果給8次嘗試機會取最佳結果,還能進一步提升準確率至93%。
在錯誤結果分析中研究人員也發現,許多問題中其實AI的推理過程是正確的,只是答案無法收斂至唯一確定時會給出多個備選。
論文的最後,研究團隊提出這項研究不僅可以作為零樣本CoT的基線,更希望讓學界認識到在建立微調資料集和少樣本提示模版之前,充分發掘語言大模型零樣本能力的重要性。
研究團隊來自東京大學松尾研究室。
負責人松尾豐教授,同時也是軟銀董事會中的第一位人工智慧專家。
團隊成員中的客座教授顧世翔來自Google大腦團隊,顧世翔本科師從三巨頭之一Hinton,博士畢業於劍橋大學。
加點「魔法」已經成為AI圈新潮了
零樣本CoT究竟為何起作用還有待探索。
不過有人實驗得出,這種辦法似乎只對GPT-3(text-davinci-002)比較有效,他嘗試了001版本,發現收效甚微。
他列出了一個自己做的例子。
提問:請將machine,learning中每個單字的最後一個字母連起來。
GPT-3在提示下給出的答案是連起來了兩個單字中的所有字母。
對此,作者之一顧世翔回覆表示,其實「咒語」對初始版、改良版的GPT-3都有效果,這些結果在論文中也有體現。
也有人發出質疑,表示難道深度學習變成了一場找「神奇咒語」的遊戲?
#同時,我們在吐槽隊伍裡又看到了馬庫斯的身影。
他也列出了一個失敗的例子,GPT-3在「咒語」加持下也沒弄明白,莎莉的牛到底會不會起死回生…
不過值得注意的是,類似這種稍微給AI加點小魔法,提升效果立竿見影的例子已經不稀奇了。
有網友分享,自己用GPT-3時加上幾個中間指令,確實能得到更滿意的結果。
先前谷歌和MIT的研究人員發現,無需更改底層架構,只要訓練語言模型會像程式設計師debug時那樣“打斷點”,模型讀取程式碼、做算術的能力唰唰唰地就上去了。
原理也非常簡單,就是在計算步驟較多的程式裡,讓模型把每一步都編碼成文本,並將它們記錄到一個稱為「便籤」的暫存器中。
由此一來,模型的計算過程變得更加清晰有序,效能自然大幅提升。
還有本實驗中用來測試的Instruct GPT-3,也是一個典型的例子。
只要讓GPT-3從人類回饋中強化學習,它就能明顯改善答非所問的情況。
具體來看就是先用一些人類的示範回答微調模型,然後收集某個問題的幾組不同輸出數據,人工對幾組答案進行排序,並在此數據集上訓練獎勵模型。
最後,使用RM作為獎勵函數,近端策略最佳化(PPO)演算法微調GPT-3策略,以強化學習方法最大化獎勵。
包括引爆這次話題的推特部落客Aran,正是當初發現加一句「虛幻引擎」就能讓AI生成影像畫質飛升的那位。
前Google機器人大佬Eric Jang先前也發現,強化學習也能運用類似的思維來提升運算效率。
也有人表示,這種用在AI上的技巧,不正是自己平常動腦時會用的嗎?
實際上,先前Bengio從腦科學入手,提出AI的運作模式應該像人類動腦模式一樣。
人類的認知任務可分為系統1認知和系統2認知。
系統1認知任務,是指那些無意識完成的任務。例如你可以馬上辨別出手上拿的是什麼東西,但是卻無法跟別人解釋,自己是怎麼完成這個過程的。
系統2認知任務,是指人類大腦需要依照某個步驟完成的認知。例如做一道加減法運算,你可以很清楚地解釋最終答案是如何得出的。
而這次加的“咒語”,正是讓AI更進一步,學會按步驟思考。
面對這樣的趨勢,有學者認為「提示工程正在取代特徵工程」。
那麼「提示詞獵人」就會成為下一代NLP研究者的外號麼?
https://www.php.cn/link/cc9109aa1f048c36d154d902612982e2
參考鏈接:
[1]https: //twitter.com/arankomatsuzaki/status/1529278580189908993[2]https://evjang.com/2021/10/23/generalization.html以上是哄一哄可以讓GPT-3準確率提升61%!谷歌和東京大學的研究令人震驚的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
