北京2022年7月7日 /美通社/ -- "源1.0"大模型是浪潮信息發(fā)布的中文巨量模型,參數(shù)量高達(dá)2457億,在中文語(yǔ)言能力理解和生成評(píng)測(cè)基準(zhǔn)CUGE總榜中取得榜首,并獲得語(yǔ)言理解(篇章級(jí))、語(yǔ)言生成、對(duì)話(huà)交互、多語(yǔ)言、數(shù)學(xué)推理等5項(xiàng)評(píng)測(cè)最佳成績(jī)。其中在數(shù)學(xué)推理評(píng)測(cè)中,源1.0大模型完成1000道小學(xué)數(shù)學(xué)應(yīng)用題,以76.9的高分大幅領(lǐng)先。
數(shù)學(xué)對(duì)邏輯和推理能力有極強(qiáng)的要求,以往大模型在數(shù)學(xué)領(lǐng)域表現(xiàn)欠佳。源1.0為何能取得這么好的成績(jī)?本文將介紹數(shù)學(xué)推理任務(wù)的背景、研究現(xiàn)狀,以及源1.0在數(shù)學(xué)推理任務(wù)方面的解決方案和表現(xiàn)。
1. 數(shù)學(xué)單詞問(wèn)題的研究背景及意義
數(shù)學(xué)單詞問(wèn)題,即Math Word Problem(MWP),其主要目標(biāo)是根據(jù)自然語(yǔ)言文字描述的內(nèi)容解決相應(yīng)的數(shù)學(xué)問(wèn)題。也就是說(shuō),對(duì)于給定的數(shù)學(xué)問(wèn)題,模型需要理解相關(guān)文字的數(shù)學(xué)含義,并推理出正確的表達(dá)式。
一個(gè)典型的MWP示例如下。
問(wèn)題:"快車(chē)和慢車(chē)同時(shí)從相距450千米的兩城相對(duì)開(kāi)出,4.5小時(shí)后兩車(chē)還相距90千米,快車(chē)和慢車(chē)的速度比為9:7,慢車(chē)每小時(shí)行多少千米?"
表達(dá)式:(450-90)/4.5*7/(9+7)
結(jié)果:35
不難發(fā)現(xiàn),該題目除了要求模型能夠理解基本的加減乘除法之外,還需要理解什么是比例問(wèn)題。此外,若將問(wèn)題中的"相對(duì)開(kāi)出"改為"相反方向開(kāi)出",將會(huì)導(dǎo)致問(wèn)題的數(shù)學(xué)邏輯大相徑庭。如何讓模型分辨出語(yǔ)言表達(dá)上的差異,并正確地推理出對(duì)應(yīng)的表達(dá)式是MWP任務(wù)的基本要求。
需要注意的是,在上面的MWP中,表達(dá)式中所需的數(shù)字量均可以在問(wèn)題中找到,但在某些情況下,表達(dá)式中所需要的數(shù)字量并不會(huì)全部包含在問(wèn)題中。例如,在含有分?jǐn)?shù)的MWP示例中(如下紅框中所示),需要根據(jù)題目中的數(shù)學(xué)邏輯,在表達(dá)式中額外添加相應(yīng)的數(shù)字量"1"。同樣的問(wèn)題還常見(jiàn)于計(jì)算圓的周長(zhǎng)或面積時(shí),需要額外添加數(shù)字量"3.14"。
問(wèn)題:"一根電線(xiàn)長(zhǎng)80米,第一次截去的全長(zhǎng)的2/5,第二次截去了余下的1/4,這根電線(xiàn)還剩多少米?"
表達(dá)式:80*(1-2/5-(1-2/5)*1/4)
結(jié)果:36
毫無(wú)疑問(wèn),MWP任務(wù)給模型的語(yǔ)言理解能力和數(shù)學(xué)推理能力都帶來(lái)了極大的挑戰(zhàn),如何解決MWP任務(wù)也是NLP領(lǐng)域的研究熱點(diǎn)之一。
2. 數(shù)字單詞問(wèn)題的研究現(xiàn)狀
實(shí)際上,直到2016年MWP的任務(wù)精度仍然比較有限。關(guān)于MWP任務(wù)在2016年之前的研究在此不作細(xì)述,相關(guān)綜述可參考論文:How well do Computers Solve Math Word Problems? Large-Scale Dataset Construction and Evaluation (Huang et al., ACL 2016)
近幾年,借助DNN解決MWP任務(wù)的方法顯著提升了MWP任務(wù)精度,這些方法大致可以分為以下三類(lèi):基于seq2seq模型、基于seq2tree模型和基于預(yù)訓(xùn)練模型。
2.1 基于seq2seq模型
該方法是由Wang Yan等學(xué)者[1]首次應(yīng)用在MWP任務(wù)上,并在大規(guī)模多題型的數(shù)據(jù)集(Math23K)上取得了顯著的效果(對(duì)于Math23K數(shù)據(jù)集將在后續(xù)內(nèi)容中進(jìn)行說(shuō)明)。該方法本質(zhì)上是采用Encoder-Decoder(enc-dec)結(jié)構(gòu)直接完成了從"問(wèn)題"到"表達(dá)式"的映射。值得一提的是,前述的Math23K數(shù)據(jù)集規(guī)模較大題型較多(約22000道),是目前MWP任務(wù)評(píng)測(cè)的benchmark。
此外,通過(guò)設(shè)計(jì)不同的Encoder和Decoder結(jié)構(gòu)可以得到改進(jìn)后的seq2seq方法。不過(guò)令人驚訝的是,Transformer結(jié)構(gòu)的enc-dec并未在Math23K數(shù)據(jù)集上表現(xiàn)出明顯的優(yōu)勢(shì);而采用LSTM結(jié)構(gòu)作為enc-dec的LSTMVAE方法表現(xiàn)最佳。
2.2 基于seq2tree模型
基于Seq2tree模型實(shí)際上是基于seq2seq模型的變種,簡(jiǎn)單來(lái)說(shuō),就是將number-mapping后的表達(dá)式轉(zhuǎn)化為樹(shù)結(jié)構(gòu)作為模型訓(xùn)練的輸出(如圖1所示),由于父節(jié)點(diǎn)與子節(jié)點(diǎn)處的數(shù)學(xué)符號(hào)以及連接方式是固定的,這種方式能夠有效地限制表達(dá)式的多樣性。這里,表達(dá)式的多樣性可以理解為針對(duì)同一個(gè)問(wèn)題可以列出不同的表達(dá)式,例如n1+n2-n3還可以寫(xiě)成n2+n1-n3或者n1+(n2-n3)。
在前述基礎(chǔ)下,基于seq2tree模型的MWP任務(wù)解決方法應(yīng)運(yùn)而生,其核心思想是將原先的decoder被替換成了tree-based decoder。至此,MWP任務(wù)解決思路似乎主要集中在如何替換encoder和decoder問(wèn)題上。例如,Wang Lei等學(xué)者又調(diào)整了encoder結(jié)構(gòu),提出了Graph2tree的方法并且在Math23K任務(wù)上精度高達(dá)75%。
2.3 基于預(yù)訓(xùn)練模型
Wang Lei等學(xué)者[3]發(fā)現(xiàn)BERTGen和RoBERTGen(Dec:BERT、RoBERT;Enc:Transformer)在Math23K數(shù)據(jù)集上表現(xiàn)較為優(yōu)秀(76.9%)。此外,他們還驗(yàn)證了GPT-2模型在Math23K數(shù)據(jù)集上的表現(xiàn)(74.3%),結(jié)果稍遜于基于BERT模型的方法,這可能是GPT-2模型結(jié)構(gòu)的原因(Decoder結(jié)構(gòu))。
2.4 其他MWP任務(wù)解決方法
根據(jù)前述方法,可以看到的是encoder采用BERT模型較好,decoder采用tree-based方式較好,若將兩者結(jié)合形成BERT encoder + tree-based decoder[4],其在Math23K數(shù)據(jù)集上的精度達(dá)到了驚人的84.4%,是目前Math23K任務(wù)的baseline。
此外,在眾多MWP任務(wù)解決方法中Recall and learn方法[5]是十分值得一提的。該方法跳出了經(jīng)典的enc-dec結(jié)構(gòu),通過(guò)模擬人腦在解決問(wèn)題時(shí)的類(lèi)比能力,推理出數(shù)學(xué)問(wèn)題的表達(dá)式,最終該方法在Math23K任務(wù)上的精度能夠達(dá)到82.3%。
3. "源1.0"大模型的MWP任務(wù)解決方案
需要指出的是,盡管構(gòu)建單個(gè)技能模型在一定程度上能夠較好地完成MWP任務(wù),但現(xiàn)有技能模型絕大多數(shù)仍采用的是encoder-decoder結(jié)構(gòu),針對(duì)類(lèi)似decoder結(jié)構(gòu)下(如GPT-2)的模型數(shù)值推理能力的研究仍然較少。此外,從實(shí)現(xiàn)通用人工智能的目標(biāo)來(lái)看,提升通用大模型的數(shù)值推理能力是十分必要的。
接下來(lái),筆者將詳細(xì)介紹浪潮信息的"源1.0"大模型(decoder結(jié)構(gòu))在Math23K任務(wù)上的相關(guān)工作,希望能夠?qū)μ嵘ㄓ么竽P偷臄?shù)值推理能力有所啟發(fā)。"源1.0"大模型在數(shù)學(xué)推理能力方面目前位列中文語(yǔ)言能力評(píng)測(cè)基準(zhǔn)CUGE榜首。
3.1 目標(biāo)導(dǎo)向的問(wèn)答式Prompt設(shè)計(jì)
Math23K的標(biāo)準(zhǔn)數(shù)據(jù)樣例為:
{
"text": "某班學(xué)生參加數(shù)學(xué)興趣小組,其中,參加的男生是全班人數(shù)的20%,參加的女生是全班人數(shù)的(2/7)多2人,不參加的人數(shù)比全班人數(shù)的(3/5)少5人,全班有多少人?",
"segmented_text": "某班 學(xué)生 參加 數(shù)學(xué) 興趣小組 , 其中 , 參加 的 男生 是 全班 人數(shù) 的 20% , 參加 的 女生 是 全班 人數(shù) 的 (2/7) 多 2 人 , 不 參加 的 人數(shù) 比 全班 人數(shù) 的 (3/5) 少 5 人 , 全班 有 多少 人 ?",
"equation": "x=(5-2)/(20%+(2/7)+(3/5)-1)",
"label": "35"
}
其中"text"和"equation"分別對(duì)應(yīng)了任務(wù)的問(wèn)題和表達(dá)式信息。在嘗試過(guò)各種prompt后,最終確定的prompt設(shè)計(jì)如下。這種prompt設(shè)計(jì)將原本的問(wèn)題拆分成了題干和待求解問(wèn)題("問(wèn):全班有多少人")兩個(gè)部分,這是由于"問(wèn):"后面的內(nèi)容對(duì)表達(dá)式的生成十分關(guān)鍵。例如,"全班有多少人"和"全班女生有多少人"所對(duì)應(yīng)的表達(dá)式是完全不同的。
{
某班學(xué)生參加數(shù)學(xué)興趣小組,其中,參加的男生是全班人數(shù)的20%,參加的女生是全班人數(shù)的(2/7)多2人,不參加的人數(shù)比全班人數(shù)的(3/5)少5人,問(wèn):全班有多少人?答: x=(5-2)/(20%+(2/7)+(3/5)-1)
}
3.2 相似啟發(fā)式數(shù)據(jù)增強(qiáng)方法
Math23K數(shù)據(jù)集的題型雖然較為豐富,但題型分布并不均勻。例如,涉及圖形周長(zhǎng)、面積和體積類(lèi)的問(wèn)題顯然比其他題目類(lèi)型要少,為保證模型在各類(lèi)數(shù)學(xué)題型上均有較好的表現(xiàn),有必要將該類(lèi)型的題目擴(kuò)充。
本文采用了Ape210K數(shù)據(jù)集[6]對(duì)Math23K訓(xùn)練集進(jìn)行擴(kuò)充,Ape210K數(shù)據(jù)集是另一種較為常用的中文應(yīng)用數(shù)學(xué)題集,其題型更為豐富且題量更大(訓(xùn)練集約20萬(wàn)道題)。然而,為保證模型在Math23K測(cè)試集上有良好的表現(xiàn),并不能簡(jiǎn)單地將Math23K和Ape210K數(shù)據(jù)集混合在一起。為保證數(shù)據(jù)增強(qiáng)的有效性,本文提出了一種相似啟發(fā)式數(shù)據(jù)增強(qiáng)方法(如圖2所示)。
該方法針對(duì)Math23K訓(xùn)練集中的每一道題,首先判斷是否屬于圖形周長(zhǎng)、面積和體積類(lèi)題目。若屬于,則top-K取值為2,同時(shí)通過(guò)相似題檢索從Ape210K中召回對(duì)應(yīng)的相似題;若不屬于,則top-K取值為1,同樣進(jìn)行相似題檢索。最后,將找到的相似題添加至Math23K訓(xùn)練集中,數(shù)據(jù)增強(qiáng)后的訓(xùn)練集約包含42000道題。
3.3 Reset-position-id與reset-attention-mask設(shè)計(jì)
輸入到模型的一個(gè)batch中通常包含多道應(yīng)用題,且會(huì)出現(xiàn)截?cái)嗟葐?wèn)題。為避免不同題目和表達(dá)式之間相互影響,對(duì)模型進(jìn)行reset-position-id和reset-attention-mask處理。圖3示意了reset前后的對(duì)比,采用了[eod]對(duì)不同題目之間做切割,在reset-pos-id之前,其位置編碼按照從左到右的順序排列;reset-pos-id之后,位置編碼按照單個(gè)題目進(jìn)行順序排列。類(lèi)似的,在reset-attn-mask之前,掩碼矩陣對(duì)應(yīng)的是batch尺寸的下三角矩陣;reset-attn-mask后,原先的掩碼矩陣被拆分成若干小的掩碼矩陣,每個(gè)小掩碼矩陣對(duì)應(yīng)單個(gè)題目尺寸的下三角矩陣。
4. 訓(xùn)練參數(shù)及結(jié)果
訓(xùn)練過(guò)程的主要參數(shù)設(shè)置如下。
表1 模型訓(xùn)練部分參數(shù)
參數(shù) |
數(shù)值 |
Seq-length |
2048 |
Batch-size |
256 |
Learning-rate |
5e-6 |
Train-iters |
400 |
在訓(xùn)練了400個(gè)iteration后,模型的loss收斂至0.39(圖4)。
之后,在Math23K測(cè)試集上對(duì)所提方法的精度進(jìn)行了測(cè)試,并與現(xiàn)有相關(guān)方法的結(jié)果進(jìn)行對(duì)比(表2)。不難看出,與BERT、GPT-2以及CPM-2模型相比,所提方法下的"源1.0"大模型在Math23K任務(wù)上的精度最高。
表2 源1.0模型與BERT、GPT等在Math23K測(cè)試集上的對(duì)比(相關(guān)結(jié)果見(jiàn)參考文獻(xiàn)[4])
模型名稱(chēng) |
Encoder-Decoder |
Math23K精度(%) |
BERTGen |
是 |
76.6 |
RoBERTGen |
是 |
76.9 |
CPM-2 |
是 |
69.4 |
GPT-2 |
Decoder結(jié)構(gòu) |
74.3 |
源1.0 |
Decoder結(jié)構(gòu) |
76.9 |
5. 總結(jié)與展望
為提升decoder結(jié)構(gòu)下的通用大模型在MWP任務(wù)上的精度,本文提出了一種目標(biāo)導(dǎo)向的問(wèn)答式prompt設(shè)計(jì)方法,該方法有利于引導(dǎo)模型建立問(wèn)題與表達(dá)式之間的準(zhǔn)確對(duì)應(yīng)關(guān)系;同時(shí)提出了一種相似啟發(fā)式數(shù)據(jù)增強(qiáng)方法,通過(guò)相似句召回的方式對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,克服了原有數(shù)據(jù)集中題型分布不均勻的問(wèn)題;此外,采用了重置位置編碼和掩碼矩陣的方法,解決了單個(gè)batch中的題目之間相互影響的問(wèn)題。最后,在Math23K數(shù)據(jù)集上驗(yàn)證了所提方法,結(jié)果證明了"源1.0"模型有很強(qiáng)的數(shù)學(xué)推理能力。
針對(duì)MWP任務(wù),"源1.0"模型后續(xù)將開(kāi)展的工作包括:
1. 合理利用Number-mapping和tree結(jié)構(gòu)的數(shù)據(jù)前處理,以及類(lèi)似于recall and learn方法中的掩碼矩陣設(shè)計(jì),進(jìn)一步提高"源1.0"在MWP任務(wù)上生成答案精度。
2. 雖然"源1.0"僅在Math23K任務(wù)上取得了較好的成績(jī),且目前還不能解決全部的MWP題型,但已經(jīng)證明了"源1.0"模型具備了較強(qiáng)的數(shù)學(xué)推理能力。如何進(jìn)一步挖掘"源1.0"在MWP任務(wù)上的潛力,以解決更為復(fù)雜的多元方程以及幾何題型的問(wèn)題,是我們后續(xù)準(zhǔn)備繼續(xù)深入研究的重要方向。
參考文獻(xiàn)
[1] Yan Wang, Xiaojiang Liu, Shuming Shi (2017). Deep Neural Solver for Math Word Problems.
[2] Lei Wang, Yan Wang, Deng Cai, et al (2018). Translating a Math Word Problem to an Expression Tree.
[3] Yihuai Lan, Lei Wang, Qiyuan Zhang, et al (2021). MWPToolkit: An Open-Source Framework for Deep Learning-Based Math Word Problem Solvers
[4] Zhenwen Liang, Jipeng Zhang, Lei Wang, et al (2021). MWP-BERT: Numeracy-Augmented Pre-training for Math Word Problem Solving
[5] Shifeng Huang, Jiawei Wang, Jiao Xu, Da Cao, and Ming Yang. (2021). Recall and Learn: A Memory-augmented Solver for Math Word Problems.
[6] Wei Zhao, Mingyue Shang, Yang Liu, et al (2020). Ape210K: A Large-Scale and Template-Rich Dataset of Math Word Problems.