
大語言模型(LLMs) 的出現標誌著各行業利用人工智慧(AI)增強運營和服務的方式發生了重大轉變。通過自動化日常任務和簡化流程,LLMs 可以釋放人力資源,用於更具戰略性的工作,從而提高整體效率和生產力。
主要由於 LLM 對高品質資料的依賴性, 訓練和定制 LLM 以實現高準確度充滿挑戰。資料品質差和資料量不足會顯著降低模型準確性,因此資料集準備成為 AI 開發者的關鍵任務。
資料集通常包含重復文檔、個人身份資訊(PII)和格式問題。一些資料集甚至包含對用戶構成風險的有毒或有害資訊。在未進行適當處理的情況下基於這些資料集訓練模型會增加訓練時間並降低模型品質。另一個重大挑戰是資料稀缺。模型構建者公開可用的資料不足以用於訓練,這促使許多模型構建者轉而求助於第三方供應商,或使用高級語言模型生成合成資料。
在本文中,我們將介紹通過提高訓練資料品質來優化 LLM 性能的資料處理技術和最佳實踐。我們將介紹 NVIDIA NeMo Curator 及其如何應對這些挑戰,演示 LLM 的真實資料處理用例。
文本處理流程和最佳實踐
處理大型資料的預處理並非易事,尤其是當資料集主要由網頁抓取資料組成時,這些資料可能包含大量格式不當、品質低下的資料。

