[ { "question": "What is the core insight behind LoRA (Low-Rank Adaptation)?", "options": ["Smaller models are always better", "Weight updates during fine-tuning have low intrinsic rank, so they can be approximated by two small matrices instead of updating the full weight matrix", "Most weights don't matter", "Fine-tuning only needs the last layer"], "correct": 1, "explanation": "Aghajanyan et al. showed that fine-tuning updates occupy a low-dimensional subspace. LoRA exploits this by representing the update as W + BA where B (d x r) and A (r x d) have small rank r, typically 8-64.", "stage": "pre" }, { "question": "How much memory does LoRA save compared to full fine-tuning of an 8B model?", "options": ["Only saves disk space", "No savings", "From ~56GB down to ~6GB by training <1% of parameters while keeping base weights frozen", "50% reduction"], "correct": 2, "explanation": "Full fine-tuning needs gradients and optimizer states for all 8B parameters (~56GB). LoRA freezes base weights and only trains adapter matrices (~80M parameters at rank 16), needing ~6GB total.", "stage": "pre" }, { "question": "What is QLoRA?", "options": ["A different fine-tuning algorithm", "LoRA applied to quantized activations", "Quantized LoRA: the base model is loaded in 4-bit precision while LoRA adapters train in 16-bit, combining memory savings from both techniques", "A faster version of LoRA"], "correct": 2, "explanation": "QLoRA (Dettmers et al.) loads the frozen base model in 4-bit (NF4 quantization) while training LoRA adapters in FP16/BF16. This allows fine-tuning a 7B model on a single consumer GPU with 6GB VRAM.", "stage": "post" }, { "question": "What does the 'rank' parameter (r) in LoRA control?", "options": ["The learning rate", "The number of training epochs", "The capacity of the adapter: higher rank captures more complex adaptations but uses more parameters and memory", "The number of layers to fine-tune"], "correct": 2, "explanation": "Rank r determines the size of adapter matrices A (r x d) and B (d x r). Rank 4 trains very few parameters (fast, cheap). Rank 64 trains more parameters (more expressive). Most tasks work well with rank 8-32.", "stage": "post" }, { "question": "What happens when you merge LoRA weights back into the base model?", "options": ["Merging is not possible", "The model becomes larger", "The model needs to be retrained", "The adapter matrices are added to the base weights (W_merged = W_base + B*A), producing a standard model with no inference overhead"], "correct": 3, "explanation": "Since LoRA adds W_base + B*A, you can compute B*A once and add it to W_base permanently. The merged model has the same architecture and inference speed as the original, with no adapter overhead.", "stage": "post" } ]