0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一個任務通用的的指令微調Embedder!

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 2023-09-05 17:13 ? 次閱讀

隨著指令微調模型的發(fā)展,開始有人思考既然指令微調可以用來提升語言模型的性能,那么是否也可以用類似的方法來提升文本嵌入模型的性能呢?于是本文作者提出了INSTRUCTOR,這個模型設計了一種通用的Embedder,使得文本嵌入表示能更好地遷移到新的任務和領域,而不需要額外的訓練。這個想法也是很有意思的,具體的請看下文吧~

背景介紹

現(xiàn)有的文本嵌入表示方法在應用到新的任務或領域時,通常性能都會受損,甚至應用到相同任務的不同領域也會遇到同樣的問題。常見的解決辦法是通過針對下游任務和領域的數(shù)據(jù)集進一步微調文本嵌入,而這個工作通常需要大量的注釋數(shù)據(jù)。

本文提出的INSTRUCOR(Instruction-basedOmnifariousRepresentations)不需要針對特定任務或領域進行微調就可以生成輸入文本的嵌入。該模型在70個嵌入評價數(shù)據(jù)集上表現(xiàn)比SOTA嵌入模型平均要高3.4%。INSTRUCTOR和以往的模型不同,它向量表示不僅包含輸入文本還有端任務和領域的指令。并且針對不同的目標,對于同一個輸入文本,INSTRUCTOR會將輸入表示為不同的嵌入。例如圖1中Who sings the song “Love Story”?會根據(jù)不同的任務被表示為不同的嵌入。

4f45d04e-4bca-11ee-a25d-92fbcf53809c.png



如圖2所示,INSTRUCTOR是在MEDI上進行訓練的,MEDI是我們的330個文本嵌入數(shù)據(jù)集的新集合,新標注了人工編寫的任務指令。我們在所有數(shù)據(jù)集上使用對比損失來訓練INSTRUCTOR,從而最大化語義相關文本對之間的相似性,同時最小化不相關文本對的相似性。

4f5c74ca-4bca-11ee-a25d-92fbcf53809c.png

INSTRUCTOR

結構

INSTRUCTOR基于單個Encoder來設計,使用GTR系列模型作為框架(GTR-Base for INSTRUCTOR-Base,GTR-Large for INSTRUCTOR,GTR-XL for INSTRUCTOR-XL)。GTR模型使用T5進行初始化。不同大小的GTR使得我們指令微調嵌入模型的表現(xiàn)也不同。給定一個輸入文本以及任務指令,INSTRUCTOR將他們組合成,然后通過對的最后一個隱藏表征進行均值池化來生成固定大小、特定任務的嵌入。

訓練目標

通過將各種任務轉為文本到文本的方式來訓練INSTRUCTOR,給定輸入,需要去區(qū)分好/壞候選輸出,其中訓練樣本對應于元組,其中和分別是與和相關的指令。例如,在檢索任務中,是查詢,好/壞是來自某個文檔的相關/不相關文檔。

輸入的候選的好由相似度給出,即它們的INSTRUCTOR嵌入之間的余弦:

4fe1e2e0-4bca-11ee-a25d-92fbcf53809c.png

最大化正樣本對之間的相似度,并最小化負樣本對之間的相似度,其中表示每個正樣本對的負樣本對的數(shù)量,訓練目標:

4ffd363a-4bca-11ee-a25d-92fbcf53809c.png

其中是softmax的溫度,是和的并集。此外還加入了雙向批內采樣損失。

MEDI: Multitask Embedding Data with Instructions

MEDI(MultitaskEmbeddingsData withInstructions)是我們由330個數(shù)據(jù)集構造而成,該數(shù)據(jù)集包含不同任務和領域的指令。

