模型简介
模型特点
模型能力
使用案例
🚀 Lucie-7B模型卡
Lucie-7B是一款预训练的70亿参数因果语言模型,由LINAGORA和OpenLLM-France联合构建。它在3万亿个多语言数据令牌上进行训练,可用于文本生成等任务。
🚀 快速开始
若你想快速上手使用Lucie-7B模型,可参考下面的Python代码示例。
✨ 主要特性
- 多语言支持:支持法语、英语、意大利语、德语和西班牙语等多种语言。
- 预训练模型:基于Llama-3架构,经过大量数据预训练。
- 长上下文处理:支持32000的上下文长度。
📦 安装指南
文档中未提及安装步骤,可跳过此部分。
💻 使用示例
基础用法
加载模型
import transformers
model_name = "OpenLLM-France/Lucie-7B"
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
model = transformers.AutoModelForCausalLM.from_pretrained(model_name,
device_map="auto",
load_in_4bit=True # For efficient inference, if quantization is supported by the GPU card
)
句子补全
pipeline = transformers.pipeline("text-generation", model=model, tokenizer=tokenizer)
generation_kwargs = dict(
num_return_sequences=1, # Number of variants to generate.
return_full_text= False, # Do not include the prompt in the generated text.
do_sample=True,
temperature=1.0, top_p=1, top_k=None, # Sampling parameters.
max_new_tokens=200, # Maximum length for the output text (in number of tokens).
)
prompt = """\
Quelle est la capitale de l'Espagne ? Madrid\n\
Quelle est la capitale de la France ?\
"""
completions = pipeline(prompt, **generation_kwargs)
for completion in completions:
print(prompt + " […]" + completion['generated_text'])
若在GPU(cuda
设备)上运行,使用4位量化推理至少需要6GB的显存(不使用4位量化则需要16GB的显存)。
加载检查点
model = transformers.AutoModelForCausalLM.from_pretrained(model_name,
revision="step0753851",
...
)
其中revision
可以是以下值之一:
- "
step0005000
", "step0010000
", "step0015000
", "step0020000
":前25000步中每5000步的检查点(上下文长度为4096)。 - "
step0025000
", "step0050000
", "step0075000
", "step0100000
", ..., "step0750000
":从25000步到750000步每25000步的检查点。 - "
step0753851
":上下文长度扩展和退火之前的最后一个预训练步骤。 - "
extension_step0000250
", "extension_step0000500
", "extension_step0000750
", "extension_step0001000
", "extension_step0001220
":上下文长度扩展期间的几个检查点(上下文长度为32000)。
📚 详细文档
模型描述
Lucie-7B是由LINAGORA和OpenLLM-France构建的预训练70亿参数因果语言模型。它在3万亿个多语言数据令牌上进行训练,包括英语(33.2%)、法语(32.4%)、德语(6.9%)、西班牙语(6.6%)、意大利语(3.8%)以及这些语言的并行数据(2.5%),还有几种编程语言(14.7%)。
训练详情
训练数据
用于Lucie-7B预训练的训练数据集可在OpenLLM-France/Lucie-Training-Dataset获取。
初始训练数据的组成如下:
为了平衡训练数据分布,对部分数据进行了上采样,得到用于训练的以下组成:
训练过程
Lucie-7B是一个仅解码器的因果模型,在因果语言建模任务(即预测下一个令牌)上进行训练。
它在Jean Zay超级计算机的512个H100 80GB GPU上进行了约550000个GPU小时的预训练。
训练代码可在https://github.com/OpenLLM-France/Lucie-Training获取,它基于this fork of Megatron-DeepSpeed。
优化器检查点可在OpenLLM-France/Lucie-7B-optimizer-states获取。
神经网络架构
Lucie-7B具有与Llama3.1相同的神经网络架构。它恰好有6706958336个自由参数,具有以下超参数:
属性 | 详情 |
---|---|
词汇表大小(令牌数) | 65024 |
变压器块数 | 32 |
注意力头数 | 32 |
键值头数 | 8 |
隐藏层大小 | 4096 |
前馈隐藏层大小 | 12288 |
激活函数 | silu |
RMS归一化epsilon | 1e-5 |
在训练过程中,旋转位置嵌入(RoPE)的“theta”参数有所增加。其值在下面的训练超参数表中给出。
训练超参数
训练包括三个主要阶段:
- 在3.1T令牌上进行主预训练,上下文长度为4096。
- 在5B令牌上进行上下文扩展,上下文长度为32000。
- 在由新数据和训练期间见过的数据混合而成的高质量5B令牌数据上进行退火。
每个阶段的详细信息如下。
1. 主预训练
torch/Megatron-DeepSpeed中的训练超参数如下:
超参数 | 值 |
---|---|
总样本数 | 762144586(3.1T令牌) |
总步数 | 753851 |
RoPE theta | 500000 |
上下文长度 | 4096 |
初始批量大小 | 256 |
最终批量大小 | 1024 |
批量大小递增 | 每64步递增,在10M样本上完成 |
学习率调度 | 热身(2M样本)+余弦退火 |
最大学习率 | 3e-4 |
最终学习率 | 3e-5 |
权重衰减 | 0.1 |
丢弃率 | - |
梯度裁剪 | 1 |
初始化范围 | 0.009 |
优化器 | AdamW (β₁=0.9,β₂=0.95,ε=1e-5) |
精度 | bfloat16 |
张量并行度(512个GPU) | 4 |
管道并行度(512个GPU) | 4 |
数据并行度(512个GPU) | 32 |
2. 上下文长度扩展
训练超参数与上述相同,但有以下更改:
超参数 | 值 |
---|---|
总样本数 | 156250(5B令牌) |
总步数 | 1220 |
RoPE theta | 20000000 |
上下文长度 | 32000 |
批量大小 | 128 |
学习率 | 2e-5 |
学习率调度 | 恒定 |
张量并行度(128个GPU) | 4 |
管道并行度(128个GPU) | 4 |
数据并行度(128个GPU) | 8 |
3. 退火
训练超参数与上下文长度扩展阶段相同,但有以下更改:
超参数 | 值 |
---|---|
总样本数 | 156250(5B令牌) |
总步数 | 1220 |
学习率调度 | 线性退火 |
最大学习率 | 3e-5 |
最终学习率 | 0 |
训练日志和学习曲线
训练损失
训练日志以Tensorboard格式存储在以下位置:
metadata/training_logs/
├──1_pretraining.zip
第一个预训练阶段的训练日志,存储在一个zip文件中。zip文件中的每个文件对应最多20小时的训练作业(在512个GPU上并行)。
├──2_extension/
包含训练日志的文件夹
└──3_annealing/
包含退火阶段训练日志的文件夹,该阶段也进行了约13小时的训练(在128个GPU上并行)。
三个预训练阶段的收敛曲线如下:
与这些图对应的数据从Tensorboard日志中提取,可在以下CSV文件中获取:
评估
在Lucie-7B的训练过程中进行了多次评估,以评估其在标准基准测试中的性能,主要是法语和英语,以及西班牙语、德语和意大利语。
Lucie-7B在整个训练过程中各检查点在基准数据集上的评估结果可在metadata/evaluation_learning_curve_lucie.csv获取。 基线模型在相同基准数据集上的评估结果可在metadata/evaluation_baselines.csv获取。
主要结果总结在以下图中:
法语
英语
其他语言
大海捞针
预训练
上下文长度扩展
退火
🔧 技术细节
- 训练进度:
- 步数:756291
- 令牌数:3131736326144
- 上下文长度:32000
📄 许可证
本模型采用Apache-2.0许可证。
⚠️ 免责声明
Lucie-7B是一个仅用于预测序列中最可能的下一个单词的语言模型。尽管对Lucie训练数据集进行了过滤,但Lucie-7B在训练过程中仍可能遇到包含有毒或冒犯性语言的字符串,因此它可能会生成类似质量的字符串。为了限制这种行为,建议通过指令和/或偏好调整(DPO、RLHF等)对Lucie-7B进行微调。
📝 引用
使用Lucie-7B模型时,请引用以下论文:
✍ Olivier Gouvert, Julie Hunter, Jérôme Louradour, Christophe Cérisara, Evan Dufraisse, Yaya Sy, Laura Rivière, Jean-Pierre Lorré (2025). The Lucie-7B LLM and the Lucie Training Dataset: Open resources for multilingual language generation. arxiv:2503.12294.
@misc{openllm2025lucie,
title={The Lucie-7B LLM and the Lucie Training Dataset: Open resources for multilingual language generation},
author={Olivier Gouvert and Julie Hunter and Jérôme Louradour and Christophe Cerisara and Evan Dufraisse and Yaya Sy and Laura Rivière and Jean-Pierre Lorré and OpenLLM-France community},
year={2025},
eprint={2503.12294},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2503.12294},
}
🙏 致谢
本工作使用了GENCI–IDRIS的HPC资源(Grant 2024-GC011015444)。我们感谢GENCI和IDRIS的支持,特别是Pierre-François Lavallée(IDRIS)和Stephane Requena(GENCI)。
Lucie-7B由LINAGORA和OpenLLM-France社区的成员创建,按字母顺序包括: Agustin Martin Picard (IRT), Thibaut Boissin (IRT), Christophe Cerisara (LORIA), Evan Dufraisse (CEA List), Julie Hunter (LINAGORA), Jean-Pierre Lorré (LINAGORA), Jérôme Louradour (LINAGORA), Lucas Hervier (IRT), Michel-Marie Maudet (LINAGORA), Olivier Gouvert (LINAGORA), 和 Yaya Sy (LORIA)。
我们感谢 Clément Bénesse (Opsci), Guokan Shang (MBZUAI), Ismaïl Harrando (LINAGORA), Joël Gombin (Opsci), Jordan Ricker (Opsci), Julien Tourille (EDF), Manuel Faysse (ILLUIN Technology), Olivier Ferret (CEA List), 和 Rachel Bawden (INRIA), 提供的有益建议。
我们还感谢IDRIS的支持团队,特别是Myriam Peyrounette和Hatim Bourfoune,以及Hugging Face的支持团队,特别是Thomas Wolf、Guilherme Penedo、Elie Bakouch、Haojun Zhao和Lucain Pouget提供的技术指导。
最后,我们感谢整个OpenLLM-France社区,其成员以各种方式提供了帮助。
📞 联系我们
若你有任何问题或建议,可通过contact@openllm-france.fr与我们联系。



