Aller au contenu principal

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​

ScoreNiveau
27-30Excellent - Maître de LoRA !
21-26Bon - Revoir les détails de l'implémentation
15-20Moyen - Revoir tous les chapitres
Moins de 15Nécessite une révision complète

Retour au Module 4 | Continuer au Module 5