數(shù)據(jù)構造:使用來自super-NI的300個數(shù)據(jù)集,另外30個來自現(xiàn)有的為嵌入訓練設計的數(shù)據(jù)集。super-NI數(shù)據(jù)集附帶自然語言指令,但不提供正負樣本對。我們使用Sentence-T5嵌入來構建樣本對,用表示。對于分類數(shù)據(jù)集,我們基于輸入文本嵌入計算樣本之間的余弦相似度。如果兩樣本具有相同的類標簽,則使用與高度相似的示例創(chuàng)建一個正樣本對,如果標簽不同,則創(chuàng)建一個負樣本對。對于輸出標簽為文本序列的其余任務,首先計算以下分數(shù):

500fdc9a-4bca-11ee-a25d-92fbcf53809c.png

選擇最高的樣本作為正樣本對,并選擇具有最高的作為負樣本對。其他30個嵌入訓練數(shù)據(jù)集來自Sentence Transformers embedding data、KILT、MedMCQA。這30個數(shù)據(jù)集已經(jīng)包含正樣本對;其中MSMARCO和Natural Questions也包含負樣本對。我們在模型微調過程中使用了4個負樣本對。

指令注釋:每一個MEDI的實例都是一個元組。為了引入指令,我們設計了一個統(tǒng)一的指令模板:

  • 文本類型:指定輸入文本的類型。例如,對于開放域QA任務,查詢的輸入類型是問題,而目標的輸入類型是文檔。
  • 任務目標(可選項):描述輸入文本在該任務中如何使用。
  • 領域(可選項):描述任務領域

最終的指令格式:“REPRESENT THE(DOMAIN)TEXT TYPEFORTASK OBJECTIVE:."

實驗

用MEDI數(shù)據(jù)集對INSTRUCTOR進行訓練,并在70個下游任務對其進行評估。使用了MTEB基準,該基準由7個不同任務類別(如分類、重新排序和信息檢索)的56個數(shù)據(jù)集組成。然后,我們進一步將INSTRUCTOR應用于上下文學習和文本生成評估的提示檢索。在三種設置中,INSRTUCTOR都達到了最先進的性能。

5023dec0-4bca-11ee-a25d-92fbcf53809c.png

正如預期的那樣,基于檢索的模型(如GTR-XXL)在檢索和重排序方面表現(xiàn)出較強的性能,但在STS和分類方面明顯落后。相反,基于相似性的模型(例如,Sent-T5-XXL)在STS、分類和文本評估方面表現(xiàn)良好,但在檢索方面表現(xiàn)不佳。這表明,這些基線傾向于生成只擅長某些任務的專門嵌入,而INSTRUCTOR提供了在不同任務類別上表現(xiàn)良好的通用嵌入。

分析以及消融實驗

指令的重要性

我們將MEDI劃分為對稱和非對稱組,然后對每個組進行有指令和沒有指令的訓練。實驗結果如圖3所示,結果表明如果數(shù)據(jù)是對稱的或非對稱的,在沒有指令的情況下進行微調的INSTRUCTOR的性能與原始GTR相近或更好。但是,使用指令微調使模型能夠從對稱和非對稱數(shù)據(jù)的組合中獲益。這體現(xiàn)了指令微調的重要性。

504ff348-4bca-11ee-a25d-92fbcf53809c.png

指令的魯棒性

我們?yōu)樗性u估數(shù)據(jù)集編寫了五個意譯指令,并測量了表現(xiàn)最佳和表現(xiàn)最差的指令之間的INSTRUCTOR的性能差距。圖4表明,包含300個super-NI數(shù)據(jù)集對INSTRUCTOR的魯棒性至關重要。從訓練中刪除這些數(shù)據(jù)集(沒有super-NI)大大增加了表現(xiàn)最好和最差的指令之間的性能差距,這表明super-NI的多樣化指令有助于模型處理不同的格式和風格。

50738344-4bca-11ee-a25d-92fbcf53809c.png

指令的復雜程度

