ProX是什么

ProX(Programming Every Example)是一個旨在提高大型語言模型預訓練數據質量的框架。與傳統依賴人類專家制定規則的方法不同,ProX將數據清洗任務視為編程問題,支持模型自動執行如字符串標準化和噪聲行移除等細粒度操作。小型模型(如0.3B參數)也能展現出與人類專家相當的數據處理能力。實驗結果表明,ProX處理后的數據用于模型預訓練,在各種下游任務中取得超過2%的性能提升。ProX的另一個顯著優勢是在不同模型大小和預訓練語料庫上的廣泛適用性,包括在特定領域(如數學)的持續預訓練中,無需特定領域設計即可顯著提升模型性能。ProX節省訓練FLOPs,為高效預訓練大型語言模型提供有前景的路徑。

ProX  提高大語言模型預訓練數據質量的框架 第1張ProX的主要功能數據精煉: ProX基于生成和執行程序精煉大規模數據集,提高數據質量,用在大型語言模型的預訓練。自動化處理: 自動化地對每個數據樣本進行細粒度的清洗和改進,無需人工專家干預。性能提升: ProX處理過的數據進行預訓練的模型,在多個下游任務中表現出超過2%的性能提升。領域靈活性: 適用于不同領域,包括數學等,在不需要特定領域設計的情況下提升準確性。資源節?。?/strong> 相比于基于大型語言模型的數據合成方法,ProX在保持結果的同時,顯著減少計算資源的需求。ProX的技術原理模型適應性: ProX首先在種子數據上微調小型基礎語言模型適應數據精煉任務。程序生成: 適應后的模型為預訓練語料庫中的每個樣本生成數據處理程序,程序包括過濾、字符串標準化和去除噪聲行等操作。程序執行: 生成的程序由預定義的執行器執行,產生準備好預訓練的精煉語料庫。兩階段精煉: ProX包括文檔級編程和塊級編程兩個階段,分別進行粗粒度和細粒度的數據精煉。功能調用: ProX基于靈活的功能調用增強數據質量,統一為特定的轉換或清洗過程。計算效率: ProX展示在較少的預訓練計算FLOPs下,如何通過投資額外的計算資源精煉預訓練語料庫,從而實現更高效的預訓練。ProX項目地址項目官網:gair-nlp.github.io/ProXGitHub倉庫:https://github.com/GAIR-NLP/ProXHuggingFace模型庫:https://huggingface.co/gair-proxarXiv技術論文:https://arxiv.org/pdf/2409.17115ProX的應用場景大型語言模型預訓練:ProX能提升大量高質量文本數據進行預訓練的大型語言模型的數據集質量。數據清洗和預處理:在數據挖掘、自然語言處理和其他機器學習任務中,ProX自動執行數據清洗和預處理步驟,減少人工干預。領域適應性訓練:對于特定領域的應用,如醫療、法律或金融,ProX能優化數據集更好地適應專業術語和語境。持續學習:在持續學習或增量學習的場景中,ProX幫助模型通過不斷精煉數據適應新信息和變化。數據合成:ProX能生成高質量的合成數據,增強現有的數據集,特別是在數據稀缺的領域。