--- license: apache-2.0 language: - fr - en pipeline_tag: text-generation tags: - openllm-france base_model: - OpenLLM-France/Luciole-23B-Base ---  # Model Card for Luciole-23B-Instruct-1.1 * [Model Description](#model-description) * [Bias, Risks, and Limitations](#bias-risks-and-limitations) * [Recommendations](#recommendations) * [Training Details](#training-details) * [Training Data](#training-data) * [Instruction template](#instruction-template) * [Training Procedure](#training-procedure) * [Evaluation](#evaluation) * [Testing the model](#testing-the-model) * [Test with ollama](#test-with-ollama) * [Test with vLLM](#test-with-vllm) * [Citation](#citation) * [Acknowledgements](#acknowledgements) * [Contact](#contact) ## Model Description Luciole-23B-Instruct-1.1 is a fine-tuned and aligned version of [Luciole-23B-Base](https://huggingface.co/OpenLLM-France/Luciole-23B-Base), an open-source, multilingual causal language model created by OpenLLM-France. Luciole-23B-Instruct-1.1 was developed by [LINAGORA](https://labs.linagora.com/) and the [OpenLLM-France](https://openllm-france.fr/) consortium as a part of the OpenLLM France project, funded by [BPI France](https://www.bpifrance.fr/) through the [France 2030](https://www.info.gouv.fr/grand-dossier/france-2030) program. Training of Luciole-23B-Instruct-1.1 was conducted on Jean Zay in three phases: (i) a supervised fine-tuning (SFT) phase on instruction data with thinking traces, (ii) an SFT phase on instruction data without thinking traces, and (iii) a final preference alignment phase using Direct Preference Optimization (DPO). The training data covers topics in math, science, coding, general chat, RAG and translation. Note that Luciole-23B-Instruct-1.1 is only the first iteration of post-trained models based on [Luciole-23B-Base](https://huggingface.co/OpenLLM-France/Luciole-23B-Base). Development of the Luciole models is an active, ongoing project and further iterations, including models trained on higher proportions of French data, are planned. In the spirit of open-source, we share the model weights and training recipes to facilitate research and to provide open source building blocks for other training projects. If you are interested in contributing to the Luciole project, contact us at contact@openllm-france.fr. * License: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) * Training repository: [Luciole-Training](https://github.com/OpenLLM-France/Luciole-Training/tree/main/finetune) * Training data: coming soon. * Technical report: coming soon. ### Bias, Risks, and Limitations Luciole-23B-Instruct-1.1 is the result of a first phase of fine-tuning and alignment to human preferences. Efforts to improve the model are active and ongoing and the model should be thoroughly tested for target use cases before being incorporated in industrial pipelines. Training has mostly focused on instruction following, and additional training would be necessary for tasks specifically focused on code generation or mathematical problem solving. It is also susceptible to hallucinations; that is, producing false answers that result from its training on massive amounts of diverse text. Luciole-23B-Instruct-1.1 was post-trained almost entirely on English data (in contrast to its base model, [OpenLLM-France/Luciole-23B-Base](https://huggingface.co/OpenLLM-France/Luciole-1B-Base), which was trained on roughly 30% French data). Future post-training phases will focus specifically on increasing the proportion of French data and testing the impact that this has on model performance. Due to its size, Luciole-23B-Instruct-1.1 is limited in the information that it can memorize; its ability to produce correct answers could be improved by implementing the model in a retrieval augmented generation pipeline. Finally, Luciole-23B-Instruct-1.1 was trained on sequences of 16,384 tokens (in contrast to its base model, whose context window was extended to 131,000 tokens). ### Recommendations * Further train Luciole-23B-Instruct-1.1 for specific use cases. * Integrate the model in a RAG pipeline to augment its knowledge base. * Extend training with longer sequences to increase context length. ## Training details ### Training data The post-training data and dataset description will be published soon. ### Instruction template Luciole-23B-Instruct-1.1 was trained on the chat template inspired from [Qwen3-1.7B](https://huggingface.co/Qwen/Qwen3-1.7B/). In our chat template, we also use a default system prompt. An example: ``` from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("OpenLLM-France/Luciole-23B-Instruct-1.1") chat = [ { "content": "Who was Molière?", "role": "user" }, { "content": "Molière was a 17th-century French playwright, actor, and comedian.", "role": "assistant" }, { "content": "What are his best-known works?", "role": "user" } ] print(tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)) ``` gives the output ``` <|im_start|>system You are a helpful AI assistant named Luciole, trained by LINAGORA and OpenLLM France.<|im_end|> <|im_start|>user Who was Molière?<|im_end|> <|im_start|>assistant Molière was a 17th-century French playwright, actor, and comedian.<|im_end|> <|im_start|>user What are his best-known works?<|im_end|> <|im_start|>assistant ``` ### Training procedure Luciole-23B-Instruct-1.1 was trained in three phases. The model was first finetuned on thinking data, and then on data without thinking traces. The resulting instruct model was aligned during a final DPO finetuning phase. | | **SFT with thinking** | **SFT without thinking** | **DPO without thinking** | |----------------------------|:----------:|:-----------:|:------------:| | **Num training samples** | 2.6M | 2.1M | 284K | | **Num epochs** | 4 | 4 | 1 | | **Max learning rate** | 2.0e-5 | 2.0e-5 | 3.0e-7 | | **Min learning rate** | 2.0e-6 | 2.0e-6 | 0 | | **LR scheduler** | cosine | cosine | linear | | **Max sequence length** | 16384 | 16384 | 16384 | | **Batch size** | 2048 | 2048 | 128 | | **DPO β** | n/a | n/a | 5 | Links to the interim models: [SFT with thinking](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-23B-SFT-Thinking-1.1/), [SFT without thinking](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-23B-SFT-1.1/) ## Evaluation Overall, Luciole-23B-Instruct-1.1 performs comparably with other open source instruct models of the same size. The model performs particularly well on instruction following benchmarks. Its performance on French language instruction following (ifeval-fr) is notable since Luciole-23B-Instruct-1.1 was finetuned on mostly English language data. This is likely the effect of seeing a larger proportion of French data during pretraining.