Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.
Fine-tuning is optional in EMEP. The primary loop is compatibility analysis, tensor merging, evaluation, and evolutionary optimization. Fine-tuning exists to produce specialist models that feed into MergeEngine as additional inputs. You do not need to fine-tune to use EMEP.
Fine-tuning is OPTIONAL and secondary to the primary loop. Do not treat it as a required step.
The EMEP core loop accepts models from ModelRegistry, analyzes compatibility, merges them, evaluates candidates, and evolves the population. Fine-tuning is a side loop that creates new base models or specialist variants before they enter the registry. A fine-tuned model passes through the same lifecycle states as any other: DISCOVERED, IMPORTED, VALIDATED, REGISTERED, then into the merge loop.
No existing model in the registry covers a target domain or language.
A specialist adapter (LoRA, prefix-tuning) is cheaper than sourcing a new base model.
You need a controlled variant for ablation or regression testing.
Prefer merging over fine-tuning when compatible models already exist in the registry. Merging preserves capabilities from multiple parents; fine-tuning risks catastrophic forgetting (McCloskey & Cohen 1989; Kirkpatrick et al. 2017).
Every fine-tuned model must pass regression evaluation before promotion. Controls include rehearsal, replay, low learning rate, early stopping, regularization (EWC per Kirkpatrick et al. 2017), distillation, and LoRA (partial mitigation only). See Catastrophic Forgetting Controls for the full protocol.
Future releases may support multi-task fine-tuning pipelines and automated adapter selection based on domain gap metrics. These are not in the initial core.
{"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/optional-finetuning","slug":"/finetuning/optional-finetuning","pageMetadata":{"title":"Optional Fine-Tuning in EMEP","sidebarTitle":"Optional Fine-Tuning","description":"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.","href":"/finetuning/optional-finetuning"},"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: \"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.\"\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={a:`a`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Mermaid,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Fine-tuning is optional in EMEP. The primary loop is compatibility analysis, tensor merging, evaluation, and evolutionary optimization. Fine-tuning exists to produce specialist models that feed into MergeEngine as additional inputs. You do not need to fine-tune to use EMEP.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Fine-tuning is OPTIONAL and secondary to the primary loop. Do not treat it as a required step.`})}),`\n`,_jsx(Heading,{level:`2`,id:`positioning`,children:`Positioning`}),`\n`,_jsx(_components.p,{children:`The EMEP core loop accepts models from ModelRegistry, analyzes compatibility, merges them, evaluates candidates, and evolves the population. Fine-tuning is a side loop that creates new base models or specialist variants before they enter the registry. A fine-tuned model passes through the same lifecycle states as any other: DISCOVERED, IMPORTED, VALIDATED, REGISTERED, then into the merge loop.`}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-fine-tune`,children:`When to Fine-Tune`}),`\n`,_jsx(_components.p,{children:`Consider fine-tuning when:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`No existing model in the registry covers a target domain or language.`}),`\n`,_jsx(_components.li,{children:`A specialist adapter (LoRA, prefix-tuning) is cheaper than sourcing a new base model.`}),`\n`,_jsx(_components.li,{children:`You need a controlled variant for ablation or regression testing.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Prefer merging over fine-tuning when compatible models already exist in the registry. Merging preserves capabilities from multiple parents; fine-tuning risks catastrophic forgetting (McCloskey \u0026 Cohen 1989; Kirkpatrick et al. 2017).`}),`\n`,_jsx(Heading,{level:`2`,id:`fine-tuning-loop`,children:`Fine-Tuning Loop`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n subgraph INPUT[\"INPUT\"]\n A[\"Base Model from Registry\"]\n B[\"Dataset from DatasetRegistry\"]\n end\n subgraph PROCESSING[\"PROCESSING\"]\n C[\"PEFT / Full FT\"]\n D[\"Checkpoint Save\"]\n end\n subgraph OUTPUT[\"OUTPUT\"]\n E[\"Specialist Model\"]\n end\n subgraph MERGE[\"MERGEENGINE\"]\n F[\"MergeEngine\"]\n end\n A --> C\n B --> C\n C --> D\n D --> E\n E --> F`}),`\n`,_jsx(_components.p,{children:`The specialist model is registered like any other, then becomes available to ModelCompatibilityAnalyzer and MergeEngine.`}),`\n`,_jsx(Heading,{level:`2`,id:`supported-methods`,children:`Supported Methods`}),`\n`,_jsx(_components.p,{children:`EMEP supports the following fine-tuning paths:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`LoRA`}),` (Hu et al. 2021): low-rank adapters. Fast, low memory, mergeable into base weights.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`QLoRA`}),` (Dettmers et al. 2023): NF4 quantization plus LoRA. Further memory reduction.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Prefix-tuning / Prompt-tuning`}),`: adapter families covered in the PEFT survey (Han et al. 2024).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Full fine-tuning`}),`: when adapters are insufficient. Higher compute cost, higher forgetting risk.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`controls-and-safeguards`,children:`Controls and Safeguards`}),`\n`,_jsxs(_components.p,{children:[`Every fine-tuned model must pass regression evaluation before promotion. Controls include rehearsal, replay, low learning rate, early stopping, regularization (EWC per Kirkpatrick et al. 2017), distillation, and LoRA (partial mitigation only). See `,_jsx(_components.a,{href:`/finetuning/catastrophic-forgetting-controls`,children:`Catastrophic Forgetting Controls`}),` for the full protocol.`]}),`\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:`DatasetRegistry`}),`: provides training, validation, and hidden test splits.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ExperimentTracker`}),`: logs fine-tuning runs with the same schema as merge experiments.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ArtifactStore`}),`: stores checkpoints, adapters, and merged weights.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ModelRegistry`}),`: receives the final model after VALIDATED status.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`future-goal`,children:`Future Goal`}),`\n`,_jsx(_components.p,{children:`Future releases may support multi-task fine-tuning pipelines and automated adapter selection based on domain gap metrics. These are not in the initial core.`})]})}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":"Optional Fine-Tuning in EMEP","sidebarTitle":"Optional Fine-Tuning","description":"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.","href":"/finetuning/optional-finetuning"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Positioning","slug":"positioning","depth":2,"children":[]},{"title":"When to Fine-Tune","slug":"when-to-fine-tune","depth":2,"children":[]},{"title":"Fine-Tuning Loop","slug":"fine-tuning-loop","depth":2,"children":[]},{"title":"Supported Methods","slug":"supported-methods","depth":2,"children":[]},{"title":"Controls and Safeguards","slug":"controls-and-safeguards","depth":2,"children":[]},{"title":"Integration Points","slug":"integration-points","depth":2,"children":[]},{"title":"Future Goal","slug":"future-goal","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ping-47788c6e","siteName":"EMEP","title":"Optional Fine-Tuning in EMEP - EMEP","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-06T12:16:45.308Z","originalFileLocation":"finetuning/optional-finetuning.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=\"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.\">\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=\"Optional Fine-Tuning in EMEP - EMEP\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"EMEP\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://doc.blueapi.ir/finetuning/optional-finetuning\">\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=Optional+Fine-Tuning+in+EMEP\u0026amp;description=Fine-tuning+is+an+optional%2C+secondary+loop+in+EMEP+that+produces+specialist+models+as+inputs+to+the+MergeEngine.\u0026amp;theme=074c708ff2f145909468e7e3\u0026amp;signature=420dfd0e59b4954aad9a9593aa245e221c8ac469a073976deb04d23698dd1dcf\">\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=\"Optional Fine-Tuning in EMEP - EMEP\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ping-47788c6e.mintlify.app/_mintlify/api/og/v2?division=Optional+Fine-Tuning\u0026amp;title=Optional+Fine-Tuning+in+EMEP\u0026amp;description=Fine-tuning+is+an+optional%2C+secondary+loop+in+EMEP+that+produces+specialist+models+as+inputs+to+the+MergeEngine.\u0026amp;theme=074c708ff2f145909468e7e3\u0026amp;signature=420dfd0e59b4954aad9a9593aa245e221c8ac469a073976deb04d23698dd1dcf\">\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/optional-finetuning\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/finetuning/optional-finetuning.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/optional-finetuning#webpage\",\"url\":\"https://doc.blueapi.ir/finetuning/optional-finetuning\",\"name\":\"Optional Fine-Tuning in EMEP\",\"description\":\"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.\",\"dateModified\":\"2026-09-06T12:16:45.308Z\",\"isPartOf\":{\"@id\":\"https://doc.blueapi.ir#website\"},\"breadcrumb\":{\"@id\":\"https://doc.blueapi.ir/finetuning/optional-finetuning#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://doc.blueapi.ir/finetuning/optional-finetuning#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"EMEP\",\"item\":\"https://doc.blueapi.ir\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optional Fine-Tuning in EMEP\",\"item\":\"https://doc.blueapi.ir/finetuning/optional-finetuning\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://doc.blueapi.ir/finetuning/optional-finetuning#article\",\"headline\":\"Optional Fine-Tuning in EMEP\",\"name\":\"Optional Fine-Tuning in EMEP\",\"description\":\"Fine-tuning is an optional, secondary loop in EMEP that produces specialist models as inputs to the MergeEngine.\",\"url\":\"https://doc.blueapi.ir/finetuning/optional-finetuning\",\"mainEntityOfPage\":{\"@id\":\"https://doc.blueapi.ir/finetuning/optional-finetuning#webpage\"},\"dateModified\":\"2026-09-06T12:16:45.308Z\",\"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","description":"Tensor math specification for EMEP. Defines broadcasting rules, elementwise operations, reductions, matmul shape rules for transformer weights, and precision ranges for fp32, bf16, fp16, fp8, int8, and int4.","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","description":"Parameter-Efficient Fine-Tuning methods in EMEP including LoRA, prefix-tuning, prompt-tuning, and trade-offs versus full fine-tuning.","href":"/finetuning/peft"},{"title":"LoRA Specification for EMEP Fine-Tuning","sidebarTitle":"LoRA","href":"/finetuning/lora"},{"title":"QLoRA Specification for EMEP Fine-Tuning","sidebarTitle":"QLoRA","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":"Optional Fine-Tuning in EMEP - EMEP","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}