北大GPT解題有數學老師內味了,用人話講難題,從高中數學到高數都能搞定
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
北大團隊教會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