展會(huì)信息港展會(huì)大全

陶哲軒看了都直呼內(nèi)行!谷歌等用LLM自動(dòng)證明定理拿頂會(huì)杰出論文,上下文越全證得越好
來源:互聯(lián)網(wǎng)   發(fā)布日期:2024-02-03 18:34:40   瀏覽:4008次  

導(dǎo)讀:新智元報(bào)道 編輯:alan 【新智元導(dǎo)讀】 在軟件工程頂會(huì)ESEC/FSE上,來自馬薩諸塞大學(xué)、谷歌和伊利諾伊大學(xué)厄巴納-香檳分校(UIUC)的研究人員發(fā)表了新的成果,使用LLM解決自動(dòng)化定理證明問題。 Transformer的技能樹是越來越厲害了。 來自馬薩諸塞大學(xué)、谷歌...

新智元報(bào)道

編輯:alan

【新智元導(dǎo)讀】在軟件工程頂會(huì)ESEC/FSE上,來自馬薩諸塞大學(xué)、谷歌和伊利諾伊大學(xué)厄巴納-香檳分校(UIUC)的研究人員發(fā)表了新的成果,使用LLM解決自動(dòng)化定理證明問題。

Transformer的技能樹是越來越厲害了。

來自馬薩諸塞大學(xué)、谷歌和伊利諾伊大學(xué)厄巴納-香檳分校(UIUC)的研究人員發(fā)表了一篇論文,利用大語言模型自動(dòng)生成定理的完整證明。

論文地址:https://arxiv.org/pdf/2303.04910.pdf

這篇工作以Baldur(北歐神話中雷神Thor的兄弟)命名,首次證明了使用Transformer生成全證明是可能的,并且當(dāng)為模型提供額外的上下文時(shí),還可以改進(jìn)模型先前的證明。

文章發(fā)表于2023年12月在舊金山舉行的ESEC/FSE(ACM歐洲軟件工程聯(lián)合會(huì)議和軟件工程基礎(chǔ)研討會(huì))上,并獲得了杰出論文獎(jiǎng)(Distinguished Paper award)。

眾所周知,軟件存在bug(廢話),這在一般應(yīng)用程序或者網(wǎng)站上問題不大,但對(duì)于比如加密協(xié)議、醫(yī)療設(shè)備和航天飛機(jī)等關(guān)鍵系統(tǒng)背后的軟件而言,必須確保沒有錯(cuò)誤。

一般的代碼審查和測(cè)試并不能給出這個(gè)保證,這需要形式驗(yàn)證(formal verification)。

對(duì)于formal verification,ScienceDirect給出的解釋為:

the process of mathematically checking that the behavior of a system, described using a formal model, satisfies a given property, also described using a formal model

指的是從數(shù)學(xué)上檢查,使用形式模型描述的系統(tǒng)行為,是否滿足給定屬性的過程。

簡(jiǎn)單來說就是,利用數(shù)學(xué)分析的方法,通過算法引擎建立模型,對(duì)待測(cè)設(shè)計(jì)的狀態(tài)空間進(jìn)行窮盡分析的驗(yàn)證。

形式化軟件驗(yàn)證,對(duì)于軟件工程師來說是最具挑戰(zhàn)性的任務(wù)之一。例如CompCert,使用Coq交互式定理證明器驗(yàn)證的C編譯器,是無處不在的GCC和LLVM等使用的唯一編譯器。

然而,手動(dòng)形式驗(yàn)證(編寫證明)的成本卻相當(dāng)巨大,C編譯器的證明是編譯器代碼本身的三倍以上。

所以,形式驗(yàn)證本身是一項(xiàng)“勞動(dòng)密集型”的任務(wù),研究人員也在探索自動(dòng)化的方法。

比如Coq和Isabelle等證明助手,通過訓(xùn)練一個(gè)模型來一次預(yù)測(cè)一個(gè)證明步驟,并使用模型搜索可能的證明空間。

而本文的Baldur首次在這個(gè)領(lǐng)域引入了大語言模型的能力,在自然語言文本和代碼上訓(xùn)練,并在證明上進(jìn)行微調(diào),

Baldur可以一次就生成定理的完整證明,而不是一次一個(gè)步驟。

如上圖所示,僅使用定理語句作為證明生成模型的輸入,然后從模型中抽取證明嘗試,并使用Isabelle執(zhí)行證明檢查。

如果Isabelle接受了證明嘗試而沒有錯(cuò)誤,就說明證明成功;否則從證明生成模型中抽取另一個(gè)證明嘗試。

Baldur在6336個(gè)Isabelle/HOL定理及其證明的基準(zhǔn)上進(jìn)行評(píng)估,從經(jīng)驗(yàn)上證明了完整證明生成、修復(fù)和添加上下文的有效性。

另外,這個(gè)工具之所以叫Baldur,可能是因?yàn)楫?dāng)前最好的自動(dòng)證明生成工具叫做Thor。

Thor的證明率更高(57%),它使用較小的語言模型結(jié)合搜索可能證明空間的方法預(yù)測(cè)證明的下一步,而Baldur的優(yōu)勢(shì)在于它能夠生成完整的證明。

不過Thor和Baldur兩兄弟也可以一起工作,這樣可能把證明率提升到接近66%。

自動(dòng)生成完整證明

Baldur由Google的大語言模型Minerva提供支持,Minerva在科學(xué)論文和包含數(shù)學(xué)表達(dá)式的網(wǎng)頁上進(jìn)行訓(xùn)練,并對(duì)有關(guān)證明和定理的數(shù)據(jù)進(jìn)行了微調(diào)。

