Transformers
Aperçu
La bibliothèque Transformers de Hugging Face donne accès à des milliers de modèles pré-entraînés pour des tâches couvrant le NLP, la vision par ordinateur, l'audio et les domaines multimodaux. Utilisez cette skill pour charger des modèles, effectuer de l'inférence et affiner sur des données personnalisées.
Installation
Installez transformers et les dépendances principales :
uv pip install torch transformers datasets evaluate accelerate
Pour les tâches de vision, ajoutez :
uv pip install timm pillow
Pour les tâches audio, ajoutez :
uv pip install librosa soundfile
Authentification
De nombreux modèles sur le Hugging Face Hub nécessitent une authentification. Configurez l'accès :
from huggingface_hub import login
login() # Suivez les invites pour entrer votre token
Ou définissez une variable d'environnement :
export HUGGINGFACE_TOKEN="your_token_here"
Obtenez des tokens sur : https://huggingface.co/settings/tokens
Démarrage rapide
Utilisez l'API Pipeline pour une inférence rapide sans configuration manuelle :
from transformers import pipeline
# Génération de texte
generator = pipeline("text-generation", model="gpt2")
result = generator("The future of AI is", max_length=50)
# Classification de texte
classifier = pipeline("text-classification")
result = classifier("This movie was excellent!")
# Réponse à des questions
qa = pipeline("question-answering")
result = qa(question="What is AI?", context="AI is artificial intelligence...")
Capacités principales
1. Pipelines pour inférence rapide
À utiliser pour une inférence simple et optimisée sur de nombreuses tâches. Supporte la génération de texte, la classification, la NER, la réponse à des questions, la résumérisation, la traduction, la classification d'images, la détection d'objets, la classification audio, et bien plus.
Quand l'utiliser : Prototypage rapide, tâches d'inférence simples, pas de prétraitement personnalisé nécessaire.
Consultez references/pipelines.md pour une couverture complète des tâches et l'optimisation.
2. Chargement et gestion de modèles
Chargez des modèles pré-entraînés avec un contrôle précis sur la configuration, le placement sur appareil et la précision.
Quand l'utiliser : Initialisation de modèle personnalisée, gestion avancée des appareils, inspection de modèle.
Consultez references/models.md pour les motifs de chargement et les bonnes pratiques.
3. Génération de texte
Générez du texte avec des LLMs en utilisant diverses stratégies de décodage (greedy, beam search, sampling) et des paramètres de contrôle (température, top-k, top-p).
Quand l'utiliser : Génération de texte créatif, génération de code, IA conversationnelle, complétion de texte.
Consultez references/generation.md pour les stratégies de génération et les paramètres.
4. Entraînement et affinage
Affinez les modèles pré-entraînés sur des datasets personnalisés en utilisant l'API Trainer avec précision mixte automatique, entraînement distribué et journalisation.
Quand l'utiliser : Adaptation de modèle spécifique à une tâche, adaptation de domaine, amélioration des performances du modèle.
Consultez references/training.md pour les workflows d'entraînement et les bonnes pratiques.
5. Tokenization
Convertissez du texte en tokens et token IDs pour l'entrée du modèle, avec padding, truncation et gestion des tokens spéciaux.
Quand l'utiliser : Pipelines de prétraitement personnalisés, compréhension des entrées du modèle, traitement par batch.
Consultez references/tokenizers.md pour les détails de tokenization.
Motifs courants
Motif 1 : Inférence simple
Pour les tâches directes, utilisez les pipelines :
pipe = pipeline("task-name", model="model-id")
output = pipe(input_data)
Motif 2 : Utilisation de modèle personnalisée
Pour un contrôle avancé, chargez le modèle et le tokenizer séparément :
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("model-id")
model = AutoModelForCausalLM.from_pretrained("model-id", device_map="auto")
inputs = tokenizer("text", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100)
result = tokenizer.decode(outputs[0])
Motif 3 : Affinage
Pour l'adaptation de tâche, utilisez Trainer :
from transformers import Trainer, TrainingArguments
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=8,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
)
trainer.train()
Documentation de référence
Pour des informations détaillées sur des composants spécifiques :
- Pipelines :
references/pipelines.md- Toutes les tâches supportées et optimisation - Modèles :
references/models.md- Chargement, sauvegarde et configuration - Génération :
references/generation.md- Stratégies et paramètres de génération de texte - Entraînement :
references/training.md- Affinage avec l'API Trainer - Tokenizers :
references/tokenizers.md- Tokenization et prétraitement