我們考慮了四個層次的指令復雜性:N/A(無指令)、數(shù)據(jù)集標簽、簡單指令和詳細指令。在數(shù)據(jù)集標簽實驗中,每個示例都附有其數(shù)據(jù)集名稱。例如,在Natural Questions數(shù)據(jù)集上,查詢格式為"Natural Questions; Input: who sings the song Love Story").。在簡單的指令實驗中,我們使用一兩個單詞來描述域(例如,對于Natural Questions數(shù)據(jù)集,輸入查詢是Wikipedia Questions;輸入是who sings the song Love Story)。圖5表明使用瑣碎的數(shù)據(jù)集標簽,INSTRUCTOR也優(yōu)于原始的GTR模型,說明了指令在不同訓練中的有效性。隨著提供的信息越來越多,我們觀察到持續(xù)的改進。

5092a918-4bca-11ee-a25d-92fbcf53809c.png

模型大小和指令微調

圖6展示了比較不同大小的模型的平均性能。隨著編碼器transformer模型的擴大,GTR和INSTRUCTOR的性能都在不斷提高。盡管如此,INSTRUCTOR的改進更加明顯,這可能是因為帶有指令的嵌入受益于更大的容量。這意味著大模型在計算各種領域和任務類型中的文本時更加一般化。

50cf87ac-4bca-11ee-a25d-92fbcf53809c.png

指令的域轉移

基于指令微調的一個優(yōu)點是,它提高了模型泛化到不可見領域和任務的能力。為了證明這種有效性,我們研究了三個unseen的INSTRUCTOR沒有受過訓練的領域:地理、生物和民間評論。如表3所示,INSTRUCTOR在所有三個領域上極大地提高了GTR-Large的性能(高于平均水平),這表明當將模型應用于不可見或不常見的領域時,指令可以提供更多幫助。

50f8b5fa-4bca-11ee-a25d-92fbcf53809c.png

消融實驗

我們使用T-SNE來可視化兩個有和沒有指令的分類示例。如圖7所示,情感相同的點對距離更近,而情感不同的點對距離更遠。

511ecfd8-4bca-11ee-a25d-92fbcf53809c.png

總結

本文的貢獻有兩點:

  1. 提出了INSTRUCTOR,一個使用自然語言指令創(chuàng)建廣泛適用的文本嵌入的單模型。大量實驗表明INSTRUCTOR在文本嵌入測試中達到了最先進的性能。
  2. 構建了MEDI數(shù)據(jù)集。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3121

    瀏覽量

    48663
  • 數(shù)據(jù)集

    關注

    4

    文章

    1201

    瀏覽量

    24622
  • 自然語言
    +關注

    關注

    1

    文章

    286

    瀏覽量

    13321

