Team Ai
Modelpublic

Mathieu680/Rastignac-1.0-126M

sourceHugging Faceotherupdated 1mo agoView on Hugging Face
2likes446downloads
Model Card

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

[image]

ÉlémentValeur
ArchitectureTransformer causal de type GPT-2
Paramètres126 481 920
Couches Transformer16
Têtes d’attention12
Dimension cachée768
Dimension MLP3 072
Vocabulaire16 000 tokens BPE byte-level
Contexte maximal1 024 tokens
Poidsmodel.safetensors

Utilisation

python
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 :

python
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

text
Dans le silence de la bibliothèque, on entendit

Complétion

text
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

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

Complétion

text
« 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

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

Complétion

text
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

text
La jeune fille regarda la mer et comprit que

Complétion

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