主頁 >  其他 > 端到端問答新突破:百度提出RocketQA,登頂MSMARCO榜首!

端到端問答新突破:百度提出RocketQA,登頂MSMARCO榜首!

2020-12-10 18:19:58 其他

*歡迎關注【百度NLP】官方公眾號,及時獲取自然語言處理領域核心技術干貨!!
**閱讀原文:https://mp.weixin.qq.com/s/K_7_LgMZf1MuS4IJI6gdsw

開放域問答(Open-domain QA)一直是自然語言處理領域的重要研究課題,百度從面向端到端問答的檢索模型出發,提出了RocketQA訓練方法,大幅提升了對偶式檢索模型的效果,為實作端到端問答邁出了重要的一步,RocketQA已逐步應用在百度搜索、廣告等核心業務中,并將在更多場景中發揮作用,

近日,百度提出了面向端到端問答的檢索模型訓練方法RocketQA,該方法針對模型訓練中存在的問題,通過跨批次負采樣(cross-batch negatives)、去噪的強負例采樣(denoised hard negative sampling)與資料增強(data augmentation)等技術,大幅提升了對偶式檢索模型的效果,RocketQA不僅在多個問答相關資料集中取得了SOTA,同時也重繪了微軟MSMARCO資料集段落排序任務的榜單,超越谷歌、微軟、Facebook、阿里、美團、卡內基梅隆大學、清華大學、滑鐵盧大學等企業和高校位居第一,為實作“端到端問答”邁出了重要的一步,

論文名稱:RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering
論文地址:https://arxiv.org/abs/2010.08191

一、開放域問答系統

開放域問答(Open-domain QA)是自然語言處理領域的重要研究課題,它的任務是,基于用戶用自然語言提出的問題,從海量候選文本中快速、精準地找出答案,開放領域問答在智能搜索、智能助手、智能客服等多個場景下,都發揮著重要作用,特別是近些年,隨著各種智能手機、智能音箱的普及,智能搜索快速進化,通過開放域問答系統直接給出唯一的精準答案(如圖 1 所示),可以幫助用戶在這些小屏和無屏設備上更快速、準確地獲取有用資訊,


圖1:百度搜索的TOP1結果:將問題的答案展現在搜索結果的首位,提升用戶體驗

傳統的開放域問答主要采用級聯的檢索式問答系統,包含了段落檢索、段落排序、答案定位等多個步驟,隨著近些年預訓練語言模型的發展,研究人員開始探索基于深度語意表示的對偶式檢索模型(dual-encoder),希望其能夠替代傳統的檢索式問答系統中級聯的檢索和排序等模塊,與基于機器閱讀理解模型的答案定位一起實作“端到端問答”,

不同于傳統的級聯式問答系統,“端到端問答”摒棄了傳統系統中繁雜的構件,系統復雜性大大降低,并且其中每個模塊(段落檢索和答案定位)都是可學習的,這樣的設計能夠讓整個系統實作端到端訓練,這意味著問答系統可以基于用戶實時的反饋實作在線訓練,而不是只在封閉的資料集上閉門造車,這是智能問答技術的發展趨勢,可能會引發問答系統的新一代技術變革,

基于此,百度從面向端到端問答的檢索模型出發,針對對偶式檢索模型訓練中存在的問題,提出了RocketQA訓練方法,并基于百度自研的預訓練模型ERNIE進行訓練,大幅提升了對偶式檢索模型的效果,為實作端到端問答邁出了重要的一步,

圖2:基于稠密向量表示的對偶模型

二、RocketQA:一種對偶式檢索模型增強訓練方法

不同于傳統的檢索模型使用基于關鍵詞的稀疏表示對問題和候選段落進行建模,基于深度語意表示的對偶式檢索模型(如圖 2 所示)通過兩個對稱的網路分別對問題和候選段落進行編碼并計算語意相似度,這樣能夠利用強大的網路結構進行更深層次的學習,同時基于預訓練語言模型,使語意理解更加豐富,在過去的作業中,對偶模型大多采用批次內負采樣 (in-batch negatives) 的方式進行訓練,將批次內其他問題的正確答案作為當前問題的錯誤答案(負例),從而減少重復計算和提高訓練效率,然而,由于檢索場景不同于常見的分類問題,對偶式檢索模型的訓練仍然存在如下的挑戰:

訓練場景和預測場景中樣本數量存在較大差異
在開放域問答的應用場景中,模型需要從大規模的候選集合中找出問題的答案,但是按照批次內負采樣的方法訓練時,每個問題的候選段落個數與批次大小相同,受到單GPU顯存大小的限制,訓練程序中見到的候選段落遠小于預測時的候選段落,從而導致模型即使在訓練時表現良好,在實際應用當中卻差強人意,

