在此博客中,我很高興分享我們對訓練Amabri基礎(認知 - lab/ambari-7b-Instruct-v0.1)和Amabri指導(認知/Ambari-Lab/Ambari-7b-7b-Instruct-v0.1)的細緻方法的見解。這種敘述使高級瞥見我們的過程,是即將到來的所有技術細節的啟示的先驅 - 廣泛的測試和評估的高潮。當我們解開導致創建Amabri的複雜性時,請繼續關注,Amabri是一種創新的開源雙語Kannada-英語模型。
Amabri背後的目的
在大語言模型(LLM)的動態景觀中,Amabri的創建源於多方面的目的:
隨著LLM越來越多地滲透到主流使用情況下,開源模型雖然富含世界知識,但主要來自以英語為中心的培訓。 Amabri是一項開拓性計劃,以擴大此範圍並將LLMS適應不同的語言。
在LLM的不斷發展的景觀中,對大量培訓數據的需求從1萬億到10萬億代幣不等。但是,這對有限的資源有限的語言提出了挑戰。在我們的追求中,我們專注於改編預先培訓的LLM,例如Llama/Mistral,以理解新語言的細微差別 - 在Amabri的情況下。儘管Kannada並未被歸類為一種非常低的資源語言,但它是檢驗我們的假設和方法論的理想候選人。嚴格地定義了培訓和填充階段,我們為整個過程設定了10億個培訓令牌的上限。
隨後,我們精心製作的數據集,相應地分發了它們,並描述了流程的階段:
這種故意的方法為Amabri的發展奠定了基礎,從而在LLM領域推動了語言適應性的界限。
在語言模型效率上的關鍵組成部分是代幣化,在開源LLM的背景下對Kannada文本提出了一個獨特的挑戰。許多現有模型效率低下,訴諸角色級別的令牌化,尤其是在推論期間,會影響整體性能。為了解決這個問題,我們使用句子為卡納達文本開發了一種專門的令牌化模型。該模型與基本乳青拉拉瑪(Base Llama)令牌無縫集成,導致49,600的全面詞彙量擴大了17,600。
我們的方法涉及在三個不同的數據集大小上訓練令牌模型,從而揭示了包含100,000個令牌的數據集。隨著我們進化的Amabri,即將到來的迭代將採用精緻的令牌化策略,採用詞彙量減少48,000。通過安德烈·卡爾帕蒂(Andrej Karpathy)在他的Twitter帖子(Twitter上的Andrej Karpathy)中共享的見解,這一調整旨在提高整體效率。
好奇地探索效率獲得了第一手的收益?您可以在此處測試引物。
預訓練
有了有效的令牌儀,我們的下一個關鍵步驟是訓練階段,旨在使模型與新富集的詞彙熟悉。為了優化此過程,我們策劃了來自不同來源的全面數據集。值得注意的是,我們在此階段探索了兩種不同的方法:通過洛拉(Lora)進行訓練並充分訓練模型。這一戰略決策源於我們渴望辨別Amabri發展的最佳途徑。
這些方法之間的詳細比較將很快揭幕,但我們已經收集了一些初步觀察:
儘管我們承認我們正在進行的測試可能會完善這些觀察結果,但該快照為我們的進步提供了寶貴的見解。訓練前階段採用了2XA100 GPU的簇,在包括5億個代幣的大量語料庫上進行全權重訓練大約需要25小時。
值得一提的是,擁抱面孔現在可以使用完全微調的模型的重量嗎? -https://huggingface.co/cognitive-lab/ambari-7b-base-v0.1,為社區內的開源知識共享做出了貢獻。
雙語旁邊的標記預測
這一階段是受Sarvam.ai開放式Hathi系列的啟發,是我們的培訓策略計劃外的但又關鍵的添加。創建一個具有200,000個代幣的數據集,我們利用Lora進行微調,旨在使模型具有增強的語言理解。隨著我們的進步,我們的重點轉向在卡納達語中灌輸“世界知識”。考慮到卡納達語內容的稀缺性,尤其是與英語相比,我們轉向翻譯。利用Indictrans2,我們將英文內容翻譯成主要來自Wikipedia的英語內容,轉化為卡納達語。但是,我們沒有傳統的單語言預測,而是引入了一種開創性的方法 - 雙語旁邊的標誌預測。這種方法與卡納達語和英語之間的句子交替,迫使模型在下一步的預測期間跨語言訪問信息。這種細微的方法不僅促進了卡納達語和英語之間的一致性,而且在培訓期間自然平衡了印地語和英語代幣的平衡。這個階段為Amabri的訓練旅程增添了額外的複雜性。
翻譯填充
此階段的目的是建立英語和相應的卡納達代幣之間的連貫關係。我們採用低級改編進行微調,遇到了一些挑戰,特別是決定使用非常低的價值的決定,事實證明這一點效率較低。數據集大小為100,000個令牌,此階段提出了限制,我們承認需要改進。當我們完善培訓過程的這一方面時,我們致力於增強Amabri雙語能力的承諾仍然堅定不移。
雙語指導微調
在這個關鍵階段,我們採用了低級適應的監督微調來塑造模型的響應能力。擁抱由用戶提示/說明和相應響應組成的聊天模板結構,我們冒險進入雙語指示微調領域。這種方法涉及培訓模型,以根據用戶提示或說明中指定的語言進行熟練的響應。
聊天模板
< | user | >
{user prompt / instruction}
< | endoftext | >
< | assistant | >
{response}
< | endoftext | >例如,給定一個用戶提示
“在卡納達州給我10個學習技巧,”
回覆
該模型無縫地在卡納達語中產生響應,並保持語言連貫性。為了豐富培訓過程,我們合併了各種指令數據集,包括羊駝指示,多莉指令等。利用翻譯API,例如Google,Azure以及AI4BHARAT的IndiNTrans2模型的自定義部署,我們製作了一個全面的雙語指示數據集。
該數據集現在在這裡擁抱面孔公開可用,包括各種語言方案。在培訓期間,我們實施了有四個不同表示的監督微調:
這種細緻的方法不僅使模型熟悉不同語言的響應,而且為掌握各種跨語性任務奠定了基礎。
這種精心調整的模型的權重可以在擁抱臉上訪問,並且為了獲得動手體驗,您可以在chat.cognitivelab.in上探索4位量化版本。
在模型完善的最終階段,我們深入研究了直接偏好優化的世界(DPO)。這種戰略選擇的靈感來自於在各種開源模型中觀察到的成功,不僅旨在使我們的模型保持一致,還旨在推動基準的改進。我們利用了人類/HH-RLHF數據集,開始了這一實驗之旅。將其轉換為卡納達語,我們對該模型進行了DPO微調,目前正在進行全面的評估以評估其性能影響。
改進範圍
至關重要的是要意識到此框架中提供的模型尚未進行排毒。儘管他們展示了令人印象深刻的語言能力,但仍有可能被認為是有害或冒犯的內容的潛力。強烈建議用戶行使酌處權,並密切監視模型的輸出,尤其是在公共或敏感應用程序中。
我們歡迎捐款來增強和擴展該項目。如果您有建議或改進,請打開問題或提交拉動請求。
該項目已根據GNU GPL V3.0許可獲得許可。有關詳細信息,請參閱許可證文件。
重要的是: GPL 3.0許可證僅適用於此存儲庫中提供的源代碼和數據集。由於Indiad-llm是Meta的Llama 2模型的衍生物,因此它受Llama 2的原始許可,無法更改。因此,有關模型許可的全面詳細信息,請諮詢Llama2許可文件。
該存儲庫從以下存儲庫中汲取靈感: