🚀 LuxLlama模型卡
LuxLlama是Meta-Llama-3.1-8B-Instruct模型的微調版本,特別針對盧森堡語的理解和生成能力進行了優化,同時具備通用和數學推理能力。該模型在結合了推理基準和經過清理的盧森堡語文本的多樣化數據集上進行訓練,採用了參數高效微調(PEFT)和LoRA技術,並使用Liger內核進行優化,以提高效率。其性能通過自定義的LUXELLA基準進行評估,在翻譯和理解等方面表現出強大的能力,同時也指出了在細微詞彙和語法方面有待改進的地方。
🚀 快速開始
LuxLlama旨在創建一個既能進行復雜推理,又能掌握盧森堡語細微差別的語言模型。通過利用強大的基礎模型(Llama 3.1 8B Instruct),並在精心策劃的推理和特定語言數據集上進行微調,LuxLlama旨在成為處理需要盧森堡語技能和邏輯推理任務的有力工具。
✨ 主要特性
- 語言能力:主要支持英語和盧森堡語,能夠處理推理任務。
- 微調框架:使用Unsloth、PEFT(LoRA)、TRL(SFTTrainer)進行微調。
- 高效訓練:採用參數高效微調(PEFT)和LoRA技術,結合Liger內核優化,提高訓練效率。
📦 安裝指南
文檔未提供具體安裝步驟,故跳過此章節。
💻 使用示例
文檔未提供代碼示例,故跳過此章節。
📚 詳細文檔
模型詳情
屬性 |
詳情 |
模型名稱 |
LuxLlama |
模型類型 |
針對盧森堡語能力和推理任務進行微調的語言模型 |
基礎模型 |
unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit |
微調框架 |
Unsloth、PEFT(LoRA)、TRL(SFTTrainer) |
語言 |
主要為英語和盧森堡語;能夠處理推理任務 |
關於Meluxina
Meluxina 是盧森堡的國家超級計算機,由LuxProvide於2021年6月推出。它基於EVIDEN BullSequana XH2000平臺構建,提供:
- 18 PetaFlops 的計算能力。
- 20 PetaBytes 的存儲容量。
- 一個集成了模擬、建模、數據分析和人工智能的 可擴展架構。
Meluxina在全球排名第36位,並在Top500排名中被評為歐盟最環保的超級計算機。它以盧森堡傳說中的美人魚Melusina命名,象徵著數字創新,並採用水冷技術提高能源效率。
相關工作
LuxLlama的開發基於以下現有工作:
- 針對特定任務和語言對大語言模型(LLM)進行微調。
- 如LoRA等參數高效微調技術。
- 為提高模型可控性進行的指令微調。
- 特定語言基準的開發。
- 提高LLM的推理能力。
預期用途
- 主要用途:盧森堡語任務,包括翻譯(英語<>盧森堡語)、閱讀理解、語法輔助、詞彙查詢、文化知識檢索、對話模擬和文本生成(寫作提示、句子完成)。通用和數學推理任務。
- 目標受眾:研究人員、開發人員、語言學習者以及需要盧森堡語能力或在模型範圍內獲得推理支持的用戶。
- 非預期用途:需要無人工監督的完美準確性的高風險應用、生成有害或有偏見的內容、違反基礎模型許可協議的用途。
侷限性和偏差
- 性能差異:如LUXELLA基準所示,模型在不同語言類別和難度級別上的性能存在差異。在翻譯和理解方面表現較好,而在細微詞彙、拼寫或習語方面表現較差。性能通常隨著難度的增加而下降。
- 繼承偏差:LuxLlama可能繼承了基礎Llama 3.1模型和訓練數據集中存在的偏差。
- 合成基準:LUXELLA基準使用合成生成的問題。雖然具有多樣性,但可能無法完全捕捉所有現實世界的複雜性或語言變化。
- 基於LLM的評估:使用LLM作為評估法官,雖然可擴展且一致,但與人類專家評估相比存在自身的侷限性和潛在偏差。
- 事實準確性:與大多數LLM一樣,LuxLlama可能會生成看似合理但不正確的信息(幻覺)。
- 低資源語言:盧森堡語是一種低資源語言,這意味著可用的訓練數據不如英語等語言廣泛,可能會影響理解的深度。
訓練數據
數據收集
微調數據集來自以下來源:
- 通用推理:
KingNish/reasoning-base-20k
SkunkworksAI/reasoning-0.01
- 數學推理:
- 盧森堡語:
saillab/alpaca-luxembourgish-cleaned
數據集準備和預處理
- 加載和清理:每個數據集單獨加載和清理(標準化格式、處理缺失值)。
- 分類和模板化:數據集按類別(通用推理、數學推理、盧森堡語)分類。對每個類別應用特定的提示模板,以指導模型在微調過程中的學習。
- 合併和拆分:所有處理後的數據集合併為一個數據集,隨機打亂,然後拆分為訓練集和驗證集。
訓練過程
- 基礎模型:加載
unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit
並使用4位量化(load_in_4bit=True
)。
- 微調方法:使用
trl.SFTTrainer
進行監督微調(SFT)。
- 參數效率:使用PEFT和LoRA(
get_peft_model
)。
r
: 256
lora_alpha
: 256
lora_dropout
: 0.0
target_modules
: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]
- 訓練配置(
SFTConfig
):
max_seq_length
: 128000
packing
: False
per_device_train_batch_size
: 4
gradient_accumulation_steps
: 8(有效批量大小:32)
warmup_ratio
: 0.02
num_train_epochs
: 1
learning_rate
: 5e-5
fp16
: True
bf16
: True(混合精度訓練)
logging_steps
: 10
optim
: "adamw_8bit"
weight_decay
: 0.01
lr_scheduler_type
: "cosine_with_restarts"
seed
: 1729
output_dir
: "lora_outputs_run5"
save_strategy
: "steps"
save_steps
: 1000
- 優化內核:啟用Liger內核(
use_liger=True
),通過優化常見LLM操作的Triton內核,提高吞吐量並減少內存使用。
評估
基準測試數據集 - LUXELLA
- 名稱:LUXELLA(盧森堡卓越語言學習評估)
- 描述:一個自定義基準,用於使用合成生成的問題評估盧森堡語能力。
- 生成:使用基於Gemini的LLM生成問題,涵蓋15個類別(詞彙、語法、翻譯、理解、文化、習語等)、4個難度級別(初學者、中級、高級、母語者)和隨機主題。輸出為結構化JSON。
- 評估方法:基於LLM的判斷。另一個LLM作為評估者,對回答進行評分並提供簡要解釋。
- 鏈接:正在進行中
評估結果
LuxLlama在LUXELLA上的性能:
按類別得分:
類別 |
得分 |
翻譯成英語 |
83.8 |
閱讀理解 |
82.8 |
動詞變位 |
82.2 |
多項選擇 |
81.6 |
從英語翻譯 |
81.4 |
翻譯 |
80.0 |
聽力理解模擬 |
79.6 |
對話 |
75.8 |
詞序 |
75.8 |
文化知識 |
75.2 |
寫作提示 |
74.8 |
語法 |
68.8 |
習語和表達 |
67.4 |
句子完成 |
62.2 |
拼寫和發音 |
60.8 |
詞彙 |
60.0 |
按難度得分:
難度 |
得分 |
初學者 |
78.6 |
中級 |
73.8 |
高級 |
73.6 |
母語者 |
71.4 |
比較性能:
模型 |
LUXELLA總體得分 |
LuxLlama(我們的模型) |
74.6 |
gemma2-9b-it |
61.4 |
llama-3.1-8b-instant |
49.2 |
mixtral-8x7b-32768 |
48.8 |
總結:LuxLlama在LUXELLA基準上表現出色,顯著優於其他測試模型。它在翻譯、理解和動詞變位方面表現出色。詞彙、拼寫和習語等方面的得分相對較低,表明在捕捉更細微的語言差異方面還有改進空間。該模型在處理初學者級別的任務時表現非常好,隨著難度的增加性能逐漸下降,驗證了基準的敏感性。高得分的樣本問題顯示了對文化知識、拼寫和高級動詞變位的正確處理,而低得分的樣本則凸顯了在特定語法規則(虛擬式II的使用)、詞彙的細微差別(Niess vs Kusinn)和標準詞序約定方面的挑戰。
經驗和觀察
- 推理和特定語言數據的結合似乎對整體能力有益。
- 使用LoRA的PEFT和4位量化,結合Liger內核,為在有限資源下對特定任務/語言的大模型進行微調提供了一條高效途徑。
- LUXELLA基準為盧森堡語能力提供了有價值的詳細見解,突出了優勢和劣勢。
- 進一步的改進可能需要更多樣化的盧森堡語數據,特別是涵蓋習語、口語表達和複雜語法結構的數據,或者採用不同的微調策略。
倫理考慮
⚠️ 重要提示
- 模型可以生成盧森堡語和英語文本。用戶應注意,生成的內容可能並不總是準確、中立或合適的。對於敏感應用,建議進行人工審核。
- 雖然努力使用了經過清理的數據集,但偏差可能仍然存在。模型可能反映了訓練數據中存在的社會偏差。
- 模型可能會生成不正確的事實信息或有缺陷的推理。應對輸出進行批判性評估。
🔧 技術細節
文檔未提供具體技術實現細節,故跳過此章節。
📄 許可證
本項目採用 apache-2.0
許可證。
致謝
本工作得益於LuxProvide提供的 Meluxina 計算資源和支持。

