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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

全网首个OpenPrompt尝鲜报告:Prompt研究者必备实验利器

發布時間:2024/10/8 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全网首个OpenPrompt尝鲜报告:Prompt研究者必备实验利器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?PaperWeekly 原創 ·?作者 | 李國躉

學校 | 浙江大學碩士生

研究方向 | 少樣本學習

前言

THUNLP 團隊前不久發布了 OpenPrompt 工具包和相關技術報告,筆者迫不及待上手嘗試了一下,特意撰寫此文來報告一下作為研究人員的使用感受。

本文將結合作者發布的技術報告以及個人使用感受向大家分享和介紹這個強大易用的 Prompt Learning 工具包。

主要分為四個部分:

  • 為什么我們需要 Prompt 工具包?

  • OpenPrompt 是什么?

  • OpenPrompt 的優勢:為什么我們需要 OpenPrompt?

  • Next Step towards PromptCenter:不僅僅是 OpenPrompt

為什么我們需要Prompt工具包?

從 LAMA 和 GPT-3 起,Prompt Learning 在近兩年開始飛速發展,涌現了一大批優秀的論文,粗略總結下可以分為 few-shot learning 和 parameter-efficient learning 兩種應用場景。

盡管開源社區有很多相關論文的優秀實現,但是基于以下理由,我們仍然需要一個針對初學者可以開箱即用,對于研究者可以方便修改迭代,對于工業界容易部署的 Prompt 工具包。

  • Prompt learning 的性能并不是很穩定,需要考慮諸多的因素,諸如? template 和 verbalizer 的設計,tunable token 和 label words 的初始化和預訓練模型的選擇等。

  • 一些 Prompt 的工作仍基于傳統 fine-tuning 的代碼模版,用最小的更改成本來實現 Prompt learning,代碼耦合程度較高,缺乏可讀性和可復現性。

從上述兩個因素看,作為 Prompt learning 的研究者而言,我們急需一個能夠穩定實現各種經典的 Prompt learning 方法,同時對不同策略可以靈活配置,不同模塊靈活組合的開源工具包。

于是,OpenPrompt 出現了。

OpenPrompt到底是什么?

回顧 Prompt learning 的幾個關鍵流程,我們可以總結出 Prompt learning 一般可以分為以下步驟:1)選擇預訓練模型;2)設計 template;3)設計 verbalizer:確定答案空間;4)確定 tuning 策略。每個步驟中我們又需要考慮若干因秦,諸如設計 soft 還是 hard 或者 hybrid 的模版,soft token 怎么初始化,tuning 策略是什么等。

Open Prompt 就是這樣一個覆蓋 Prompt learning 全生命周期的工具包,提供了一套完整的 pipeline 以及每個 step 中靈活配置的模塊。

從上圖不難看出,OpenPrompt 提供一套完整的 Prompt Learning Pipeline,而其中每個 class 都繼承了 torch 的類或者 huggingface 的類來實現,完美兼容最流行的深度學習框架和最流行的預訓練模型框架,在代碼風格和 pipeline 設計上也是完美貼合 huggingface 框架,讓研究者可以以最少的學習成本上手和修改。

下面,筆者通過一個 example 來講解整個框架的運行流程。

首先是一些基本的設置:

  • 定義 tokenizer,然后用 PromptTokenizer 包起來,PromptTokenizer 中實現了額外的一些輔助方法;

  • 定義 template:按照需要選擇 soft,或者 hard,或者 hybrid,每個都有相應的類;

  • 定義 verbalizer:同樣按照需要可以選擇 soft,或者 hard 等;

  • 定義 model:一般有兩種,PromptForClassification 和? PromptForGeneration,當然里面要傳入預訓練模型,可以是 BERT,也可以是 T5,還要傳入定義的 template 和 verbalizer。

