transformers

Par mkurman · zorai

Cette skill doit être utilisée pour travailler avec des modèles transformer pré-entraînés pour le traitement du langage naturel, la vision par ordinateur, l'audio ou les tâches multimodales. À utiliser pour la génération de texte, la classification, la question-réponse, la traduction, la summarization, la classification d'images, la détection d'objets, la reconnaissance vocale et le fine-tuning de modèles sur des datasets personnalisés.

npx skills add https://github.com/mkurman/zorai --skill transformers

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

Skills similaires