🚀 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 计算资源和支持。

