Supply Chain Layers

Updated 2026-07-07

The ML supply chain is the chain of tools and decisions that take a small model from raw data to a product running on a real device. On this page you can see the nine layers of that chain, learn what question each layer answers, and find the tools that live in each one.

Problems and usersData and featuresModel architectureTraining and post-trainingCompression and formatsKernels and compilersRuntime and servingApps, agents, and devicesEvaluation and feedbackfeedbackIon StoicaIon Stoica: Data and featuresIon Stoica: Training and post-trainingIon Stoica: Runtime and servingIon Stoica: Evaluation and feedbackVinod KhoslaVinod Khosla: Compression and formatsVinod Khosla: Kernels and compilersVinod Khosla: Runtime and servingVinod Khosla: Apps, agents, and devicesPrismMLPrismML: Model architecturePrismML: Compression and formatsPrismML: Runtime and servingPrismML: Apps, agents, and devices

Runtime and serving

How does inference run reliably and cheaply?

Who lives here: llama.cpp, MLX, Ollama, LM Studio, vLLM, SGLang, Ray Serve.

Runtime map

Click a stage to see what it does and where to read more. Dots mark the stages each viewpoint cares about most.

Understand the nine layers

Every tool in this ecosystem sits in one layer of the chain. For example, llama.cpp is a runtime. It answers the question "how does inference run on my machine?", and it sits downstream of the compression layer that produced the GGUF file it loads. When you know which layer a tool belongs to, you know what job it does and which tools sit next to it.

LayerQuestion it answersTools and players in this layer
Problems and usersWhat work should the model do, and how do we judge success?Domain owners, benchmark authors, Arena-style evaluators.
Data and featuresWhat raw data, features, embeddings, prompts, and labels feed the system?Feature stores, data pipelines, vector stores, Ray Data-style pipelines.
Model architectureWhich backbone fits the workload?Transformers, state space models, hybrid models, Liquid-style models, PrismML Bonsai.
Training and post-trainingHow is the model adapted or aligned?Unsloth, TRL, OpenRLHF, Axolotl, LLaMA-Factory.
Compression and formatsHow does the model fit into memory and onto devices?GGUF, MLX, AWQ/GPTQ, FP8/MXFP4/NVFP4, PrismML 1-bit/ternary.
Kernels and compilersWhat makes the math fast enough?CUDA, Triton, CUTLASS, FlashAttention, Metal, MLX kernels.
Runtime and servingHow does inference run reliably and cheaply?llama.cpp, MLX, Ollama, LM Studio, vLLM, SGLang, Ray Serve.
Apps, agents, devicesWhere does the model run for users?Phones, laptops, browsers, local agents, robots, enterprise apps.
Evaluation and feedbackHow do we know it works and improves?Human preference workflows, Arena-style evals, regression suites.

Watch where the layers pull against each other

The layers are not independent. A choice in one layer changes what is possible in the next, and the tradeoffs below come up again and again when you read benchmark claims or plan a local deployment.

  • Compression vs quality. Smaller weights need less memory, but you still have to measure what the compression did to quality and task scope.
  • Weight size vs KV cache. With 1-bit weights, the KV cache can become the largest use of memory at long context.
  • Prefill vs decode. A speedup can apply to generation but not prompt processing, so check which phase a claim measures.
  • Runtime support vs model release. A model is not broadly usable until the runtimes people actually run, e.g., llama.cpp or Ollama, support it.
  • Social excitement vs evidence. Social posts are useful for discovering a tool, but treat their numbers as unconfirmed until a documented run backs them up.

Next steps

See something wrong? Fix it.