北大團隊教會 AI 把人話當編程語言用。
這下大語言模型(LLM)不光能做對數學題,而且解題過程你也能看懂!
數學,曾經是不知多少人學生時代的夢魇。但是現在,LLM 或許可以幫你脫離苦海了。
用自然語言編程,本質就是描述步驟再執行,GPT3.5 其實本來就會,但結果卻不忍直視——往往包含不完整步驟甚至事實錯誤。
于是團隊便提出了Learning to Program ( LP ) 方法,讓 LLM 從自然語言程序數據集中進行學習,并用學到的内容指導其推理過程。
具體來說,他們将一些高中數學問題和對應解題程序以自然語言形式灌輸給 GPT。
經過訓練,ChatGPT 具備了團隊預期的解題能力。
在使用 10 個高中難度的數學問題進行的零樣本測試中,LP 加持後的 LLM 成績顯著提高。
這 10 個問題包括幾何、代數和微積分,具體如下表所示:
可以看出,在每一項任務中,有 LP 加持的 ChatGPT 表現,無論是在零樣本還是少樣本測試中,均優于獨立或自編程的版本。
對于第 8 類問題,LP 加持版更是在少樣本測試中取得了 100 分的成績。
團隊又将難度提高,測試其在(高等數學視角下的)中級代數(IA)、數論(NT)、幾何、統計概率(CP)等方面的表現,結果均好于無加持的 ChatGPT 或僅有極小的差距。
當然,這些數據還不能證明 LP 訓練在提高 ChatGPT 數學成績當中的關聯性。
于是團隊使用一道幾何問題,評估了 ChatGPT 在 LP 訓練前、中、後三個階段的表現。
結果顯示,輸出内容的正确率的确随着訓練過程的進行在逐步提高。
在接下來的質量評價中,訓練後的 LLM 可以給出多種通用性策略。
因此,團隊認爲,在今後的訓練中,隻需要将某一類問題的通用解法教給 LLM。
有了通用方法,它們就可以舉一反三,解決未知但性質相同的問題。
LP 的訓練過程是怎樣的
LP 訓練的第一步,是要先準備出問題,以及對應的用自然語言編寫出的程序,作爲訓練數據集。
這種自然語言程序不是具體的解題步驟,它們需要具有更強的通用性。
相應的,準備的問題也不是具體的,而是某一類問題。
既要簡短明确,同時又要考慮到實際過程中所有可能出現的情況。
這些自然語言程序主要有三種來源:機器自生成、人工編寫和經 LP 訓練的 LLM 生成。
人工編寫工作量過于龐大,LP 訓練已經是結果,所以實際使用的數據集主要來源于第一種途徑。
有了訓練數據,LLM 便可以結合數據集中的問題,學習句子、段落和公式。
初步學習完成之後,就要讓 LLM 進行預測,并與預設結果比較,計算誤差。
同時,所有不符合預設正确結果的輸出均被收集,構成了錯誤數據集。
錯誤數據集在之後的階段也将作爲 LLM 學習的内容,以避免再次出現同樣的失誤。
基于這些錯誤數據,研究人員讓 LLM 對所提出的策略進行回溯,但又引發了新的問題:
一是出現了重複的解決方案需要移除,二是有些方案自身内容雖然沒錯,但與問題并不匹配。
最重要的第三點,是輸入數據的長度會随着回溯的過程不斷增加……
于是團隊還需要對回溯數據進行壓縮,并判斷它們對 LLM 改正錯誤是否有幫助。
經過這一系列的處理,便可以将回溯數據作爲訓練樣本,升級 LLM 程序了。
最終,升級後的程序經過檢驗,就可以使用了。
△舉個例子:已知直角三角形兩邊,求某角正弦值團隊介紹
團隊的領導者是北京大學王選計算機研究所博士生導師趙東岩研究員和微軟亞洲研究院首席研究員段楠博士。
趙東岩 2000 年獲得北大博士學位,主要研究方向爲自然語言處理、大規模語義數據管理、基于知識的智能服務技術。
段楠博士畢業于天津大學,于 2012 年進入微軟一直研究院,并在 2018 年 6 月晉升爲首席研究員。
此外,他還多次擔任 NLP/AI 學術會議程序主席,發表學術論文 100 餘篇,持有專利 20 餘項。
論文地址:https://arxiv.org/abs/2304.10464
參考鏈接:
[ 1 ] https://www.microsoft.com/en-us/research/people/nanduan/
[ 2 ] https://www.wict.pku.edu.cn/zhaodongyan/
[ 3 ] https://www.linkedin.com/in/nan-duan-322739a/details/experience/