模型概述
模型特點
模型能力
使用案例
🚀 Kyara:用於大語言模型微調的知識自適應檢索增強
Kyara(知識自適應檢索增強)是一個旨在通過知識檢索過程改進語言模型的實驗項目。該項目致力於增強模型的知識適應能力和語言理解能力,尤其針對像繁體中文這樣資源相對較少的語言。由於與用於模型訓練的大量英文語料相比,繁體中文數據相對匱乏,Kyara通過擴展該語言有限的語料庫來彌補這一差距。
為驗證Kyara的有效性,我們對Gemma - 2 - 2b - it
進行了全參數微調,得到了Kyara模型的第一個版本。如基準測試部分詳細所示,初步評估結果表明,Kyara在各種基準測試中均優於原始的Gemma - 2 - 2b - it
,在中文評估中表現出顯著的改進。
🚀 快速開始
Kyara採用與Gemma2相同的架構,使用相同的推理和訓練方法。我們在Kaggle上創建了一個Jupyter Notebook來展示Kyara的基本功能。對於服務級部署,我們建議使用Sglang或vllm以實現更高的吞吐量和魯棒性。
✨ 主要特性
檢索增強生成(實驗性)
得益於Kyara的訓練方法,我們在監督微調(SFT)階段融入了與檢索增強生成(RAG)相關的內容。你可以參考以下示例來構建任務模板。
📚 詳細文檔
基準測試
通用基準測試
以下評估基於零樣本。
指標 | Kyara - 2b - it | Gemma - 2 - 2b - it |
---|---|---|
TMMLUPlus | 41.98 | 36.73 |
- STEM | 43.73 | 37.84 |
- 人文科學 | 38.72 | 33.40 |
- 其他 | 40.61 | 36.00 |
- 社會科學 | 44.88 | 39.69 |
MMLU - Redux | 55.44 | 51.94 |
GSM8K | 54.21 | 51.63 |
MATH - L5 | 8.88 | 4.3 |
CRUX | 22.75 | 21.5 |
ZebraLogic | 5.2 | 4.2 |
中文推理基準測試 | 4.21 | 3.44 |
TMMLUPlus中各分組的聚合方法為宏平均,遵循官方實現中的做法。
[Open - LLM排行榜](https://huggingface.co/spaces/open - llm - leaderboard/open_llm_leaderboard)
截至目前,Kyara - 2b - it在OpenLLM排行榜的所有2b規模模型中處於領先地位。
對齊基準測試
指標 | Kyara | Gemma - 2 - 2b - it | ChatGPT - 3.5 - 1106 |
---|---|---|---|
[AlpacaEval - LC](https://github.com/tatsu - lab/alpaca_eval) | 35.35 | 32.37 | 19.30 |
[AlpacaEval](https://github.com/tatsu - lab/alpaca_eval) | 43.34 | 32.94 | 9.20 |
[MT - Bench - TW](https://huggingface.co/datasets/MediaTek - Research/TCEval - v2) | 7.43 | 6.35 | 7.10 |
[MT - Bench](https://huggingface.co/spaces/lmsys/mt - bench) | 8.28 | 8.17 | 8.32 |
[Chatbot - Arena - Hard](https://github.com/lm - sys/arena - hard - auto) | 22.60 | 19.4 | 18.87 |
AlignBench
類別 | Kyara - 2b - it - CHT | Kyara - 2b - it - CHS | Gemma - 2 - 2b - it | ChatGPT - 3.5 - 0613 |
---|---|---|---|---|
基礎語言能力 | 6.72 | 6.54 | 6.42 | 6.92 |
高級中文理解 | 5.78 | 5.24 | 5.03 | 5.91 |
開放式問題 | 8.16 | 7.79 | 7.52 | 6.47 |
寫作能力 | 7.90 | 7.24 | 7.76 | 7.28 |
邏輯推理 | 5.26 | 4.27 | 4.20 | 4.79 |
數學能力 | 5.99 | 5.44 | 5.05 | 5.38 |
面向任務的角色扮演 | 8.07 | 8.00 | 7.42 | 7.00 |
專業知識 | 6.97 | 6.86 | 5.79 | 6.81 |
推理平均得分 | 5.62 | 4.85 | 4.63 | 5.00 |
中文平均得分 | 7.26 | 6.94 | 6.66 | 6.73 |
總體得分 | 6.44 | 5.90 | 5.64 | 5.91 |
其中,後綴CHT和CHS分別代表繁體中文和簡體中文。為了在AlignBench中評估繁體中文的性能,我們使用OpenCC並配置s2tw
將所有問題從簡體中文轉換為繁體中文。
方法
數據集概述
我們總共收集了360萬條對話,約451億個標記。以下是語言分佈和對話輪次的概述。
- 語言:
- 對話輪次:
數據集構建
Kyara的數據構建分為兩部分:英文和中文。
- 英文部分:我們整合了多個高質量的開源數據集,如[teknium/OpenHermes - 2.5](https://huggingface.co/datasets/teknium/OpenHermes - 2.5)和[arcee - ai/The - Tome](https://huggingface.co/datasets/arcee - ai/The - Tome),並進行語義去重以去除相似的示例。
- 中文部分:構建過程如下:
- 基礎數據集:基於檢索增強的知識注入:我們使用開放的中文知識語料庫開發了一個知識搜索系統,並與QDrant集成。為了構建監督微調(SFT)對,我們遵循以下過程:
- 從知識庫中採樣文檔,並根據這些文本生成用戶可能提出的知識密集型問題。
- (可選)使用Evol - Instruct增加指令複雜度。
- 對生成的指令應用查詢擴展,以檢索額外的前K個文檔,並分別評估它們的相關性:
- 對於相關文檔,使用大語言模型總結與問題相關的關鍵信息。
- 對於不相關文檔,忽略它們。
- 讓大語言模型根據原始文檔和K個補充參考生成詳細而全面的響應。 此外,我們還會讓大語言模型為高質量文檔生成用戶提示,並將(生成的提示,原始文檔)作為一個SFT示例。
- 中文數學數據集:
- 數據集:[zake7749/kyara - chinese - math - sft - s0 - 30K](https://huggingface.co/datasets/zake7749/kyara - chinese - math - sft - s0 - 30K)
雖然上述策略可以生成廣泛的基於知識的文本,但它主要適用於信息檢索任務,在構建數學和推理相關內容方面效果不佳。為了解決這個問題,我們基於[PersonaHub](https://huggingface.co/datasets/proj - persona/PersonaHub)生成了50,000道數學問題。然後,我們使用
Gemini - 1.5 - Flash
過濾掉計算和推理有明顯錯誤的數據,從而創建了[kyara - chinese - math - sft - s0 - 30K](https://huggingface.co/datasets/zake7749/kyara - chinese - math - sft - s0 - 30K)。
- 數據集:[zake7749/kyara - chinese - math - sft - s0 - 30K](https://huggingface.co/datasets/zake7749/kyara - chinese - math - sft - s0 - 30K)
雖然上述策略可以生成廣泛的基於知識的文本,但它主要適用於信息檢索任務,在構建數學和推理相關內容方面效果不佳。為了解決這個問題,我們基於[PersonaHub](https://huggingface.co/datasets/proj - persona/PersonaHub)生成了50,000道數學問題。然後,我們使用
- 高質量數據集:模型優化:在使用基礎數據集完成監督學習後,我們將在高質量子集上再次對大語言模型進行微調,主要是為了解決以下三個問題:
- 基礎數據集中的一些響應是由小模型生成的,有時在遵循指令方面表現不佳。
- 我們在之前的步驟中使用了各種大語言模型來引入知識多樣性和語言適應性。然而,我們發現不同大語言模型在響應模板和推理方法上存在細微差異,導致訓練的聊天模型偶爾不穩定。因此,我們引入了一個高質量的小數據集,使用單個強大的大語言模型生成問答對。
- 基礎數據集包括一些由生成的查詢和原始文檔組成的問答對。雖然這些數據知識豐富,但在遵循指令方面相對較弱。 為了平衡數據多樣性和質量,我們採用了類似於InsTag的策略對數據進行分類。然後,我們使用[ArmoRM](https://huggingface.co/RLHFlow/ArmoRM - Llama3 - 8B - v0.1)和一個大語言模型評判器來評估數據質量,最終從每個類別中提取最佳訓練數據,創建了約500K的第一階段數據集,用於再次微調Kyara - SFT模型。
- 基礎數據集:基於檢索增強的知識注入:我們使用開放的中文知識語料庫開發了一個知識搜索系統,並與QDrant集成。為了構建監督微調(SFT)對,我們遵循以下過程:
偏好學習
我們在Kyara中引入了偏好學習,這使得模型的響應能夠更好地符合人類偏好,同時增強編程技能和數學推理能力。 Kyara的偏好學習策略採用直接偏好優化(DPO),將兩個自定義的中文數據集與兩個英文數據集集成。
- [argilla/ultrafeedback - binarized - preferences](https://huggingface.co/datasets/argilla/ultrafeedback - binarized - preferences)
- [xinlai/Math - Step - DPO - 10K](https://huggingface.co/datasets/xinlai/Math - Step - DPO - 10K)
以下是中文數據集的構建策略總結:
- 中文DPO:
- SPIN/SPPO:我們遵循原始設計,使用Kyara - SFT為高質量數據集生成一組對比數據。
- RLAIF:
- 數據集:[zake7749/kyara - chinese - preference - dpo - s0 - 30K](https://huggingface.co/datasets/zake7749/kyara - chinese - preference - dpo - s0 - 30K)
我們從
Magpie - Align/Magpie - Qwen2 - Pro - 200K - Chinese
、hfl/stem_zh_instruction
和FreedomIntelligence/Evol - Instruct - Chinese - GPT4
中提取中文提示,並將相同的提示分發給四個不同的大語言模型。這些模型包括:- GPT - 4o
- GPT - 4 - 0618
- ChatGPT - 3.5 - 0513
- Claude - Sonnet - 3.5
- Yi - Large
- Mixtral 8x22B
- Gemini - Flash
- Qwen2 - 72B - Instruct
- DeepSeek V2 在生成響應後,我們讓大語言模型使用以下提示來判斷哪個響應更好:
- 數據集:[zake7749/kyara - chinese - preference - dpo - s0 - 30K](https://huggingface.co/datasets/zake7749/kyara - chinese - preference - dpo - s0 - 30K)
我們從
**[任務]**
請作為公正的評判者,評估以下兩個AI助手對用戶問題的響應質量。你的評估應考慮正確性和有用性。
1. 首先,逐步獨立解決用戶的問題。
2. 然後,將兩個助手的答案與你的答案進行比較。識別並糾正任何錯誤。
3. 不要讓響應的長度影響你的評估。
4. 儘可能客觀。
在提供解釋後,嚴格按照以下格式輸出最終裁決:如果助手A更好,則輸出 "[[A]]";如果助手B更好,則輸出 "[[B]]";如果平局或A和B都不好,則輸出 "[[C]]"。
如果A和B的答案在正確性、有用性和相關性方面非常相似,即沒有“明顯”的獲勝者,則判定為平局並輸出 [[C]]。
**[用戶問題]**
{prompt}
---
**[助手A的答案]**
{answer}
---
**[助手B的答案]**
{prediction}
---
最後,將所有四個數據集合並進行DPO訓練。
📄 許可證
本項目採用Gemma許可證。
相關鏈接
- 🤗 [Hugging Face](https://huggingface.co/zake7749/gemma - 2 - 2b - it - chinese - kyara - dpo)
- 🚀 Github
- 📑 [論文](https://hf - mirror.com/api/resolve - cache/models/zake7749/gemma - 2 - 2b - it - chinese - kyara - dpo/2ca8e31c1587a53aa662ca8a676d2cf5499d4157/README.md?download=true&etag=%22f4bc372d020c1121d25a910432097c6bcaf7891f%22)
- 📖 英文文檔
- 📖 中文文檔
- 💻 [Kaggle Notebook](https://www.kaggle.com/code/zake7749/kyara - a - compact - yet - powerful - chinese - llm)
項目圖片