圖 1 顯示了全面的文本處理工作流,其中包含以下高級步驟:
從源中下載資料集,並將其提取為所需格式,例如 JSONL。
應用初步文本清理,例如 Unicode 固定和語言分離。
根據特定品質標準,對資料集應用標準和自定義定義的過濾器。
執行不同級別的重複資料刪除(精確、模糊和語義)。
有選擇地應用高級品質過濾,包括基於模型的品質過濾、PII 紅票、分布式資料分類和任務去污染。
融合來自多個來源的精選資料集,形成統一的資料集。
以下部分將更深入地介紹每個階段。
下載並提取文本
資料管理的第一步涉及從各種常見來源(例如 Common Crawl)、專業集合(例如 arXiv 和 PubMed)或私有 on-prime 資料集下載和準備資料集,每個資料集可能包含 TB 級的資料。
這一關鍵階段需要仔細考慮儲存格式和提取方法,因為公開托管的資料集通常採用壓縮格式(例如.warc.gz、tar.gz 或 zip 文件),這些格式需要轉換為更易於管理的格式(例如.jsonl 或.parquet)以進行進一步處理。
初步文本清理
Unicode 修復和語言識別是資料管護流程中的關鍵早期步驟,尤其是在處理大規模網路抓取文本語料庫時。這一階段解決了兩個基本挑戰:Unicode 字符解碼不當,以及資料集中存在多種語言。
Unicode 格式問題通常源於錯誤的字符編碼或多個編碼/解碼週期。常見問題包括特殊字符顯示為亂碼序列 (例如,「café」顯示為「café」)。語言識別和分離同樣重要,尤其是對於那些對整理單語資料集感興趣的策展人而言。此外,一些資料管護步驟 (例如啓發式過濾和基於模型的品質分類器) 因語言而異。
這一初步預處理步驟可確保以識別出的語言編寫清晰、正確編碼的文本,從而為所有後續的資料整理步驟奠定基礎。
啓發式過濾
啓發式過濾採用基於規則的指標和統計措施來識別和移除低品質內容。
該流程通常評估多個品質維度,例如文檔長度、重復模式、標點分布和文本的結構完整性。常見的啓發式過濾器包括:
字數過濾器: 過濾掉過於簡短而無意義或長度可疑的代碼段。
模板字符串過濾器: 識別並刪除包含過多模板內容的文本。
N-gram 重復過濾器(N-gram repetition filter): 識別不同長度的重復短語,並刪除過多重復的文檔,這些文檔可能表明內容品質低下或人為生成。
對於啓發式過濾,最佳實踐是實施級聯方法。這種方法可以實現更細緻入微的品質控制,同時保持過濾過程的透明度。為提高性能,可以實施批量過濾,以同時處理多個文檔,從而顯著縮短處理大規模資料集時的計算時間。
重複資料刪除
重複資料刪除對於提高模型訓練效率、降低計算成本和確保資料多樣性至關重要。它有助於防止模型過擬合重復內容,並改進泛化。該過程可通過三種主要方法實現:精確、模糊和語義重複資料刪除。這些構成了處理大規模資料集中不同類型重復的全面策略,從相同的副本到概念上相似的內容。
精確的重複資料刪除
精確的重複資料刪除專注於識別和刪除完全相同的文檔。該方法為每個文檔生成哈希簽名,並按哈希將文檔分組為桶,每個桶僅保留一個文檔。雖然這種方法在計算方面高效、快速且可靠,但僅限於檢測完全匹配的內容,並且可能會遺漏具有細微變化的語義等效文檔。
模糊重複資料刪除
模糊重複資料刪除使用 MinHash 簽名和局部性敏感散列(LSH)來識別類似文檔,以解決近乎重復的內容。
此過程包括以下步驟:
計算文檔的 MinHash 簽名。
使用 LSH 將類似文檔分組到不同的儲存桶中。一個文檔可能屬於一個或多個儲存桶。
計算同一桶內文檔之間的 Jaccard 相似性(Compute Jaccard similarity between documents within the same buckets).
根據 Jaccard 相似性,將相似性矩陣轉換為圖,並識別圖中的連通分量。
連接組件中的文檔被視為模糊副本。
從資料集中刪除已識別的重復項。
此方法對於識別略有修改的內容、檢測文檔部分重疊以及查找格式不同但內容相似的文檔特別有用。它在計算效率和重復檢測能力之間取得了平衡。
語義重複資料刪除
語義重複資料刪除代表了最為複雜的方法,它採用先進的嵌入模型來捕獲語義含義,並結合聚類技術對語義相似的內容進行分組。研究表明,語義重複資料刪除可以有效減少資料集大小,同時保持或提高模型性能。它對於識別轉述內容、相同材料的翻譯版本以及概念上相同的資訊尤其重要。
語義重複資料刪除包含以下步驟:
每個資料點都使用預訓練模型嵌入。
使用 k-means 聚類將嵌入聚類為 k 個聚類。
在每個聚類內,都會計算成對余弦相似性。
余弦相似度超過閾值的資料對被視為語義重複資料。
從每個集群內的語義重復項組中,保留一個代表性資料點,其餘資料點將被刪除。
基於模型的品質過濾
基於模型的品質過濾利用各種類型的模型來評估和過濾基於品質指標的內容。模型類型的選擇對過濾的有效性和所需的計算資源有著顯著的影響,因此為特定用例選擇合適的模型至關重要。
可用於品質過濾的不同類型的模型包括:
基於 N-gram 的分類器: 最簡單的方法是使用基於 n-gram 的詞袋分類器,例如 fastText,該分類器在效率和實用性方面表現出色,因為它們只需要最少的訓練資料(100,000 到 1,000,000 個樣本)。
BERT 風格的分類器: BERT 風格的分類器代表一種中間方法,通過基於 Transformer 的架構提供更好的品質評估。它們可以捕捉更複雜的語言模式和上下文關係,從而有效地進行品質評估。
LLMs: LLMs 提供最複雜的品質評估能力,利用其豐富的知識來評估文本品質。雖然它們提供對內容品質的更好的理解,但具有重大的計算要求,因此最適合小規模應用,例如微調資料集。
獎勵模型: 獎勵模型是專為評估對話式資料品質而設計的專門類別。這些模型可以同時評估多個品質維度,但與 LLMs 類似,它們具有重要的計算要求。
選擇優質過濾模型時應考慮資料集規模和可用計算資源。對於大規模預訓練資料集,將用於初始過濾的輕量級模型與用於最終品質評估的高級模型相結合,通常可實現效率和效果的最佳平衡。對於品質至關重要的小型專業資料集,使用像 LLMs 或 reward models 等模型變得更加可行和有益。
PII 編輯
個人身份資訊(PII)編輯涉及識別和從資料集中刪除敏感資訊,以保護個人隱私並確保遵守資料保護法規。
在處理包含個人資訊的資料集時,這一過程尤為重要,其中包括姓名和社會安全號碼等直接標識符,以及與其他資料結合使用時可用於識別個人身份的間接標識符。
現代 PII 編輯採用各種技術來保護敏感資訊,包括:
將敏感資訊替換為符號(例如,XXX-XX-1234 表示美國社會安全號碼),同時保持資料格式和結構。
將敏感資料替換為保持參考完整性的非敏感等效資料,以用於分析目的。
在下游任務不需要敏感資訊時消除敏感資訊。
總體而言,PII 編輯有助於維護資料隱私、遵守法規並與用戶建立信任,同時保留其資料集用於訓練和分析目的的實用性。
分布式資料分類
資料分類在資料管護中發揮著至關重要的作用。此過程有助於根據領域和品質等各種屬性對資料進行組織和分類,確保資料得到良好平衡並代表不同的知識領域。
域分類通過根據主題識別和分類內容,幫助 LLMs 瞭解輸入文本的上下文和特定領域。域資訊可用作寶貴的輔助資料,使開發者能夠構建更多樣化的訓練資料集,同時識別和過濾潛在的有害或不需要的內容。例如,使用 AEGIS 安全模型(將內容分為 13 個關鍵風險類別),開發者可以有效地識別和過濾訓練資料中的有害內容。
在處理通常包含數十億文檔的預訓練語料庫時,運行分類推理會變得計算密集且耗時。因此,分布式資料分類對於克服這些挑戰至關重要。這是通過在多個 GPU 節點上對資料集進行分塊來實現的,以便以分布式方式加速分類任務。
任務去污
訓練完成後,通常會根據 LLMs 在包含未見測試資料的下游任務上的性能對其進行評估。下游任務去污染這一步驟可解決測試資料向訓練資料集的潛在洩露問題,該問題可能會導致產生錯誤的評估結果。去污過程通常涉及幾個關鍵步驟:
識別潛在的下游任務及其測試集。
將測試資料轉換為 n-gram 表示。
在訓練語料庫中搜索匹配的 n-gram。
刪除或修改受污染的部分,同時保持文檔的連貫性。
這種系統化方法有助於確保去污的有效性,同時最大限度地減少對資料品質的意外影響,從而有助於更可靠的模型評估和開發。
混合和混洗
資料混合和混洗是資料管護工作流中的最後一步,可組合多個精心策劃的資料集,同時確保適當的隨機化,以優化模型訓練。這一過程對於創建多樣化、平衡良好的訓練資料集至關重要,這些資料集可實現更好的模型泛化和性能。資料混合涉及將多個來源的資料合併到統一的資料集中,從而創建更全面、更多樣化的訓練資料。混合過程使用兩種方法實施:
在線:訓練期間進行資料組合
離線:在訓練之前合併資料集
每種方法都具有獨特的優勢,這取決於訓練過程的具體要求以及最終資料集的預期用途。
合成資料生成
瞭解了預處理階段的複雜性後,我們現在在大型語言模型(LLM)開發領域面臨著一個巨大的挑戰:資料稀缺。大型語言模型對大量訓練資料集(即使是用於微調目的)的需求永無止境,往往會超過特定領域或特定語言資料的可用性。
為此, 合成資料生成(SDG) 是一種功能強大的方法,可利用大型語言模型創建模擬真實資料特徵的人工資料集,同時保護隱私並確保資料效用。此流程使用外部大型語言模型服務生成高品質、多樣化且與上下文相關的資料,這些資料可用於預訓練、微調或評估其他模型。
SDG 通過支援適應低資源語言、支援領域專門化和促進跨模型的知識提煉來增強 LLM 的能力,使其成為擴展模型功能的通用工具。在真實資料稀缺、敏感或難以獲取的情況下,SDG 變得尤為重要。

