OpenLLM-France/Luciole-PostTraining-Dataset-1.1
Table of Contents Dataset Description Curation Rationale Bias, Risks, and Limitations Data Subsets Sample Metadata Downloading the Data Available Configurations Loading Examples Accessing Data Through the Directory Hierarchy Details on Data Sources Citation Acknowledgements Contact Dataset Description The Luciole-PostTraining-Dataset-1.1 is a curated collection of open, instruction-style text data designed for language model post training. It includes a mixture of… See the full description on the dataset page: https://huggingface.co/datasets/OpenLLM-France/Luciole-PostTraining-Dataset-1.1.
<!-- inspired from the following template: https://github.com/huggingface/huggingfacehub/blob/main/src/huggingfacehub/templates/datasetcard_template.md --> Table of Contents
- Dataset Description
- Curation Rationale
- Bias, Risks, and Limitations
- Data Subsets
- Sample Metadata
- Downloading the Data
- Available Configurations
- Loading Examples
- Accessing Data Through the Directory Hierarchy
- Details on Data Sources
- Citation
- Acknowledgements
- Contact
Dataset Description
The Luciole-PostTraining-Dataset-1.1 is a curated collection of open, instruction-style text data designed for language model post training. It includes a mixture of synthetic and non-synthetic instructions for supervised fine-tuning (SFT) as well as pairs of responses designed for preference alignment (e.g., DPO). With the exception of data for safety alignment, the alignment pairs were generated synthetically with a delta learning approach: all pairs were generated with Qwen3-32B and Qwen3-0.6B and the former were labeled as the accepted responses. Safety data were generated with a mixture of Qwen3-14B , Ministral-3-14B-Instruct, and an interim checkpoint of Luciole-8B-Instruct, after SFT. Pairs were judged with both Ministral-14B-Reasoning and Qwen3-14B. A pair was included only if both models agreed on their labels.
While Luciole-PostTraining-Dataset-1.1 contains some multilingual data, it is primarily English. This version will be followed with versions containing higher levels of multilingual, and especially French, data.
The Luciole PostTraining Dataset was created by the consortium of the OpenLLM France project funded by BPI France as a part of the France 2030 program. Datasets were processed and stored on the GENCI supercomputer Jean Zay, managed by IDRIS.
- License: CC BY-SA 4.0
- Code repository: Luciole-Training
- Paper: coming soon
Curation Rationale
The Luciole-PostTraining-Dataset-1.1 contains only corpora previously published under open licenses or new data generated with open-weights models. It was created in part to facilitate the training of large language models in strict conformance to open-source requirements and European laws on AI development and intellectual property.
Version 1.1 of the dataset is the first step in a larger project of creating a large, open, multilingual post-training dataset, with a particular focus on French.
By sharing our resources openly, we aim to further research on, and development of, multilingual language models.
Bias, Risks, and Limitations
A large portion of data in the Luciole-PostTraining-Dataset-1.1 was generated with third-party, open-weights models which are liable to introduce unwanted linguistic and cultural biases. Efforts to create post-training data targeting languages and cultures in Europe are ongoing and will require an iterative approach.
Due to its role of teaching models what behavior counts as "unsafe", safety alignment pairs are susceptible to contain toxic or dangerous content.
A further limitation of this dataset is that it does not distinguish between variants of different languages. American English and varieties of English spoken in England, for example, are merely labeled as "English". In future work, we hope to focus more on regional linguistic diversity.
Data Subsets
The Luciole-PostTraining-Dataset-1.1 is divided into four subsets:
- [
sft_instruct]: instruction-style data without thinking traces - [
sft_thinking]: instruction-style data with thinking traces - [
dpo_instruct]: instructions with pairs of accepted and rejected responses, without thinking traces - [
dpo_thinking]: instructions with pairs of accepted and rejected responses, with thinking traces
Sample Metadata
The SFT subsets contain a single [messages] field which provides the content of the sample formatted as a conversation following the HuggingFace chat format.
The DPO subsets contain [chosen] and [rejected] fields, each formatted as a conversation where the content is identical except for the final assistant turns.
Downloading the Data
Available Configurations
The dataset is organized into configurations, each corresponding to a subset of the data used for a particular training stage, e.g. instruction finetuning.
The list of available configurations can be obtained programmatically:
from datasets import get_dataset_config_names
config_names = get_dataset_config_names(
"OpenLLM-France/Luciole-PostTraining-Dataset-1.1"
)
print(config_names)['dpo_instruct', 'sft_instruct', 'sft_thinking', 'dpo_thinking']
Loading Examples
<!-- All examples below use streaming=True, which is recommended for large-scale processing since the dataset can be streamed without being fully downloaded locally. -->
Load all the samples for a particular configuration, here dpo_instruct:
from datasets import load_dataset
dataset = load_dataset(
"OpenLLM-France/Luciole-PostTraining-Dataset-1.1",
"dpo_instruct"
)Load the samples for a particular split within a configuration, here smolrewrite in dpo_instruct:
dataset = load_dataset(
"OpenLLM-France/Luciole-PostTraining-Dataset-1.1",
"dpo_instruct",
split="smolrewrite"
)<!-- ### Accessing Data Through the Directory Hierarchy
In addition to the predefined configurations, data can be loaded directly from specific directories in the dataset hierarchy using the data_dir argument.
The complete organization of the dataset is described in `data_hierarchy.txt`.
For example, to load all Python-related data:
dataset = load_dataset(
"OpenLLM-France/Luciole-Training-Dataset",
data_dir="data/**/python"
)
dataset = load_dataset(
"OpenLLM-France/Luciole-PostTraining-Dataset-1.1",
data_dir=
)This approach can be useful for selecting data subsets that span multiple configurations or that are not exposed as dedicated configuration names. -->
Details on Data Sources
To preprocess the split datasets, we checked for the presence of names of LLMs and companies (Claude, Amazon, etc.) as well as for Chinese and Russian. Given that most of the data was generated with open source models from Qwen and DeepSeek, there was a preponderance of Chinese and Russian script intermingled with our languages of interest. Samples containing any of these were removed entirely. The prepocessing scripts can be found in this folder of the `Luciole-Training` repository.
All datasets sourced for different post training phases for Luciole Instruct 1.1 models are listed in the table below, according to data category. Note that for certain datasets we upload our preprocessed version here in its entirety, but only used a randomly selected subsample during training. These are indicated by a weight in <span style="color: cyan;">cyan</span>, the proportion of the total data which is equal to the number of samples indicated. All of the datasets are in English, except where indicated in <span style="color: violet;">violet</span>.
Token Counts
For each subset, the charts below provide a breakdown by token count showing the relative proportions of each data category. The counts for the instruct datasets are based on outputs from the Luciole instruct tokenizer, and thinking datasets from the Luciole thinking tokenizer.
<table border="0"> <tr> <td><img src="barcharttry2thinksft.png" alt="Figure 1" width="90%"></td> <td><img src="barcharttry2instsft.png" alt="Figure 2" width="100%"></td> </tr> <tr> <td><img src="barchartthinkdpo.png" alt="Figure 1" width="100%"></td> <td><img src="barcharttry2inst_dpo.png" alt="Figure 2" width="100%"></td> </tr> </table>
Citation
✍ Paper coming soon!
Acknowledgements
We gratefully acknowledge BPI France for funding the OpenLLM France project under the call "Communs numériques pour l’intelligence artificielle générative" ("Digital commons for generative artificial intelligence").
Processing and storage of the Luciole-PostTraining-Dataset-1.1 was made possible by computing AI and storage resources by GENCI at IDRIS thanks to the grants AD011014561, A0201016189, and AS011016445 on the supercomputer Jean Zay. We gratefully acknowledge support from GENCI and IDRIS and from Stephane Requena (GENCI) and Pierre-François Lavallée (IDRIS) in particular.
The Luciole-PostTraining-Dataset-1.1 was created by members of LINAGORA and OpenLLM-France, including, in alphabetical order:
Akshay Chaturvedi (LINAGORA) Liam Duignan (CEA List) Olivier Ferret (CEA List) Olivier Gouvert (LINAGORA) Émile Hasard (OpSci) Julie Hunter (LINAGORA) Jean-Pierre Lorré (LINAGORA) Jérôme Louradour (LINAGORA) Kate Thompson (LINAGORA) Dev Jerusha Anish Udayan (TALK'R) Matteo van Ypersele (LINAGORA)
We thank the support team from NVIDIA for their technical and high-level guidance throughout the project, especially: Meriem Bendris, Julia Gusak, Anna Louise Ollerenshaw, Hagit Paz, Christelle Piechurski, Oleg Sudakov.
We are also greatful to the partners of the OpenLLM-France consortium for their valuable input, with particular thanks to (in alphabetical order):
Clément Bénesse (OpSci) Gabriel Lauzzana (LORIA) Nathaniël de Leeuw (CEA) Michel-Marie Maudet (LINAGORA)
We would also like to thank the numerous open data projects that have guided us in the process of creating this dataset, including projects by Pleias, Nvidia, Hugging Face and Allen AI.
Finally, we thank the entire OpenLLM-France community, whose members have helped in diverse ways.
Contact
contact@openllm-france.fr
