Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.
Catastrophic forgetting (McCloskey & Cohen 1989; Kirkpatrick et al. 2017) is the loss of previously learned capabilities when a model is fine-tuned on a new task. EMEP requires regression evaluation before and after every fine-tuning operation. No fine-tuned model is promoted without passing regression checks.
Mix original pretraining or validation data into the fine-tuning batch. The model sees both new task data and representative samples from its original distribution. Rehearsal is effective but requires access to the original data or a curated replay buffer.
Store a fixed-size buffer of representative samples from the original task. Inject buffer samples into training batches at a configurable ratio. The buffer is managed by DatasetRegistry.
Reduce the learning rate below standard fine-tuning values. Smaller updates perturb the weight landscape less, preserving prior knowledge at the cost of slower convergence on the new task.
Monitor validation loss on the original task during fine-tuning. Stop training when original-task loss exceeds a threshold. Early stopping prevents overfitting to the new task.
F_i is the Fisher information for parameter i. theta*_i is the optimal parameter for the prior task. EWC requires computing F_i before fine-tuning begins.
Train the fine-tuned model to match the outputs of the original model on a held-out set. Distillation preserves soft target distributions and is effective for task sequences.
LoRA (Hu et al. 2021) updates only a small fraction of parameters. This partially mitigates forgetting because the base weights remain frozen. LoRA does NOT guarantee zero forgetting. The adapter may still shift the effective output distribution in ways that degrade prior tasks.
LoRA and QLoRA do NOT guarantee zero catastrophic forgetting. Regression evaluation is mandatory before promotion.
Every fine-tuning run must execute this protocol:The comparison uses the same benchmark harness, deterministic seeds, and backend configuration for both runs. Any score drop on the Optimization Set or Validation Set triggers FAIL or REGRESSION status.
No single control method eliminates catastrophic forgetting in all cases. The most reliable mitigation is the regression evaluation protocol itself, which catches degradation before it reaches production.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"EMEP","colors":{"primary":"#7C3AED","light":"#A78BFA","dark":"#5B21B6"},"appearance":{"strict":false},"background":{"decoration":"gradient","color":{"light":"#fafdfd","dark":"#0f1214"}},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ping-47788c6e","hasAudioNarration":false,"actualSubdomain":"ping-47788c6e","customDomains":["doc.blueapi.ir"],"gitSource":{"type":"github","owner":"sarmadaf24","repo":"evolutionarymodellplatform","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a9d914c7dbaaddea3035369","collectionId":"c7cc67f8-369f-45fc-a29a-15a691f103b0","liveDeploymentHistoryId":"6a9d914c7dbaaddea3035369","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a9d914c7dbaaddea3035369","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Interfaces \u0026 Governance","count":32},{"language":"default","tag":"Deployment \u0026 Ops","count":24},{"language":"default","tag":"Evolution \u0026 Evaluation","count":24},{"language":"default","tag":"Model Pipeline","count":20},{"language":"default","tag":"Platform","count":14},{"language":"default","tag":"Architecture","count":11},{"language":"default","tag":"Phases","count":10},{"language":"default","tag":"Testing","count":9},{"language":"default","tag":"Tracking \u0026 Reproducibility","count":9},{"language":"default","tag":"Evolution Engine","count":8}],"searchSettings":{"maxResults":7}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"finetuning/catastrophic-forgetting-controls","slug":"/finetuning/catastrophic-forgetting-controls","pageMetadata":{"title":"Catastrophic Forgetting Controls in EMEP","sidebarTitle":"Forgetting Controls","description":"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.","href":"/finetuning/catastrophic-forgetting-controls"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Mermaid,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Catastrophic forgetting (McCloskey \u0026 Cohen 1989; Kirkpatrick et al. 2017) is the loss of previously learned capabilities when a model is fine-tuned on a new task. EMEP requires regression evaluation before and after every fine-tuning operation. No fine-tuned model is promoted without passing regression checks.`}),`\n`,_jsx(Heading,{level:`2`,id:`control-methods`,children:`Control Methods`}),`\n`,_jsx(_components.p,{children:`EMEP implements the following controls. Each is selectable at experiment creation time.`}),`\n`,_jsx(Heading,{level:`3`,id:`rehearsal`,children:`Rehearsal`}),`\n`,_jsx(_components.p,{children:`Mix original pretraining or validation data into the fine-tuning batch. The model sees both new task data and representative samples from its original distribution. Rehearsal is effective but requires access to the original data or a curated replay buffer.`}),`\n`,_jsx(Heading,{level:`3`,id:`replay-buffer`,children:`Replay Buffer`}),`\n`,_jsx(_components.p,{children:`Store a fixed-size buffer of representative samples from the original task. Inject buffer samples into training batches at a configurable ratio. The buffer is managed by DatasetRegistry.`}),`\n`,_jsx(Heading,{level:`3`,id:`low-learning-rate`,children:`Low Learning Rate`}),`\n`,_jsx(_components.p,{children:`Reduce the learning rate below standard fine-tuning values. Smaller updates perturb the weight landscape less, preserving prior knowledge at the cost of slower convergence on the new task.`}),`\n`,_jsx(Heading,{level:`3`,id:`early-stopping`,children:`Early Stopping`}),`\n`,_jsx(_components.p,{children:`Monitor validation loss on the original task during fine-tuning. Stop training when original-task loss exceeds a threshold. Early stopping prevents overfitting to the new task.`}),`\n`,_jsx(Heading,{level:`3`,id:`regularization-ewc`,children:`Regularization (EWC)`}),`\n`,_jsx(_components.p,{children:`Elastic Weight Consolidation (Kirkpatrick et al. 2017) adds a penalty term to the loss that protects important weights for prior tasks:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`L_total = L_new + lambda * sum_i F_i * (theta_i - theta*_i)^2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`F_i is the Fisher information for parameter i. theta*_i is the optimal parameter for the prior task. EWC requires computing F_i before fine-tuning begins.`}),`\n`,_jsx(Heading,{level:`3`,id:`distillation`,children:`Distillation`}),`\n`,_jsx(_components.p,{children:`Train the fine-tuned model to match the outputs of the original model on a held-out set. Distillation preserves soft target distributions and is effective for task sequences.`}),`\n`,_jsx(Heading,{level:`3`,id:`lora-partial-mitigation`,children:`LoRA (Partial Mitigation)`}),`\n`,_jsx(_components.p,{children:`LoRA (Hu et al. 2021) updates only a small fraction of parameters. This partially mitigates forgetting because the base weights remain frozen. LoRA does NOT guarantee zero forgetting. The adapter may still shift the effective output distribution in ways that degrade prior tasks.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`LoRA and QLoRA do NOT guarantee zero catastrophic forgetting. Regression evaluation is mandatory before promotion.`})}),`\n`,_jsx(Heading,{level:`2`,id:`regression-evaluation-protocol`,children:`Regression Evaluation Protocol`}),`\n`,_jsx(_components.p,{children:`Every fine-tuning run must execute this protocol:`}),`\n`,_jsx(Mermaid,{chart:`flowchart TD\n START([\"START\"]) --> PRE[\"Pre-FT Benchmark Run\"]\n PRE --> FT[\"Fine-Tuning\"]\n FT --> POST[\"Post-FT Benchmark Run\"]\n POST --> COMPARE[\"Compare Pre vs Post\"]\n COMPARE --> DECISION{\"Regression?\"}\n DECISION -->|\"No regression\"| PASS[\"Status: PASS\"]\n DECISION -->|\"Regression detected\"| FAIL[\"Status: FAIL / REGRESSION\"]\n PASS --> PROMOTE[\"Candidate -> EVALUATED -> PROMOTED\"]\n FAIL --> ROLLBACK[\"Revert to Pre-FT Checkpoint\"]\n ROLLBACK --> END([\"END\"])`}),`\n`,_jsx(_components.p,{children:`The comparison uses the same benchmark harness, deterministic seeds, and backend configuration for both runs. Any score drop on the Optimization Set or Validation Set triggers FAIL or REGRESSION status.`}),`\n`,_jsx(Heading,{level:`2`,id:`integration-points`,children:`Integration Points`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`EvaluationEngine`}),`: runs pre and post benchmarks.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`BenchmarkEngine`}),`: provides deterministic harness and seed control.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ExperimentTracker`}),`: logs pre scores, post scores, and the comparison result.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ModelRegistry`}),`: blocks promotion if status is FAIL or REGRESSION.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`unsupported-claim`,children:`Unsupported Claim`}),`\n`,_jsx(_components.p,{children:`No single control method eliminates catastrophic forgetting in all cases. The most reliable mitigation is the regression evaluation protocol itself, which catches degradation before it reaches production.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Catastrophic Forgetting Controls in EMEP","sidebarTitle":"Forgetting Controls","description":"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.","href":"/finetuning/catastrophic-forgetting-controls"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Control Methods","slug":"control-methods","depth":2,"children":[{"title":"Rehearsal","slug":"rehearsal","depth":3,"children":[]},{"title":"Replay Buffer","slug":"replay-buffer","depth":3,"children":[]},{"title":"Low Learning Rate","slug":"low-learning-rate","depth":3,"children":[]},{"title":"Early Stopping","slug":"early-stopping","depth":3,"children":[]},{"title":"Regularization (EWC)","slug":"regularization-ewc","depth":3,"children":[]},{"title":"Distillation","slug":"distillation","depth":3,"children":[]},{"title":"LoRA (Partial Mitigation)","slug":"lora-partial-mitigation","depth":3,"children":[]}]},{"title":"Regression Evaluation Protocol","slug":"regression-evaluation-protocol","depth":2,"children":[]},{"title":"Integration Points","slug":"integration-points","depth":2,"children":[]},{"title":"Unsupported Claim","slug":"unsupported-claim","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ping-47788c6e","siteName":"EMEP","title":"Catastrophic Forgetting Controls in EMEP - EMEP","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-06T12:16:45.345Z","originalFileLocation":"finetuning/catastrophic-forgetting-controls.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.\">\u003cmeta data-mint-head name=\"application-name\" content=\"EMEP\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/ping-47788c6e/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/ping-47788c6e/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/ping-47788c6e/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/ping-47788c6e/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Catastrophic Forgetting Controls in EMEP - EMEP\">\u003cmeta data-mint-head property=\"og:description\" content=\"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"EMEP\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ping-47788c6e.mintlify.app/_mintlify/api/og/v2?division=Optional+Fine-Tuning\u0026amp;title=Catastrophic+Forgetting+Controls+in+EMEP\u0026amp;description=Controls+to+mitigate+catastrophic+forgetting+during+fine-tuning+in+EMEP%2C+with+mandatory+regression+evaluation+before+and+after+any+FT+operation.\u0026amp;theme=074c708ff2f145909468e7e3\u0026amp;signature=d2926aa449194507eeccc5a2729bd8f93c71e0368e7c054701e1b450afff5b1e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Catastrophic Forgetting Controls in EMEP - EMEP\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ping-47788c6e.mintlify.app/_mintlify/api/og/v2?division=Optional+Fine-Tuning\u0026amp;title=Catastrophic+Forgetting+Controls+in+EMEP\u0026amp;description=Controls+to+mitigate+catastrophic+forgetting+during+fine-tuning+in+EMEP%2C+with+mandatory+regression+evaluation+before+and+after+any+FT+operation.\u0026amp;theme=074c708ff2f145909468e7e3\u0026amp;signature=d2926aa449194507eeccc5a2729bd8f93c71e0368e7c054701e1b450afff5b1e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/ping-47788c6e/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"EMEP\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7C3AED\">\u003clink data-mint-head rel=\"canonical\" href=\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/finetuning/catastrophic-forgetting-controls.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://doc.blueapi.ir/#organization\",\"name\":\"EMEP\",\"url\":\"https://doc.blueapi.ir\"},{\"@type\":\"WebSite\",\"@id\":\"https://doc.blueapi.ir#website\",\"name\":\"EMEP\",\"url\":\"https://doc.blueapi.ir\",\"publisher\":{\"@id\":\"https://doc.blueapi.ir/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls#webpage\",\"url\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls\",\"name\":\"Catastrophic Forgetting Controls in EMEP\",\"description\":\"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.\",\"dateModified\":\"2026-09-06T12:16:45.345Z\",\"isPartOf\":{\"@id\":\"https://doc.blueapi.ir#website\"},\"breadcrumb\":{\"@id\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Optional Fine-Tuning\",\"item\":\"https://doc.blueapi.ir/finetuning/optional-finetuning\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Catastrophic Forgetting Controls in EMEP\",\"item\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls#article\",\"headline\":\"Catastrophic Forgetting Controls in EMEP\",\"name\":\"Catastrophic Forgetting Controls in EMEP\",\"description\":\"Controls to mitigate catastrophic forgetting during fine-tuning in EMEP, with mandatory regression evaluation before and after any FT operation.\",\"url\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls\",\"mainEntityOfPage\":{\"@id\":\"https://doc.blueapi.ir/finetuning/catastrophic-forgetting-controls#webpage\"},\"dateModified\":\"2026-09-06T12:16:45.345Z\",\"publisher\":{\"@id\":\"https://doc.blueapi.ir/#organization\"},\"isPartOf\":{\"@id\":\"https://doc.blueapi.ir#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"EMEP\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"EMEP","nav":{"global":null,"tabs":[{"tab":"Platform","pages":[{"title":"Platform","href":""}]},{"tab":"Architecture","pages":[{"title":"Architecture","href":"/architecture/system-architecture"}]},{"tab":"Model Pipeline","groups":[{"group":"Compatibility","pages":[{"title":"Model Compatibility: Full Decision Tree and States","sidebarTitle":"Model Compatibility","href":"/compatibility/model-compatibility"},{"title":"Model Import Algorithm and Sequence","sidebarTitle":"Model Import","href":"/compatibility/model-import"},{"title":"Tokenizer Compatibility Algorithm and Checks","sidebarTitle":"Tokenizer Compatibility","href":"/compatibility/tokenizer-compatibility"},{"title":"Architecture Compatibility Algorithm and Checks","sidebarTitle":"Architecture Compatibility","href":"/compatibility/architecture-compatibility"},{"title":"Tensor Shape Validation Algorithm and Rules","sidebarTitle":"Tensor Shape Validation","href":"/compatibility/tensor-shape-validation"}]},{"group":"Merge Engine","pages":[{"title":"MergeEngine: Pipeline, Interface, and Failure Modes","sidebarTitle":"Merge Engine","href":"/merge/merge-engine"},{"title":"Merge Strategies: Selection, Parameters, and Limitations","sidebarTitle":"Merge Strategies","href":"/merge/merge-strategies"},{"title":"Tensor Operations: Low-Level Merge Primitives","sidebarTitle":"Tensor Operations","href":"/merge/tensor-operations"},{"title":"Merge Validation: Post-Merge Checks and Outcomes","sidebarTitle":"Merge Validation","href":"/merge/merge-validation"}]},{"group":"Mathematics","pages":[{"title":"Merge Math: Notation, Shapes, and Precision","sidebarTitle":"Merge Math","href":"/math/merge-math"},{"title":"SLERP Math: Formula, Boundaries, and Fallback","sidebarTitle":"SLERP Math","href":"/math/slerp-math"},{"title":"TIES Math: Trim, Elect Sign, and Disjoint Merge","sidebarTitle":"TIES Math","href":"/math/ties-math"},{"title":"DARE Math: Drop and Rescale for Task Vectors","sidebarTitle":"DARE Math","href":"/math/dare-math"},{"title":"Task Arithmetic: Task Vectors and Linear Combinations","sidebarTitle":"Task Arithmetic","href":"/math/task-arithmetic"},{"title":"Tensor Math: Broadcasting, Operations, and Precision","sidebarTitle":"Tensor Math","href":"/math/tensor-math"}]},{"group":"Optional Fine-Tuning","pages":[{"title":"Optional Fine-Tuning in EMEP","sidebarTitle":"Optional Fine-Tuning","href":"/finetuning/optional-finetuning"},{"title":"PEFT Overview for EMEP Fine-Tuning","sidebarTitle":"PEFT","href":"/finetuning/peft"},{"title":"LoRA Specification for EMEP Fine-Tuning","sidebarTitle":"LoRA","href":"/finetuning/lora"},{"title":"QLoRA Specification for EMEP Fine-Tuning","sidebarTitle":"QLoRA","description":"QLoRA (Dettmers et al. 2023) with NF4 quantization and LoRA adapters for memory-efficient fine-tuning in EMEP.","href":"/finetuning/qlora"},{"title":"Catastrophic Forgetting Controls in EMEP","sidebarTitle":"Forgetting Controls","href":"/finetuning/catastrophic-forgetting-controls"}]}]},{"tab":"Evolution \u0026 Evaluation","pages":[{"title":"Evolution \u0026 Evaluation","href":"/evolution/evolution-engine"}]},{"tab":"Deployment \u0026 Ops","pages":[{"title":"Deployment \u0026 Ops","href":"/deployment/quantization"}]},{"tab":"Interfaces \u0026 Governance","pages":[{"title":"Interfaces \u0026 Governance","href":"/interfaces/api-specification"}]}]},"basePath":"","title":"Catastrophic Forgetting Controls in EMEP - EMEP","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}