<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          建模推理能力的預(yù)訓(xùn)練任務(wù)POET

          共 2916字,需瀏覽 6分鐘

           ·

          2022-02-28 21:05

          Reasoning Like Program Executors

          基于自然語言的推理一直是一個(gè)比較重要的問題,目前的大規(guī)模預(yù)訓(xùn)練模型普遍缺乏真正的推理能力,因?yàn)樗鼈冊(cè)谟?xùn)練時(shí)候的任務(wù),無論是像BERT的掩碼語言模型,還是GPT的自回歸語言模型,建模的仍然是token與token之間共現(xiàn)的概率分布,而缺乏對(duì)整體語義的把控,雖然NSP任務(wù)也想建模整體語義,但Anyway,現(xiàn)在做不好,也許基于統(tǒng)計(jì)的概率分布建模做到頭也沒法獲得“推理能力”。

          這篇文章提出了一種新的預(yù)訓(xùn)練任務(wù),叫作 reasoning-enhancement pre-training,證明了除概率建模以外,推理能力建模也是有作用的,同時(shí)模型的推理能力具有泛化性。

          Reasoning

          那么,什么是“推理能力”呢?舉個(gè)例子,“小明家里有5塊巧克力,小明的媽媽下班回來的時(shí)候發(fā)現(xiàn)只剩下3塊了,由此可以推出小明吃了2塊巧克力”,在這段的自然語言描述中,我們可以得到原本的巧克力數(shù)量為5,剩下的巧克力數(shù)量為3,推理出被小明吃掉的巧克力數(shù)量5-3=2,進(jìn)一步簡(jiǎn)化成一個(gè)可執(zhí)行的符號(hào)系統(tǒng),就是輸入x=5, y=3, z=x-y,求輸出結(jié)果z。

          通過將信息從承載它的表面模態(tài)和符號(hào)抽象中分離出來,人類能夠統(tǒng)一信息輸入的格式,并將數(shù)字推理能力濃縮成一個(gè)可執(zhí)行的符號(hào)系統(tǒng)。因此,如果一個(gè)模型能夠通過模仿程序執(zhí)行器來掌握這些推理技能,那么將這些推理技能遷移到其他模態(tài)上就是有可能的了。

          既然基于自然語言的推理能力不好,那么很容易想到的是把該問題拆解成更小的問題解決。作者將推理任務(wù)分為4種:數(shù)值推理,邏輯推理,多跳推理以及混雜文本(其實(shí)我覺得這里說成結(jié)構(gòu)化文本更好,因?yàn)橹饕褪菍?duì)應(yīng)Table QA)推理,其實(shí)還有一個(gè)常識(shí)推理,但leave for future,一些例子:

          推理方面也有不少工作,具體而言,分成兩類:

          1. 設(shè)計(jì)專有模塊處理,比如數(shù)值推斷中,采用特有的計(jì)數(shù)模塊。一般來說,能提出來,效果肯定不錯(cuò),但專有模型的泛化性肯定是個(gè)問題,我們既然做預(yù)訓(xùn)練模型,就是希望能有一個(gè)通用的解決方案,不需要繁雜的下游操作。格局-->打開
          2. 設(shè)計(jì)對(duì)應(yīng)的預(yù)訓(xùn)練方案,需要大量的包含推理知識(shí)的自然語言數(shù)據(jù),已有的方法也是這么干的,但是推理數(shù)據(jù)的收集或生成真的很困難,也很麻煩。然而,試想一下,我們?nèi)司哂袛?shù)字推理能力也不是從語言中學(xué)習(xí)到的,我們是通過學(xué)數(shù)學(xué)學(xué)到的,但我們有很強(qiáng)的泛化能力:),能把數(shù)學(xué)課上學(xué)到的加減乘除泛化到日常用語。問題自然來了,如果我們給預(yù)訓(xùn)練模型上數(shù)學(xué)課,或者邏輯推理課,它能不能泛化?這篇文章就是在思考并且驗(yàn)證這個(gè)事情,它究竟能不能更像人,筆者認(rèn)為其思考的深度和格局,已經(jīng)遠(yuǎn)超已有方案。

          POET

          作者提出的模型叫作 POET (Program Executor),由四個(gè)基本組件構(gòu)成,分別是 Program,Program Context,Program Executor 和 Execution Result,下面分別簡(jiǎn)單介紹。

          Program?

          程序其實(shí)就是一段能被機(jī)器理解和執(zhí)行的符號(hào),比如我們代碼print(string_1),比如一個(gè)數(shù)學(xué)公式x+y-z,一般來說比自然語言更為正式,遵守固定的語法。

          Program Context

          程序上下文,包括程序所執(zhí)行的環(huán)境,程序中變量的值,比如上面的例子中,string_1 = "Hello World"x=5, y=3, z=1。program 與 program context 的關(guān)系很像閱讀理解中 question 與 ?passage 之間的關(guān)系。

          Program Executor

          程序執(zhí)行器就是一個(gè)黑盒子,只要給定 program 和 program context,它就能輸出一個(gè)結(jié)果,比如它可以是一個(gè)計(jì)算器,你給任何公式和變量,它能輸出一個(gè)結(jié)果,我們并不用知道它內(nèi)部的電路實(shí)現(xiàn),它也可以是 python 解釋器,只要你寫的代碼符合 python 的規(guī)范,它就能輸出正確的結(jié)果,我們并不用關(guān)心它是怎么實(shí)現(xiàn)的。程序執(zhí)行器扮演的就是 Language Model 老師的角色,只要程序和程序上下文確定了,它輸出的結(jié)果總是確定的,因此我們希望模型能夠?qū)W到程序執(zhí)行器中蘊(yùn)含的推理能力。

          Execution Result

          執(zhí)行結(jié)果就是程序執(zhí)行器的輸出,它是反映程序執(zhí)行器內(nèi)部邏輯的可觀察數(shù)據(jù),是程序執(zhí)行器提供的監(jiān)督信號(hào),就像NLP中下游任務(wù)的標(biāo)簽,指導(dǎo)模型的學(xué)習(xí)。

          實(shí)例化 POET

          針對(duì)四種推理任務(wù),論文設(shè)計(jì)了三種課程:數(shù)學(xué)課,邏輯課以及數(shù)據(jù)庫課 (POET-Math, POET-Logic, POET-SQL) 。這里采用數(shù)據(jù)庫課程的原因是它太全面了,覆蓋了數(shù)值、條件、嵌套等數(shù)值推理和多跳推理任務(wù)。

          好的,那就開始給預(yù)訓(xùn)練模型上課了。拼接程序與程序上下文,作為模型輸入,訓(xùn)練模型預(yù)測(cè)程序執(zhí)行器輸出的結(jié)果。數(shù)據(jù)就是用代碼隨機(jī)生成的,相比于自然語言數(shù)據(jù),這種數(shù)據(jù)的生成更簡(jiǎn)單,可以輕易造出上百萬的數(shù)據(jù)。

          實(shí)驗(yàn)結(jié)果

          實(shí)驗(yàn)結(jié)果還是很不錯(cuò)的

          1. 數(shù)學(xué)課和邏輯課,效果很顯著。

          2. BART在文本理解類任務(wù)上顯著差于RoBERTa,其原因來自于RoBERTa更優(yōu)秀的雙向注意力機(jī)制,即使BART含有雙向注意力的Encoder,但是其預(yù)訓(xùn)練任務(wù)是更側(cè)重于Decoder的。有趣的是在BART原文中在自然語言理解類任務(wù)上其效果與RoBERTa差不多,但是Anyway,其Loss與Decoder更相關(guān),Decoder存儲(chǔ)了部分語義信息,因此有理由相信其Encoder的雙向注意力機(jī)制差于RoBERTa。

          3. 在多跳推理上的提升不是很明顯,原因可能是:文本的多跳推理要求對(duì)段落語義有較強(qiáng)的理解,而SQL不需要對(duì)同行列信息有比較深入的了解,只要知道其值是什么就OK了,似乎還可以把這里設(shè)計(jì)的更復(fù)雜一點(diǎn)。

          4. 還值得注意的一點(diǎn)是T5-11B,也就是100倍大的BERT,效果顯著的比參數(shù)小的模型要好。預(yù)訓(xùn)練任務(wù)都差不多,但大模型就是更強(qiáng)一點(diǎn),多出來的參數(shù)到底起到了什么作用?

          文章在實(shí)驗(yàn)結(jié)果章節(jié)有這么一段話:Since POET pre-training is carried purely on program context, whereas all downstream tasks are on natural context, our hypothesis that reasoning capability is transferable from program executors to NL scenarios gets verified. 簡(jiǎn)單總結(jié)一下,實(shí)驗(yàn)部分證明了模型從符號(hào)化,抽象化的數(shù)據(jù)中學(xué)習(xí)到的推理能力是可以遷移的,模型并非只是簡(jiǎn)單的學(xué)到了概率估計(jì),而是真正的學(xué)習(xí)到了解決相關(guān)問題的推理能力,且具有一定的泛化性,Amazing!

          瀏覽 70
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级毛片久久久久久久女人18 | 欧美三级片中文字幕 | 黄色激情五月天 | 国产成人九九六六六 | a在线视频 |