Back Home

GitHub Repo

Ollama Pre-Release Reuses Verified Models, Cutting Warm Embedding Request Latency by More Than 40%

On October 12, Ollama merged a model lookup optimization and included it in v0.40.4-rc0, reducing repeated processing for subsequent requests to the same model. Maintainer tests showed warm-request latency reductions of 41% to 56% for two embedding models, though the results still need validation in real deployments.

Mattruffoni · CC BY-SA 4.0 · Image source
zh-Hant

Ollama merged PR #18947 on October 12, changing how inference routing looks up models, and included the change in v0.40.4-rc0, released that day. The optimization covers generate, chat, embed, and System One, with the goal of reducing lookup work repeated on every request after a model has already been loaded. The release is still marked as a pre-release. Release notes

The new flow consolidates manifest resolution for named models and execution backend selection into a single, validated cold lookup. When a runner already exists, it first confirms that the v2 tag still points to the same digest, then reuses the model object. Parser selection remains scoped to a single request, avoiding configuration changes when models are shared. The proposal also includes regression tests for tag changes, backend selection, concurrent unloading, and missing models. Technical proposal

In the maintainers’ published tests of subsequent warm requests to the same model, EmbeddingGemma 2’s MLX embedding response time fell from 17.0 ms to 7.52 ms, while nomic-embed-text’s GGUF response time fell from 13.8 ms to 8.11 ms. First-token latency in the cached chat case decreased by only about 4.8%. This shows that gains vary by workload and cannot be directly extrapolated to all models. Test data

For RAG engineers, this kind of fixed overhead is worth measuring: when short-text vectorization frequently calls the same model, model lookup time may account for a larger share of latency. That is an engineering inference based on the mechanics of the change. The official /api/embed supports both a single text input and an array of texts, and also provides keep_alive; comparisons across versions should therefore hold batch size and model residency conditions constant. Embedding API documentation

The published tests do not yet represent cold starts, long inputs, or high-concurrency services. Deployment teams can record client-side latency alongside the API’s total_duration, load_duration, and input token count to see whether gains come from load-related overhead; the official timing fields are measured in nanoseconds. Next, watch for inclusion in a stable release and observe real-world behavior when model tags are updated, backends are switched, and models are unloaded concurrently. Performance field documentation

Sources

  1. Ollama issue #18840:推論完成後 /api/chat 回傳 HTTP 500
  2. Ollama PR #18849:截斷串流優先回報傳輸錯誤
  3. Generate a chat message — Ollama API 文件
  4. server: reuse verified manifests and loaded models in inference routes — PR #18947
  5. Ollama v0.40.4-rc0 發布紀錄
  6. Generate embeddings
  7. API Usage