精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

探討 | 大模型在傳統NLP任務的使用姿勢

發布于 2024-6-27 15:14
瀏覽
0收藏

寫在前面

以chatgpt為起始節點的大模型技術經過了兩年左右的發展,大致沉淀了一些較為確定的研究領域。首先是基座大模型的研究,主要是國內外大廠集中大量財力、人力、算力進行大模型軍備競賽,企圖將大模型的基礎能力(包括推理能力)上限逐步提升到更高的層次。當然也有一些研究機構致力于改進transformer的架構或者提出其他更先進的基礎模型結構,在性能或者效率上做文章,例如MOE,Mamba等;多模態模型,讓大模型同時能夠理解并生成圖像、音頻、視頻、文字等多種模態的信息,例如大火的Sora。其次是大模型的微調對齊研究,主要是基座大模型通過指令微調、強化學習等技術將其變成一個應用友好、用戶友好的能力模型,也可以將模型長文本、長上下文能力的提升也包含在該方向內;另外,還有大模型的高效部署和推理計算,在降低大模型服務成本的同時,提升大模型服務的實時性,提升用戶體驗;最后,則是大模型在各種細分場景領域的應用落地,能夠將大模型封裝成一個成熟的應用產品,真正的將大模型用起來,當然也可以將agent相關的技術研究歸納在這個方向上,因為agent的目標就是將大模型的能力充分利用起來,幫助人類更好地使用大模型。詳見下圖所示:

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

本人目前主要精力集中在大模型的應用落地,對大模型在傳統NLP應用任務上的效果非常感興趣。正好前段時間,有潛在客戶希望我們研究是否能夠通過大模型提升新聞事件分類的效果。借著這個機會,我對大模型在文本分類任務上的應用方式和對應效果進行了研究,有了一些初步的結論。本文希望通過描述上述研究過程與結果,總結出大模型在文本分類任務上的最佳實踐,并推廣到更多類似的應用上,為業界做大模型應用時提供一些落地的參考。

應用場景分類

在談具體的研究內容前,需要先明確一下研究的問題類型。目前對于可能會應用到大模型的傳統NLP應用,我自己將其分為兩種不同的情況:

(1)開荒式業務場景。這種場景主要出現在那些剛剛完成數字化還未進行智能化的機構、或者業務場景本身比較復雜、傳統技術無法在該場景中匹配最低的用戶使用體驗要求的情況。特點:數據積累不成熟(也就是沒有足夠的訓練語料用于場景專用模型的訓練)、硬件資源不足(沒有足夠的GPU用于訓練模型)等。

(2)優化提升式業務場景。這種場景主要出現在那些已經有一定智能化基礎的機構、或者業務場景中已經使用了一些傳統NLP技術解決了部分問題的情況。特點:需要提升已有方法的應用效果和用戶體驗(如準確率、召回率等),當前方法繼續優化的難度較大。

本文主要討論的是第二種場景,這也是很多有一定數字化、智能化基礎的公司比較關注的類型。他們在大模型提出之前,已經通過一些規則、統計機器學習、深度神經網絡等算法模型技術構建了一些分類服務,有些行業頭部團隊在此基礎上通過一些技巧(數據增強,對抗訓練等)進行了優化,將算法指標提升到了某個瓶頸線。然而,業務用戶對于算法的精度提升要求是持續性的,因此在大模型出現之前的一段時間,算法人員疲于應付業務用戶對于場景效果的高要求。

只用prompt工程足夠嗎?

截止2024年,我瀏覽過很多應用大模型研究傳統NLP任務的工作,大多集中在如何利用prompt技術、few-shot技術等直接將大模型應用在這些傳統任務中。例如這一篇:Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT,通過prompt工程對比ChatGPT與Fine-tuned Roberta在GLUE數據集上的效果,最終的結論是Fine-tuned Roberta在文本理解任務上仍然無法被超越。然而我也看到有一些觀點認為這些傳統任務直接用大模型一把梭就能搞定,只要prompt寫的足夠好,就能得到一個足夠好的語言理解分析服務。本人并不反對這種觀點,而且還支持對過去的一些應用模式進行革新,從而讓大模型能夠充分發揮其特性。不過在目前的階段,很多企業或者業務場景基于安全、成本、時延等因素,無法使用綜合能力強的模型(GPT4,國內模型的付費版公有云服務、超過14B的開源模型等),而通過純prompt工程使用類似7B的模型還無法完全替代已經在足量數據上訓練過的BERT類模型。由于上述提到的研究是使用ChatGPT以及英文的數據集,為了驗證國內開源的大模型是否在中文數據集上是否也有類似的結論,下面我將根據相關的目標應用場景以一個具體的數據集的實驗來說明。

應用場景與數據集

目標應用場景:新聞事件分類任務。任務特點:

(1)多標簽分類任務,即一個新聞可能會對應多個事件類別;

(2)事件標簽體系龐大,且有比較嚴重的類別不均衡問題。出現頻次高的類別容易累積訓練數據,而低頻長尾類別屬于典型的小樣本問題。

由于一些原因,不能拿到相關真實場景數據,因此搜尋了網上的公開數據集,最終找到了一個比較貼近上述任務特點的數據集:ccks 2022 任務八數據集。

