📢 Gate廣場 #NERO发帖挑战# 秀觀點贏大獎活動火熱開啓!
Gate NERO生態周來襲!發帖秀出NERO項目洞察和活動實用攻略,瓜分30,000NERO!
💰️ 15位優質發帖用戶 * 2,000枚NERO每人
如何參與:
1️⃣ 調研NERO項目
對NERO的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與NERO生態周相關活動,並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
NERO熱門活動(帖文需附以下活動連結):
NERO Chain (NERO) 生態周:Gate 已上線 NERO 現貨交易,爲回饋平台用戶,HODLer Airdrop、Launchpool、CandyDrop、餘幣寶已上線 NERO,邀您體驗。參與攻略見公告:https://www.gate.com/announcements/article/46284
高質量帖子Tips:
教程越詳細、圖片越直觀、互動量越高,獲獎幾率越大!
市場見解獨到、真實參與經歷、有帶新互動者,評選將優先考慮。
帖子需原創,字數不少於250字,且需獲得至少3條有效互動
小模型如何比肩大模型,北理工發佈明德大模型MindLLM,小模型潛力巨大
原文來源:機器之心
大型語言模型 (LLMs) 在各種自然語言任務中展現出了卓越的性能,但是由於訓練和推理大參數量模型需要大量的計算資源,導致高昂的成本,將大語言模型應用在專業領域中仍存在諸多現實問題。 因此,北理團隊先從羽量級別模型入手,最大程度發揮數據和模型的優勢,立足更好地服務特定領域,減少下游任務的訓練與推理成本。
10月24日,北京理工大學自然語言處理團隊發佈系列雙語輕量級大語言模型明德 (Ming De LLM)——MindLLM,全面介紹了大型模型開發過程中積累的經驗,涵蓋了數據構建、模型架構、評估和應用過程的每個詳細步驟。 MindLLM 從頭開始訓練,具有 1.3B 和 3B 兩個版本, 在某些公共基準測試中始終匹配或超越其他開源大型模型的性能。 MindLLM 還引入了專為小型模型量身定製的創新指令調整框架,來有效增強其能力。 此外,在法律和金融等特定垂直領域的應用,MindLLM 也具有出色的領域適應能力。
MindLLM 亮點
數據相關
數據處理
我們使用英文和中文兩種語言的訓練數據。 英文數據源自Pile數據集,經過進一步處理。 中文數據包括來自Wudao、CBooks等開源訓練數據,以及我們從互聯網上爬取的數據。 為確保數據質量,我們採用了嚴格的數據處理方法,特別是對於從網路爬取的數據。
我們採用的數據處理方法包括如下幾個方面:
最終我們獲得了數據如下表:
縮放定律
為了確保在深度學習和大型語言模型的訓練成本不斷增加的情況下獲得最佳性能,我們進行了數據量和模型容量之間的關係研究,即Scaling Law。 在著手訓練具有數十億參數的大型語言模型之前,我們首先訓練較小的模型,以建立訓練更大模型的擴展規律。 我們的模型大小範圍從1千萬到5億參數不等,每個模型都在包含高達100億tokens的數據集上進行了訓練。 這些訓練採用了一致的超參數設置,以及前文提到的相同數據集。 通過分析各種模型的最終損失,我們能夠建立從訓練FLOP(浮點運算數)到Loss之間的映射。 如下圖所示,不同大小的模型飽和的訓練數據量不同,隨著模型大小的增加,所需的訓練數據也增加。 為了滿足目標模型的精確數據需求,我們使用了冪律公式來擬合模型的擴展規律,並預測出3B參數模型的訓練數據量與Loss數值,並與實際結果進行對照(圖中星標)。
數據混雜與數據課程
數據對模型的影響主要涵蓋兩個方面:(1)混合比例,涉及如何將來自不同來源的數據組合在一起,以在有限的訓練預算下構建一個特定大小的數據集; (2)數據課程,涉及來自不同來源的數據的排列方式,以訓練模型特定的技能。
我們將每個數據來源等比例縮小,用於訓練15M參數量的模型。 如下圖所示,不同類型的數據對學習效率和模型最終結果有不同的影響。 例如,數學題數據的最終損失較低,學習速度較快,表明它具有更為明顯的模式且容易學習。 相比之下,來自資訊豐富的書籍或多樣化的網路文本的數據需要更長的適應時間。 一些領域相似的數據可能在損失上更為接近,例如技術相關數據和百科全書。
此外,我們進行了多次的數據比例調整,以平衡模型在各種技能和數據類型之間的表現。 基於我們的實驗,我們最終確定了數據混合比例的一些原則:
除了混合比例,數據課程(數據的訓練順序)也會影響模型的能力學習。 實驗表明,不同來源的數據將使模型學習不同的技能,由於技能之間的相關性,採用特定的學習順序可能有助於模型學習新的技能。 我們的實驗集中於非均勻混合數據和語言遷移學習對模型能力的影響。 我們的實驗表明,非均勻混合數據會導致模型在同一類型數據上進行連續訓練,這更接近於上下文內學習的情境,因此在少樣本學習方面表現更好; 然而,由於學習的不均勻性,後期可能會出現明顯的遺忘現象。 此外,語言遷移學習有助於模型獲得雙語能力,通過語言對齊可能提高整體性能,但我們認為使用混合語言數據進行訓練更有利於模型能力的分配與習得。
MindLLMs 模型架構
MindLLM-1.3B採用的是GPTNeo-1.3B相同的模型架構,而MindLLM-3B則是在此基礎上增加了一些改進。 基於訓練穩定性和模型能力方面的考慮,我們使用旋轉位置編碼(RoPE)DeepNorm、RMS Norm、FlashAttention-2、GeGLU等優化算子。
我們在GPTNeo-1.3B的基礎上增加了中文詞表,並採用遷移學習的策略訓練MindLLM-1.3B的雙語能力。 而MindLLM-3B,我們則是使用來自SentencePiece的BPE來對數據進行分詞,我們的Tokenizer的最終詞彙量大小為125,700。 通過兩種不同的雙語訓練方式,我們總結了一些普遍實用的預訓練方法。
預訓練
預訓練細節
我們使用了兩種不同的策略從頭訓練雙語模型MindLLM。 對於MindLLM-3B,我們直接在混合的中英文雙語數據上預訓練了800,00步,同時學習中英文能力; 對於MindLLM-1.3B,我們首先在英文數據集上進行預訓練101,100步,然後使用中英文混合數據訓練了105,900步。 預訓練細節如下:
較小的模型可以擊敗更大的模型
為評估模型的中英文能力,我們使用MMLU(5-shot)和AGI(4-shot)評估模型英文能力,使用C-(5-shot)和CMMLU(4-shot)評估模型的中文能力。 其中AGI採用英文部分的多選題部分。 評估結果如下:
此外,我們發現數據量更少,但是使用了中英文數據訓練的MindLLM-1.3B在MMLU上的表現優於GPT-Neo-1.3B,我們推測這可能是雙語學習帶來的增益,因為不同語種在能力之間也存在共通性。 詳細實驗和分析可查看論文4.4節。
較小的模型在具體能力上存在巨大的潛力
對於羽量級模型,在應用於下游任務時,只需要存在相關的能力上展現出出色的表現即可。 因此,我們本部分想要探究MindLLMs和其他羽量級LLM在(≤7B)具體能力上的表現和影響因素。
我們主要從數學能力、推理能力和雙語對齊能力三個角度評估不同模型表現,因為這三種能力複雜且對於雙語模型的應用相對重要。
(1) 數學
我們使用Arithmetic(5-shot)數據集評估模型的算數能力,使用GSM8K(4-shot)和MATH(4-shot)評估模型的通用數學能力。 評估結果如下:
(2) 推理
我們使用HellaSwag、WinoGrande評估模型語言推理能力(5-shot),使用LogiQA評估模型邏輯推理能力(5-shot),使用PubMedQA、PIQA、MathQA評估模型知識推理能力(5-shot),使用BBH評估模型綜合推理能力(3-shot)。 具體評估結果如下:
(3) 雙語能力
我們使用Flores-101(8-shot)中的zh-en部分評估雙語或者多語模型在中英文上的對齊能力。 我們加入Chinese-LLaMA-2-7B進行評估,其為在LLaMA-2-7B基礎上進行中文領域適應的模型。 結果如下所示:
因此,我們有兩個結論,其一是模型可以通過在某種語言上進行大量的訓練學習到通過的語言表示,同時混入少量的另一種語言就可以理解並進行單向對齊,如LLaMA-7B和Open-LLaMA-7B的表現。 其二則是,若需要獲得更好的雙語或多語對齊能力,那麼在預訓練開始階段就需要有較平衡的雙語或多語數據比例,如Blooms和MindLLM-3B。 進一步,我們發現MOSS-Base-16B和Chinese-LLaMA-2-7B存在較合理的中英文數據比例,單依舊沒有表現出雙向對齊,我們的假設是雙語對齊能力在遷移訓練的時候加入是困難的,因為此時的模型已經存在了大量的知識,這在容量較小的情況下會產生矛盾衝突。 這也解釋了容量更小,前期單語訓練的數據量少的MindLLM-1.3B也沒有獲得雙語對齊能力的現象。 而Baichuan2-7B在其他表現方面非常出色,可能也就佔據了較大的能力容量,無法學習到較好的雙向對齊能力。
(4) 總結
通過評估預訓練階段的評估結果,我們有一下兩個結論:
此外,論文中還對比了是否保持數據均勻分佈對模型預訓練性能的影響,實驗結果顯示類似課程學習的數據構造方式可能在前期和均勻混合的數據構造方式下訓練的模型表現相當,但是最終可能出現災難性遺忘而導致表現突然下降,而後者表現則更持續穩定,獲取的預訓練數據知識也更加全面,這也佐證了以上第二點結論。 另外我們發現類似課程學習的數據構造方式可能產生更多有利於增強模型上下文學習能力的數據分佈。 具體細節可以查看論文4.5部分。
指令微調
我們想要探討在輕量級模型上,不同類別數據集的指令微調會有什麼樣的性能表現。 下表是我們使用的指令微調數據集,包含我們重新構造的中文數據集MingLi、公開數據集Tulu(英文)和中英雙語數據集MOSS。
MindLLM-1.3B和MindLLM-3B模型在不同數據下指令微調後在C-上的性能表現如下。 從實驗結果看,使用精心挑選的50,000條指令微調數據集訓練的模型性能要高於多樣性高、數據量大的指令微調數據集訓練的模型性能。 同樣,在英文指標MMLU上,模型也表現出相同的性能(詳見論文Table 14)。 因此,對於羽量級模型來說,如何定義和篩選出高品質的指令微調數據集是非常重要的。
如何定義高品質的指令微調數據? 有學者提出指令微調數據的多樣性可以代表指令微調數據集的數據品質。 然而根據我們的實驗發現,指令微調的數據熵和數據長度會更加影響輕量級模型的性能。 我們將每條數據在預訓練模型上的交叉熵損失定義為該數據的數據熵,並通過K-Means演算法依據數據熵對數據進行聚類得到不同的數據簇。 MindLLM經過每個數據簇的指令微調後再C-的結果如下表所示(MMLU的結果詳見論文Table19):
MindLLM可以經過指定指令微調數據集獲得特定能力
為了探究MindLLM能否經過指令微調有效的提升其特定能力,我們使用萬卷數據集中的exam數據部分微調模型,目的是為了增強模型的學科知識能力。 我們在C-上進行了評估,結果如下:
領域應用
為了展示小模型在具體領域應用的效果,我們採用了在金融和法律兩個公開數據集來做出驗證。 從結果中可以觀察到,模型的參數大小對領域性能有一定影響,但表現並不明顯。 MindLLM的性能在領域應用內超越了其它同等規模的模型,並且與更大的模型有可比性。 進一步證明瞭小模型在領域應用落地有極大潛力。
金融領域
在該領域,對金融數據進行情緒感知分類任務。 首先,我們從東方財富網爬取了2011年5月13日至2023年8月31日的數據,並根據接下來的股價波動對數據進行了標記。 隨後,按照日期將數據劃分為訓練集和測試集。 考慮到類別的不平衡性,我們對數據進行了採樣,最終使用了32萬條數據作為訓練集,而測試集則採用了2萬條數據。
法律領域
我們收集了一些公開的法律相關數據,並結合了一些通用指令數據對 MindLLM 進行指令微調 (SFT)。 為了探究數據的 token 長度是如何影響模型在具體領域上的性能的,我們使用不同數據長度的數據來分別訓練 MindLLM。 我們首先篩選了長度小於450的全部數據,然後分別使用MindLLM-1.3B和MindLLM-3B的Tokenizer篩選出長度在200-300和300-450之間的數據。 數據統計和所對應的訓練模型如下表所示:
對於 Bloom,GPT-Neo 和 Open-LLaMA 模型使用了和 MindLLM-Law 一樣的數據集進行了微調,比較結果如下所示:
總結
本文介紹了 MindLLM 系列模型,目前包括兩款羽量級大語言模型。 我們詳細探討了它們的訓練過程,包括數據處理、預訓練、微調、以及領域應用,分享了在這些領域所積累的寶貴經驗和技術應用。 儘管 MindLLM 的參數規模相對較小,但它們在多個性能評測中表現出色,甚至在某些方面超越了一些更大體量的模型。 MindLLM 在領域適應方面相對於其他羽量模型表現出更卓越的性能。 同時,與更大規模的模型相比,它們能夠以更快的訓練速度和更少的訓練資源取得相當的成績。 基於以上分析,我們認為小模型仍然具有極大的潛力。 我們將進一步提升數據品質,優化模型訓練過程和擴展模型規模,以多維度方式提升 MindLLM 的性能。 未來,我們計劃在更多下游任務和特定領域進行嘗試,以更深入地實現羽量級大模型的具體應用。