{
  "schemaVersion": 1,
  "id": "atlas-lesson-model-lifecycle-stage-contract",
  "title": "Describe a stage by its changed contract",
  "category": "learning",
  "format": "Atlas lesson",
  "description": "Classify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.",
  "canonicalUrl": "https://semiaifoundry.com/learn/atlas/model-lifecycle-stage-contract/",
  "publishedDate": null,
  "revisionDate": "2026-10-07",
  "author": null,
  "topic": "model-lifecycle-continuation",
  "series": null,
  "license": null,
  "rightsUrl": "https://semiaifoundry.com/ai-atlas/licenses.html",
  "version": "1.3.0",
  "status": "Published educational lesson",
  "evidenceScope": "Mode: executable stage branches. Contract notation is an authored organizational tool, not a universal naming standard. The tuple does not itself train a model. Numerical examples are authored calculations, except explicitly identified automated core fixtures. Primary sources support the scoped mechanism; no human specialist review or learner outcome is implied.",
  "contentCoverage": "published-lesson",
  "artifactUrl": "https://semiaifoundry.com/ai-atlas/lesson-data/model-lifecycle-stage-contract-7ddd81044bf2edbc.json",
  "interactiveUrl": "https://semiaifoundry.com/ai-atlas/#model-lifecycle-stage-contract",
  "related": [],
  "supersedes": [],
  "supersededBy": [],
  "contentHash": "22e47a8e64388364c1df32ef509a98a53b5e17f85201cb36259dc6b0b8663d31",
  "contentLength": 6405,
  "jsonUrl": "https://semiaifoundry.com/agents/publications/atlas-lesson-model-lifecycle-stage-contract.json",
  "markdownUrl": "https://semiaifoundry.com/agents/publications/atlas-lesson-model-lifecycle-stage-contract.md",
  "sections": [
    {
      "id": "section-1",
      "title": "Describe a stage by its changed contract",
      "start": 45,
      "end": 478
    },
    {
      "id": "section-2",
      "title": "The mechanism",
      "start": 478,
      "end": 1470
    },
    {
      "id": "section-3",
      "title": "Science and assumptions",
      "start": 1470,
      "end": 1498
    },
    {
      "id": "section-4",
      "title": "Describe a stage by its changed contract · worked relation",
      "start": 1498,
      "end": 2633
    },
    {
      "id": "section-5",
      "title": "Engineering example",
      "start": 2633,
      "end": 3088
    },
    {
      "id": "section-6",
      "title": "Distinctions and tradeoffs",
      "start": 3088,
      "end": 3498
    },
    {
      "id": "section-7",
      "title": "Specifications and interfaces",
      "start": 3498,
      "end": 3920
    },
    {
      "id": "section-8",
      "title": "Interfaces",
      "start": 3920,
      "end": 4163
    },
    {
      "id": "section-9",
      "title": "Check your understanding",
      "start": 4163,
      "end": 4192
    },
    {
      "id": "section-10",
      "title": "Which change alone makes a continuation stage a different objective?",
      "start": 4192,
      "end": 4704
    },
    {
      "id": "section-11",
      "title": "Evidence and scope",
      "start": 4704,
      "end": 5273
    },
    {
      "id": "section-12",
      "title": "Sources",
      "start": 5273,
      "end": 5632
    },
    {
      "id": "section-13",
      "title": "Continue exploring",
      "start": 5632,
      "end": 5655
    },
    {
      "id": "section-14",
      "title": "Foundations",
      "start": 5655,
      "end": 5930
    },
    {
      "id": "section-15",
      "title": "Related lessons",
      "start": 5930,
      "end": 6405
    }
  ],
  "citations": [
    {
      "title": "Explore in Atlas",
      "url": "https://semiaifoundry.com/ai-atlas/#model-lifecycle-stage-contract"
    },
    {
      "title": "2 OLMo 2 Furious",
      "url": "https://arxiv.org/html/2501.00656v1"
    },
    {
      "title": "Don’t Stop Pretraining",
      "url": "https://aclanthology.org/2020.acl-main.740.pdf"
    },
    {
      "title": "Published lesson data",
      "url": "https://semiaifoundry.com/ai-atlas/lesson-data/model-lifecycle-stage-contract-7ddd81044bf2edbc.json"
    },
    {
      "title": "Atlas releases and licensing",
      "url": "https://semiaifoundry.com/ai-atlas/licenses.html"
    },
    {
      "title": "Training data pipeline",
      "url": "https://semiaifoundry.com/learn/atlas/training-data/"
    },
    {
      "title": "Loss, gradients & optimizer",
      "url": "https://semiaifoundry.com/learn/atlas/loss-optimizer/"
    },
    {
      "title": "Post-training & feedback",
      "url": "https://semiaifoundry.com/learn/atlas/post-training/"
    },
    {
      "title": "Continue language modeling on a new domain",
      "url": "https://semiaifoundry.com/learn/atlas/domain-adaptive-continuation/"
    },
    {
      "title": "Retention, replay and transfer",
      "url": "https://semiaifoundry.com/learn/atlas/replay-retention-forgetting/"
    },
    {
      "title": "Context extension is a learned-use test",
      "url": "https://semiaifoundry.com/learn/atlas/long-context-adaptation/"
    },
    {
      "title": "Compatible weight averaging and regressions",
      "url": "https://semiaifoundry.com/learn/atlas/checkpoint-averaging-boundaries/"
    }
  ],
  "recordHash": "79f7087293ebff116ba7ca84a6e27dd237b2ce445450c1bb066143ee29fbd18f",
  "contentFormat": "text/markdown",
  "content": "model-lifecycle-continuation · Atlas v1.3.0\n\n# Describe a stage by its changed contract\n\nClassify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.\n\n[Explore in Atlas](https://semiaifoundry.com/ai-atlas/#model-lifecycle-stage-contract)Mathematical, data and behavior space; logical dimensions are not physical distance\n\nLearning objectiveClassify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.\n\n## The mechanism\n\nNames such as pretraining, mid-training and post-training summarize recipes but do not uniquely specify a mathematical operation. A useful stage contract identifies the starting checkpoint, example distribution, objective, parameter subset, optimizer state policy and acceptance measurements. Continued language modeling can change only the data mixture while preserving the same next-token objective. SFT can preserve the decoder while changing target masks. DPO changes the training signal to relative chosen/rejected likelihoods against a reference. Inference changes activations and selected outputs without necessarily changing learned weights.\n\n1.  Record a checkpoint identity and tokenizer/config identity before branching.\n2.  State which data and targets enter the loss, and which parameters may change.\n3.  Declare retained or reset optimizer/RNG/schedule state.\n4.  Compare acquisition, retention and failures on development cases before exposing a final test.\n\n## Science and assumptions\n\n### Describe a stage by its changed contract · worked relation\n\n$$\n\\mathcal C=(\\theta_0,\\mathcal D,\\mathcal L,\\mathcal T,\\mathcal O,\\mathcal E)\n$$\n\nClassify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.\n\nSymbols and units\n\nC\n\nStage contract tuple\n\nrecord\n\ntheta\\_0\n\nStarting checkpoint\n\nparameters\n\nD\n\nTraining data distribution\n\ndistribution\n\nL\n\nObjective and denominator\n\nfunction\n\nT\n\nTrainable parameter subset\n\nset\n\nO\n\nOptimizer RNG and schedule policy\n\nstate contract\n\nE\n\nEvaluation and retention gates\n\nprotocol\n\nA base checkpoint contains 423 trainable weights. A continuation branch retains all 423, its Adam moments and RNG but changes the copy/swap sampling distribution. An SFT branch also retains 423 trainable weights but uses only two response targets per sequence. A rank-one adapter on a separate 4×6 matrix would train 10 factors instead of 24 base entries, but its objective could still be SFT, DPO or another differentiable loss.\n\nAssumptions Contract notation is an authored organizational tool, not a universal naming standard. The tuple does not itself train a model.\n\n## Engineering example\n\nA base checkpoint contains 423 trainable weights. A continuation branch retains all 423, its Adam moments and RNG but changes the copy/swap sampling distribution. An SFT branch also retains 423 trainable weights but uses only two response targets per sequence. A rank-one adapter on a separate 4×6 matrix would train 10 factors instead of 24 base entries, but its objective could still be SFT, DPO or another differentiable loss.\n\n## Distinctions and tradeoffs\n\nIt is a mistake to conclude: Giving the unchanged loss a new stage name.\n\nStage names aid communication, while explicit contracts take more effort and reveal incompatibilities that a name can conceal.\n\nAdapt an existing checkpoint while measuring retained and acquired behavior. Classify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.\n\n## Specifications and interfaces\n\nLearning mode\n\nexecutable stage branches\n\nThe executable decoder has 423 parameters; worked extensions do not imply an additional simulator.\n\nWorked contract\n\nClassify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.\n\nContract notation is an authored organizational tool, not a universal naming standard. The tuple does not itself train a model.\n\n### Interfaces\n\nInputs and state Input\n\nRecord a checkpoint identity and tokenizer/config identity before branching.\n\nResult and check Output\n\nClassify a transition by checkpoint, data, loss, trainable state, optimizer policy and evaluation.\n\n## Check your understanding\n\n### Which change alone makes a continuation stage a different objective?\n\n1.  Saving the same weights under a different filename.\n2.  Replacing token NLL with a specified preference-pair loss.\n3.  Giving the unchanged loss a new stage name.\n\nAnswer and reasoning\n\nReplacing token NLL with a specified preference-pair loss.\n\nReplacing token NLL with a specified preference-pair loss. Contract notation is an authored organizational tool, not a universal naming standard. The tuple does not itself train a model.\n\n## Evidence and scope\n\nMode: executable stage branches. Contract notation is an authored organizational tool, not a universal naming standard. The tuple does not itself train a model. Numerical examples are authored calculations, except explicitly identified automated core fixtures. Primary sources support the scoped mechanism; no human specialist review or learner outcome is implied.\n\nModel lifecycle studio: executable stage branches. Contract notation is an authored organizational tool, not a universal naming standard. The tuple does not itself train a model.\n\n## Sources\n\n-   [2 OLMo 2 Furious](https://arxiv.org/html/2501.00656v1)\n-   [Don’t Stop Pretraining](https://aclanthology.org/2020.acl-main.740.pdf)\n\n[Published lesson data](https://semiaifoundry.com/ai-atlas/lesson-data/model-lifecycle-stage-contract-7ddd81044bf2edbc.json) · [Atlas releases and licensing](https://semiaifoundry.com/ai-atlas/licenses.html)\n\n## Continue exploring\n\n### Foundations\n\n-   [Training data pipeline](https://semiaifoundry.com/learn/atlas/training-data/)\n-   [Loss, gradients & optimizer](https://semiaifoundry.com/learn/atlas/loss-optimizer/)\n-   [Post-training & feedback](https://semiaifoundry.com/learn/atlas/post-training/)\n\n### Related lessons\n\n-   [Continue language modeling on a new domain](https://semiaifoundry.com/learn/atlas/domain-adaptive-continuation/)\n-   [Retention, replay and transfer](https://semiaifoundry.com/learn/atlas/replay-retention-forgetting/)\n-   [Context extension is a learned-use test](https://semiaifoundry.com/learn/atlas/long-context-adaptation/)\n-   [Compatible weight averaging and regressions](https://semiaifoundry.com/learn/atlas/checkpoint-averaging-boundaries/)"
}