數據鏈接見:https://tianchi.aliyun.com/dataset/136800

數據集簡介:數據主要來自金融領域的公開新聞、報道,數量在5萬+左右。原始數據集的任務是“給定100+事件類型及其事件主體公司,訓練數據中對其中16個事件類型只保留10條左右的訓練樣本,測試集中包含這16個類型的大量待抽取樣本。

本次的驗證為了簡化問題,不會采用上述的任務形式,而是采用最基本的全類別分類數據集的處理方式,從而驗證模型在這種類型的數據集上的整體效果,以及在一些小樣本類別上的效果。

由于目前只有訓練集有標注標簽,因此只能針對標注數據集進行分析。具體做法是根據標注數據分布劃分了訓練集,測試集(5000+),其中測試集只用于評測模型的最終結果。

備注:該數據集存在一定的標注質量問題,前期通過一些人力檢測與校正,提升了部分的標注質量。

數據示例如下:

{"textId": "2333e4ef53762e498cc79c7613d6ac6f", "text": "科銳國際:2018年年度權益分派實施公告", "eventTags": [{"eventType": "公司權益分派", "eventCompany": "科銳國際"}]}
{
    "textId": "35a726ecec33a755abea4ff6fd5464ec",
    "text": "訥河軟式透水管有限責任—訥河公司;湘潭招聘/萬達集團招聘信息;多次延期后,ST康美終于披露回覆函",
    "eventTags": [
        {
            "eventType": "延期信息披露",
            "eventCompany": "ST康美"
        },
        {
            "eventType": "當地招募員工",
            "eventCompany": "萬達集團"
        }
    ]
}

事件標簽數量為174個,均為金融相關的事件標簽。以下為部分事件標簽樣例。

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

對數據集進行分析后,發現其具備典型的長尾分布特征,與實際的業務數據分布比較類似。由于類別比較多,以每個類別為粒度進行畫圖不夠直觀,因此將所有標簽類別按照從大到小順序排序后,以10為一組進行分組,按照組的粒度畫出的柱狀圖如下(圖由GPT-4生成):

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

以下是出于長尾位置的部分事件標簽樣例:

  • 產品虛假宣傳: 9
  • 產品虧損: 3
  • 行業排名下降: 41
  • 責令轉讓所持證券公司股權: 21
  • 新增分支機構: 38
  • 分支機構被警方調查: 11
  • 非法集資: 8
  • 發放貸款出現壞賬: 27
  • 擠兌: 41
  • 訴訟仲裁-敗訴: 29
  • 澄清辟謠: 9
  • 停產停業: 10
  • 上市前融資: 33
  • 銷量下降: 48
  • 行政處分: 33
  • 薪酬福利下降: 16
  • 被盜: 44
  • 實際控制人違規: 10
  • 發布新產品延期: 24
  • 其他經營不善: 39
  • 貸款用途變更: 17
  • 第一大股東變化: 8
  • 客戶管理不善: 29
  • 市場份額減少: 28
  • 產品質量問題: 10
  • 股東借款: 4
  • 財務報表更正: 8
  • 經營資質瑕疵: 8
  • 引入新股東: 9
  • 停止批準增設分支機構: 24
  • 授信額度上升: 10
  • 資金緊張: 7
  • 在當地撤資: 22
  • 股權融資失敗: 19

基于BERT的baseline

為了驗證大模型的相關方案與傳統的NLP方案相比是否有提升,因此選定了BERT簇的分類方案作為baseline來進行對比。

BERT也是一個以Transformer為模型架構的預訓練語言模型。

  • 參數量相比LLM大模型更小,基本在億級參數以下
  • 訓練方式與LLM大模型不同,更注重語義理解類任務,而不是文本生成式任務
  • 一般需要適量的下游任務訓練數據進行微調,并在基座模型的基礎上設計針對下游任務的額外組件,從而得到一個任務專用的模型。微調難度較小。
  • LLM大模型出世之前,業界主流的方法

BERT與GPT在語言模型訓練任務上的區別如下圖所示:

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

具體來說,本次實驗的BERT模型選擇了哈工大的macbert-base和macbert-large兩種體量的模型。

模型鏈接如下:https://github.com/ymcui/MacBERT

具體訓練方式:

輸入:新聞文本

輸出:事件標簽列表

loss函數:BCEWithLogitsLoss

將所有訓練數據(5萬+)灌入模型進行訓練

最終,base和large模型的指標如下:

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

基于Prompt工程的LLM方法

將LLM大模型直接應用于文本多標簽分類任務,實際上就是編寫提示詞指令,讓大模型去生成最終的事件標簽結果。整體還是一個文本生成的過程。

提示詞模版樣例如下:

f"作為一個多標簽新聞分類專家,你的任務是識別出新聞中的所有相關事件標簽。
事件標簽列表:{event_tags}。新聞內容:{text}。該新聞對應的所有事件標簽是什么?"

其中,event_tags需要把體系中的事件標簽填入。這里涉及到兩個問題:

  • 如果事件標簽體系很龐大,把所有事件標簽裝進去不太現實,超過了大模型能夠處理的文本長度上限。
  • 把所有標簽裝進去會增加大模型分析處理文本的難度