合成資料管道包含三個關鍵階段:生成、批判和過濾。
生成: 使用提示工程為各種任務生成合成資料。以 Nemotron-4 為例,SDG 可用於為五種不同類型的任務生成訓練資料:開放式問答(open-ended QA)、封閉式問答(closed-ended QA)、寫作作業(writing assignments)、編碼和數學問題。
批判: 使用 LLM 反射、LLM 作為法官、獎勵模型推理和其他代理等方法來評估合成資料的品質。評估結果可用作對 SDG LLM 的反饋,以生成更好的結果或過濾低品質資料。其中一個典型示例是 Nemotron-4-340B 獎勵 NIM ,它通過五個關鍵屬性評估資料品質:Helpfulness、Correctness、Coherence、Complexity 和 Verbosity。通過為這些屬性分數設置適當的閾值,過濾過程可確保僅保留高品質的合成資料,同時過濾低品質或不當內容。
過濾器: 通過重複資料刪除和個人身份資訊編輯等步驟進一步提高 SDG 資料品質。
但是請注意,SDG 並非適用於所有情況。來自外部語言模型的大規模語言模型的幻覺可能會引入不可靠的資訊,從而損害資料完整性。此外,生成的資料分布可能與目標分布不一致,可能會導致實際性能不佳。在這種情況下,使用 SDG 實際上會損害系統的有效性,而不是改善系統的有效性。
用於構建主權 LLM 的資料處理
如前所述,開源的大型語言模型在英語方面表現出色,但難以與其他語言 (尤其是東南亞的語言) 交流。這主要是由於缺乏這些語言的訓練資料、對當地文化的理解有限,以及 token 不足以捕捉獨特的語言結構和表達。
為了充分滿足客戶需求,非英語國家的企業必須超越通用模型,並對其進行定制,以捕捉當地語言的細微差別,確保無縫且有影響力的客戶體驗。例如,使用 NeMo Curator,Viettel Solutions 處理了 高品質的越南語資料 ,將準確性提高 10%,將資料集大小減少 60%,並將訓練時間縮短 3 倍。
WeChat
Profile