資料集中存在大量漏標注的正確答案
開放域問答場景下候選段落的數量往往非常大,標注出問題的全部正確答案幾乎是不可能的,在MSMARCO資料集中,候選段落的總數為880萬,但每個問題平均只標注了1.1個正確答案,研究人員發現,在使用對偶模型檢索出的首條結果中,70% 的錯誤結果其實是漏標的正確答案,這種情況下,構造訓練資料中的強負例時很容易引入假負例(false negative),給模型訓練帶來負面影響,

相對于開放域全集,人工標注訓練資料的規模小、成本大
盡管目前已有較多大規模的問答資料集,但是相較于開放域的用戶問題來說,仍然是冰山一角,有限的標注資料集無法覆寫到全面的領域和型別,導致模型泛化性差,想要增大標注資料的規模和質量,需要很高的人工成本,

因此百度提出了一種對偶式檢索模型的增強訓練方法RocketQA,通過跨批次負采樣、去噪的強負例采樣與資料增強三項技術,解決上述挑戰,接下來將對這三個技術進行詳細的介紹,

2.1 跨批次負采樣(cross-batch negatives)

采用傳統的批次內負采樣方法訓練時,每個問題的候選段落個數與批次大小相同,為了進一步增加訓練程序中候選段落的數量,百度提出了跨批次負采樣方法(如圖 3 所示),該方法能夠在使用多GPU并行訓練時,將其它GPU批次內的全部段落作為當前問題的負樣本,這樣可以直接復用各個GPU上已經計算好的段落表示,不額外增加計算量;同時基于飛槳分布式訓練擴展工具包FleetX的all-gather算子實作,只需要使用很少的通信量和記憶體開銷,就達到了增加每個問題候選段落的目的,隨著GPU個數的增加,每個問題的候選段落個數線性增加,訓練場景中的任務難度也更加接近真實場景,百度在MSMARCO資料集上進行了實驗,在使用跨批次負采樣后,隨著訓練時候選段落數量增加,模型的效果穩步提升(如圖 4 所示),

圖3:批次內負采樣(上)和跨批次負采樣(下)的對比

圖4:MSMARCO資料集中,訓練階段候選段落的個數對模型效果的影響

2.2 去噪的強負例采樣(denoised hard negative sampling)

在對偶模型的訓練中,適當增加訓練資料中的強負例的難度,有助于提升模型效果,一般的做法是,從一個排序的候選段落中進行采樣,越靠前的負例對模型來說難度越大,但是由于難以避免的漏標注情況,直接采樣很大概率會引入假負例,為了解決這一問題,百度使用互動模型(cross-encoder)的打分作為監督資訊進行去噪,在選擇強負例時,避開互動模型給出高置信度的樣例,相較于對偶模型,互動模型具有結構上的優勢,能夠編碼更多的互動資訊,從而給出可靠的監督信號,幫助對偶模型選取更可靠的強負例,如表1的第三行和第四行所示,去噪的強負例采樣可以顯著提升模型效果,

2.3 資料增強(data augmentation)

互動模型可以過濾強負例中的噪聲,也可以用來選取未標注的正確答案,因此,當引入大量無標注的問題時,便可以利用互動模型以極低的成本得到大量弱監督資料,進一步增強對偶模型的能力,在MSMARCO資料集的實驗中,百度引入了Yahoo!Answers和ORCAS資料集中的150萬未標注問題,用互動模型在對偶模型檢索出的候選段落上進行打分,并根據置信度選取正負樣本,如表1第四行和第五行所示,通過這種方式,對偶模型的效果得到進一步提升,

表1:MSMARCO資料集中,去噪的強負例采樣與資料增強策略對模型效果的影響

2.4 訓練流程和實驗結果

上述三項技術是層層遞進的關系,將它們整合成一套完整的訓練方法,類比多級火箭,稱之為RocketQA,其完整實作流程如圖5所示,在實作中,使用了百度研發并開源的大規模英文預訓練模型ERNIE初始化模型引數,然后使用標注資料進行微調,

圖5:RocketQA訓練流程

如表2所示,最終的實驗結果表明,RocketQA在微軟MSMARCO和谷歌Natural Question資料集的效果均大幅超過了已經發表的最好的檢索模型,同時,百度也在答案抽取任務上驗證了RocketQA檢索結果的有效性,如表3所示,在RocketQA做檢索的基礎上,使用訓練好的閱讀理解模型,百度在Natural Questions的答案抽取任務上取得了42.0的EM值,超過了已有的相關作業,而這其中的增益來自檢索效果的提升,

表2:RocketQA在微軟MSMARCO和谷歌Natural Questions資料集上段落檢索的效果

