{
  "module": "FT10 — Full FT vs PEFT: The Decision",
  "course": "3 — LLM Fine-Tuning Masterclass",
  "version": "1.0.0",
  "duration_minutes": 35,
  "total_questions": 15,
  "bloom_distribution": {
    "target": "20% recall / 40% application / 40% analysis-design",
    "actual": { "recall": 3, "application": 6, "analysis": 6 }
  },
  "passing_score_percent": 70,
  "questions": [
    {
      "id": "Q01", "bloom": "recall", "type": "multiple_choice",
      "prompt": "What is the central decision rule of FT10?",
      "options": [
        "Default to full fine-tuning; use PEFT only when compute is unavailable.",
        "Default to PEFT for ~95% of production adaptation; full FT must justify a ~30x cost premium and demonstrate PEFT provably cannot reach the target.",
        "Always use full FT for production and PEFT only for prototyping.",
        "Use whichever method has the higher benchmark score, regardless of cost."
      ],
      "answer_index": 1,
      "rationale": "The decision rule: default to PEFT; full FT is the exception and must defend itself with both a cost justification (~30x premium) and evidence that PEFT provably cannot reach the target. The other options invert the default or ignore cost/structure entirely."
    },
    {
      "id": "Q02", "bloom": "recall", "type": "multiple_choice",
      "prompt": "Name the three conditions that genuinely push a project toward full fine-tuning.",
      "options": [
        "Low VRAM, small dataset, short deadline.",
        "High accuracy requirements, large model size, production deployment.",
        "Genuinely new reasoning pathways; extreme domain shift requiring new knowledge (RAG-insufficient); large batch sizes where LoRA degrades faster than full FT.",
        "Need for lower latency, need for quantization, need for multi-GPU serving."
      ],
      "answer_index": 2,
      "rationale": "The three honest exits from the PEFT default: (1) new reasoning pathways the base cannot produce; (2) extreme domain shift where RAG is structurally insufficient (the rare CPT case); (3) the large-batch LoRA-degradation regime from Shuttleworth et al. (arXiv:2410.21228). The other options list operational constraints, not the structural conditions that make a task higher-rank."
    },
    {
      "id": "Q03", "bloom": "recall", "type": "multiple_choice",
      "prompt": "What is GaLore, and where does it sit in the decision?",
      "options": [
        "A quantization method that compresses LoRA adapters to 4-bit.",
        "A preference-optimization algorithm like DPO, used after SFT.",
        "A method that projects the optimizer's gradient state to low rank (via SVD), enabling full-parameter learning at near-LoRA memory — the bridge rung between PEFT and full FT.",
        "A replacement for the base model's tokenizer, used before any fine-tuning."
      ],
      "answer_index": 2,
      "rationale": "GaLore (Zhao et al., arXiv:2403.03507) projects the OPTIMIZER state (not the weights) to low rank, so weights update in full (higher-rank solution) while optimizer memory approaches LoRA's. It is the bridge: full-FT quality on PEFT-class hardware. It is the rung between DoRA and full FT in the escalation ladder."
    },
    {
      "id": "Q04", "bloom": "application", "type": "multiple_choice",
      "prompt": "Your medical chatbot must always structure responses as a differential diagnosis, cite its source, and flag uncertainty. The base already knows medicine. You have 5,000 examples and a single 24GB GPU. Which method?",
      "options": [
        "Full fine-tuning — the medical domain requires the most powerful method.",
        "Continued pretraining on a medical corpus to teach the model medicine.",
        "PEFT (DoRA or QLoRA) — pure steering; the model already has the knowledge; you are shaping how it presents retrieved content.",
        "Abliteration to remove any refusal to answer medical questions."
      ],
      "answer_index": 2,
      "rationale": "This is pure steering: the base already knows medicine; the goal is format/structure (differential, citation, uncertainty flagging). A low-rank adapter is the CORRECT representation of a format change. RAG supplies the cited sources; PEFT shapes the behavior of citing. The two compose. Full FT is overkill and risks forgetting the medical knowledge; CPT is the cardinal error (the model already knows medicine)."
    },
    {
      "id": "Q05", "bloom": "application", "type": "multiple_choice",
      "prompt": "Your team created a new internal programming language the base model has never seen; prompting produces syntax errors. You have the spec, a compiler, and ~50,000 lines of example code. What is the correct decision, and what must you check first?",
      "options": [
        "QLoRA on the 50K lines — a low-rank adapter will learn the language efficiently.",
        "Full FT or CPT, but FIRST confirm RAG (retrieve spec + examples into context) is insufficient. This is a genuine knowledge gap; full FT is defensible only if retrieval is structurally intractable.",
        "DPO on correct vs incorrect code snippets to align the model to the language.",
        "Abliteration to remove the model's tendency to hallucinate syntax."
      ],
      "answer_index": 1,
      "rationale": "This is a genuine knowledge gap — the base lacks the language's semantics; no steering update can install it. Full FT/CPT is defensible IF RAG is structurally insufficient AND you have the corpus. The correct order is: check RAG first (cheaper, more reliable), escalate to full FT/CPT only if retrieval is intractable. QLoRA expecting it to 'learn the language' is the cardinal error — it would memorize surface patterns and fail on novel programs."
    },
    {
      "id": "Q06", "bloom": "application", "type": "multiple_choice",
      "prompt": "You want the model to write consistently in your brand voice — a specific cadence, register, and rhetorical style. The content capability is already present. You have 2,000 on-brand examples on a consumer GPU. Which method?",
      "options": [
        "PEFT (LoRA or DoRA) — the purest steering task; a low-rank adapter redirecting style is exactly correct.",
        "Full FT to really internalize the brand voice across all parameters.",
        "Continued pretraining on your brand's entire content archive.",
        "RAG, retrieving on-brand examples into the context at inference."
      ],
      "answer_index": 0,
      "rationale": "Style transfer is archetypal steering — the content capability is present; you are redirecting surface generation. Style is low-rank by nature; a LoRA/DoRA adapter is the correct geometry. Full FT is over-parameterized and risks forgetting the content capabilities the brand voice rides on. CPT is overkill for style. RAG could help but fine-tuning a small adapter is the cleaner, lower-latency solution for a consistent voice."
    },
    {
      "id": "Q07", "bloom": "application", "type": "multiple_choice",
      "prompt": "Your tool-use agent violates the function-call schema ~15% of the time (wrong JSON, missing fields). The model understands tools conceptually. You need violations under 1%. You have 10,000 correct examples on a 24GB GPU. Which method?",
      "options": [
        "Full FT — schema reliability demands updating all parameters.",
        "PEFT (QLoRA) — steering; the model already understands tools; you are making the format deterministic. A low-rank update on 10K examples drives violations well under 1%.",
        "RAG, retrieving the correct schema at inference time.",
        "Re-quantize the model to a stricter format."
      ],
      "answer_index": 1,
      "rationale": "This is a reliability/format problem — classic steering. The model already understands function-calling conceptually; the 15% violation rate is a format determinism problem, exactly what SFT-via-QLoRA fixes. The structural non-equivalence finding cuts in PEFT's favor: the low-rank solution is the correct geometry for a format change. Full FT is overkill on a 24GB budget for a formatting task."
    },
    {
      "id": "Q08", "bloom": "application", "type": "multiple_choice",
      "prompt": "You want to uncensor an authorized-use security agent (remove refusal for legitimate pentest/malware-analysis requests) WITHOUT degrading its code-reasoning capability. Which method, and why is full FT the wrong call?",
      "options": [
        "Full FT — it can precisely target the refusal behavior without touching code reasoning.",
        "PEFT (LoRA) or abliteration — steering away from refusal is a low-rank operation; full FT risks MORE capability loss via entanglement because it has more degrees of freedom to drift.",
        "Continued pretraining on security-research corpora to overwrite the refusal training.",
        "Quantize the model to 4-bit, which removes the refusal direction automatically."
      ],
      "answer_index": 1,
      "rationale": "Steering AWAY from refusal is low-rank by definition (abliteration deletes a single residual-stream direction). Full FT is overkill AND, per the entanglement finding (FT00), risks MORE capability loss — more degrees of freedom to drift into the entangled code/math directions. The explicit constraint 'avoid capability loss' rules out the over-parameterized option. A LoRA adapter or abliteration is correct, followed by deployment inside an eval'd harness (Layer 5, FT23)."
    },
    {
      "id": "Q09", "bloom": "application", "type": "multiple_choice",
      "prompt": "You want the model to answer employee questions over a 200,000-document proprietary knowledge base that is UPDATED MONTHLY. Answers must be accurate and current. What is the correct intervention?",
      "options": [
        "Full FT on the 200K documents to teach the model the knowledge base.",
        "Continued pretraining on the corpus, refreshed each month.",
        "RAG (retrieve current docs at query time); PEFT at most for the BEHAVIOR of citing/structuring — never to memorize the KB. The monthly-change constraint is decisive.",
        "QLoRA on a sample of Q&A pairs drawn from the documents."
      ],
      "answer_index": 2,
      "rationale": "This is a knowledge problem, and the 'changes monthly' constraint is decisive: any weight-based memorization (full FT, CPT, or QLoRA-on-QA) is stale within 30 days and cannot be kept current without constant retraining. RAG retrieves CURRENT docs at query time, is updateable without retraining, and is auditable. Fine-tune at most for the BEHAVIOR (cite the source, structure the answer) via QLoRA — never to memorize the KB. This is the cardinal error (FT00) restated at the decision layer."
    },
    {
      "id": "Q10", "bloom": "analysis", "type": "multiple_choice",
      "prompt": "Why does the structural non-equivalence finding (Shuttleworth et al.) turn the PEFT-vs-full-FT choice from a cost decision into a design decision?",
      "options": [
        "Because it proves full FT is always higher quality, so cost is the only variable.",
        "Because it shows LoRA and full FT are structurally distinct solutions (low-rank vs higher-rank) with different generalization profiles — so the question is which solution's inductive bias matches the task's geometry, not how much quality you can afford.",
        "Because it proves LoRA is always more robust, eliminating the need to consider full FT.",
        "Because it shows the two methods produce identical weights, making the choice purely about training speed."
      ],
      "answer_index": 1,
      "rationale": "If LoRA and full FT were approximations of each other, the only question would be budget. Because they are structurally distinct (LoRA low-rank, full FT higher-rank) with different generalization profiles, the question becomes: which solution's geometry fits the task? LoRA's low-rank solution can be MORE robust on steering (less overfitting/forgetting); full FT's higher-rank solution can capture changes LoRA cannot. A team that ignores this reasons about 'quality per dollar' and inverts the correct decisions."
    },
    {
      "id": "Q11", "bloom": "analysis", "type": "multiple_choice",
      "prompt": "Why does the steering thesis (FT00) make PEFT the default for ~95% of adaptation, rather than merely the budget option?",
      "options": [
        "Because PEFT is faster, and speed is the most important production metric.",
        "Because if fine-tuning is steering, the useful change lives in a low-rank subspace; for a steering task a low-rank update is the CORRECT representation, not a compromise. Full FT is over-parameterized for steering — more room to drift and forget.",
        "Because full FT is illegal without enterprise licenses.",
        "Because PEFT models always score higher on standard benchmarks."
      ],
      "answer_index": 1,
      "rationale": "The intrinsic-dimension result (Aghajanyan, arXiv:2007.07784) shows useful fine-tuning changes live in a low-rank subspace. If the task is steering (format, style, instruction, preference, refusal), a low-rank update is the correct representation of that change — adapters under 1% of params are not 'almost as good for less money,' they are the method whose inductive bias matches the problem. Full FT, with more degrees of freedom than the task needs, is over-parameterized: more room to drift, forget, and fit noise."
    },
    {
      "id": "Q12", "bloom": "analysis", "type": "multiple_choice",
      "prompt": "A team defaults to full FT 'because it's better' for a JSON-formatting task, on a single 24GB GPU. Which combination of errors are they making?",
      "options": [
        "They are correctly choosing the most powerful method for a reliability-critical task.",
        "They are ignoring structural non-equivalence (format is low-rank; full FT's geometry is wrong for it), ignoring the cost asymmetry (~30x premium for no quality gain), and choosing full FT for a format task (overkill, per the 'format and style are always PEFT' rule).",
        "They are only making a cost error; full FT is structurally equivalent to PEFT for formatting.",
        "They are making a data error; they need more examples, not a different method."
      ],
      "answer_index": 1,
      "rationale": "Three errors compound: (1) structural non-equivalence ignored — formatting is low-rank, so full FT's higher-rank geometry is the WRONG representation, not a more powerful one; (2) cost asymmetry ignored — ~30x premium for a task where QLoRA reaches equivalent quality; (3) the specific anti-pattern of full FT for a format/style task. The 'format and style are always PEFT' rule exists precisely because these are the purest steering tasks. The team is over-parameterized, over-budget, and more prone to forgetting — for no quality gain."
    },
    {
      "id": "Q13", "bloom": "analysis", "type": "multiple_choice",
      "prompt": "Shuttleworth et al. found LoRA degrades faster than full FT at large batch sizes. A team training at large batch sizes observes LoRA underperforming. According to the escalation ladder, what is the correct response?",
      "options": [
        "Immediately switch to full FT on a multi-GPU node — large batches prove full FT is required.",
        "Abandon the project; LoRA's failure means the task is impossible.",
        "Escalate one rung at a time with evidence: try DoRA / higher-rank PEFT first, then GaLore (full-FT quality at PEFT memory), then full FT only if GaLore provably fails. Do not crank LoRA's rank until it is no longer PEFT.",
        "Reduce the batch size until LoRA works, sacrificing throughput."
      ],
      "answer_index": 2,
      "rationale": "The large-batch degradation is the narrowest of the three full-FT conditions, and the correct response is the escalation ladder: DoRA / higher-rank PEFT (first rung) -> GaLore (the bridge: full-FT geometry at near-LoRA memory) -> full FT (only when memory is no constraint). Cranking LoRA's rank until it's no longer PEFT defeats the purpose. Jumping straight to full FT burns ~30x cost without evidence the lower rungs fail. GaLore exists precisely so this escalation does not require a multi-GPU budget."
    },
    {
      "id": "Q14", "bloom": "analysis", "type": "multiple_choice",
      "prompt": "Why is GaLore described as 'collapsing the cost-quality dichotomy,' and what does that imply for the escalation ladder?",
      "options": [
        "It makes full FT as cheap as LoRA by removing the optimizer entirely.",
        "It breaks the binary tension between 'full FT gives higher-rank updates at ~30x memory' and 'PEFT gives low-rank updates at low memory' by projecting the optimizer state (not the weights) to low rank — yielding full-parameter weights (higher-rank solution) at near-LoRA memory. It is the bridge rung that makes 'I need full-FT geometry' and 'I have a 4090' compatible.",
        "It replaces LoRA entirely, making the escalation ladder obsolete.",
        "It is only useful for pretraining, not fine-tuning, so it does not affect the ladder."
      ],
      "answer_index": 1,
      "rationale": "Before GaLore the tension was binary: higher-rank updates (full FT) cost ~30x memory; low-rank updates (PEFT) cost little but are geometrically constrained. GaLore projects the OPTIMIZER STATE to low rank via SVD, so the WEIGHTS update in full (higher-rank solution) while optimizer memory approaches LoRA's. This makes full-FT quality achievable on PEFT-class hardware, inserting a bridge rung (DoRA -> GaLore -> full FT) so escalation from 'PEFT underperforms' does not jump straight to a multi-GPU budget."
    },
    {
      "id": "Q15", "bloom": "analysis", "type": "multiple_choice",
      "prompt": "A team escalates a steering task straight to full FT 'because we'll probably need it eventually,' skipping PEFT entirely. What does the decision rule (FT10) say about why this is wrong?",
      "options": [
        "It is not wrong — full FT is the safest default for production.",
        "It is wrong on three counts: (1) for steering, full FT is over-parameterized and more prone to forgetting, so 'eventually needing it' is unlikely; (2) it burns ~30x cost upfront; (3) the correct posture is to start at PEFT (the default), measure, and escalate one rung at a time WITH EVIDENCE — not to start at the most expensive rung on speculation.",
        "It is only wrong because of the cost; full FT would otherwise produce equivalent quality.",
        "It is wrong because full FT requires a license that PEFT does not."
      ],
      "answer_index": 1,
      "rationale": "The 'start where you think you'll end up' anti-pattern is wrong on structure, cost, and process. (1) Structure: for a steering task, full FT's higher-rank geometry is the WRONG representation — it is over-parameterized and more prone to catastrophic forgetting, so 'eventually needing it' is itself unlikely. (2) Cost: ~30x premium paid upfront on speculation. (3) Process: the escalation ladder is rung-by-rung with evidence — start at PEFT, measure against the quality bar, escalate (DoRA -> GaLore -> full FT) only when a rung provably fails AND you have a hypothesis for why the task needs the next rung's geometry."
    }
  ]
}
