Quiz : Exploration approfondie de LoRA
Testez vos connaissances sur les mathématiques, l'implémentation et les meilleures pratiques de LoRA.
30 questions - Cliquez sur chaque question pour révéler la réponse correcte.
Question 1
Que signifie LoRA ?
A) Adaptation de faible rang
B) Algorithme de régularisation de sortie linéaire
C) Optimisation couche par couche pour les représentations
D) Approche de réduction de grande sortie
Afficher la réponse
Réponse correcte : A
LoRA signifie Adaptation de faible rang, se référant à la décomposition matricielle de faible rang utilisée pour représenter les mises à jour de poids.
Question 2
Comment LoRA représente-t-il les mises à jour de poids ?
A) Comme une matrice unique
B) Comme un produit de deux matrices de faible rang (BA)
C) Comme une matrice creuse
D) Comme un vecteur
Afficher la réponse
Réponse correcte : B
LoRA représente les mises à jour de poids ΔW comme un produit de deux matrices : B (d×r) et A (r×k), où r est beaucoup plus petit que d et k.
Question 3
Pourquoi la matrice B est-elle initialisée à zéro ?
A) Pour accélérer l'entraînement
B) Ainsi BA=0 au départ, gardant la sortie initiale inchangée
C) Pour économiser de la mémoire
D) Elle est initialisée aléatoirement, pas à zéro
Afficher la réponse
Réponse correcte : B
Lorsque B est initialisée à zéro, BA=0, ce qui signifie que le modèle commence avec exactement le même comportement que le modèle de base, assurant un démarrage d'entraînement stable.
Question 4
Quel est le facteur d'échelle effectif pour r=16 et alpha=32 ?
A) 0,5
B) 1,0
C) 2,0
D) 16
Afficher la réponse
Réponse correcte : C
L'échelle effective est alpha/r = 32/16 = 2,0.
Question 5
Pour une matrice de poids 4096×4096 avec r=16, combien de paramètres LoRA sont ajoutés ?
A) 16,777,216
B) 131,072
C) 65,536
D) 4,194,304
Afficher la réponse
Réponse correcte : B
LoRA ajoute r×d + r×k = 16×4096 + 16×4096 = 131,072 paramètres.
Question 6
Quelles couches sont couramment ciblées pour LoRA dans les transformateurs ?
A) Seulement les couches d'embedding
B) Projections Query, Key, Value (q_proj, k_proj, v_proj)
C) Seulement la couche de sortie
D) Normalisation de couche
Afficher la réponse
Réponse correcte : B
Les couches de projection d'attention (q_proj, k_proj, v_proj, o_proj) sont couramment ciblées pour LoRA.
Question 7
Quel est le but du paramètre lora_alpha ?
A) Définir le taux d'apprentissage
B) Échelonner la contribution des mises à jour LoRA
C) Déterminer la taille du lot
D) Contrôler le taux de dropout
Afficher la réponse
Réponse correcte : B
lora_alpha est un facteur d'échelle qui contrôle l'ampleur de la contribution de LoRA. L'échelle effective est alpha/r.
Question 8
Quelle fonction est utilisée pour appliquer LoRA à un modèle ?
A) apply_lora()
B) get_peft_model()
C) create_lora()
D) add_adapter()
Afficher la réponse
Réponse correcte : B
get_peft_model(base_model, lora_config) est utilisé pour envelopper un modèle de base avec la configuration LoRA.
Question 9
Que fait model.merge_and_unload() ?
A) Sauvegarde le modèle sur disque
B) Fusionne les poids LoRA dans le modèle de base et supprime l'adaptateur
C) Charge un nouvel adaptateur
D) Libère la mémoire GPU
Afficher la réponse
Réponse correcte : B
merge_and_unload() fusionne les poids de l'adaptateur LoRA dans les poids du modèle de base, créant un modèle standard sans surcharge d'adaptateur.
Question 10
Quel est le taux d'apprentissage typique pour le fine-tuning LoRA ?
A) 1e-2
B) 1e-4 à 5e-4
C) 1e-6
D) 1,0
Afficher la réponse
Réponse correcte : B
Le fine-tuning LoRA utilise généralement des taux d'apprentissage dans la plage de 1e-4 à 5e-4, plus élevés que le fine-tuning complet.
Question 11
Quel est le rang de départ recommandé pour les expériences LoRA ?
A) r=1
B) r=16
C) r=256
D) r=1024
Afficher la réponse
Réponse correcte : B
r=16 est un point de départ commun, offrant un bon équilibre entre capacité et efficacité.
Question 12
Que signifie "faible rang" dans LoRA ?
A) Le modèle est classé bas en qualité
B) Les matrices ont une petite dimensionnalité (r beaucoup plus petit que d)
C) Le taux d'apprentissage est bas
D) Le modèle a peu de couches
Afficher la réponse
Réponse correcte : B
"Faible rang" signifie que la dimension intermédiaire r est beaucoup plus petite que les dimensions originales (r ≪ d), entraînant moins de paramètres.
Question 13
Après fusion, quel est le surcoût d'inférence de LoRA ?
A) 10% plus lent
B) 50% plus lent
C) Zéro (identique au modèle de base)
D) 2x plus lent
Afficher la réponse
Réponse correcte : C
Après fusion, les poids LoRA deviennent partie des poids du modèle de base, entraînant un surcoût nul supplémentaire à l'inférence.
Question 14
Quelle est la relation entre alpha et le rang typiquement ?
A) Alpha doit être beaucoup plus petit que le rang
B) Alpha est typiquement 1-2x le rang
C) Alpha est égal au carré du rang
D) Ils ne sont pas liés
Afficher la réponse
Réponse correcte : B
La pratique courante est de définir alpha à 1-2x le rang (par exemple, r=16, alpha=32).
Question 15
Comment vérifiez-vous les paramètres entraînables dans un modèle PEFT ?
A) model.count_params()
B) model.print_trainable_parameters()
C) model.trainable()
D) model.params()
Afficher la réponse
Réponse correcte : B
model.print_trainable_parameters() affiche le nombre et le pourcentage de paramètres entraînables.
Question 16
À quoi sert lora_dropout ?
A) Réduire la taille du modèle
B) Régularisation pour éviter le surapprentissage
C) Accélérer l'entraînement
D) Optimisation de la mémoire
Afficher la réponse
Réponse correcte : B
lora_dropout applique une régularisation par dropout aux couches LoRA pour aider à éviter le surapprentissage.
Question 17
Quel est le paramètre bias dans LoraConfig ?
A) Définir le biais du taux d'apprentissage
B) Déterminer si les termes de biais dans les couches LoRA sont entraînés
C) Biais d'échantillonnage de données
D) Correction de biais de gradient
Afficher la réponse
Réponse correcte : B
Le paramètre bias contrôle si les termes de biais sont entraînés : "none" (ne pas entraîner), "all" (entraîner tous), ou "lora_only" (entraîner seulement les biais LoRA).
Question 18
Quelle est l'équation de passage avant dans LoRA ?
A) h = Wx
B) h = Wx + BAx
C) h = BA + Wx
D) h = W + BA
Afficher la réponse
Réponse correcte : B
Le passage avant est h = Wx + (α/r)BAx, combinant le chemin de base gelé avec le chemin LoRA entraînable.
Question 19
Qu'est-ce qui rend LoRA efficace en mémoire pendant l'entraînement ?
A) Compression du modèle
B) Stocker uniquement les gradients/optimiseur pour les petits adaptateurs, pas pour les poids gelés
C) Utiliser int8 par défaut
D) Réduire automatiquement la taille du lot
Afficher la réponse
Réponse correcte : B
Les économies de mémoire proviennent du fait de ne pas stocker les gradients et les états de l'optimiseur pour les poids de base gelés—seuls les petits paramètres LoRA en ont besoin.
Question 20
Peut-on utiliser plusieurs adaptateurs LoRA sur un modèle de base ?
A) Non, un seul adaptateur est autorisé
B) Oui, en utilisant add_adapter et set_adapter
C) Seulement deux adaptateurs
D) Seulement pendant l'entraînement
Afficher la réponse
Réponse correcte : B
Plusieurs adaptateurs peuvent être ajoutés avec add_adapter() et commutés en utilisant set_adapter().
Question 21
À quoi sert TaskType.CAUSAL_LM ?
A) Tâches de classification
B) Modélisation de langage causal (génération de texte)
C) Génération d'images
D) Traduction uniquement
Afficher la réponse
Réponse correcte : B
TaskType.CAUSAL_LM indique que le modèle est utilisé pour la modélisation de langage causal, qui est la génération standard de texte.
Question 22
Que devez-vous faire si la perte d'entraînement est NaN ?
A) Augmenter le taux d'apprentissage
B) Réduire le taux d'apprentissage, activer le découpage de gradient
C) Utiliser une taille de lot plus grande
D) Entraîner plus longtemps
Afficher la réponse
Réponse correcte : B
Une perte NaN indique généralement une instabilité numérique. Les solutions incluent la réduction du taux d'apprentissage, l'activation du découpage de gradient et la vérification des problèmes de données.
Question 23
Quelle est la taille typique du fichier adaptateur LoRA pour un modèle 7B ?
A) ~15GB
B) ~1GB
C) ~10-50MB
D) ~500MB
Afficher la réponse
Réponse correcte : C
Les fichiers adaptateurs LoRA sont généralement de 10-50MB, comparés aux modèles complets à ~15GB+ pour 7B paramètres.
Question 24
Qu'est-ce que DoRA ?
A) Un format de jeu de données
B) Adaptation de faible rang décomposée en poids
C) Un type d'optimiseur
D) Une architecture de modèle
Afficher la réponse
Réponse correcte : B
DoRA (Adaptation de faible rang décomposée en poids) est une variante de LoRA qui sépare l'amplitude et la direction des poids.
Question 25
Comment sauvegarder uniquement l'adaptateur LoRA ?
A) model.save_pretrained(path)
B) model.save_weights(path)
C) model.save_adapter(path)
D) Les deux A et C fonctionnent
Afficher la réponse
Réponse correcte : A
model.save_pretrained(path) sur un modèle PEFT sauvegarde uniquement l'adaptateur par défaut, pas le modèle de base.
Question 26
Quel est le but du checkpointing de gradient avec LoRA ?
A) Sauvegarder les checkpoints d'entraînement
B) Échanger le calcul pour la mémoire afin de réduire l'utilisation de la VRAM
C) Entraînement plus rapide
D) Meilleure qualité
Afficher la réponse
Réponse correcte : B
Le checkpointing de gradient recalcule les activations pendant le passage arrière au lieu de les stocker, réduisant l'utilisation de la mémoire au coût d'un calcul supplémentaire.
Question 27
Quel paramètre détermine quelles couches reçoivent LoRA ?
A) r
B) lora_alpha
C) target_modules
D) lora_dropout
Afficher la réponse
Réponse correcte : C
Le paramètre target_modules spécifie quelles matrices de poids reçoivent les adaptateurs LoRA.
Question 28
Quelle est la formule pour le nombre de paramètres dans LoRA ?
A) d × k
B) r × (d + k)
C) r × r
D) d + k
Afficher la réponse
Réponse correcte : B
LoRA ajoute r×d (pour B) + r×k (pour A) = r×(d+k) paramètres par matrice de poids.
Question 29
Pourquoi LoRA fonctionne-t-il bien pour le fine-tuning ?
A) Il utilise plus de paramètres
B) Les mises à jour de fine-tuning ont une faible dimensionnalité intrinsèque
C) Il s'entraîne toujours plus vite
D) Il a été conçu par OpenAI
Afficher la réponse
Réponse correcte : B
La recherche montre que les mises à jour de fine-tuning se situent souvent dans un sous-espace de faible dimension, ce qui signifie qu'elles peuvent être efficacement représentées avec des matrices de faible rang.
Question 30
Quelle est l'approche recommandée pour le déploiement en production ?
A) Garder l'adaptateur séparé toujours
B) Fusionner l'adaptateur dans le modèle de base pour un déploiement plus simple
C) Utiliser le fine-tuning complet à la place
D) Ne jamais utiliser LoRA en production
Afficher la réponse
Réponse correcte : B
Pour la production, fusionner l'adaptateur dans le modèle de base simplifie le déploiement et élimine la surcharge d'adaptateur à l'inférence.
Résultats
| Score | Niveau |
|---|---|
| 27-30 | Excellent - Maître de LoRA ! |
| 21-26 | Bon - Revoir les détails de l'implémentation |
| 15-20 | Moyen - Revoir tous les chapitres |
| Moins de 15 | Nécessite une révision complète |