Fiches - DEVEL - Créer ton propre GPT avec Hugging Face

🧠 Créer ton propre GPT avec Hugging Face 🚀

📌 Prérequis

Avant de commencer, assure-toi d’avoir :

  • 🐍 Python 3.8+ installé
  • 💻 Une machine avec un GPU (ou accès à Google Colab / un service cloud comme AWS, Paperspace, etc.)
  • 📦 Les bibliothèques suivantes installées :
    1
    pip install transformers datasets accelerate

📚 Étape 1 : Choisir un modèle de base

Rends-toi sur Hugging Face 🤗 et choisis un modèle de langage, comme :

  • gpt2 🔁 petit et rapide
  • EleutherAI/gpt-neo-1.3B ⚖️ plus grand et performant

🛠️ Étape 2 : Préparer tes données

  • Tes données doivent être en format .txt ou .json (pour les dialogues).
  • Exemples :
    • 📄 Texte brut : chaque ligne est un échantillon
    • 🗨️ Dialogue : {"prompt": "...", "response": "..."}

Tu peux aussi utiliser datasets pour gérer les données :

1
2
from datasets import load_dataset
dataset = load_dataset("text", data_files={"train": "data.txt"})

🏋️ Étape 3 : Entraîner ton modèle

Utilise Trainer ou transformers.TrainingArguments pour fine-tuner :

1
2
3
4
5
from transformers import GPT2LMHeadModel, GPT2Tokenizer, Trainer, TrainingArguments

model = GPT2LMHeadModel.from_pretrained("gpt2")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
tokenizer.pad_token = tokenizer.eos_token

➡️ Crée ton Trainer :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=4,
logging_dir="./logs",
save_total_limit=2,
)

trainer = Trainer(
model=model,
args=training_args,
train_dataset=dataset["train"],
)
trainer.train()

📦 Étape 4 : Sauvegarde et test

Sauvegarde ton modèle :

1
2
model.save_pretrained("mon-gpt")
tokenizer.save_pretrained("mon-gpt")

Teste-le :

1
2
3
from transformers import pipeline
gen = pipeline("text-generation", model="mon-gpt", tokenizer="mon-gpt")
gen("Bonjour, je suis", max_new_tokens=50)

📺 Ressources utiles


✅ Bonus

  • Héberge ton GPT sur Hugging Face Spaces avec Gradio 🖥️
  • Utilise accelerate pour faciliter le multi-GPU 🧩

💬 Si tu veux un template interactif ou un exemple sur Colab, fais-moi signe !