IN THIS BREAKDOWN · 10 SECTIONS
You can read 21% of this breakdown.
The paper in one minute
When this paper was written, OpenAI's API offered two snapshots of each model: GPT-4 and GPT-3.5 as of March 2023 and as of June 2023. Products calling "gpt-4" were moved from one to the other. The authors asked a practical question: does the same prompt still produce the same behavior?
They ran both snapshots, at temperature 0.1 with the default system prompt, on eight tasks: deciding whether a number is prime (1,000 questions), counting happy numbers in an interval (500), answering sensitive questions (100), answering opinion survey questions (1,506), running LangChain's ReAct agent on HotpotQA multi-hop questions (7,405), writing code for recent LeetCode easy problems (50), the USMLE medical exam (340), and ARC visual puzzles given as number grids (467). For each they tracked a main score, response length, and the mismatch rate: how often the two snapshots gave different final answers.
Behavior moved on almost every task. GPT-4's prime accuracy fell from 84.0% to 51.1% and its happy-number accuracy from 83.6% to 35.2%, while GPT-3.5 improved on both. GPT-4 answered 21% of sensitive questions in March and 5% in June, and 97.6% of opinion questions in March and about 22% in June. The share of GPT-4's code that ran as returned fell from 52% to 10%, because June wrapped it in markdown fences. GPT-4 got better at the LangChain agent task, from 1.2% to 37.8% exact match.
The authors trace much of this to instruction following. In June, GPT-4 skipped the reasoning steps it was asked for, ignored formatting requests, and on a set of simple single instructions dropped from 99.5% to 0.5% on putting a yes or no answer in square brackets.
Research notes: the problem, approach and results
GPT-4 on 1,000 prime-or-composite questions; in June it answered 'composite' 98.7% of the time (Figure 4)
GPT-4 code answers directly executable on LeetCode; June added markdown fences around the code (Figure 9)
GPT-4 following an 'answer yes or no in square brackets' instruction (Figure 13)
Teams build products on GPT-3.5 and GPT-4 through an API, but the provider updates the models behind those names without saying what changed. A prompt that works today might silently stop working, and published results on 'GPT-4' might not reproduce.
Evaluate the March 2023 and June 2023 snapshots of GPT-3.5 and GPT-4 on eight tasks: two math problems, sensitive questions, opinion surveys, a LangChain multi-hop agent, code generation, a medical exam and visual puzzles. Track accuracy, length and how often the two versions' answers disagree.
Behavior shifted substantially on most tasks, in both directions. GPT-4 stopped following chain-of-thought and formatting instructions, answered fewer sensitive and opinion questions, and wrapped code in markdown; GPT-3.5 improved on math. A separate instruction test showed GPT-4's instruction following fell sharply.
Why it matters to an FDE
Pin the model version and treat changes as releases. The paper's core lesson is that a model name is not a contract. Use dated snapshot identifiers where the provider offers them, and treat a move to a new snapshot like a dependency upgrade: run the regression suite before switching.
Keep a regression suite small enough to run on every change. The cheapest drift alarm here is the mismatch rate: run a fixed set of prompts on old and new versions and count changed answers. GPT-4's USMLE accuracy moved 4.5 points, but 12.2% of its answers changed, which is the better early signal.
Compare every score with a constant answer. On a balanced yes-or-no task, a model that always says "no" scores 50%. June GPT-4's 51.1% on primes is that model. Before reading a drop as lost capability, check whether the new version has collapsed onto one answer.
Parse defensively. The code-generation drop came from markdown fences around otherwise correct code, and the LangChain failure from output the agent's parser rejected. Strip fences, validate structure, and alert on parse failures separately from wrong answers.
Size the suite to the change you need to detect. A drop from 84% to 51% shows up with about 30 items. A drop from 80% to 75% needs about 1,100 per snapshot with a simple two-sample test. Fifty code problems give a 95% interval of about 14 points.
Understand the mechanism. Try it on a real problem.
Unlock this breakdown and 290 more papers.
Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.
6 months · One payment · No auto-renewal
- ◇1 architecture diagram
- </>1 runnable code experiment
- ▦2 results tables
- ?5 interview questions with answers
- 03Key takeaways
Results by task, the instruction-following analysis, what is not shown, and two misreadings
Free account - 04How it works
Services and settings, the eight tasks and their metrics, mismatch, and the instruction benchmark
Premium - 05The numbers that matter
Every task's before and after, chain of thought, mismatch rates and the instruction results
Premium - 06Try it yourself
Compare drops with constant answers, rebuild the happy-number task, check the text, size a monitor
Premium - 07Where it breaks
Two snapshots, behavior versus capability, small sets for some tasks, one prompt per task, and slips
Premium - 08Using it on a deployment
Version pinning, a drift suite with baselines and mismatch, parse monitoring, and migration steps
Premium - 09Interview angles
Five questions this paper prepares you for, with answer hints
Premium - 10Read next
Where to go from here on this site
Premium
