Back to blog
    小型語言模型的資料準備:品質重於數量
    slmdata-qualityfine-tuningdata-preparationsegment:enterprise

    小型語言模型的資料準備:品質重於數量

    大型模型可以強行通過嘈雜的資料。小型模型則不行。對於 SLM,資料品質不只是重要——它是決定模型能否正常運作的關鍵因素。

    EErtas Team·

    大型語言模型——700 億參數及以上——對嘈雜的訓練資料有驚人的容忍度。其龐大的參數數量給了它們足夠的容量來吸收矛盾、容忍雜訊,仍然能提取有用的模式。如果您的訓練示例中有 5% 的標籤不正確,700 億模型幾乎不會注意到。信噪比已經足夠好。

    小型語言模型——30 億到 140 億參數——沒有這種奢侈。參數較少,每個訓練示例對模型行為的影響按比例更大。在 2,000 個示例上微調的 70 億模型給每個示例大約 350 萬個參數的影響。一個壞示例不只是增加雜訊——它會主動扭曲模型學到的模式。

    這就是 SLM 資料悖論:最實際部署的模型(小型、快速、運行成本低廉)正是對訓練資料要求最高的模型。理解這個悖論並相應地準備資料,是成功的 SLM 微調項目和那些產生平庸模型的項目之間的區別。

    為什麼小型模型不寬容

    模型大小和資料品質容忍度之間的關係不是線性的——而是指數級的。以下是每個規模發生的情況:

    700 億及以上模型: 可以容忍 5% 到 10% 的標籤雜訊並仍然表現良好。其容量允許它們「平均掉」衝突的信號。在 50,000 個嘈雜示例上訓練效果相當好。

    140 億模型: 在性能明顯下降之前可以容忍 3% 到 5% 的標籤雜訊。矛盾的示例創建混亂的表示,表現為不一致的輸出。在 10,000 個適度乾淨的示例上訓練優於 50,000 個嘈雜的示例。

    70 億模型: 容忍不到 3% 的標籤雜訊。在這個規模,每個不一致都會被放大。模型記憶壞模式,因為它沒有足夠的容量來區分信號和雜訊。在 2,000 個完美示例上訓練始終優於 10,000 個平庸的示例。

    30 億模型: 對標籤雜訊基本上零容忍。這些模型需要近乎完美的訓練資料,因為它們記憶而非從模式中泛化。少量壞示例就能主導模型對特定輸入類型的行為。

    實際影響:如果您正在微調 70 億或更小的模型,您的資料品質標準需要明顯高於您為大型模型所接受的標準。

    SLM 的品質要求

    標籤準確率:高於 95%

    對於大型模型,90% 的標籤準確率通常是可以接受的。對於 SLM,最低閾值是 95%,目標是 98% 及以上。

    如何實現這一點:雙重標注加上對意見不一致的專家審查。每個兩名標注者不同意的示例由第三名專家標注者審查並做出最終決定。這個過程比單一標注更昂貴,但當您的總資料集是 2,000 個示例而非 50,000 個時,成本是適度的。

    計算:對 2,000 個示例進行雙重標注,意見不一致率為 10%,意味著 200 個示例需要專家審查。每次審查 2 分鐘,大約需要 7 小時的專家時間。與因標籤雜訊導致模型失敗而浪費的數週重新訓練相比,這是微不足道的成本。

    格式一致性:100%

    大型模型可以處理訓練資料中的微小格式差異——不一致的大小寫、JSON 鍵順序各異、偶爾多餘的空白。SLM 則不行。訓練資料中的格式不一致直接導致模型輸出中的格式不一致。

    如果您的模型應輸出包含 categoryconfidenceexplanation 欄位的 JSON,那麼 100% 的訓練示例必須恰好包含這三個欄位,格式正確,資料類型正確。不是 98%。不是 99%。全部都要。

    自動驗證可以捕獲大多數格式問題。編寫一個架構驗證器(JSON Schema 或 Pydantic),並在訓練前對每個示例運行。拒絕並修復任何驗證失敗的示例。這需要 30 分鐘設置,但可以防止數天的格式相關模型失敗調試。

    去重複:近似重複低於 1%

    近似重複(餘弦相似度高於 0.95)對 SLM 特別有害,因為它們導致記憶而非泛化。如果您的 2,000 個示例資料集中有 15 個是同一個客戶投訴的變體,模型會記憶該投訴模式,以犧牲學習一般投訴處理為代價。

    對於大型資料集(50,000 個以上),3% 的近似重複是可以接受的。對於 SLM 規模的資料集(500 到 5,000 個),將近似重複保持在 1% 以下。

    去重複過程:使用句子嵌入模型嵌入所有示例,計算成對餘弦相似度,標記高於 0.95 的對,保留每個重複組中品質最高的版本。

    輸入長度分佈:匹配生產環境

    這一點常被忽視,但對 SLM 至關重要。如果您的生產輸入是 500 到 2,000 個 token,但您的訓練示例都是 100 到 300 個 token,模型從未見過它在生產環境中會遇到的長度輸入。大型模型在一定程度上可以優雅地處理這種長度不匹配。SLM 則不行——它們在比訓練示例更長的輸入上往往會顯著下降。

    測量您預期生產輸入的 token 長度分佈。確保您的訓練資料覆蓋相同的分佈。具體來說,訓練輸入長度的第 10 百分位和第 90 百分位應涵蓋生產輸入長度的第 10 和第 90 百分位。

    類別分佈:沒有低於 5% 的類別

    極端的類別不平衡對 SLM 的打擊比大型模型更重。擁有 2% 少數類別示例的 700 億模型可能仍然學會識別該類別。擁有相同不平衡的 70 億模型將實際上忽略少數類別——它沒有足夠的容量來維護如此少示例的穩健表示。

    目標:資料集中沒有低於 5% 的類別。如果您有 10 個類別,每個類別在 1,000 個示例的資料集中應至少有 50 個示例。如果某個類別在生產環境中確實出現不到 5% 的時間,考慮在訓練資料中對其進行過度採樣(同時保持總資料集大小可管理)。

    「小資料」現實

    對於 SLM,最佳資料集大小通常是 500 到 5,000 個示例。這對習慣於「更多資料總是更好」的團隊來說是反直覺的,但證據是一致的。

    500 個示例足以用於輸入/輸出模式一致的狹窄任務:分類為 3 到 5 個類別、從單一文件類型進行結構化提取、使用固定輸出架構進行格式化。

    1,000 到 2,000 個示例可以處理中等複雜性:分類為 10 到 15 個類別、從多種文件類型進行提取、輸出長度不等的生成。

    3,000 到 5,000 個示例用於複雜任務:多步驟推理、在某領域內的開放式生成、處理各種輸出格式的多樣輸入類型。

    超過 5,000 個示例,除非額外資料涵蓋真正新的模式,否則為 SLM 添加更多資料會顯示出遞減的回報。添加 5,000 個更多與現有示例相似的示例沒有幫助——它只會增加冗餘。

    實際工作流程:從 500 個高品質示例開始,微調,評估。如果性能低於目標,分析錯誤。它們集中在特定類別嗎(在那裡添加更多示例),還是均勻分佈(在整個範圍內提高示例品質)?

    如何為品質進行整理

    第一步:從專家審查的示例開始

    每個示例都應由領域專家建立或審查。對於 SLM 資料集,沒有「夠好」的空間——每個示例都需要是正確的。

    這個投資由計算來證明:以每個示例 1 到 2 分鐘的速度審查 2,000 個示例需要 33 到 66 小時。分配給 3 名專家,在 2 週內進行,每名專家每天需要 1 到 2 小時。這是您微調項目中最具成本效益的投資。

    第二步:去除近似重複

    使用閾值為 0.95 的餘弦相似度運行去重複。對於 SLM 資料集,還要檢查語義重複——措辭不同但意思相同的示例。這些更難自動檢測,但對小型模型同樣有害。

    實際檢查:使用 k-means 或 HDBSCAN 對您的示例進行聚類,並手動檢查最大的聚類。有許多近乎相同示例的聚類需要修剪。

    第三步:平衡類別分佈

    統計每個類別的示例數量。識別代表性不足的類別。對於每個代表性不足的類別,要麼收集更多示例,要麼建立帶有專家審查的合成示例。

    在為類別平衡建立合成示例時,在納入之前始終讓領域專家審查合成示例。對 LLM 來說看似合理但按領域標準不正確的合成示例,比沒有示例更糟糕。

    第四步:驗證輸出格式

    編寫驗證器。對每個示例運行它。修復每個失敗。對於 SLM,這是不可妥協的。

    通過手動審查漏過的常見格式問題:尾隨空白、不一致的 null 表示(null vs "null" vs "N/A" vs 空字符串)、不一致的日期格式、有時存在的缺失可選欄位。

    第五步:測試邊緣案例

    與領域專家識別 10 到 15 個邊緣案例類別。確保訓練資料中每個邊緣案例類別至少有 3 到 5 個示例。SLM 需要明確地接觸邊緣案例——它們無法像大型模型有時能做到的那樣,從標準示例泛化到不尋常的輸入。

    SLM 資料準備的反模式

    在未審查的合成資料上訓練

    使用 LLM 生成合成訓練資料,然後在沒有專家審查的情況下在該資料上微調 SLM,這是最常見的 SLM 訓練失敗。合成資料看起來合理,但包含生成 LLM 無法識別的領域錯誤。SLM 忠實地學習這些錯誤。

    合成資料對 SLM 訓練很有用,但只有在專家審查之後。用 LLM 生成候選示例,然後讓領域專家審查並糾正每個示例。LLM 節省了標注時間(審查比從頭開始建立更快),但專家審查是強制性的。

    在一個資料集中混合多個任務

    SLM 在針對特定任務進行微調時表現最好。訓練 70 億模型同時對文件進行分類、提取實體和生成摘要,會產生在三方面都表現不佳的模型。大型模型可以處理多任務訓練,因為它們有容量為每個任務維護單獨的表示。

    對於 SLM:一個模型,一個任務。如果您需要三種能力,請微調三個模型,或者在每個步驟仔細評估的情況下順序微調。

    示例之間格式不一致

    大型模型可以處理微小的格式差異。SLM 重現它們在訓練資料中看到的任何格式模式——包括不一致性。如果一些示例使用標題大小寫,而其他示例使用句子大小寫,模型在推理時會隨機在它們之間切換。

    在訓練前標準化格式。選擇一個慣例並將其應用於每個示例:大小寫、標點符號、間距、鍵排序、日期格式、數字格式。

    Ertas Data Suite 的品質評分針對 SLM 訓練要求進行了校準。品質指標對較小的目標模型應用更嚴格的閾值——更高的標籤一致性要求、更緊的去重複比率,以及更嚴格的格式合規性檢查。該平台標記大型模型訓練可能容忍但 SLM 訓練無法接受的問題,讓團隊在浪費訓練運行之前捕獲品質問題。


    Your data is the bottleneck — not your models.

    Ertas Data Suite turns unstructured enterprise files into AI-ready datasets — on-premise, air-gapped, with full audit trail. One platform replaces 3–7 tools.

    延伸閱讀

    Turn unstructured data into AI-ready datasets — without it leaving the building.

    On-premise data preparation with full audit trail. No data egress. No fragmented toolchains. EU AI Act Article 30 compliance built in.

    Keep reading