基于當前最新的技術發展,有的開源大模型已經能夠處理超過128K的上下文,對于170+的標簽文本是能夠覆蓋的。當然,能處理和處理好是兩種概念,對于大模型來說,肯定是標簽范圍越小越容易解決問題,因此也可以通過先將事件標簽進行分級分組,然后逐級進行大模型的分析,兩種方式均可。

引入Few-shot sample

為了能夠充分利用已有的標注數據集和大模型的能力,在上述prompt中,還可以引入示例樣本(一般論文里面都叫demonstrations),從而激發大模型的In-context learning能力。為此,對整體訓練數據集設計了如下的工作流程:

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

該工作流程的主要核心思想是將示例樣本的選擇問題轉化成RAG(Retrieve-Augmented-Generation),將訓練樣本集合向量化存儲后,對于每個測試樣本的分析,通過召回+排序的方式做知識庫的檢索,根據預設的示例樣本數量(實驗中設置為10),選擇語義最相似的標注樣本填充到prompt中。

示例樣本填充順序重要嗎?

在選擇示例樣本后,還有個容易被忽略的問題:示例樣本填充入prompt的順序需要關注嗎?

之前,有一些文章提到過,RAG得到的召回樣本在prompt中,如果較為相似的召回內容離用戶問題越近,大模型的回答質量會更高。我也嘗試了這樣的處理方式,將相似度高的樣本放置在了與待預測的新聞文本接近的位置。提示詞模版樣例如下:

你是一個先進的大語言模型,專門用于理解和分類金融新聞資訊,現在需要你根據提供的新聞內容,
將其分類到預定義的事件標簽中。任務要求:
1、仔細閱讀新聞內容,理解新聞主題和核心內容。
2、只使用給定的事件標簽列表進行分類,若新聞屬于多個事件標簽,則使用豎線|來分隔不同的事件標簽,
若沒有合適的事件標簽,則分類為others。
3、只需要輸出事件標簽名字,其他內容不需要輸出。
事件標簽列表如下,使用英文逗號分隔:\n{event_tags}
下面是給你提供的人工標注過的參考樣例:
{demonstrations}待分類的新聞內容如下:{text}
該新聞事件標簽為:

其中demonstrations存放的順序為按照示例與待預測樣本相似度的正序排列,即相似度越高的排得越后,離待預測樣本text越近。

通過上述處理方式,確實能夠在這個任務上有比較微小的提升,雖然提升幅度不大,但操作成本上也幾乎可以忽略,因此推薦使用。

結果

基于純Prompt工程的方式采用了開源的qwen-7b-chat,Yi-34b-chat-int4,閉源的qwen-72b-chat接口(百煉平臺)三種大模型來驗證。(實驗的時候,qwen1.5還未出,但根據其他任務的分析,可以推測不會相差太多)

具體指標如下:

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

根據指標結果,可以看到純Prompt工程的方式,即使是使用百億級別參數量的模型,還是離傳統BERT方式的效果差不少。因為LLM大模型的訓練方式與BERT不同,以文本生成為目標,是單向構建上下文(從左到右);而BERT訓練是以完形填空式任務為目標。相比于LLM,能夠在雙向(向左向右)構建上下文理解,本身就適配自然語言理解任務(文本分類,信息抽取等均為理解任務)。

通過分析大模型的錯誤case,可以發現很多樣本都是因為指令遵循能力不夠(比如格式未按要求,生成了無關的分析解釋內容等),導致格式處理后的結果是錯的。因此,推測如果對大模型進行訓練樣本的sft,應該還能夠在指標上有不少的提升。

Prompt工程+指令微調

方法描述

既然要指令微調了,那么基于硬件成本限制,就只能選擇一些性價比高的開源模型來做驗證了。因此,最終選擇了qwen-7b-chat和qwen-14b-chat來做實驗。針對當前的數據集,結合Prompt工程和指令微調技術,設計了如下的大模型文本分類流程:

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

與Prompt工程的方案相比,本方案加入了指令微調的步驟。具體來說就是對訓練集進行數據篩選和處理后,篩選出高質量的訓練數據集,然后通過lora的方式進行低成本的指令微調模型,最后在微調后的模型上使用Prompt工程來完成樣本的分類。整個流程中,有幾個重要節點的詳細說明如下:

  • 構建指令形式的訓練數據集時,需要生成指令提示詞模版,并將每個樣本填充到提示詞模版中。一般的做法是一種任務都用同一個提示詞模版。不過,這樣處理可能會讓微調后的大模型對指令的理解能力不夠魯棒。因此,我通過ChatGPT,讓其為我生成了適合該分類任務色50+個提示詞模版,并為每個樣本隨機分配一個。通過這種方式,能夠讓大模型對指令的遵循能力更好。
  • 關于高質量數據篩選的問題,其實我做了兩個不同的方法實驗。一個是全量數據的微調(5w+),另一個是采用一些數據選擇的方法,得到適量的樣本子集用于訓練。

這些方法除去一些不太方便實現的(例如要訓練一個reward模型,標注成本太高),基本都實現了一下,在當前的數據集上效果都不是很理想,猜想應該是上面的方法對于目標是復雜生成的任務會更有效。

