{
  "source_file": "0930",
  "source_platform": "Ghost",
  "author": "Avi Chawla / Daily Dose of Data Science",
  "title_listed": "72 Techniques To Optimize LLMs In Production",
  "keywords": "",
  "domain": "大模型算法",
  "content_type": "深度技术解析",
  "is_paid_flag": "否",
  "url": "https://www.dailydoseofds.com/p/72-techniques-to-optimize-llms-in-production/",
  "publish_date": "2026-05-12",
  "corpus_stage": "",
  "notes": "",
  "id": "0181e2c79789",
  "collected_at": "2026-10-02T13:48:16",
  "title": "72 Techniques to Optimize LLMs in Production",
  "body_markdown": "Apr 18, 2026\nLLMOps\n72 Techniques to Optimize LLMs in Production\n...explained with usage.\nAvi Chawla\n👉\nOn an H100 running Llama 70B, a single inference request hits 92% GPU compute utilization during prefill, then drops to 28% during decode on the same hardware a moment later. The workload changed, not the GPU.\nFor context:\nPrefill processes the entire prompt in parallel and saturates tensor cores.\nDecode generates one token at a time and reads the full KV cache from HBM at every step, which makes it memory-bandwidth bound.\nThis asymmetry is why a single optimization never gets you very far, and why LLM inference prices have still fallen roughly 10x per year, with GPT-4-level performance going from $20 per million tokens in late 2022 to around $0.40 today.\nMost of that drop came from the serving stack, and we put together this visual, which lists the techniques that go into optimizing\nLLMs in production\n.\nEvery technique in the grid above is a response to one of three bottlenecks: prefill compute, decode memory bandwidth, or the cost of everything that wraps the model.\nStacking enough of these techniques closes the 5-8x cost-efficiency gap between optimized vLLM or TensorRT-LLM deployments and naive FP16 inference.\nToday, let’s walk through the nine layers, what each one actually solves, and how they stack up in a real production deployment.\nWe covered a lot more in the\nLLMOps course\nwith implementations and engineering logic.\nYou can start reading it here →\n1. Model compression\nModel weights live in GPU memory all the time.\nA 70B model in FP16 is 140GB before you load a single token of context. Compression attacks this usage directly.\nINT8 halves the memory vs FP16.\nINT4 cuts it 4x.\nFP8 gives you native tensor core support on Hopper and Blackwell, which means compression plus speedup.\nGPTQ, AWQ, and SmoothQuant are the three main algorithms here.\nGPTQ uses Hessian-based second-order information\nAWQ preserves salient weights based on activation magnitudes,\nSmoothQuant handles both weights and activations at W8A8.\nDistillation and pruning attack the parameter count itself rather than the bits per parameter.\nMulti-LoRA serving is the escape hatch for multi-tenant deployments, where you keep one base model in memory and hot-swap small adapter weights per request.\nWe covered this specific pillar in\nPart 9 of MLOps course →\nPart 10 of MLOps course →\nPart 12 of LLOps course →\n2. Attention and architecture\nStandard attention is\nO(N²)\n. At 128K context, this will have 16 billion computations, which is why naive attention is infeasible at long context even on H100-class hardware.\nFlashAttention reorders the attention math to be IO-aware, avoiding materializing the full\nN×N\nmatrix.\nPagedAttention\napplies OS-style virtual memory to the KV cache, eliminating fragmentation.\nMQA, GQA, and MLA attack the number of KV heads.\nMQA shares one KV head across all queries, GQA groups them, MLA compresses keys and values into a low-rank latent. DeepSeek-V2 reported a 93.3% KV cache reduction from MLA alone.\nSliding window attention restricts each token to a local window. MoE activates only a subset of experts per token. These are architectural choices driven entirely by serving economics.\nWe covered this specific pillar in:\nPart 3 of LLMOps course →\nPart 13 of LLMOps course →\n3. Decoding\nDecode is memory-bound because every new token requires a full pass over the weights and KV cache.\nSpeculative decoding\nsidesteps this by generating a draft with a cheap model, then verifying in parallel with the main model.\nMedusa attaches extra prediction heads to the model itself, so the same model can draft its own candidate tokens without needing a separate smaller model.\nEAGLE improves on this by predicting at the hidden-state level rather than the token level, which gives higher draft accuracy and better speedups.\nLookahead decoding skips the draft model entirely. It generates and verifies multiple tokens in parallel from the main model alone.\nPrompt lookup decoding copies spans directly from the input prompt, which is surprisingly effective for tasks with heavy prompt-output overlap like summarization or code edits.\nConstrained decoding enforces grammars at the token level, which is how providers guarantee valid JSON.\nMulti-token prediction trains the model to emit several tokens per forward pass.\nWe covered this specific pillar in:\nPart 4 of LLMOps course →\nPart 13 of LLMOps course →\n4. KV cache\nThe KV cache grows linearly with context length, and for long conversations, it dominates memory (\nlearn KV caching here\n)\nA 70B model with 4K context per request already consumes several gigabytes of KV just for a modest batch size.\nPrefix caching reuses KV across requests sharing the same prefix, which is why system prompts and few-shot examples are effectively free after the first request.\nKV offload tiers cold cache entries to CPU RAM or NVMe.\nKV cache quantization compresses the cache itself, separate from the weights.\nToken eviction methods like H2O and SnapKV drop low-attention tokens from the cache. SnapKV reports 92% KV compression at a 1024-token budget with a 3.6x decode speedup.\nAttention sinks, from the StreamingLLM paper, keep the first few tokens permanently in the cache to prevent long-context generation from going incoherent past the cache limit.\nChunked prefill splits long prompts into smaller pieces so decode steps can interleave with prefill work.\nWe covered this specific pillar in:\nPart 13 of LLMOps course →\n5. Batching and scheduling\nLLM inference is memory-bandwidth bound during decode, which means the GPU is usually starved. Batching more requests together amortizes memory reads across more useful work.\nContinuous batching\ndoes this at the iteration level. As soon as one request finishes generating, a new one takes its slot mid-flight.\nDynamic batching waits for a short window to group arriving requests. Batching 32 requests together cuts per-token cost roughly 85% with minor latency impact.\nPrefill-decode disaggregation\nsplits the two phases onto separate GPU pools. Perplexity, Meta, and Mistral run this in production because co-locating prefill and decode on the same GPU means decode requests freeze every time a new prefill enters the batch.\nSLO-aware scheduling prioritizes interactive traffic over background jobs.\nSpot GPU scheduling runs preemptible workloads on cheap capacity.\nRequest deduplication merges identical in-flight queries.\nWe covered this specific pillar in:\nPart 13 of LLMOps course →\nPart 14 of LLMOps course →\nPart 15 of MLOps course →\n6. Parallelism and kernels\nTensor parallelism splits weight matrices across GPUs.\nPipeline parallelism splits layers.\nExpert parallelism shards MoE experts across devices.\nSequence parallelism splits along the token dimension.\nCUDA graphs reduce kernel launch overhead, which matters because decode launches thousands of tiny kernels per second.\nKernel fusion combines multiple operations into one launch.\nTorch compile\nproduces fused kernels automatically via graph-level compilation.\nWe covered this specific pillar in:\nPart 13 of LLMOps course →\n7. Application caching\nThe cheapest inference is the one you skip.\nPrompt caching reuses the KV state of static prefixes across calls. Anthropic reports up to 90% cost reduction and 85% latency reduction for long cached prompts.\nSemantic caching matches queries by embedding similarity rather than exact string match, which handles paraphrases.\nExact-match caching is the hash-based baseline.\nResponse caching stores completed outputs.\nEmbedding deflection routes simple queries to a vector search without ever calling the LLM.\nBatch API endpoints\nrun async jobs at roughly half the per-token price for non-realtime workloads\nWe covered this specific pillar in:\nPart 13 of LLMOps course →\nPart 14 of LLMOps course →\n8. Input/output shaping\nOutput tokens cost 3-10x more than input tokens across every major provider.\nClaude Sonnet 4 is $3 per million input versus $15 per million output, so trimming either side of the call translates directly into margin.\nPrompt compression with tools like LLMLingua achieves up to 20x compression with minimal quality loss.\nContext pruning drops irrelevant retrieved chunks before they reach the model.\nSystem prompt optimization trims static prefixes that bloat every request.\nResponse length caps, structured output modes, and few-shot pruning all attack output volume.\nContext distillation summarizes long histories into a shorter state.\nRAG over long context is often cheaper than stuffing everything into the window. Retrieval keeps the prefill bill bounded.\nWe covered this specific pillar in:\nPart 5 of LLMOps course →\nPart 6 of LLMOps course →\nPart 7 of LLMOps course →\nPart 8 of LLMOps course →\n9. Routing and cost\nNot every query needs a frontier model.\nModel routing picks a smaller model when a smaller model suffices.\nModel cascading runs a cheap model first and escalates to a larger one only when confidence is low.\nAdvisor strategy\nis somewhat similar to this:\nClassifier routing learns which queries go where.\nMulti-provider failover routes across APIs for reliability and cost.\nQoS tiers separate fast-and-cheap traffic from slow-and-high-quality.\nTask-specific fine-tuning lets a 7B model match a 70B model on a narrow domain.\nFunction calling offloads deterministic logic to tools so the model doesn’t spend tokens computing what code could.\nWe covered this specific pillar in:\nPart 12 of LLMOps course →\nPart 14 of LLMOps course →\nPutting it together\nA serious production stack touches most of these.\nA reasonable setup for a general-purpose API might run FP8 weights, GQA-based attention with FlashAttention kernels, PagedAttention for KV, continuous batching with prefill-decode disaggregation, prefix caching for system prompts, semantic caching at the application layer, prompt compression for long retrieved contexts, and model routing to send trivial queries to a small model.\nThe gap between this stack and a naive FP16 deployment with static batching is 5-8x on cost-per-token, and each technique alone moves the number only a small amount, which is exactly why the compounding across all nine layers is what defines a serious production setup.\nWe covered a lot more in the\nLLMOps course\nwith implementations and engineering logic.\nYou can start reading it here →\nThanks for reading!\nPublished on Apr 18, 2026\nComments\nShare\nCopy link\nShare to X\nShare to Facebook\nShare to Linkedin\nCopied\nPrevious\n10 Must-use Slash Commands in Claude Code\nNext\nDiffusion LLMs from the Ground Up: Training, Inference, and Practical Engineering",
  "metadata": {
    "title": "72 Techniques to Optimize LLMs in Production",
    "description": "...explained with usage.",
    "keywords": null,
    "author": null,
    "og:site_name": "Daily Dose of Data Science",
    "og:type": "article",
    "og:title": "72 Techniques to Optimize LLMs in Production",
    "og:description": "...explained with usage.",
    "og:url": "https://www.dailydoseofds.com/p/72-techniques-to-optimize-llms-in-production/",
    "og:image": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2026/05/72-llm-optimization-techniques-visual.png",
    "og:image:width": "1189",
    "og:image:height": "1101",
    "twitter:card": "summary_large_image",
    "twitter:title": "72 Techniques to Optimize LLMs in Production",
    "twitter:description": "...explained with usage.",
    "twitter:url": "https://www.dailydoseofds.com/p/72-techniques-to-optimize-llms-in-production/",
    "twitter:image": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2026/05/72-llm-optimization-techniques-visual.png",
    "twitter:label1": "Written by",
    "twitter:data1": "Avi Chawla",
    "twitter:label2": "Filed under",
    "twitter:data2": "LLMOps, LLMs",
    "twitter:site": "@_avichawla",
    "article:published_time": "2026-04-17T23:17:00.000Z",
    "article:modified_time": "2026-05-12T23:19:07.000Z",
    "article:tag": "LLMs"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 200,
    "error": ""
  },
  "code_blocks": [],
  "images": [
    {
      "status": "ok",
      "url": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/size/w400/2026/03/avi-google.jpg",
      "bytes": 11344,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/000.jpg",
      "src": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/size/w400/2026/03/avi-google.jpg",
      "alt": "Avi Chawla",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!mRT-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945c4676-d214-41d9-ac1e-062caf345ae7_1190x1107.png",
      "bytes": 172900,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/001.png",
      "src": "https://substackcdn.com/image/fetch/$s_!mRT-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945c4676-d214-41d9-ac1e-062caf345ae7_1190x1107.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!i67T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f42345b-db28-40e1-9e38-48c3166d7d77_1961x513.png",
      "bytes": 71036,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/002.png",
      "src": "https://substackcdn.com/image/fetch/$s_!i67T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f42345b-db28-40e1-9e38-48c3166d7d77_1961x513.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!vrck!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687c51ac-ef1b-43a4-825e-b1ff1f696321_1089x513.png",
      "bytes": 33414,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/003.png",
      "src": "https://substackcdn.com/image/fetch/$s_!vrck!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687c51ac-ef1b-43a4-825e-b1ff1f696321_1089x513.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!hnO_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a8182e-931b-4f56-9875-17c617c21833_1540x307.png",
      "bytes": 61584,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/004.png",
      "src": "https://substackcdn.com/image/fetch/$s_!hnO_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a8182e-931b-4f56-9875-17c617c21833_1540x307.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!4xr8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ee8c57-216a-431c-bb1f-ce28fa1098c2_1540x307.png",
      "bytes": 60493,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/005.png",
      "src": "https://substackcdn.com/image/fetch/$s_!4xr8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ee8c57-216a-431c-bb1f-ce28fa1098c2_1540x307.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!ACmf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F941e3f74-4a21-4901-81a4-9e52ff76bce2_1540x307.png",
      "bytes": 66150,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/006.png",
      "src": "https://substackcdn.com/image/fetch/$s_!ACmf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F941e3f74-4a21-4901-81a4-9e52ff76bce2_1540x307.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!5YvD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a7b7511-b108-4c10-8dc3-b7a33e3ced1b_1540x307.png",
      "bytes": 61928,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/007.png",
      "src": "https://substackcdn.com/image/fetch/$s_!5YvD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a7b7511-b108-4c10-8dc3-b7a33e3ced1b_1540x307.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!SpQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b925cd-3327-4430-ab7e-f1872063b26a_1250x1250.gif",
      "bytes": 659501,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/008.gif",
      "src": "https://substackcdn.com/image/fetch/$s_!SpQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90b925cd-3327-4430-ab7e-f1872063b26a_1250x1250.gif",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!8Nv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585d4c23-ee4c-4665-93d1-00e5dab705b3_1318x307.png",
      "bytes": 22383,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/009.png",
      "src": "https://substackcdn.com/image/fetch/$s_!8Nv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585d4c23-ee4c-4665-93d1-00e5dab705b3_1318x307.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!0z47!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c22f889-5a6b-4003-818b-9ff4448bf99a_1000x731.png",
      "bytes": 209262,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/010.png",
      "src": "https://substackcdn.com/image/fetch/$s_!0z47!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c22f889-5a6b-4003-818b-9ff4448bf99a_1000x731.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!PxY4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7063c153-5642-40d4-9a4d-c82de6f2cf28_885x508.png",
      "bytes": 29572,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/011.png",
      "src": "https://substackcdn.com/image/fetch/$s_!PxY4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7063c153-5642-40d4-9a4d-c82de6f2cf28_885x508.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!4GJG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F338cf451-94d1-452a-88b8-c056122ac1dc_1526x303.png",
      "bytes": 61108,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/012.png",
      "src": "https://substackcdn.com/image/fetch/$s_!4GJG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F338cf451-94d1-452a-88b8-c056122ac1dc_1526x303.png",
      "alt": "",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!BbSR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1822ce6c-40bf-4523-adda-701260b6e148_1456x752.png",
      "bytes": 220728,
      "reused": true,
      "local_path": "attachments/0181e2c79789/images/013.png",
      "src": "https://substackcdn.com/image/fetch/$s_!BbSR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1822ce6c-40bf-4523-adda-701260b6e148_1456x752.png",
      "alt": "",
      "downloaded": true
    }
  ],
  "audio": [],
  "videos": [],
  "links": [
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-1/",
      "label": "LLMs in production",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/model-compression-a-critical-step-towards-efficient-machine-learning/",
      "label": "1. Model compression",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/mlops-crash-course-part-9/",
      "label": "Part 9 of MLOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/mlops-crash-course-part-10",
      "label": "Part 10 of MLOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-12/",
      "label": "Part 12 of LLOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/p/paged-attention-in-llms/",
      "label": "PagedAttention",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-3/",
      "label": "Part 3 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-13/",
      "label": "Part 13 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-4/",
      "label": "Part 4 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/p/kv-caching-in-llms-explained-visually/",
      "label": "4. KV cache",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-14/",
      "label": "Part 14 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/mlops-crash-course-part-15/",
      "label": "Part 15 of MLOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/pytorch-models-are-not-deployment-friendly-supercharge-them-with-torchscript/",
      "label": "Torch compile",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/mlops-crash-course-part-11/",
      "label": "Batch API endpoints",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-5/",
      "label": "Part 5 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-6/",
      "label": "Part 6 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-7/",
      "label": "Part 7 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/llmops-crash-course-part-8/",
      "label": "Part 8 of LLMOps course →",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/p/advisor-strategy-in-agents/",
      "label": "Advisor strategy",
      "type": "a"
    },
    {
      "href": "https://x.com/intent/tweet?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2F72-techniques-to-optimize-llms-in-production%2F&text=72%20Techniques%20to%20Optimize%20LLMs%20in%20Production",
      "label": "Share to X",
      "type": "a"
    },
    {
      "href": "https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2F72-techniques-to-optimize-llms-in-production%2F",
      "label": "Share to Facebook",
      "type": "a"
    },
    {
      "href": "https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2F72-techniques-to-optimize-llms-in-production%2F",
      "label": "Share to Linkedin",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/p/10-must-use-slash-commands-in-claude-code/",
      "label": "Previous 10 Must-use Slash Commands in Claude Code",
      "type": "a"
    },
    {
      "href": "https://www.dailydoseofds.com/diffusion-models-part-2/",
      "label": "Next Diffusion LLMs from the Ground Up: Training, Inference, and Practical Engineering",
      "type": "a"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-14T10:48:00Z",
  "source_url": "https://www.dailydoseofds.com/p/72-techniques-to-optimize-llms-in-production/",
  "papers": [],
  "actual_video_files": [],
  "body_chars": 10601,
  "expected_body_images": 14,
  "discovery_status": "ok",
  "delivery_status": "ok",
  "missing_reason": "",
  "raw_html": "attachments/0181e2c79789/pages/source.html",
  "local_html": "attachments/0181e2c79789/pages/article.html",
  "body_base_path": "attachments/0181e2c79789/pages/",
  "body_markdown_path": "attachments/0181e2c79789/pages/article.md"
}