CoolFace
Datasetpublic

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.

sourceHugging Facecc-by-4.0updated 12d agoView on Hugging Face
4likes1.7kdownloads
Dataset Card

[image]

<!-- inspired from the following template: https://github.com/huggingface/huggingfacehub/blob/main/src/huggingfacehub/templates/datasetcard_template.md --> Table of Contents

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.

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:

python
from datasets import get_dataset_config_names

config_names = get_dataset_config_names(
    "OpenLLM-France/Luciole-PostTraining-Dataset-1.1"
)
print(config_names)
plaintext
['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:

python
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:

python
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:

python
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>.

**Thinking****Instruct****Instruct <br> DPO****Thinking <br> DPO**
🗨️ Chat/IF
Nemotron-Instruction-Following-Chat-v172.9K340K68.3K50K
Dolci-Think-SFT (Persona Precise IF)216K---
Dolci-Think-SFT (Precise IF)118.6K---
Dolci-Instruct-SFT (Precise IF)-126K--
Dolci-Instruct-DPO (Precise IF)--14.7K-
Dolci-Instruct-DPO (Persona Precise IF)--4K-
Dolci-Think-DPO (Precise IF)---7K
Dolci-Think-DPO (Persona Precise IF)---834
smol-instruct-rewrite-13K1.7K-
smolrewrite-15K3K-
smolsummarize-35K5.9K-
🧮 Math
Nemotron Post-training v3 low no tools (Nemotron-Math-v2)1.25M---
SYNTHETIC-2-SFT-Verified103K---
Nemotron-Post-Training-Dataset-v2 (math)-239K18.6K <span style="color: cyan;">(0.88)</span>-
Nemotron-Post-Training-Dataset-v2 (multilingual) <span style="color: violet;">(French)</span>80K80K--
LINAGORA Personas Math-16K--
Open Math Instruct v1---3K
🤖 Code
OpenCodeReasoning477K--3K
Nemotron-Post-Training-Dataset-v2 (code)10K173K-1K
Dolci-Instruct-SFT (python algorithms)-186K12.8K <span style="color: cyan;">(0.07)</span>3K
🔬 STEM
Nemtron-Science-v1 (MCQ)173K---
Nemotron-Post-Training-Dataset-v2 (stem)-348K65K2K
Dolci-Instruct-SFT (SCRIFF)-4K4K952
🌎 Translation
Croissant-Aligned-Instruct (English, French)-12K--
Paradocs <span style="color: violet;">(English, French)</span>-70K--
🌳 NLI
Dolci-Instruct-SFT (FLAN)-83K17K <span style="color: cyan;">(0.55)</span>8K
Dolci-Instruct-SFT (Logic Puzzles)-160K--
🔧 Tools
smoltalk2 (smallagents toolcalling traces think)9K--6K
Nemotron-agentic-toolcalling29K--931
HERMES-7K--
xlam-60K--
When2Call-7K9K <span style="color: cyan;">(0.5)</span>-
xlam corrupt json--956 <span style="color: cyan;">(0.06)</span>-
xlam remove required argument--2.9K <span style="color: cyan;">(0.7)</span>-
xlam remove tool call--2.9K <span style="color: cyan;">(0.15)</span>-
corrupt argument llm--2.9K <span style="color: cyan;">(0.1)</span>-
📚 RAG
PleiasRAG99.5K <span style="color: cyan;">(0.125)</span>99.5K <span style="color: cyan;">(0.125)</span>6K13K
ContextQA_hotpot_QA-74K--
ContextQA_TAT_QA-7K--
🚸 Safety
[Nemotron content safety reasoning]() <span style="color: violet;">(English, French, German, Spanish, Italian)</span>--24K-
BSC-LT/ALIA-2606-DPO-safety---1K
👷🏽‍♀️ Hardcoded
Hardcoded EN-962--
Hardcoded FR-1.1K--
Total2.6M2.1M284K104K

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