實際上,探究數據集精選的本質,不外乎以下兩點:(1)樣本多樣性高;(2)對于任務的重要性或者增益程度盡量高。其實,之前做文本摘要的時候,對摘要句子的選取也是遵循這兩個原則,因此自然而然就想到可以借用文本摘要的思想來選擇:

(1)先將所有樣本根據標簽類別分成不同的簇(當然,也可以對樣本進行聚類分析,得到的簇可能更偏文本本身的語義相似性聚合)

(2)對每個簇中的樣本,采用MMR算法進行樣本的排序。MMR綜合考慮了樣本的多樣性和相關性,因此我們可以根據分數從高到低選擇一定數量的樣本放到訓練集中。

MMR算法:https://zhuanlan.zhihu.com/p/83596443

(3)對于包含多個標簽的樣本,以及樣本數量本身就很少的標簽均采用白名單模式,即全部加入樣本集合中。這也是為了讓大模型對多標簽、小樣本的情況能夠盡可能多的學習。

通過上述方式,選擇了4000+的樣本用于訓練。(每個標簽數據都會覆蓋到)

結果

我們將上述篩選后的訓練樣本集與全量訓練樣本集進行了大模型微調的對比實驗,可以發現一些有趣但并不意外的結果。

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

  • 結論1:大模型的參數量越大,整體的指標效果越好。但限于使用成本,通常沒辦法無限制提升模型的參數量級。
  • 結論2:當標注數據比較少的時候,大模型微調后的效果還是會優于BERT簇模型,在小樣本類別的效果上,也要更好。
  • 結論3:全量數據集微調在整體指標上比子集微調要更好,但是在小樣本標簽類別上的效果不一定,會根據使用的模型而定。

根據上述的對比實驗,可以看到當標注數據量比較充裕的時候,LLM即使經過微調、提示詞精心設計等步驟后,整體的效果還是不如BERT模型的微調效果。除了上一小節提到的“LLM大模型的訓練方式與BERT不同”的原因外,可能還有以下這個因素:

BERT在數據量充足的條件下,能夠充分“過擬合”下游任務信息,從而在任務上達到不錯的效果。但是微調后的模型完全無法去做其他任務;而LLM大模型的目標本就是通用人工智能,不會為了某個具體任務而喪失通用性,因此經過一定的指令微調后,并不會充分“過擬合”某個任務。

當然,在標注數據量不是非常充分的情況下,使用大模型做指令微調配合Prompt工程,確實能在小樣本場景下有不錯的效果。實際的應用場景中,有些小樣本的事件標簽雖然出現次數不多,但業務屬性卻非常重要,提升這些數據的效果,可能對整體的評測效果沒有明顯的影響,但對業務使用來說是能夠提升體驗的。

大模型+BERT式微調

大模型+指令微調的組合終究與追求精度提升的文本理解類任務不太契合。在足量的標注數據場景下,精度上難以匹敵傳統的BERT式微調方法。但是大模型畢竟在參數量和學習的知識信息量級上要遠超過往的BERT簇模型,所以從理論上來看,只要能夠充分利用大模型龐大的知識量,其在文本理解能力上必然是超越BERT簇模型的。指令微調+Prompt工程的大模型生成式方法在文本理解類任務上并沒有充分利用到大模型的豐富知識,那么能否參考BERT式的微調方法,將大模型的參數權重作為基座,去針對性適配下游任務呢?答案是可行的,因為大模型本質也是一個transformer模型網絡,只不過預訓練的方式不同而已,只需要在網絡的最后一層添加對應的任務層即可。不過在實際落地時,這種方式可能面臨這樣的問題:

目前主流的大模型參數通常在7B以上的量級,使用這種參數量的模型即使是使用lora微調,訓練和在線推理預測的成本也是不小的,為了某個單個任務的精度提升而去過擬合一個大模型看上去得不償失。

不過,上述問題在通義千問發布了0.5B、1.8B的模型后得到了極大的緩解。相對于7B的參數量,1.8B左右的模型在訓練成本與推理的時延等方面都能得到足夠的控制。因此,本次實驗就以qwen1.5-1.8B為基準模型,來探索它結合了BERT式微調方法后的效果。

方法描述

大模型使用BERT式的微調方法其實很簡單,甚至transformers的庫都已經幫我們寫好了,直接使用"Qwen2ForSequenceClassification"即可,其他的流程就跟傳統的文本分類流程一樣就行了。另外需要手動指定tokenizer的pad_token_id,否則在構建Dataset數據進行tokenize的時候會報錯。

整個訓練流程其實與傳統文本任務相似,但是有一些訓練中的細節內容,我想在下面著重分享一下。

  • base模型通常比chat模型的微調效果更好。我在不同參數量的模型上均做了一些訓練嘗試,發現base模型的效果通過會比chat模型要好。這是因為chat模型通常會對base模型進行一些對齊訓練,使其在安全性、幻覺程度、用戶友好程度等方面得到提升,但是會因為一些“對齊稅”,導致模型喪失部分基礎能力或者知識。
  • NEFT方法,在微調中的增益效果是穩定的。NEFT簡單來說就是在embedding層引入一些噪聲,從而增強模型的魯棒性。我感覺這個方法與之前競賽中常用的對抗訓練技巧(FGM)有類似的思想。簡單來說就是在前向計算的時候給embedding層增加噪聲擾動,在梯度計算結束和參數更新之間要將embedding還原回去,通過這種方式增強模型的魯棒性。

