Files
Cormac Shannon 95b5857189 Add literature review protocol, searches and first snowball round
Six seeds snowballed (Semantic Scholar) plus logged keyword searches
(OpenAlex, arXiv): 2,127 unique records, 480 title/abstract screened.
AI first-pass suggestions are in their own column; decisions are pending.

Claude-Session: https://claude.ai/code/session_01S8KN7NuUCm8nXLmy6eDuVv
2026-10-28 18:00:06 +00:00

199 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Literature Review Protocol (pared-down SLR)
*Version 0.1 — drafted 28/10/2026 with AI assistance (see section 9). Status: DRAFT for
Cormac to review and own. `[Your call: …]` marks decisions that are yours to make.*
Follows a pared-down version of Kitchenham-style SLR guidance, as summarised in
Xiao & Watson (2017, *J. Planning Education and Research*, doi:10.1177/0739456X17723971 —
in `05-course-materials/week2-literature-review/`), with snowballing per
Wohlin (2014, EASE, doi:10.1145/2601248.2601268).
---
## 1. Review questions
Supervisor advice: ask **how**, not **if** — "how" questions give a scope that can be
answered with a set of findings, rather than a yes/no.
| ID | Review question (draft) | Feeds |
|---|---|---|
| RQ-L1 | **How** has QK-norm (and related attention-logit control) been evaluated with respect to training stability and learning-rate sensitivity, and at what model scales? | Gap: is <100M covered? |
| RQ-L2 | **How** do reported benefits of QK-norm depend on learning rate, depth and model size? | H1, H2, H3 |
| RQ-L3 | **How** do existing studies isolate QK-norm from confounds (μP, z-loss, soft-capping, optimiser, precision)? | "isolated" claim |
| RQ-L4 | **How** do authors explain *why* QK-norm stabilises training (logit growth, entropy collapse, sinks, kurtosis)? | metrics to log |
**Thesis RQ (current, from notebook 21/08/2026):** "At <100M parameters, *does* isolated QK-norm
improve training convergence and raise the maximum stable learning rate — and at what learning
rate does it become necessary?"
`[Your call: possible "how" rewrite — "How does isolated QK-norm change the maximum stable
learning rate and LR-sensitivity of <100M-parameter language models, and how does the learning
rate at which it becomes necessary vary with depth?" Revisit after the extraction table is
filled (supervisor: "review if you want to update/change any of your questions").]`
## 2. Sources
| Source | Used for | Notes |
|---|---|---|
| Semantic Scholar Graph API | snowballing (references + citations) | best citation graph for ML preprints; unauthenticated access is heavily rate-limited (a free key helps) |
| OpenAlex API | keyword search | open, free; **no reference lists for arXiv preprints**, so not used for snowballing |
| arXiv API | keyword search | where nearly all of this literature appears first |
| Google Scholar | manual check only | no API; use to spot-check that nothing big is missing `[Your call: run the S1 string by hand and log the top 50]` |
All automated searches are logged in `search/search-log.csv` (date, source, exact query,
filters, hit count, results file). Raw API responses are cached in `search/.cache/`
(git-ignored) so every search can be re-run and gives the same results.
## 3. Seed set
Chosen from the CS6513 lit review (`qknorm-research-findings.md`) as the papers the thesis
depends on most:
| Key | Paper | Why it is a seed |
|---|---|---|
| henry2020 | Henry et al. 2020, *Query-Key Normalization for Transformers* (Findings of EMNLP) | origin of the technique |
| vit22b | Dehghani et al. 2023, *Scaling Vision Transformers to 22B Parameters* | popularised QK-norm for stability |
| zhai2023 | Zhai et al. 2023, *Preventing Attention Entropy Collapse* (ICML) | mechanism |
| wortsman2024 | Wortsman et al. 2023, *Small-scale proxies for large-scale Transformer training instabilities* | closest method template (LR-sensitivity) |
| imu1 | Grigorev 2026, *IMU-1* | closest small-scale evidence (70M) |
| stability2024 | Rybakov, Chrzanowski, Dykas, Xue et al. 2024, *Methods of improving LLM training stability* (arXiv:2410.16682) | QK-norm → 1.5× LR before divergence |
Authors of all six seeds checked against arXiv (28/10/2026).
## 4. Search strings
Concepts: **(A) technique** × **(B) outcome** × **(C) scale**. Phrases are quoted; `|` = OR.
| ID | Source | String |
|---|---|---|
| S1 | OpenAlex (title+abstract) | `"qk-norm" \| "qk norm" \| "qk-layernorm" \| "qk layernorm" \| "query-key normalization" \| "query key normalization" \| "qk normalization"` |
| S2 | OpenAlex | (`"attention logit" \| "attention logits" \| "attention entropy collapse" \| "logit growth"`) AND (`"training instability" \| "training stability" \| "loss spike" \| "divergence" \| "learning rate"`) |
| S3 | OpenAlex | (`"small language model(s)" \| "small-scale proxies" \| "small transformer"`) AND (`"learning rate sensitivity" \| "training instability" \| "training stability"`) AND `"normalization"` |
| A1 | arXiv | `abs:"qk norm" OR abs:"qk-norm" OR abs:"query-key normalization" OR abs:"qk normalization" OR abs:"qk-layernorm" OR abs:"qk layernorm"` |
| A2 | arXiv | `(abs:"attention logit" OR abs:"attention logits" OR abs:"entropy collapse") AND (abs:"training instability" OR abs:"learning rate" OR abs:"loss spike")` |
| L1 | OpenAlex, ≥2023 | LLM terms AND (`"systematic literature review" \| "systematic review" \| "literature search" \| "literature screening"`) AND (`"search" \| "screening"`) — *for section 9* |
| L2 | OpenAlex, ≥2023 | LLM terms AND (`"systematic literature review" \| "literature review" \| "snowballing"`) AND `"software engineering"` — *for section 9* |
S3 returned only 1 hit, so the "small scale" concept is covered mainly by snowballing and by
the extraction table's model-size column rather than by the search string.
## 5. Inclusion / exclusion criteria
**Include** if all of:
- **I1** published 2020-01-01 or later (QK-norm was introduced in Oct 2020; nothing earlier is
about it). Pre-2020 *background* (e.g. Vaswani et al. 2017) may be cited, but is not a search result.
- **I2** about transformer models, and addresses QK-norm, attention-logit control, or the
training stability / LR-sensitivity of transformers.
- **I3** English, full text available.
**Exclude** codes used in `search/screening.csv`:
| Code | Meaning |
|---|---|
| E1 | applies a transformer to another domain (vision, speech, recommendation, medicine…); QK-norm is just one part of the architecture and its effect isn't studied |
| E2 | inference / systems / hardware only (kernels, KV cache, tensor parallelism) |
| E3 | "entropy collapse" in the RL / policy sense, not attention |
| E4 | duplicate, earlier title of an included paper, or a citation fragment rather than a paper |
| E5 | off-topic on title/abstract |
| E6 | (LLM-search set) uses LLMs as the research *subject*, not as a review tool |
**Include** codes (why it's in):
| Code | Meaning |
|---|---|
| SEED | seed paper |
| IC | evaluates QK-norm's effect on stability / LR / loss |
| IA | alternative or complementary stability method, usually compared against QK-norm |
| IM | mechanism: why logits grow, entropy collapse, attention sinks, massive activations |
| IS | small-scale controlled ablation study (method precedent) |
| BG | background / confound (μP, LR transfer, Pre-LN) |
| LLM | evidence on using LLMs to support literature reviews (section 9) |
| `*` | **close to the thesis RQ** — needs "how my study differs" in the extraction table |
## 6. Snowballing (Wohlin 2014)
1. **Backward**: every reference of each seed ("what did these guys cite?").
2. **Forward**: every paper citing each seed.
3. Apply the criteria (I1 automatically; I2 first by keyword filter, then by title/abstract).
4. Each newly *included* paper becomes a seed for the next iteration. Stop when an iteration
adds nothing new.
**Status:** iteration 1 done for all six seeds (28/10/2026). Iteration 2 not started —
`[Your call]` which of the iteration-1 includes to snowball from (suggest the `*` ones).
## 7. Screening procedure and flow (iteration 1)
1. Automatic: de-duplicate by arXiv ID / DOI / title (`tools/merge.py`).
2. Automatic: drop pre-2020 (I1) and records failing a keyword filter for I2.
3. **AI first pass** on title/abstract (`tools/ai_first_pass.py`) → `ai_proposal` column.
4. **Cormac decides** → `decision` column. Disagreements with the AI pass are worth noting —
they're evidence for section 9.
5. Full-text read of includes → extraction table.
| Stage | QK-norm review | LLM-for-review set |
|---|---|---|
| Records retrieved (all searches + snowballing) | 2,127 unique, after de-duplication | (included in the 2,127) |
| Excluded automatically: pre-2020 | 129 | — |
| Excluded automatically: off-topic keyword filter | 1,518 (both sets) | |
| Title/abstract screened | 237 | 243 |
| AI proposal: include / maybe / exclude | 33 / 25 / 179 | 6 / 6 / 231 |
| **Your decisions** | `[pending]` | `[pending]` |
| Full text read | `[pending]` | `[pending]` |
## 8. Data extraction
Template: `extraction-table.csv`. One row per included paper. Columns:
key, citation, year, venue/status, model sizes, data, **question asked**, **main claim**,
method (what's varied / held fixed), QK-norm isolated? (y/n/what bundled), μP used?,
LR sweep (points, range), depth varied?, metrics, close to my RQ (`*`),
**how my study differs (≤2 sentences)**, notes.
Synthesis questions to answer from the table:
- what questions are people asking across the literature?
- which papers are close to the thesis RQ, and for each: two sentences on why the thesis is different
(e.g. smaller scale, μP off, single variable, laptop cost, dense sweep vs 3 points)?
## 9. Use of LLMs in this review (and the paper that backs it)
Supervisor: "if you want to use LLMs for paper search, find a paper that backs up the tactic."
**What an LLM (Claude Code) was used for:** writing the search scripts; drafting this
protocol and the search strings; a first-pass title/abstract screen (suggestions only, kept in a
separate column); checking citation metadata against arXiv/Crossref. **Not** used for: final
include decisions, the extraction of claims, or writing thesis text.
**Supporting literature** (all metadata checked against Crossref or arXiv, 28/10/2026):
- **Kitchenham, Pizard, Madeyski, de Souza Santos, Shepperd (2026)**, *Preliminary Guidelines for
Using and Evaluating GenAI Tools to Support Systematic Literature Reviews*, arXiv:2607.24991.
The GUEST recommendations. Conclude GenAI "requires human oversight and is not currently capable
of unsupervised systematic studies" but offers "cost-effective assistance for some repetitive
tasks". **Main citation for the approach taken here** (human makes every decision; AI suggests).
- Felizardo et al. (2024), *ChatGPT application in SLRs in Software Engineering: an evaluation of its
accuracy to support the selection activity*, ESEM 2024, doi:10.1145/3674805.3686666.
- Felizardo et al. (2025), *On the Difficulties of Conducting and Replicating SLR Studies Using LLMs
in Software Engineering*, WSESE 2025, doi:10.1109/WSESE66602.2025.00010 — why the search log
and fixed scripts matter.
- Wang, Scells, Koopman, Zuccon (2023), *Can ChatGPT Write a Good Boolean Query for Systematic Review
Literature Search?*, SIGIR 2023, doi:10.1145/3539618.3591703 — supports LLM help with search strings.
- Khraisha et al. (2024), *Can large language models replace humans in systematic reviews?*,
Research Synthesis Methods, doi:10.1002/jrsm.1715 — caution: GPT-4 screening performance drops
sharply once chance agreement is accounted for.
- Lieberum et al. (2025), *Large language models for conducting systematic reviews: on the rise, but
not yet ready for use — a scoping review*, J. Clinical Epidemiology, doi:10.1016/j.jclinepi.2025.111746.
`[Your note: in your own words, why this level of LLM use is defensible given the above.]`
## 10. Deviations log
| Date | Planned | Actual | Why |
|---|---|---|---|
| 28/10/2026 | Semantic Scholar for all searching | Keyword searches via OpenAlex + arXiv; S2 for snowballing only | S2 unauthenticated API returned HTTP 429 on search; OpenAlex lacks arXiv reference lists |
## 11. Defending the review (for the viva / interview)
"This is how I found these papers": six seeds → one round of forward/backward snowballing on
Semantic Scholar → keyword searches on arXiv and OpenAlex with logged strings → automatic date
and topic filters → title/abstract screening with written reasons → full-text extraction.
Every step is a script plus a log, so it can be re-run.