日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SimBERTv2来了!融合检索和生成的RoFormer-Sim模型

發布時間:2024/10/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SimBERTv2来了!融合检索和生成的RoFormer-Sim模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?PaperWeekly 原創 ·?作者|蘇劍林

單位|追一科技

研究方向|NLP、神經網絡

去年我們放出了 SimBERT [1] 模型,它算是我們開源的比較成功的模型之一,獲得了不少讀者的認可。簡單來說,SimBERT 是一個融生成和檢索于一體的模型,可以用來作為句向量的一個比較高的 baseline,也可以用來實現相似問句的自動生成,可以作為輔助數據擴增工具使用,這一功能是開創性的。

近段時間,我們以 RoFormer 為基礎模型,對 SimBERT 相關技術進一步整合和優化,最終發布了升級版的 RoFormer-Sim 模型。

簡介

RoFormer-Sim 是 SimBERT 的升級版,我們也可以通俗地稱之為 “SimBERTv2”,而 SimBERT 則默認是指舊版。從外部看,除了基礎架構換成了 RoFormer 外,RoFormer-Sim 跟 SimBERT 沒什么明顯差別,事實上它們主要的區別在于訓練的細節上,我們可以用兩個公式進行對比:

除此之外,RoFormer-Sim 用到了更多的訓練數據,并且拓展到了一般句式,也就是說,不同于 SimBERT 僅僅局限于疑問句,RoFormer-Sim 可以用來做一般句子的相似句生成,適用場景更大。其他訓練細節還包括 RoFormer-Sim 用了更大的 batch_size 和 maxlen 等,這些在后面我們都會進一步介紹。

開源地址:

https://github.com/ZhuiyiTechnology/roformer-sim

語料

SimBERT 和 RoFormer-Sim 的關鍵之處,都是在于訓練語料的構建。RoFormer-Sim 的訓練語料包括兩部分:1)疑問類型相似句;2)通用類型相似句。對于疑問類相似句,我們還是像 SimBERT 一樣,通過收集百度知道的相似問句,然后通過規則進一步清洗,這部分對我們來說已經很成熟了;對于通用類相似句,我們沒有現成的地方可以搜集,于是我們提出了兩種方案,一定程度上可以無監督地構建(偽)相似句對。

第一個方案是基于“同一個問題的答案是相似的”思想,假如我們有現成的問答語料,該語料對于同一個問題有多個答案,那么我們可以將每個答案分句,然后用一個現成的相似度函數來比較答案之間的相似度,挑出相似度超過某個閾值的句對作為相似句對使用;

第二個方案則是基于“同一篇章的句子是相似的”思想,它更加簡單直接一點,就是將每個篇章分句,然后用一個現成的相似度函數兩兩計算相似度,挑出相似度超過某個閾值的句對作為相似句對使用,顯然該方案的合理性更弱,所以它的閾值也更高。

這里涉及到一個“現成的相似度函數”,我們是直接使用 Jaccard 相似度的一個變體,換言之只需要一個規則的、字符級別的相似度就好了,語義上的關聯,則通過篇章內部的關聯以及預訓練模型本身的泛化能力來獲得。

通過第一個方案,我們從幾個閱讀理解數據集中構建了約 450 萬個(偽)相似句對;通過第二個方案,我們從 30 多 G 的平行預料中構建了約 470 萬個(偽)相似句對;而爬取的問句則達到了約 3000 萬個相似句組(一組可以構成多對)。從這個角度看來,問句的數目是遠超于一般句式的,所以我們按照 1:1 的方式從中采樣,使得每種句式的樣本都均衡。

生成

RoFormer-Sim 的訓練方式跟 SimBERT 基本一樣,如下圖所示。稍微不同的是,為了增強模型的生成能力,在構造訓練語料的時候,我們還隨機地將輸入句子的部分 token 替換為[MASK],這種預訓練方法首先由 BART 提出。而我們跟 BART 的區別在于:BART 是“輸入帶噪聲的句子,輸出原句子”,我們是“輸入帶噪聲的句子,輸出原句子的一個相似句”,理論上我們的任務還更難。

▲ SimBERT訓練方式示意圖

生成效果沒什么特別好的評測指標,我們直接目測一些例子就好:

gen_synonyms(u'廣州和深圳哪個好?') ['深圳和廣州哪個好?','廣州和深圳哪個好','廣州和深圳哪個更好?','深圳和廣州哪個更好?','深圳和廣州,那個更好?','深圳和廣州哪個好一些呢?','深圳好還是廣州好?','廣州和深圳哪個地方好點?','廣州好還是深圳好?','廣州和深圳哪個好一點','廣州和深圳哪個發展好?','深圳好還是廣州好','深圳和廣州哪個城市更好些','深圳比廣州好嗎?','到底深圳和廣州哪個好?為什么呢?','深圳究竟好還是廣州好','一般是深圳好還是廣州好','廣州和深圳那個發展好點','好一點的深圳和廣州那邊好?','深圳比廣州好在哪里?' ]gen_synonyms(u'科學技術是第一生產力。') ['科學技術是第一生產力!','科學技術是第一生產力','一、科學技術是第一生產力。','一是科學技術是第一生產力。','第一,科學技術是第一生產力。','第一生產力是科學技術。','因為科學技術是第一生產力。','科學技術是第一生產力知。','也即科學技術是第一生產力。','科學技術是第一生產力嗎','科技是第一生產力。','因此,科學技術是第一生產力。','其次,科學技術是第一生產力。','科學技術才是第一生產力。','科學技術是第一生產力嗎?','第二,科學技術是第一生產力。','所以說科學技術是第一生產力。','科學技術確實是第一生產力。','科學技術還是第一生產力','科學技術是第一生產力對嗎?' ]

總的來說,初步實現了任意句式的相似擴增,但問句的擴增效果優于一般句型,這是因為訓練語料中問句的質量就明顯高于一般句型。由于進行了仿 BART 式訓練,所以除了直接進行相似句生成外,我們還可以自行把某些部分 mask 掉,讓模型自行發散擴充,比如:

gen_synonyms(u'科學技術是第一生產力。',?mask_idxs=[6,?7])??#?mask掉“第一” ["科學技術是第一生產力","2、科學技術是第一生產力。","科學技術是第一生產力,也是第二生產力。","科學技術是第一生產力,科學發展是第二生產力。","9、科學技術是第一生產力。","第一,科學技術是一種生產力。","科學技術是生產力。","科學技術是第二生產力。","科學技術是第一生產力”現在提出來的。","一、科學技術是一種生產力。","科學技術是第一生產力是什么意思","科學技術是一種主要生產力。","一:科學技術是最高生產力。","指科學技術不是第一生產力。","科學技術是第二生產力,第一生產力又是第二生產力。","二、科學技術是一種生產力。","世界上第一種生產力是科學技術。","科學技術是社會主義生產力之一。","第二,科學技術也是第二生產力。","科技是一切生產力。" ]

更多玩法,請大家自行挖掘了。

檢索

增加一般句式的語料、引入仿 BART 式訓練,這些改動都相對來說提升了生成模型的效果。然而,我們意外地發現,檢索模型(即句子編碼模型)的效果卻降低了。估計的原因,可能是更多的語料、更大的噪聲雖然加大了生成模型的難度,但對于對比學習來說,這些不同句式的或者帶噪聲的樣本作為負樣本,反而是難度降低了。比如,如果一個 batch 同時有疑問句和陳述句,那么模型可以簡單地通過句式(而不是語義)就可以識別出不少負樣本,從而降低了對語義的理解能力。

當然,SimBERT 和 RoFormer-Sim 的本質定位都是相似句擴增模型,檢索模型只是它的“副產品”,但我們仍然希望這個“副產品”能盡可能好一些。為此,我們在 RoFormer-Sim 訓練完之后,進一步通過蒸餾的方式把 SimBERT 的檢索效果轉移到 RoFormer-Sim 上去,從而使得 RoFormer-Sim 的檢索效果基本持平甚至優于 SimBERT。蒸餾的方式很簡單,假如對于同一批句子,SimBERT 出來的句向量為 ,RoFormer-Sim 出來的句向量為 ,那么就以:

為 loss 進行學習,這里 。當然,為了防止模型“遺忘”掉生成模型,蒸餾的同時還要加上生成損失,即 。蒸餾不需要很多步,大致 5000 步左右就可以訓練完成了。

跟無監督語義相似度哪家強?我們做了個比較全面的評測一樣,我們用同樣的任務對比了 SimBERT 和 RoFormer 的檢索效果(其中每一格的三個數據,分別代表“不加 whitening”、“加 whitening”、“加 whitening-256”的效果,同之前的評測):

從表中可以看出,不管加不加 whiteining,RoFormer-Sim 在大部分任務上都超過了 SimBERT,可見蒸餾之后的 RoFormer-Sim 的檢索效果確實能獲得提高,這個“副產品”也不至于太差了。

總結

本文介紹和發布了我們 SimBERT 的升級版—— RoFormer-Sim(SimBERTv2),它既可以用來擴充相似句子,也是語義相似度問題的一個較高的 baseline。相比 SimBERT,它最大的特點是將句型拓展到了一般類型,不再局限于相似問句。更多的玩法歡迎讀者進一步挖掘和分享。

參考文獻

[1] https://kexue.fm/archives/7427

更多閱讀

#投 稿?通 道#

?讓你的文字被更多人看到?

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析科研心得競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。

?????稿件基本要求:

? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?

? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題

? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算

?????投稿通道:

? 投稿郵箱:hr@paperweekly.site?

? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者

? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿

△長按添加PaperWeekly小編

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結

以上是生活随笔為你收集整理的SimBERTv2来了!融合检索和生成的RoFormer-Sim模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。