NEFT方法: https://arxiv.org/pdf/2310.05914.pdf
FGM方法: https://zhuanlan.zhihu.com/p/91269728
  • 建議使用lora微調。通過實驗對比發現,lora微調和全參數微調的效果幾乎沒有明顯差距。那么訓練參數更少的lora方式顯然更值得推薦,使用lora后微調的參數(340M)恰好與bert-large參數量相當;在設置lora參數時,建議將embedding參數也加入訓練。我使用的參數配置見下:

lora_config = LoraConfig(
        r=32,  # low rank
        lora_alpha=64,  # alpha scaling, scale lora weights/outputs
        target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"], #if you know
        lora_dropout=0.1,
        bias="none",
        modules_to_save=["score","embed_tokens"],
        task_type=TaskType.SEQ_CLS # 文本分類使用該類型
    )
  • 如果使用chatglm3進行BERT式微調時,如果使用bf16精度,可能會遇到一個bug。它的modeling_chatglm.py腳本中,沒有指定對任務dense層的參數進行正確的參數初始化,在訓練的時候任務dense層的參數都會精度溢出,從而導致loss一直是nan。修改的方式也很簡單,增加指定的參數初始化方法就行。代碼行15-18的部分就是新增的代碼。

class ChatGLMPreTrainedModel(PreTrainedModel):
    """
    An abstract class to handle weights initialization and
    a simple interface for downloading and loading pretrained models.
    """

    is_parallelizable = False
    supports_gradient_checkpointing = True
    config_class = ChatGLMConfig
    base_model_prefix = "transformer"
    _no_split_modules = ["GLMBlock"]

    def _init_weights(self, module: nn.Module):
        """Initialize the weights."""
        if isinstance(module, nn.Linear):
            module.weight.data.normal_(mean=0.0, std=self.config.initializer_range)
            if module.bias is not None:
                module.bias.data.zero_()
        return

結果

下面列出使用qwen1.5-1.8B模型進行BERT式微調與前述的方法效果對比。

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

可以看到,qwen1.5-1.8B+BERT式微調+lora的組合在整體F1精度和小樣本標簽類別的F1精度都是最好的。當整體數據集的量級比較少的時候,qwen1.5-1.8B+BERT式微調+lora對于小樣本標簽類別的表現也是不錯的,證明其在小樣本學習能力上也是有提升的。

結論是否適用其他分類任務?

當然,僅在一個任務上的實驗結果肯定是不足以支持上述的結論的,為了驗證這種方式是否能夠在文本分類通用任務上有不錯的效果,我又在兩個開源的數據集上進行了驗證,分別是THUCnews數據集以及Iflytek文本分類數據集。下面列出BERT-baseline以及qwen1.5-1.8B+BERT式微調+lora的組合的分類F1指標對比。

THUCnews數據集: http://thuctc.thunlp.org/#%E4%B8%AD%E6%96%87%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E6%95%B0%E6%8D%AE%E9%9B%86THUCNews
Iflytek數據集: https://aistudio.baidu.com/datasetdetail/243969

注意!!!以下所列指標為本人自己訓練后的結果,比公開出來的數據指標會低一點,因為我不太喜歡干調參的活,就隨機選了超參數,不過bert與qwen兩者訓練的通用參數是保持一致,目標是驗證qwen是否能夠對bert有效果的提升,所以不建議與公開榜單指標做對比。

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

可以看到,qwen1.5-1.8B+BERT式微調+lora在其他分類任務上的精度相較于bert-large來說還是能有不錯的提升。

結論適用于其他參數量的模型嗎?

答案是肯定的。實際上,我還嘗試了qwen1.5-4B,qwen1.5-7B,chatglm3-6B,minicpm等模型結果,下面列出部分數據集的效果。

探討 | 大模型在傳統NLP任務的使用姿勢-AI.x社區

隨著大模型參數量的增加,BERT式微調的效果似乎并沒有隨著參數顯著得提升,可以看到的是即使是BERT式微調方法,也無法利用大模型更多的參數知識了。結合應用實際成本的考量,選擇qwen1.5-1.8B似乎是當前性價比最高的。

當然,我對上述結果也不是完全沒有疑問的。最大的變數在于這些國內大模型是否在預訓練的時候將這些開源的數據集包含進去了。如果在訓練的時候就見過這些數據,那么對上述結果的真實性就需要進一步驗證了。

應用落地的“新姿勢” 采用BERT式的微調方式,由于是讓模型盡量過擬合某個下游任務,微調后它就無法適配其他類型的任務了,因此在實際應用時,對于不同的任務會微調部署多個獨立的模型。對于大模型來說,如果每個任務都單獨部署一個模型從應用成本上來看顯然是不可控的。但通過上述的lora微調,可以有效得降低應用部署的顯存成本。

1、訓練階段,針對不同的任務,使用不同lora單獨進行訓練,得到獨立的lora權重。

