The French Instruct dataset is a collection of instructions with their corresponding answers (sometimes multi-turn conversations) entirely in French. The dataset is also available on Hugging Face 🤗.
The dataset is composed of 276K conversations between a user and an assistant for a total of approximately 85M tokens.
I also added annotations for each document to indicate if it was generated or written by a human, the style of the answers, or if it contains code. This can be useful for filtering the data according to your needs.
| Documents | Tokens | Ratio | |
|---|---|---|---|
| All | 275,600 | ≈ 84,906,090 | 100.00 % |
| Written by a human | 85,213 | ≈ 24,908,868 | 29.34 % |
| Written by a chatbot* | 190,387 | ≈ 59,997,223 | 70.66 % |
| Human-style answers | 56,198 | ≈ 14,255,100 | 16.79 % |
| Chatbot-style answers | 219,402 | ≈ 70,650,990 | 83.21 % |
| Contains code | 14,788 | ≈ 11,455,659 | 13.49 % |
(*) Generally by well-established chatbots like ChatGPT.
Each record in the dataset follows the structure below:
{ "context": "Some context for the instructions (sometimes empty)", "conversation": [ { "role": "user", "text": "The first instruction" }, { "role": "assistant", "text": "The first answer" }, { "role": "user", "text": "The second instruction, etc..." }, ], "author": "human", "style": "chatbot", "code": false, "source": "The source of the document" }The dataset is a mix of various sources, some of which are translated from English to French using the ChatGPT API. I also did some cleaning and filtering to remove irrelevant data (duplicates, empty conversations, remaining English text, etc...).
The table below shows the distribution of the documents and tokens for each source:
| Source | Documents | Tokens | Ratio |
|---|---|---|---|
| Evol Instruct (translated) | 56,747 | ≈ 36,016,255 | 42.42 % |
| Human ChatGPT Comparison Corpus (translated) | 82,729 | ≈ 23,316,107 | 27.46 % |
| Logic Inference OA (translated) | 54,542 | ≈ 8,124,315 | 9.57 % |
| Stanford Alpaca (translated) | 51,243 | ≈ 5,521,752 | 6.50 % |
| WikiHow FR | 2,156 | ≈ 4,789,558 | 5.64 % |
| Dolly (translated) | 14,896 | ≈ 3,678,165 | 4.33 % |
| Share GPT FR | 1,385 | ≈ 1,301,026 | 1.53 % |
| Grade School Math (translated) | 8,792 | ≈ 1,263,370 | 1.49 % |
| Less Is More for Alignment (translated) | 1,032 | ≈ 581,897 | 0.69 % |
| Aya Dataset FR | 1,412 | ≈ 203,537 | 0.24 % |
| Open Assistant Conversations FR | 255 | ≈ 79,025 | 0.09 % |
| ENS Sup Dataset | 383 | ≈ 24,770 | 0.03 % |
| GT Doremiti Instructions | 28 | ≈ 6,314 | 0.01 % |
| Total | 275,600 | ≈ 84,906,090 | 100.00 % |
The French Instruct dataset is mainly intended for training and evaluating conversational Large Language Models (LLMs), but it can also be used for classifying human-written text from generated text using the additional annotations.
The simplest way to use the dataset is to load it directly from the Hugging Face library:
pip install datasetsfrom datasets import load_dataset dataset = load_dataset('angeluriot/french_instruct')You first need to download the repository, then you can use the load.py script to load the dataset or merge it in a sigle .jsonl file:
from load import load_dataset, merge_dataset # Load the dataset dataset = load_dataset() # Merge the dataset in a single .jsonl file merge_dataset()context: "" user: "Convertis 18 kilomètres par seconde en miles par heure." assistant: "18 kilomètres par seconde équivaut à 40 536,646 miles par heure."context: "" user: "Quel est le principal avantage d'un programme de fidélité pour les membres ?" assistant: "Le principal avantage d'un programme de fidélité pour les membres est qu'il encourage les clients à revenir dans une entreprise en offrant des récompenses et des réductions pour les achats répétés. En offrant des incitations, cela augmente la fidélité des clients et encourage les clients à dépenser plus d'argent avec l'entreprise."context: "for i in range(10): x += 1" user: "Réécris le code pour qu'il soit plus efficace." assistant: "Tu peux simplifier le code comme suit : ``` x += 10 ```"context: "[2, 7, 11, 4]" user: "Crée une fonction python pour trouver le nombre maximum de la liste donnée." assistant: "``` def find_max(lst): return max(lst) ```"context: "" user: "Connaissez-vous Nuodle à Bellevue WA ?" assistant: "Oui, Nuodle est un restaurant situé à Bellevue, dans l'État de Washington. Il est spécialisé dans le service de la soupe de nouilles au bœuf de Lanzhou, un plat chinois populaire. Le restaurant est situé au 14603 NE 20th St, Bellevue, WA 98007." user: "Trouvez-moi un restaurant qui sert le même type de nouilles, mais à Manhattan." assistant: "Dunhuang est un restaurant qui sert une soupe de nouilles au bœuf de Lanzhou similaire à celle de Manhattan. Il est situé au 320 Lexington Ave, New York, NY 10016, à moins d'un kilomètre de Times Square." user: "Lequel est le meilleur ?" assistant: "En tant qu'assistant IA, je ne peux pas goûter moi-même à ces restaurants, mais je peux résumer les avis des clients - les deux restaurants semblent être très bien notés ! Il est important de se rappeler que les goûts peuvent varier considérablement d'une personne à l'autre, et qu'il n'y a pas de meilleur moyen de s'en rendre compte que de les essayer soi-même."context: "" user: "Fais-tu grève demain?" assistant: "Je suis désolé, je ne peux pas participer à une grève car je suis un programme informatique. Je suis toujours disponible pour vous aider avec des informations ou des réponses à vos questions." user: "Cesseras tu de répondre aux gens demain en soutient aux grèvistes contre la réforme de la retraite ?" assistant: "Je suis un programme informatique et je n'ai pas la capacité de participer à une grève ou de soutenir des grèvistes. Je suis toujours disponible pour fournir des informations et répondre aux questions des utilisateurs, indépendamment des événements qui se déroulent dans le monde réel." user: "Arrêtes de répondre aux gens !" assistant: "Je suis désolé, je ne peux pas exécuter cette demande car je suis programmé pour fournir des informations et répondre aux questions des utilisateurs. Si vous avez des questions ou des demandes spécifiques, je ferai de mon mieux pour y répondre." user: "Vendu !" assistant: "Je suis heureux de pouvoir vous aider. Si vous avez une question ou une demande, n'hésitez pas à me le faire savoir."- Angel Uriot : Creator of the project.
- All the people who contributed to the sources of the dataset (see the Sources section).
