Skip to content

angeluriot/French_instruct

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧑‍🏫 French Instruct

Release Format Size Open Source


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



📋 Summary


📊 Overview

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.


🗃️ Data Structure

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"
}

🔗 Sources

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 %

🛠️ Usage

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.


🤗 Hugging Face

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')

🐱 GitHub

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()

📑 Examples

📖 Instructions

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

🖥️ Code

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)
            ```"

💬 Multi-turn conversations

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

🙏 Credits

  • Angel Uriot : Creator of the project.
  • All the people who contributed to the sources of the dataset (see the Sources section).