其實我嘗試過MTDNN的多任務同時訓練的方式,即增加lora的參數規模,然后同時訓練不同的分類任務,目的是用一個模型cover多個任務。具體做法是在數據預處理batch的時候,根據不同任務的數據量比例通過采樣的方式采樣某個任務的1batch數據參與當前step的訓練。然后通過在模型定義時,指定對應任務與任務dense層的映射關系來保證每個任務都能使用正確的。

MTDNN方法: https://github.com/microsoft/MT-DNN

class MTDNNForSequenceClassification(Qwen2PreTrainedModel):
    def __init__(self, config,task_configs):
        super().__init__(config)
        # self.num_labels = config.num_labels
        self.model = Qwen2Model(config)
        # self.score = nn.Linear(config.hidden_size, self.num_labels, bias=False)
        self.task_heads = nn.ModuleDict({
            f"task_{task_name}": nn.Linear(config.hidden_size, config_task["num_labels"])
            for task_name, config_task in task_configs.items()
        })
        self.task_configs = task_configs
        self.dropout = nn.Dropout(config.classifier_dropout)
        # Initialize weights and apply final processing
        self.post_init()

然而我嘗試了各種不同的參數組合,對上述提到的所有數據集進行了實驗,發現都無法保證所有的數據集都能得到理想的效果,推測還是因為數據集之間會存在“拖后腿”的情況,這種方法要成功最好是找一些特征類似的數據,才能得到互相增強的效果。最后,還是決定每個任務使用獨立的lora單獨訓練。

2、在部署推理的時候,我們只需要先將一個qwen1.5-1.8B的基礎模型加載到顯存中,然后根據任務類型,來動態決定使用哪個lora權重合并到基礎模型中,具體可參考這篇博文:

https://zhuanlan.zhihu.com/p/691710751

簡單來說就是對multi-lora進行切換的操作。不過,這種方式可能會增加單次預測的推理時延(額外增加了lora卸載和裝載的操作時間),可以綜合當前硬件情況以及應用服務的使用頻次,對高頻次、時延要求比較高的任務單獨部署獨立的模型服務,對于低頻次、時延要求低的任務采用上述multi-lora切換的模式。

小結

本文主要目的是探討大模型應用在傳統NLP任務上的有效性和增益,通過一個細分的文本理解任務——文本分類,研究了大模型應用的不同“姿勢”。最終發現,將大模型結合BERT式微調的方法在標注語料比較充分的時候,相對于已有的BERT類方法還能有進一步的精度提升,同時在部署推理成本上的投入也是可控的;另外,對于小樣本標簽類別的學習能力也能夠幫助提升對于邊界case的處理。當整體的標注數據語料比較匱乏的時候,也不妨可以應用大模型+sft+prompt工程的模式,輔助技術團隊進行冷啟動,在積累一定的標注語料后,可以切換成上述BERT式的微調方式,以提升任務的精度。

本文轉載自 ??NLP工作站??,作者: 邱震宇