Baldur可以與定理證明助手Isabelle合作,Isabelle對(duì)證明結(jié)果進(jìn)行檢查。當(dāng)給定一個(gè)定理陳述時(shí),Baldur幾乎在41%的時(shí)間內(nèi)能夠生成一個(gè)完整的證明。

為了進(jìn)一步提高Baldur的性能,研究人員向模型提供了額外的上下文信息(比如其他定義、或理論文件中的定理陳述),這使證明率提高到47.5%。

這意味著Baldur能夠獲取上下文,并使用它來預(yù)測(cè)新的正確證明,類似于程序員,當(dāng)了解了相關(guān)方法和代碼之后,他們更有可能修復(fù)程序中的錯(cuò)誤。

下面舉個(gè)例子(fun_sum_commute定理):

這個(gè)定理來自形式證明檔案中一個(gè)名為多項(xiàng)式的項(xiàng)目。

當(dāng)人工編寫證明的時(shí)候,會(huì)區(qū)分兩種情況:集合是有限的或者不是有限的:

所以,對(duì)于模型來說,輸入是定理陳述,而目標(biāo)輸出是這個(gè)人工編寫的證明。

Baldur認(rèn)識(shí)到這里需要?dú)w納,并應(yīng)用了一種特殊的歸納法則,稱為infinite_finite_induct,遵循與人類書面證明相同的總體方法,但更簡(jiǎn)潔。

而因?yàn)樾枰獨(dú)w納,Isabelle使用的Sledgehammer默認(rèn)無法證明這個(gè)定理。

訓(xùn)練

為了訓(xùn)練證明生成模型,研究人員構(gòu)建了一個(gè)新的證明生成數(shù)據(jù)集。

現(xiàn)有數(shù)據(jù)集包含單個(gè)證明步驟的示例,每個(gè)訓(xùn)練示例包括證明狀態(tài)(輸入)和要應(yīng)用的下一個(gè)證明步驟(目標(biāo))。

給定一個(gè)包含單個(gè)證明步驟的數(shù)據(jù)集,這里需要?jiǎng)?chuàng)建一個(gè)新數(shù)據(jù)集,以便訓(xùn)練模型一次預(yù)測(cè)整個(gè)證明。

研究人員從數(shù)據(jù)集中提取每個(gè)定理的證明步驟,并將它們連接起來以重建原始證明。

證明修復(fù)

還是以上面的fun_sum_commute為例,

Baldur首次生成的證明嘗試,在證明檢查器中失敗。

Baldur試圖應(yīng)用歸納法,但未能首先將證明分解為兩種情況(有限集與無限集)。Isabelle返回以下錯(cuò)誤消息:

為了從這些字符串中派生出一個(gè)證明修復(fù)訓(xùn)練示例,這里將定理陳述、失敗的證明嘗試和錯(cuò)誤消息連接起來作為輸入,并使用正確的人工編寫的證明作為目標(biāo)。

上圖詳細(xì)介紹了訓(xùn)練數(shù)據(jù)的創(chuàng)建過程。

使用證明生成模型,針對(duì)原始訓(xùn)練集中的每個(gè)問題,對(duì)溫度為0的證明進(jìn)行采樣。

使用校對(duì)助手,記錄所有失敗的校樣及其錯(cuò)誤消息,然后,繼續(xù)構(gòu)建新的證明修復(fù)訓(xùn)練集。

對(duì)于每個(gè)原始訓(xùn)練示例,將定理語句、證明生成模型生成的(不正確的)候選證明以及相應(yīng)的錯(cuò)誤消息連接起來,以獲得新訓(xùn)練示例的輸入序列。

在定理陳述之前添加理論文件的行,作為額外的上下文。比如下圖這樣:

Baldur中帶有上下文的證明生成模型,可以利用這些附加信息。出現(xiàn)在fun_sum_commute定理語句中的字符串,在這個(gè)上下文中再次出現(xiàn),因此圍繞它們的附加信息可以幫助模型做出更好的預(yù)測(cè)。

上下文可以是陳述(定理、定義、證明),還可以是自然語言注釋。

為了利用LLM的可用輸入長(zhǎng)度,研究人員首先從同一個(gè)理論文件中添加多達(dá)50個(gè)語句。

在訓(xùn)練過程中,首先對(duì)所有這些語句進(jìn)行標(biāo)記化,然后截?cái)嘈蛄械淖髠?cè)以適應(yīng)輸入長(zhǎng)度。

上圖展示了有上下文和無上下文的生成模型的證明成功率與證明嘗試次數(shù)的關(guān)系圖。我們可以看出,具有上下文的證明生成模型始終優(yōu)于普通生成模型。

上圖展示了不同尺寸和溫度模型的已驗(yàn)證定理與推理成本之比。

我們可以看到生成模型的證明成功率,以及8B模型和62B模型的上下文與證明嘗試次數(shù)的關(guān)系。

具有上下文的62B證明生成模型優(yōu)于具有上下文的8B模型。

不過,作者在這里強(qiáng)調(diào),由于這些實(shí)驗(yàn)的成本較高,他們也無法調(diào)整超參數(shù),62B模型如果經(jīng)過優(yōu)化可能會(huì)表現(xiàn)得更好。

參考資料:

https://arxiv.org/pdf/2303.04910.pdf

贊助本站

人工智能實(shí)驗(yàn)室
相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實(shí)驗(yàn)室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動(dòng)態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機(jī)會(huì) | 展會(huì)港