原文標題:ACL2023 | 一個任務通用的的指令微調Embedder!

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問不同藍牙模塊指令通用嗎?

    請問所有不同型號藍牙模塊的指令集都是通用的嗎?
    發(fā)表于 05-31 01:14

    通用變頻器電壓輸入頻率指令

    通用變頻器電壓輸入頻率指令
    發(fā)表于 04-09 17:47 ?982次閱讀
    <b class='flag-5'>通用</b>變頻器電壓輸入頻率<b class='flag-5'>指令</b>圖

    通用變頻器用電流輸入頻率指令

    通用變頻器用電流輸入頻率指令
    發(fā)表于 04-09 18:04 ?1135次閱讀
    <b class='flag-5'>通用</b>變頻器用電流輸入頻率<b class='flag-5'>指令</b>圖

    基于ARM指令集的通用DSP中指令相關處理方法

    基于ARM指令集的通用DSP中指令相關處理方法_王旭
    發(fā)表于 01-07 21:28 ?0次下載

    任務如何擁有自己的CPU

    任務有下面的特性:任務并不是隨時都可以運行的,而已經(jīng)運行的任務并不能保證直占有 CPU 直
    的頭像 發(fā)表于 05-14 15:01 ?2547次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>任務</b>如何擁有自己的CPU

    文本分類任務的Bert微調trick大全

    ,bert等預訓練模型煉丹定程度的時候很難有所提升,分數(shù)達到了瓶頸,這個時候需要針對具體的任務如何進行微調使用,就涉及到了考經(jīng)驗積累的tricks。 這篇論文做了非常大的充足實驗,為我們提供了寶貴的BERT
    的頭像 發(fā)表于 07-18 09:49 ?2444次閱讀

    MELSEC iQ L編程手冊(CPU模塊用指令/通用FUN/通用FB篇)

    MELSEC iQ-L 編程手冊(CPU模塊用指令/通用FUN/通用FB篇) 產(chǎn)品規(guī)格書
    發(fā)表于 08-26 11:06 ?0次下載
    MELSEC iQ L編程手冊(CPU模塊用<b class='flag-5'>指令</b>/<b class='flag-5'>通用</b>FUN/<b class='flag-5'>通用</b>FB篇)

    谷歌提出Flan-T5,模型解決所有NLP任務

    這里的Flan指的是(Instruction finetuning),即"基于指令微調";T5是2019年Google發(fā)布的語言模型了。注意這里的語言模型可以進行任意的替換
    的頭像 發(fā)表于 11-24 11:21 ?1397次閱讀

    GLoRA:種廣義參數(shù)高效的微調方法

    了卓越的能力。 ? 本文提出了 廣義LoRA (GLoRA),通用參數(shù)高效微調任務的先進方法。增強低秩適應(LoRA), GLoRA 采用 廣義提示模塊優(yōu)化 預訓練模型權重并調整中間層激活函數(shù),為不同的
    的頭像 發(fā)表于 06-27 16:53 ?716次閱讀
    GLoRA:<b class='flag-5'>一</b>種廣義參數(shù)高效的<b class='flag-5'>微調</b>方法

    基于完整的 LLM 訓練流程

    ? ? 在這篇文章中,我們將盡可能詳細地梳理完整的 LLM 訓練流程。包括模型預訓練(Pretrain)、Tokenizer 訓練、指令微調(Instruction Tuning)
    的頭像 發(fā)表于 06-29 10:08 ?1877次閱讀
    基于<b class='flag-5'>一</b><b class='flag-5'>個</b>完整的 LLM 訓練流程

    FreeRTOS任務通知通用發(fā)送函數(shù)

    發(fā)送任務通知 任務通知通用發(fā)送函數(shù) 任務任務通知發(fā)送函數(shù):xTaskNotify()、xTaskNotifyGive()和xTaskNot
    的頭像 發(fā)表于 07-30 11:43 ?695次閱讀
    FreeRTOS<b class='flag-5'>任務</b>通知<b class='flag-5'>通用</b>發(fā)送函數(shù)

    怎樣使用QLoRA對Llama 2進行微調呢?

    使用QLoRA對Llama 2進行微調是我們常用的方法,但是在微調時會遇到各種各樣的問題
    的頭像 發(fā)表于 09-22 14:27 ?1660次閱讀
    怎樣使用QLoRA對Llama 2進行<b class='flag-5'>微調</b>呢?

    任務微調框架MFTCoder詳細技術解讀

    MFTCoder具備高效訓練特征,包括提供高效的數(shù)據(jù)Tokenization模式和支持PEFT微調,能有效提升微調訓練速度并降低對資源的需求。
    的頭像 發(fā)表于 11-17 17:17 ?970次閱讀
    多<b class='flag-5'>任務</b><b class='flag-5'>微調</b>框架MFTCoder詳細技術解讀

    四種微調大模型的方法介紹

    微調(Full Fine-tuning):全微調是指對整個預訓練模型進行微調,包括所有的模型參數(shù)。在這種方法中,預訓練模型的所有層和參數(shù)都會被更新和優(yōu)化,以適應目標任務的需求。
    發(fā)表于 01-03 10:57 ?2.3w次閱讀
    四種<b class='flag-5'>微調</b>大模型的方法介紹

    大模型為什么要微調?大模型微調的原理

    難以達到最佳性能。為了提升模型在特定任務上的表現(xiàn),微調(Fine-tuning)成為了關鍵步驟。本文將詳細探討大模型為什么要進行微調以及
    的頭像 發(fā)表于 07-10 10:43 ?3308次閱讀