相較于在模型構(gòu)架或硬件優(yōu)化上所花的精力,機(jī)器學(xué)習(xí)從業(yè)者反而對(duì)訓(xùn)練數(shù)據(jù)更加重視。因此,程序員基于不同的抽象技術(shù),即高級(jí)設(shè)計(jì)的模板為他們的應(yīng)用構(gòu)建機(jī)器學(xué)習(xí)管道。在這篇文章中,我們介紹了三種強(qiáng)大的抽象技術(shù),通過這些技術(shù),從業(yè)者可以以編程的方式構(gòu)建和管理他們的訓(xùn)練數(shù)據(jù)。 我們進(jìn)行了一項(xiàng)實(shí)驗(yàn)來測(cè)試針對(duì)基礎(chǔ)訓(xùn)練數(shù)據(jù)操作的有效性,分別對(duì)訓(xùn)練集的一部分?jǐn)?shù)據(jù)使用了本文的框架、Snorkel(一種快速創(chuàng)建、建模和管理訓(xùn)練數(shù)據(jù)的系統(tǒng),通過標(biāo)記函數(shù)以編程的方式標(biāo)記數(shù)據(jù))和在 SuperGLUE (一個(gè)用于「通用語言理解技術(shù)」相關(guān)六項(xiàng)任務(wù)的新評(píng)價(jià)指標(biāo))上取得最佳結(jié)果的標(biāo)準(zhǔn) NLP 模型(即 BERT)。與自然語言預(yù)訓(xùn)練模型(即 BERT)的最新進(jìn)展相比,我們總體上取得了新的最高分?jǐn)?shù),并且在大多數(shù)組合型任務(wù)上,我們?cè)诟鱾€(gè)方面都實(shí)現(xiàn)了現(xiàn)有的最好成績(jī)。 除了 SuperGLUE 之外,我們還重點(diǎn)介紹了 Snorkel 在實(shí)際應(yīng)用中的更新,其中包括更多應(yīng)用——從 Google 的 Snorkel Drybell 的工業(yè)規(guī)模到 MRI 分類和自動(dòng)全基因組關(guān)聯(lián)研究(GWAS)策劃的科研工作(這些應(yīng)用均被收錄于 Nature Comms:https://www./ncomms/)! 與此同時(shí),我們還在 Snorkel repo 中發(fā)布代碼: https://github.com/HazyResearch/snorkel 三種關(guān)鍵的抽象方式 一般來講,在我們的 SuperGLUE 結(jié)果中,我們發(fā)現(xiàn),將時(shí)間花在以編程方式構(gòu)建和操縱訓(xùn)練數(shù)據(jù)而非模型訓(xùn)練上實(shí)為一種強(qiáng)大且有效的策略,通過此策略,我們可以得到機(jī)器學(xué)習(xí)的管道機(jī)制的高性能。在過去的一篇文章(閱讀地址:https://dawn.cs./2019/03/22/glue/)中,由于我們?cè)?GLUE Benchmark(SuperGLUE 的前身)上取得了當(dāng)前最先進(jìn)的結(jié)果,我們討論了加入更多來源的有監(jiān)督信號(hào)的價(jià)值,例如:多任務(wù)學(xué)習(xí)和轉(zhuǎn)移學(xué)習(xí)。在這篇文章中,我們將重點(diǎn)放在構(gòu)建和修改訓(xùn)練數(shù)據(jù)集的三個(gè)關(guān)鍵抽象方法上: 1.使用標(biāo)記函數(shù)(LF)標(biāo)記數(shù)據(jù) 2.使用轉(zhuǎn)換函數(shù)(TF)轉(zhuǎn)換數(shù)據(jù) 3.使用切片函數(shù)(SF)切片數(shù)據(jù) (技術(shù)報(bào)告+博客文章即將推出?。?/p> 運(yùn)行例子 對(duì)于本文的其余部分,我們用 SuperGLUE 的語境用詞(WiC)任務(wù)作為示例:目標(biāo)詞在句中的用法是否一致? 1、 使用標(biāo)注函數(shù)的弱標(biāo)注 在許多應(yīng)用場(chǎng)景中都有大量的未標(biāo)記數(shù)據(jù),這些數(shù)據(jù)可能來自于自動(dòng)駕駛車隊(duì)或大型非結(jié)構(gòu)化數(shù)據(jù)庫(kù)。但出于時(shí)間和成本的考慮,標(biāo)注這些原始數(shù)據(jù)是很難的,因此,現(xiàn)代架構(gòu)在很大程度上無法利用這些潛在的豐富數(shù)據(jù)集。通過使用 Snorkel,我們多年來一直致力于研究使用標(biāo)注函數(shù)(LF)來啟發(fā)性地標(biāo)注訓(xùn)練樣例。Snorkel 中的標(biāo)注函數(shù)(LF)為領(lǐng)域?qū)<一驒C(jī)器學(xué)習(xí)從業(yè)者提供了用于對(duì)來自現(xiàn)有數(shù)據(jù)集、模型和人工標(biāo)注的有監(jiān)督源進(jìn)行去噪和結(jié)合的直觀界面。 對(duì)于 WiC 任務(wù)(判斷目標(biāo)詞在兩個(gè)句子中「意思」是否一致),我們可以認(rèn)為根據(jù)它們是否共享包括目標(biāo)詞的三元組來弱標(biāo)記例子。 2、 用轉(zhuǎn)換函數(shù)做數(shù)據(jù)增強(qiáng) 通常,人們會(huì)根據(jù)簡(jiǎn)單的變換,如隨機(jī)旋轉(zhuǎn)或拉伸圖像來做數(shù)據(jù)增強(qiáng),但它們可以涉及到更多樣化的操作范圍。我們將轉(zhuǎn)換函數(shù)(TF)視為一種強(qiáng)大的抽象方式,啟發(fā)式地從現(xiàn)有的例子生成新的更改過的例子。例如,對(duì)于醫(yī)學(xué)成像任務(wù),我們可能會(huì)編寫 TF 來執(zhí)行特定于我們的成像模態(tài)的變換。例如,重新取樣分割腫瘤塊或重新取樣背景組織。我們?cè)?TANDA 這項(xiàng)工作(Learning to compose domain-specific transformations for data augmentation,http://papers./paper/6916-learning-to-compose-domain-specific-transformations-for-data-augmentation)中探索了這種抽象方式,TANDA 旨在學(xué)習(xí)跨域特定任務(wù)的轉(zhuǎn)換組合。Google 的 AutoAugment 便以此工作為基礎(chǔ),自動(dòng)學(xué)習(xí)數(shù)據(jù)增強(qiáng)策略。 3、 用切片函數(shù)做數(shù)據(jù)切片(新方法?。?/p> 在許多數(shù)據(jù)集中,特別是在實(shí)際應(yīng)用中有一些使我們的模型表現(xiàn)不夠好的數(shù)據(jù)子集,還有一些相比于其他數(shù)據(jù)子集,其表現(xiàn)更讓我們關(guān)注的數(shù)據(jù)子集。例如,較低頻的醫(yī)保人口統(tǒng)計(jì)數(shù)據(jù)(如某些患癌的年輕患者),我們的模型在這個(gè)數(shù)據(jù)上就可能表現(xiàn)不好,或者在自動(dòng)駕駛設(shè)定下,我們可能更關(guān)注一些安全攸關(guān)但罕見的場(chǎng)景,如檢測(cè)自行車騎行情況。我們將這些數(shù)據(jù)稱為子集切片。從業(yè)者經(jīng)常面臨的技術(shù)挑戰(zhàn)是提高這些切片的性能,同時(shí)保持整體性能。 切片函數(shù)(SF)為用戶提供了一個(gè)接口,用于粗略地識(shí)別那些模型應(yīng)為其提供額外表示能力的數(shù)據(jù)子集。為了解決特定切片的表示,從業(yè)者可能會(huì)訓(xùn)練多個(gè)模型,其中每個(gè)模型都針對(duì)特定的子集,然后將這些模型與專家混合(MoE)方法相結(jié)合。 然而,隨著機(jī)器學(xué)習(xí)模型的規(guī)模不斷增大,MoE 通常是不切實(shí)際的。另一種策略是通過硬參數(shù)共享以多任務(wù)學(xué)習(xí)(MTL)的方式訓(xùn)練單個(gè)模型。雖然此方法計(jì)算效率更高,但它需要在許多特定切片任務(wù)中用表示偏差來提高性能,而這種方式往往并不可靠。作為快速概述(技術(shù)報(bào)告+博客文章即將推出?。覀円远嗳蝿?wù)學(xué)習(xí)的方式對(duì)切片進(jìn)行建模,其中使用基于切片的「專家頭部」來學(xué)習(xí)特定切片的表示。然后,通過為專家頭部引入注意力機(jī)制,以確定何時(shí)以及如何在每個(gè)示例的基礎(chǔ)上組合由這些切片頭部學(xué)習(xí)到的表示。 在本方法中,我們考慮以下屬性: 我們的方法與模型無關(guān)——專家頭部在任何骨干架構(gòu)(例如 BERT,ResNET)之上學(xué)習(xí)。因此,使用切片功能提高整體性能的從業(yè)者們可以專注于數(shù)據(jù)而不是模型架構(gòu)。 通過多任務(wù)方式學(xué)習(xí),我們可以有效地進(jìn)行表示學(xué)習(xí),而無需制作模型的許多副本(如 MoE 則需要太多內(nèi)存)! 通過結(jié)合注意力機(jī)制,我們避免了專家頭部的手動(dòng)調(diào)整——這大大節(jié)省了開發(fā)者的成本。 從 WiC 錯(cuò)誤分析中,我們可能會(huì)發(fā)現(xiàn)我們的模型在目標(biāo)詞是名詞而非動(dòng)詞的例子中表現(xiàn)得更差。使用切片函數(shù) SF,我們告訴模型注意這些切片之間的差異,并在對(duì)它認(rèn)為是名詞的目標(biāo)詞進(jìn)行預(yù)測(cè)時(shí)使用略微不同的表示。 標(biāo)注函數(shù) LFs、轉(zhuǎn)換函數(shù) TFs 和切片函數(shù) SFs 的重要屬性 直觀的界面:這些抽象方式為現(xiàn)有的從業(yè)者工作流程提供了直觀的界面。它們?cè)试S直接對(duì)調(diào)試/報(bào)錯(cuò)分析中的意見進(jìn)行編碼,以改進(jìn)模型。 將抽象方法視作弱監(jiān)督進(jìn)行編程:在實(shí)踐中,許多這樣的技術(shù)可被視為一種弱監(jiān)督形式,因?yàn)橛脩糁付ㄟ@些技術(shù)就是有噪音的、啟發(fā)式的且不精確的一些方式。處理此問題是我們使用 Snorkel 解決的核心技術(shù)挑戰(zhàn)之一。 將監(jiān)督視作代碼:這些輸入的種類是根據(jù)監(jiān)督模型的方法(即它們指定訓(xùn)練集)。具體地說,它們也是代碼,因此其具有代碼復(fù)用性和可修改性等諸多優(yōu)點(diǎn)。 SuperGLUE 結(jié)果 使用這些編程抽象方法,我們?cè)?SuperGLUE Benchmark 及其 4 個(gè)組合任務(wù)上獲得了新的最好成績(jī)。SuperGLUE 類似于 GLUE,但包含「更困難的任務(wù)...... 選擇最大化難度和多樣性,以及...... 選擇顯示基于 BERT 的強(qiáng)基線與人類表現(xiàn)之間的巨大余量差距。」在重現(xiàn) BERT ++基線后,我們這些模型(基線模型,默認(rèn)學(xué)習(xí)率等)進(jìn)行微調(diào)后發(fā)現(xiàn),在使用上述編程抽象方法的少數(shù)應(yīng)用中,我們看到結(jié)果在 SuperGLUE 基準(zhǔn)上提升了 4 個(gè)點(diǎn)(即與人類表現(xiàn)的差距縮小了 21%)。 Snorkel 的實(shí)際應(yīng)用 這些 Snorkel 編程抽象方法也被用于推動(dòng)具有高影響力的實(shí)際應(yīng)用的進(jìn)步。 今年 3 月,我們和 Google 發(fā)布了一篇論文(https:///pdf/1812.00417.pdf)和博客文章(https://ai./2019/03/harnessing-organizational-knowledge-for.html),介紹了在工業(yè)界部署 Snorkel 的經(jīng)驗(yàn)。憑借整個(gè)組織的不同知識(shí)來源——啟發(fā)式,標(biāo)注器,知識(shí)圖譜,遺產(chǎn)系統(tǒng)(一種數(shù)據(jù)源系統(tǒng))等,他們看到效果的顯著提高,在 F1 值上提高了 17.5 個(gè)點(diǎn)之多。
在最近被 Nature Communications 收錄的工作(相關(guān)閱讀:https://www./content/10.1101/339630v4.full)中,Snorkel 被部署在與斯坦福大學(xué)兒科心臟病學(xué)持續(xù)合作的項(xiàng)目中,其中訓(xùn)練數(shù)據(jù)的標(biāo)注是開發(fā)自動(dòng)化方法的重大實(shí)際障礙。我們關(guān)注的是二尖瓣主動(dòng)脈瓣(BAV),這是最常見的先天性心臟畸形(一般人群的發(fā)病率為 0.5-2%),具有影響下游健康的風(fēng)險(xiǎn)。在研究中,我們選擇不依靠來自心臟病專家的昂貴的 MRI 標(biāo)注,而是直接與領(lǐng)域?qū)<液献鏖_發(fā)標(biāo)注函數(shù) LF,以此為下游深度學(xué)習(xí)模型生成大規(guī)模的訓(xùn)練集。在使用我們端到端的方法確診的患者中,一項(xiàng)獨(dú)立評(píng)估確定發(fā)生重大心臟不良事件的風(fēng)險(xiǎn)增加了 1.8 倍。 在另一篇即將發(fā)表的 Nature Communications 論文(https://ai./~kuleshov/papers/gwaskb-manuscript.pdf)中,我們展示了 Snorkel 是如何應(yīng)用于自動(dòng)化全基因關(guān)聯(lián)研究(GWAS)的。在之前發(fā)表的數(shù)百項(xiàng)報(bào)告了重要的基因型與表現(xiàn)型數(shù)據(jù)對(duì)的研究集合中,我們僅使用標(biāo)記函數(shù)自動(dòng)標(biāo)記了大型訓(xùn)練集。由此產(chǎn)生的分類器應(yīng)用于 598 項(xiàng)研究的集合,恢復(fù)了 3,000 多個(gè)先前記錄的開放存取關(guān)系(預(yù)計(jì)召回率為 60-80%)以及現(xiàn)有人類策劃存儲(chǔ)庫(kù)中不存在的 2,000 多個(gè)協(xié)會(huì)(預(yù)計(jì)精確度為 82-89%)。生成的數(shù)據(jù)庫(kù)可通過 http://gwaskb./上的用戶界面進(jìn)行搜索。 后記 Snorkel 項(xiàng)目正在積極進(jìn)行中!我們有許多令人興奮的持續(xù)合作——從斯坦福大學(xué)醫(yī)學(xué)院的后續(xù)工作到國(guó)際調(diào)查記者協(xié)會(huì)(ICIJ)的部署,以幫助記者組織、索引和理解數(shù)百萬個(gè)非結(jié)構(gòu)化文件。 本次發(fā)布的代碼包括了重要的基礎(chǔ)結(jié)構(gòu)改進(jìn)以及如何將 LF,TF 和 SF 應(yīng)用于 SuperGLUE 和其他任務(wù)的教程。我們很高興如果您已經(jīng)在自己的應(yīng)用程序中應(yīng)用了 Snorkel。 |
|