Rastignac 1.0 — 126M

Rastignac 1.0 est un modèle de langage causal français de 126 481 920 paramètres, entraîné entièrement depuis zéro sur 3 348 livres de la littérature française. La date de publication indiquée pour les œuvres datées est en moyenne d’environ 1898. Le modèle est destiné à la complétion de texte : à partir d’un début de phrase ou de paragraphe, il génère la suite dans un registre français à dominante littéraire.

Une version GGUF destinée à llama.cpp et LM Studio est disponible dans le dépôt dédié Rastignac-1.0-126M-GGUF.

Architecture

Architecture de Rastignac

Élément Valeur
Architecture Transformer causal de type GPT-2
Paramètres 126 481 920
Couches Transformer 16
Têtes d’attention 12
Dimension cachée 768
Dimension MLP 3 072
Vocabulaire 16 000 tokens BPE byte-level
Contexte maximal 1 024 tokens
Poids model.safetensors

Utilisation

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Mathieu680/Rastignac-1.0-126M"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

prompt = "La nuit tombait sur Paris lorsque"
inputs = tokenizer(prompt, return_tensors="pt")
output = model.generate(
    **inputs,
    max_new_tokens=200,
    do_sample=True,
    temperature=0.8,
    top_p=0.92,
    top_k=50,
    repetition_penalty=1.08,
    pad_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(output[0], skip_special_tokens=False))

Le modèle peut également être utilisé avec le pipeline standard :

from transformers import pipeline

generator = pipeline(
    "text-generation",
    model="Mathieu680/Rastignac-1.0-126M",
)
print(generator("La nuit tombait sur Paris lorsque", max_new_tokens=120)[0]["generated_text"])

Exemples de génération

Les exemples suivants sont des complétions produites directement par Rastignac avec un échantillonnage (temperature=0.68, top_p=0.90, repetition_penalty=1.12). Le texte affiché après chaque invite est généré par le modèle.

Invite

Dans le silence de la bibliothèque, on entendit

Complétion

un bruit de pas qui s’éloignaient.

— C’est lui! murmura-t-elle en se redressant.

Il n’était plus temps d’en finir. La porte s’ouvrit et la jeune fille entra
dans le salon. Elle avait eu besoin de toute sa force pour retenir les paroles
qu’il venait de prononcer. Il y eut entre eux un moment de silence, puis ils
se levèrent, sans même regarder l’un ni l’autre.

Invite

Il ouvrit le carnet oublié sur la table. La première page disait :

Complétion

« Si nous étions en plein courant, si nous voulions être témoins de notre
malheur, notre sort serait plus heureux que celui de cette pauvre femme, qui
s’est fait tant souffrir, et qui ne peut plus se soutenir. »

La seconde page disait :

« Et nous sommes tous morts. »

Et, au-dessous, il y avait un nom écrit :

« Ne pleure pas, car je pleure comme toi. »

Invite

Quand il revint au château, tout avait changé.

Complétion

Le comte de Monte-Cristo entra dans la chambre du premier étage; mais les
rideaux étaient encore baissés et le lit vide. Il avait fallu sortir par cette
porte pour entrer chez le notaire.

Il descendit donc, et, le cœur palpitant d’émotion, il prit congé du marquis,
qui lui dit:

— Vous avez fait de moi une grande fortune, monsieur le comte?

— Oui, monsieur le comte.

Invite

La jeune fille regarda la mer et comprit que

Complétion

le navire, à cette heure, était loin d’être en danger.

— Il ne faut pas perdre de temps, dit-elle, il faut nous hâter de regagner le
bâtiment.

— Oh! fit Bell.

Elle n’acheva pas sa phrase; mais l’équipage se remit aussitôt en route, et
chacun se mit à ramer vers la côte.

Entraînement

Le modèle a été entraîné depuis zéro avec un objectif de prédiction du token suivant. Le corpus contient 315 832 633 tokens d’entraînement et 27 511 882 tokens de validation. La date moyenne de 1898 est calculée sur les 763 œuvres qui disposent d’une date explicite dans les métadonnées.

L’entraînement a été réalisé entièrement en local sur une NVIDIA GeForce RTX 5060 avec 8 Go de mémoire vidéo, pendant environ 19 heures.

L’entraînement a représenté 30 000 mises à jour, soit 983 040 000 tokens parcourus. La meilleure loss de validation interne est 2,7920, obtenue à l’étape 29 750.

Données

Le corpus a été constitué à partir d’ebooks français référencés par Project Gutenberg. Les fichiers du corpus ne sont pas inclus dans ce dépôt.

Les droits applicables peuvent dépendre de l’auteur, de l’édition et du pays où le modèle est utilisé ; il est recommandé de consulter la licence de Project Gutenberg avant toute réutilisation.

Reproduction

training_metadata.json et provenance.json décrivent l’export, le checkpoint, le tokenizer et les volumes de données utilisés. Le dépôt contient uniquement les poids, le tokenizer et les fichiers nécessaires au chargement avec Transformers ; l’état de l’optimiseur et le corpus brut ne sont pas inclus.

Downloads last month
372
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support