然后就是數據的流動:raw text 被包成一個個 InputExamp|e,并送到 template中按照 template 進行“改造”,改造后的 example(被叫做 wrapped example)送到 tokenizer 中,最后組織成 dataset。dataloader 從 dataset 中取出一個個? batch 送入預訓練模型中進行 tuning(可以選擇是否 freeze 預訓練模型)并進行優化。聽起來是不是很簡單?實際流程也是和傳統的寫法并無二致。

當然,和 huggingface 一樣,作者除了上述寫法,還提供了 PromptTrainer 這種封裝的更好的寫法,使用習慣也和 huggingface 一樣,沒有太大學習成本。

值得一提的是,作者也提供了一種小樣本設置的 DataSampler,即從數據集中采少量樣本來模擬小樣本環境。

OpenPrompt的優勢:為什么我們需要 Open Prompt?

剛剛知道 OpenPrompt 的時候,我對這個工具包還有些許不屑,覺得多半是現有方法的簡單集成,我不禁在想,雖然我們需要 Prompt 工具包,可為什么一定要用?OpenPrompt?

仔細了解和使用了 OpenPrompt 以后,我對 OpenPrompt 的設計贊不絕口,下面分享下我的一些個人感受。

什么模塊化設計,容易配置和靈活修改,適用于生成和分類任務,集成了各種? prompt 的優點我就不說了,讓我覺得井常妙的一點是作者提出的: Template Language

實際上,prompt learning 發展到現在,有各種各樣的 template 和 template 組合。在做實驗的時候,設計各種各樣的 template 的實現成本是比較高的,很難實現快速迭代和嘗試。為了解決這一痛點,作者設計一種 template language 來統一各種各樣的 template 設計,然后用一個統一的函數去解析 template。

上圖展示了一些具體的例子,大家可以看論文了解詳情。具體來說,template language 有這些功能:

  • 利用 Python 的 dict 的 key-value 形式表示 template,每個 dict 表示一個特殊的節點及其描述。

  • meta 標簽表示了一些特殊的 slot,填入對應的輸入,比如 {"meta":"premise"} 表示這個 slot 填入的是 premise sentence。

  • shortenable 標簽表示了該 slot 在面臨預訓練模型輸入長度限制時能否被截斷,比如一些特殊的 token 就不能被截斷,而一些輸入句子是可以被截斷的。

  • soft 標簽指定當前位置是 soft token,其 value 表示用什么詞進行初始化,duplicate 表示 soft token 在該位置周圍重復多少次。soft id 標簽則指如果兩個? soft token 有相同的 soft id,則共享 word embedding。

  • mask 標簽則表示此位需要被預測,post_ processing 標簽則表示該位置的內容可以傳入一個函數去后處理。

從以上筆者的介紹可以看出 template language 的強大之處!這也是我覺得該工具包最大的亮點之一。

Next Step towards PromptCenter:不僅僅是OpenPrompt

盡管 OpenPrompt 已經很強大,作者并不局限于構建這樣一個集成了各種? prompt 的工具包。該工具的作者在智源社區的分享會提到了下一步的想法,這里我不再贅述,給大家分享其中一張 PPT,則可以窺見一二。

回顧 SPoT 這篇工作,把一個 unified 的 task 形式(seq2seq)和一個強大的生成模型(T5)作為基礎,在 multi-task 上預訓練的各個 prompt 可以在下游任務上有無限的可能。

我們有理由相信,在不遠的未來,有了 Prompt Center 這一強大的工具,融合各種預訓練的 prompt,應用在各種下游任務上,將進一步激發 prompt learning?的實力。

特別鳴謝

感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。

更多閱讀

#投 稿?通 道#

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

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

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

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

📝?稿件基本要求:

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

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

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

📬?投稿通道:

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

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

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

△長按添加PaperWeekly小編

🔍

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

進入知乎首頁搜索「PaperWeekly」

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

·

總結

以上是生活随笔為你收集整理的全网首个OpenPrompt尝鲜报告:Prompt研究者必备实验利器的全部內容,希望文章能夠幫你解決所遇到的問題。

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