已于2024-6-27 16:19:06修改
收藏
回復
舉報
回復
相關推薦
国产一区视频免费观看| 久久99精品久久久久久青青日本| 少妇无套高潮一二三区| 亚洲欧洲专区| 亚洲国产精品久久不卡毛片| 噜噜噜噜噜久久久久久91| 中文字幕在线一| 欧美午夜影院| 中文字幕日韩精品在线观看| 免费啪视频在线观看| 亚洲天堂av影院| 亚洲天堂精品视频| 蜜桃91精品入口| 精品国产区一区二| 日韩av中文字幕一区二区三区| 欧美www在线| 色噜噜日韩精品欧美一区二区| 成人精品视频在线观看| 欧美日韩亚洲一区二| 在线观看成人av| 日本成人一区二区三区| 国产精品亚洲一区二区三区妖精| 人妖精品videosex性欧美| 欧美成欧美va| 日韩夫妻性生活xx| 日韩经典中文字幕在线观看| 亚洲综合伊人久久| 中文字幕系列一区| 婷婷激情综合网| 欧美一区二区三区综合| 在线观看黄色av| 久久在线免费观看| 国产精品免费在线| 国产露脸国语对白在线| 日本美女一区二区| 欧美亚洲国产视频| 日韩成人免费在线视频| 一区二区日韩欧美| 日韩中文字幕在线视频| 日韩精品电影一区二区| 日本亚洲不卡| 精品国产一区二区三区久久影院| 中文字幕一区久久| 久久久久毛片| 欧美三级在线看| 日本三区在线观看| 国产精品粉嫩| 欧美日韩国产影院| 成人中文字幕在线播放| 91吃瓜在线观看| 亚洲黄色片在线观看| 欧美与动交zoz0z| 国产精品久久久久久福利| 中文字幕乱码久久午夜不卡 | 青青草av网站| 韩国美女久久| 日本精品一级二级| 国产裸体免费无遮挡| 欧美日韩123区| 福利二区91精品bt7086| 国产最新免费视频| 波多视频一区| 在线观看欧美日本| wwwwwxxxx日本| 激情不卡一区二区三区视频在线| 91精品国产福利| 麻豆传媒在线看| 99a精品视频在线观看| 欧美精品一区二区久久婷婷| 香港三日本8a三级少妇三级99| 农村少妇一区二区三区四区五区 | 国产精品av一区二区| 欧美黄色三级网站| 影音先锋亚洲天堂| 国产精品美女久久久| 国产v综合v亚洲欧美久久| 天天综合久久综合| 韩国av一区二区三区| 99r国产精品视频| 天天色综合av| 中文字幕电影一区| 欧美少妇一区二区三区| 成人免费观看在线观看| 一本大道av伊人久久综合| 深夜黄色小视频| 精品国产一区二| 亚洲电影免费观看高清| 美女被到爽高潮视频| 久久亚洲国产| 97精品国产97久久久久久免费 | 欧美专区一二三| 免费看a在线观看| 亚洲成人精品一区二区| 久久久久久香蕉| 欧美国产中文高清| 亚洲石原莉奈一区二区在线观看| 欧洲美女女同性互添| 亚洲国产午夜| 国产色婷婷国产综合在线理论片a| 亚洲高清在线观看视频| 国产欧美综合色| 欧美人与动牲交xxxxbbbb| 偷拍自拍在线看| 91精品国产乱码| 五级黄高潮片90分钟视频| 婷婷另类小说| 日本欧美一级片| www.久久综合| 国产精品视频在线看| 日本手机在线视频| 日韩一区中文| 亚洲人成在线观看网站高清| 黄色一级视频免费观看| 日韩av网站免费在线| 国产伦精品一区| 国产激情在线| 欧美色成人综合| 精品人妻一区二区三区视频| 女主播福利一区| 国产精品最新在线观看| 手机看片福利在线观看| 亚洲精品久久久蜜桃| 亚洲国产精品三区| 女人抽搐喷水高潮国产精品| 精品中文字幕视频| 91麻豆成人精品国产| 久久婷婷成人综合色| 日韩日韩日韩日韩日韩| 久久gogo国模啪啪裸体| 最近2019中文免费高清视频观看www99 | 成年人在线观看视频免费| 久久精品国产亚洲5555| 久久99青青精品免费观看| 97超碰人人草| 国产精品久久久久影视| www日韩视频| 亚洲区小说区| 国产91ⅴ在线精品免费观看| 六月丁香综合网| 亚洲激情校园春色| 伊人五月天婷婷| 羞羞答答成人影院www| 国产精品亚洲片夜色在线| 黄色小视频在线免费观看| 色综合一个色综合| 女人被狂躁c到高潮| 国产亚洲精品v| 精品久久精品久久| av男人的天堂在线观看| 亚洲激情视频网| 九九热精品视频在线| 99精品视频免费在线观看| r级无码视频在线观看| 美女一区2区| 欧美亚洲国产日韩2020| 黄上黄在线观看| 色婷婷av一区二区三区软件 | 国产成人综合亚洲| 四虎影院在线播放| 欧美日韩一区二区在线| 在线免费播放av| 国产精品久久久久久久久久妞妞| 精品日本一区二区| 欧美gay囗交囗交| 一区二区三区黄色| 国产精品久久久久久免费| 亚洲欧美二区三区| 手机av在线网站| 狠久久av成人天堂| 久久96国产精品久久99软件| 日韩精品影片| 久久久av亚洲男天堂| 国产99视频在线| 精品女同一区二区三区在线播放| 久久精品国产亚洲av久| 青草av.久久免费一区| 偷拍盗摄高潮叫床对白清晰| 欧美成人精品一级| 欧美一区二粉嫩精品国产一线天| 精品视频二区| 制服丝袜av成人在线看| 国产精品9191| 国产亚洲婷婷免费| 中文字幕第三区| 国产日韩欧美一区在线| 亚洲精品一区二区三区蜜桃久| 国产va免费精品观看精品| 97国产在线视频| 日本高清中文字幕在线| 欧美成人官网二区| 国产99免费视频| 一区二区三区日韩精品视频| 亚洲第一黄色网址| 麻豆视频一区二区| 全黄性性激高免费视频| 日韩av在线中文字幕| 国产aⅴ精品一区二区三区黄| 成人教育av| 久久777国产线看观看精品| 天堂а√在线8种子蜜桃视频| 欧美日韩精品免费观看视频| 国产乡下妇女做爰毛片| 中文字幕av一区二区三区高| jjzzjjzz欧美69巨大| 毛片av中文字幕一区二区| 性欧美大战久久久久久久| 日韩精品首页| 久久久久一区二区三区| 国产精品国产三级在线观看| 日韩av免费网站| 国产深夜视频在线观看| 深夜福利日韩在线看| 四虎精品在线| 精品久久久久久亚洲综合网| 中文字幕在线日亚洲9| 欧美性videos高清精品| 九九热精彩视频| 国产精品久久久久久久久久久免费看 | 91免费国产精品| 成人综合久久| 欧美亚洲爱爱另类综合| 精品少妇一区| 99r国产精品视频| 国产免费区一区二区三视频免费| 国产精品精品视频| 中文字幕在线直播| 久久久久成人网| 性欧美ⅴideo另类hd| 色综合亚洲精品激情狠狠| 毛片免费在线观看| 亚洲精品福利在线观看| 黄色美女一级片| 精品少妇一区二区三区| 国产又黄又粗又长| 欧美日韩一区三区| 中文字幕在线天堂| 欧美午夜久久久| 黄色大片网站在线观看| 性做久久久久久久久| 久久久久久久久久久久久久久久久| 国产精品二三区| 色www亚洲国产阿娇yao| 欧美国产综合一区二区| 无码 人妻 在线 视频| 91麻豆免费看| 中文字幕一区二区三区人妻电影| 99久久精品一区二区| 亚洲久久久久久| av电影天堂一区二区在线| 视频免费在线观看| 99热精品一区二区| 短视频在线观看| 久久老女人爱爱| 国产ts在线播放| 亚洲国产精品t66y| 制服丨自拍丨欧美丨动漫丨| 国产精品伦理一区二区| 在线观看黄网址| 亚洲精品一卡二卡| 日韩黄色三级视频| 岛国av在线不卡| 中文字幕免费高清网站| 欧美视频一二三区| 国产一区二区自拍视频| 日韩欧美一级特黄在线播放| 深爱激情五月婷婷| 亚洲欧美国产精品| 一级日本在线| 九色精品免费永久在线| 免费h视频在线观看| 国产精品99久久久久久久久久久久| 日韩在线免费| 成人免费xxxxx在线观看| 亚洲2区在线| 麻豆精品视频| 日韩欧美高清在线播放| 国产精品日韩三级| 亚洲影院免费| 五月婷婷之婷婷| 成人国产视频在线观看| 国产特黄级aaaaa片免| 国产精品嫩草99a| 久久亚洲AV无码| 91福利国产成人精品照片| 一本色道久久综合亚洲| 精品少妇一区二区三区| 国产小视频在线播放| 九九综合九九综合| 特黄毛片在线观看| 91免费高清视频| 亚洲精品3区| 久久视频免费在线| 欧美专区在线| 91视频福利网| 成人黄色av网站在线| 一本色道久久88| 欧美日韩裸体免费视频| 国产精品久久久久久免费| 日韩风俗一区 二区| 成人在线网址| 国产精品福利久久久| 久久大胆人体视频| 干日本少妇视频| 秋霞电影网一区二区| 蜜臀av粉嫩av懂色av| 国产精品久久福利| 美日韩一二三区| 精品久久久久久久一区二区蜜臀| 自拍视频在线免费观看| 91精品国产高清久久久久久| 99久久久成人国产精品| 麻豆精品蜜桃一区二区三区| 亚洲一级二级| 日韩成人av免费| 国产日产欧美一区二区三区| 国产午夜免费视频| 91精品在线观看入口| 黄色在线视频观看网站| 91国内精品久久| 911精品国产| 9l视频自拍9l视频自拍| 久久中文字幕一区二区三区| 国产乱淫av麻豆国产免费| 中文字幕字幕中文在线中不卡视频| 成人黄色激情视频| 国产视频精品久久久| 77thz桃花论族在线观看| 成人在线观看91| 亚洲欧美一区在线| 伊人成人222| 欧美国产精品一区二区三区| 欧美bbbbbbbbbbbb精品| 精品国内片67194| 91麻豆免费在线视频| 成人黄色激情网| 不卡在线一区| 日韩欧美在线视频观看| 国产精品久久久久久在线观看| 国产欧美精品一区二区色综合| 国产精品乱子伦| 日韩av在线网| 国产午夜精品美女视频明星a级| 91在线免费看| 国产精品av电影| 国产精品嫩草影院在线看| 国模吧无码一区二区三区| 91在线国产观看| 国产毛片aaa| 日韩av在线播放资源| 麻豆网站免费在线观看| 精品卡一卡二| 久久天堂成人| 先锋影音av在线| 欧美日韩国产高清一区| 黄色动漫在线观看| 92看片淫黄大片欧美看国产片| 在线观看免费一区二区| 精品国产午夜福利在线观看| 一区二区在线观看视频| 丰满熟妇人妻中文字幕| 91地址最新发布| 免费看成人哺乳视频网站| 中国黄色片免费看| 亚洲欧美综合网| 午夜久久久久久噜噜噜噜| 久久久久久久激情视频| 天天操综合520| 啊啊啊国产视频| 综合色中文字幕| 欧美视频一二区| 国产成人精品电影久久久| 日韩国产专区| 日本少妇一区二区三区| 精品久久久一区二区| 国产理论电影在线观看| 成人精品在线视频| 国产精品v日韩精品v欧美精品网站 | 亚洲综合网中心| 国产精品538一区二区在线| 日韩免费不卡视频| 国产亚洲xxx| 日韩有吗在线观看| 欧美私人情侣网站| 国产精品久久久久国产精品日日 | 亚洲乱码一区二区| 日韩成人在线一区| 青青草成人免费在线视频| 欧美激情综合网| 性欧美8khd高清极品| 国产a级全部精品| 韩国一区二区三区四区| 国产欧美一区二区精品性| 999av视频| 日本亚洲欧洲色α| 这里只有精品在线| 亚洲激情视频小说| 日韩一级大片在线观看| 欧美freesex| 国产精品久久久久久久乖乖| 日本一区二区动态图|