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 datasets
from 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).