Ce tutoriel exécute un modèle causal sur votre machine. Choisissez un petit modèle compatible avec votre mémoire et vérifiez sa licence ainsi que sa model card.
Installer
pip install -U transformers torch accelerateCharger tokenizer et modèle
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "HuggingFaceTB/SmolLM2-360M-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
)device_map="auto" utilise Accelerate pour placer le modèle. Sur une machine uniquement CPU, le chargement reste possible pour un petit modèle mais sera plus lent.
Appliquer le chat template
Les modèles instruct attendent souvent un format de conversation précis. Utilisez le template fourni par le tokenizer plutôt que de concaténer manuellement les rôles.
messages = [
{"role": "system", "content": "Réponds en français et sois concis."},
{"role": "user", "content": "Explique ce qu’est un tokenizer."},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
with torch.inference_mode():
outputs = model.generate(
**inputs,
max_new_tokens=120,
do_sample=False,
)
generated = outputs[0, inputs["input_ids"].shape[1]:]
print(tokenizer.decode(generated, skip_special_tokens=True))max_new_tokens limite uniquement la réponse. do_sample=False facilite les tests reproductibles ; pour de la créativité, activez l’échantillonnage avec des paramètres documentés.
Prévenir les erreurs mémoire
Réduisez d’abord la taille du modèle, la longueur du prompt et le nombre de tokens générés. Ne supposez pas qu’une précision réduite est prise en charge par tous les matériels. Mesurez le temps au premier token, le débit et la mémoire maximale.
Valider le résultat
Le modèle peut produire une affirmation plausible mais fausse. Pour une application, imposez des formats, ajoutez des sources ou une récupération documentaire et évaluez sur des exemples réels. Fixez la révision du modèle lorsque la reproductibilité est importante.