表3:RocketQA在Natural Questions資料集上做閱讀理解任務的效果

三、RocketQA在MSMARCO段落排序任務中奪得第一

MSMARCO(Microsoft Machine Reading Comprehension)是微軟提出的大規模閱讀理解資料集,包含約100萬問題、880萬相關段落以及人工標注的問題答案,資料集的問題來自Bing搜索引擎的日志, 是真實搜索場景中用戶提出的問題,段落來自Bing的搜索結果,基于MSMARCO資料集,微軟舉辦了包括閱讀理解、段落排序在內的多個問答相關任務的評測任務,由于資料集規模大、貼近真實場景,MSMARCO的各項任務已經吸引了包括Google、微軟、Facebook、阿里巴巴等知名企業,以及清華、CMU等國內外著名高校的參與,如圖6所示,百度基于 RocketQA檢索模型的結果進一步訓練了段落重排序模型,在MSMARCO的段落排序(Passage Ranking)任務中排名第一,超越了谷歌、微軟、Facebook、阿里、美團、卡內基梅隆大學、清華大學、滑鐵盧大學等企業和高校,

圖6:微軟MSMARCO Passage Ranking資料集leaderboard截圖

四、飛槳分布式訓練加持RocketQA

飛槳框架通過持續迭代升級,在分布式訓練方面真正做到了從產業實踐中來,回到開源社區和產業實踐中去,在飛槳框架最新版本中,分布式訓練繼承了之前版本高性能、高擴展的能力,在易用性方面進行了精心的優化,

paddle.distributed.fleet是飛槳框架2.0新API體系下通用分布式訓練API,千億規模稀疏引數服務器和大規模GPU多機多卡訓練都可以通過幾行代碼輕松配置完成,DistributedStrategy作為用戶配置并行策略的統一入口,支持大規模異步訓練、自動混合精度、深度梯度壓縮、重計算、梯度累計、計算算子自動融合、通信梯度智能融合以及自動并行等功能,極大的滿足了研究人員日常訓練的加速需求,飛槳框架的最新版本同時也開放了能夠面向高級編程用戶的分布式底層通信介面paddle.distrbuted,使用戶能夠自主構建諸如自動并行、模型并行等高級并行訓練功能,目前,飛槳大規模分布式訓練已經在百度日常業務中進行過深入錘煉,并每天都在根據業務的痛點進行改進和優化,

RocketQA的實作完全基于飛槳深度學習框架,特別在研發演算法的程序中飛槳的高性能并行訓練助力了各種想法的快速嘗試,研究人員在使用飛槳官方提供的paddle.distributed.fleet進行訓練的同時,也采用了飛槳分布式訓練擴展工具 FleetX,FleetX作為飛槳框架分布式訓練擴展工具,提供資料分片并發下載,快速定義模型,快速提交集群任務等功能,極大的提升了研發人員的使用效率,RocketQA采用paddle.distributed.fleet API提供的經典資料并行訓練方案,并采用自動混合精度、算子融合進行縱向擴展性的提升,同時采用梯度融合,計算與通信自動并發等策略提升橫向的擴展性,從而大幅度提升實驗效率,

為了實作RocketQA的跨批次負采樣,對單卡能夠見到的負樣本規模有較大的需求,研究人員使用了飛槳paddle.distributed提供的底層集合通信操作all-gather算子,將資料并行訓練中各塊卡的隱層向量進行匯總,擴大單卡可以見到的負例數量達到GPU卡數倍;為了進一步增加每塊卡可以見到的全域負例樣本,研究人員還使用了重計算(recompute)策略,該策略以20%左右的計算開銷將整個模型的訓練使用的顯存占用從O(N)降低到O(LogN),在該模型中使用Recompute使訓練資料批次大小提升5倍以上,對訓練計算圖的改寫結果如圖7所示,這樣,跨批次負采樣方法與傳統的純資料并行方法相比,實作了負例數量5xGPU卡數的倍數增長,從而加快了收斂速度和收斂效果,

圖7:Multi-Head Self Attention利用重計算后的計算圖

五、總結

百度提出的RocketQA訓練方法,通過對經典對偶模型進行優化訓練,顯著提升了模型的檢索能力,為實作端到端問答邁出了重要一步,目前,RocketQA已逐步應用在百度搜索、廣告等核心業務中,并將在更多場景中發揮作用,

百度自然語言處理(Natural Language Processing,NLP)以『理解語言,擁有智能,改變世界』為使命,研發自然語言處理核心技術,打造領先的技術平臺和創新產品,服務全球用戶,讓復雜的世界更簡單,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232623.html

標籤:其他

上一篇:視頻教程|3D版切水果游戲開發實戰8:專案發布

下一篇:微軟買下 GitHub 后,又做了個開源網站!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more