大模型場景微調里面,最關鍵地的一個是問題是:
選擇什么樣的數據微調?
大的方向上大家都能把握,大概無非是要注意數據的多樣性,要注意數據的質量,那在實踐中有哪些技巧呢?
比如我們會經常遇到下面幾種情況:
1.數據要不要都去標注,標的比較慢咋辦?
2.我已經有一批標好的數據了,再去選哪些數據送標注比較好?
3.能不能總結出一套數據構造方面自動化的方法?
其實在大模型之前,就有很多人研究過這樣的問題。在做一個模型時候,比如簡單的文本分類,我不可能一股腦把所有數據都扔給標注,這樣干存在一個問題,一般情況下我們數據的分布都是符合一個長尾分布的。主要的幾個類別數據占據了90%的數據量,剩下的90%的類別只有10%的數據量。
比如小紅書上,query的意圖識別里,美食,穿搭,旅游攻略類非常多,但是還有一些同學去搜大模型微調的數據技巧。
如果說我們直接采樣一批線上的圖文文本,直接送給標注的話,會存在一個嚴重的問題:他們標注的數據大部分都是攻略類,技術類比較少,標了3個月才攢了幾千條大模型技術文本,但是攻略類已經成幾萬了。
這樣搞肯定是不行的,人力成本方面的消耗是在是太大了,并且模型因為數據平衡的問題也沒有特別好,我們有沒有辦法去優化這個過程呢?
在大模型微調里面對應的生成小紅書文案場景,同樣的問題也是爬來的數據就可以直接用嗎?
大家都有個直觀的答案,就是去重,那我們再考慮模型上數據的迭代呢?如果數據是分階段爬去的怎么辦?已經有一批人工處理的的高質量數據怎么辦?
但其實從監督學習的演進來看,這套東西其實已經被研究的很多了,用一個技術名詞叫 “主動學習”。
主動學習有兩個基本原則,在監督訓練的時候,注意主動發現數據的兩個方面,一個是數據多樣性,另外一個是數據的不確定性。這樣講是比較抽象的概念,那我們在大模型實踐中如何體現呢?
第一,數據的多樣性。
多樣性即為數據的去重,去重這件事的核心是相似度度量,現在的相似度度量方法大家用的比較多的是基于對比學習構造的語義向量這套思路,當然簡單的基于詞袋或者tfidf的方案也是可以的。有了核心的相似度度量方法后,我們可以使用簡單的onepass聚類方法進行過濾,考慮復雜一點的話,我們可以使用帶優化目標的聚類:比如K-Center-Greedy算法,其約束條件是在最大化多樣性的情況下,使指令數據集最小。
另外,如果我們已經有了一批已經去重的人工處理過的高質量數據,那么我們如何尋找與這批數據不一樣的數據呢?
這里有一個非常簡單實用的方案,并且這個方案可以用在很多其他的地方。
我們簡單地把已有的數據全部當成正樣本打上1,然后待篩選的數據全部當成負樣本打上0,我們使用deberta等構建二分類模型,并進行K-fold的交叉驗證,在交叉驗證過程中,選出每一個fold過程中的測試集合里概率接近于0的樣本。
通過這樣的操作,就能把長得與已有數據不一樣的數據給選出來了,并且這個過程是半監督的。
這套方案也可以用在很多其他地方,比如數據質量選擇,只要我們有一批已經確定標簽/結果/標注的種子數據,就能通過這樣的方法選出與種子數據長得比較像的,長得不像的。
第二,數據的不確定性。
數據的不確定性主要體現數據的質量篩選上,選取模型學的不那好的數據,模型沒有把握的數據。
最簡單的,我們可以選出模型對應PPL值比較差的那批數據。如果是指令數據的話,比如大模型做題和對應的答案。我們可以把所有選項對應的概率之和計算出來,然后過濾出概率和比較低的那一批數據,這批數據就是模型“不太肯定”的樣本,我們需要加強針對性的訓練。
當然這樣可能有一個副作用,就是這批數據是質量比較差而不是模型學的不太好的。
為此,我們還要借助reward model,這個reward model是廣義的,他是一個質量的二分類模型。可以祭出我們的deberta,繼續用標注數據進行做二分類,進行數據質量的判斷。
有了質量打分模型后,我們就可以判斷一些指令數據的質量高低,并且據此選出模型真正不確定的數據。
這個過程類似于手動的拒絕采樣,核心是選擇“模型不確定”+“數據質量達標”的那部分數據。
總結一下,監督學習中主動學習的兩個基本原則是尋找多樣性的數據,模型不確定性的數據,在尋找的過程中,我們使用了一些小技巧,比如聚類去重,對抗半監督過濾,自建reward二分類等方法。這幾個小技巧,學術上沒有什么高深莫測的東西,都是實踐中總結出來的好用的方法。
并且你把上面的過程串聯起來,其實就是一套高效率,低成本的數據構造pipeline了,不僅可以用在大模型的數據選擇和構造,在所有的監督學習上,這套思路和方法都是實適用的。
審核編輯:黃飛
-
半監督學習
+關注
關注
0文章
20瀏覽量
2629 -
大模型
+關注
關注
2文章
3117瀏覽量
4028
原文標題:大模型微調數據選擇和構造技巧
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
使用OpenVINO?訓練擴展對水平文本檢測模型進行微調,收到錯誤信息是怎么回事?
了解DeepSeek-V3 和 DeepSeek-R1兩個大模型的不同定位和應用選擇
【「基于大模型的RAG應用開發與優化」閱讀體驗】+大模型微調技術解讀
英偉達推出基石世界模型Cosmos,解決智駕與機器人具身智能訓練數據問題

【「大模型啟示錄」閱讀體驗】如何在客服領域應用大模型
名單公布!【書籍評測活動NO.52】基于大模型的RAG應用開發與優化
一種信息引導的量化后LLM微調新算法IR-QLoRA

評論