From 5fd150380b1d5d6e01a434712537baba29111941 Mon Sep 17 00:00:00 2001 From: bitliu Date: Mon, 1 Sep 2025 16:01:00 +0800 Subject: [PATCH 1/7] docs: add vllm semantic router blog Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 113 ++++++++++++++++++ .../figures/semantic-router/architecture.png | Bin 0 -> 54725 bytes assets/figures/semantic-router/request.png | Bin 0 -> 106818 bytes 3 files changed, 113 insertions(+) create mode 100644 _posts/2025-09-01-semantic-router.md create mode 100644 assets/figures/semantic-router/architecture.png create mode 100644 assets/figures/semantic-router/request.png diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md new file mode 100644 index 0000000..379f3cd --- /dev/null +++ b/_posts/2025-09-01-semantic-router.md @@ -0,0 +1,113 @@ +--- +layout: post +title: "Revolution in Large Model Inference: From GPT-5 to vLLM Semantic Router" +author: "vLLM Semantic Router Team" +image: /assets/logos/vllm-logo-text-light.png +--- + +![](/assets/figures/semantic-router/request.png) + +## **Industry Status: Inference ≠ The More, The Better** + +Over the past year, **Hybrid inference / automatic routing** has become one of the hottest topics in the large model industry. + +Take **GPT-5** as an example. Its real breakthrough isn't in the number of parameters, but in the **"automatic routing + thinking quota"**: + +* **Light queries → Light models**: For example, "Why is the sky blue?" does not require expensive inference models. + +* **Complex/High-value queries → Strong inference models**: Legal analysis, financial simulations, etc., are routed to models with Chain-of-Thought capabilities. + +The logic behind this mechanism is called **"Per-token Unit Economics"**. + +Every token generated is no longer a meaningless "consumption" but must bring value. + +Free-tier users receive answers from lightweight models, keeping costs under control. +When a query shows commercial intent (e.g., booking flights or finding legal services), it is routed to high-computation models and agent services that plug directly into transaction flows. + +For use cases like this, companies such as OpenAI can participate in the value chain by taking a commission on completed transactions — turning free traffic from a cost center into a monetizable entry point. + +Meanwhile, other companies are rapidly following suit: + +* **Anthropic Claude 3.7/4**: Fast thinking + slow thinking, with user-controlled switches. + +* **Google Gemini 2.5**: Introduces *thinking budget*, enabling enterprises to finely control inference costs. + +* **Alibaba Qwen3**: Attempts to switch between thinking/non-thinking modes using instructions. + +* **DeepSeek v3.1**: Uses a "single-model dual-mode" approach, combining dialogue and reasoning. + +In summary: The industry is entering a new era where **"not a single token should be wasted"**. + +## **Recent Research: vLLM Semantic Router** + +Amid the industry's push for "Hybrid inference," we focus on the **open-source inference engine vLLM**. + +vLLM has become the de facto standard for deploying large models in the industry. However, it lacks fine-grained semantic-level control - the ability to decide based on meaning rather than just query type. As a result, developers either enable full inference (wasting computation) or disable inference entirely (losing accuracy). + +Thus, we propose the **vLLM Semantic Router**, bringing GPT-5's "smart routing" capabilities to the open-source ecosystem. + +![](/assets/figures/semantic-router/architecture.png) + +🔹 **Architecture Design** + +1. **Semantic Classification**: Based on a **ModernBERT** fine-tuned intent classifier, determining whether a user query requires inference. + +2. **Smart Routing**: + + * Simple queries → Directly call the inference mode for fast responses. + + * Complex inference queries → Use Chain-of-Thought for accurate reasoning. + +3. **Rust High-Performance Engine**: Using the HuggingFace Candle framework to achieve high concurrency and zero-copy efficient inference. + +4. **Cloud-Native Integration**: Easily integrated with Kubernetes / API Gateway via Envoy ext_proc plugin, supporting enterprise-level deployments. + +Experimental data shows: + +* **Accuracy**: Improved by **+10.2%** +* **Latency**: Reduced by **47.1%** +* **Token Consumption**: Decreased by **48.5%** + +Especially in knowledge-intensive areas like business and economics, accuracy improvements even exceed **20%**. + +## **Background of the vLLM Semantic Router Project** + +The Semantic Router is not the isolated outcome of a single paper, but rather the result of collaboration and sustained efforts within the open-source community: + +* The project was initially proposed by **Dr. Chen Huamin**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. + +* The project was iterated and evolved by **Xunzhuo Liu** from **Tencent**, and contributed to the vLLM community, becoming a part of the vLLM ecosystem. + +* **Dr. Wang Chen** from **IBM Research** and **Huamin** will present this project at the **2025 KubeCon North America** summit. + +Its mission is: To become the "inference accelerator" for open-source large models: + +* Ensure accuracy while minimizing unnecessary token consumption. +* Allow developers to seamlessly switch between fast/slow thinking modes without needing to fully enable or disable inference. +* Through native support for Kubernetes / Envoy, bring this capability into enterprise-level production environments. + +Thus, the vLLM Semantic Router is not just a research achievement but an **important bridge for open-source AI infrastructure**. It brings "academic innovation" directly into "industrial application." + +You can start exploring and experience it by visiting the GitHub repository: [https://github.com/vllm-project/semantic-router](https://github.com/vllm-project/semantic-router). + +## **Future Trends: Cost-Effective, Just-in-Time Inference** + +The large model industry has shifted from "Can we perform inference?" to "**When to perform inference and how to perform it?**" + +* **GPT-5**: Through automatic routing and thinking quotas, it ties computation allocation to commercial value, driving C-end monetization. + +* **vLLM Semantic Router**: Brings semantic routing to the open-source engine vLLM, enabling low-latency, low-energy consumption inference scheduling. + +The future competitive focus will no longer be about "whose model is the largest," but about: + +* **Can you perform inference at the right moment with the lowest cost?** +* **Who can more precisely switch between fast/slow thinking modes?** +* **Who can guarantee user experience without wasting computational resources?** + +Thus, the next frontier will be: **Intelligent self-adjusting inference mechanisms**. No need for explicit user switches or hardcoding; instead, the model/system can autonomously decide when to "think deeply" or provide a quick answer. + +## **Summary in One Sentence** + +* **GPT-5**: Uses routing for business, driving widespread intelligence. +* **vLLM Semantic Router**: Uses semantic routing for efficiency, driving green AI. +* The next competitive edge: **Performing the most appropriate inference with the lowest computation at the right time.** diff --git a/assets/figures/semantic-router/architecture.png b/assets/figures/semantic-router/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..56f703bee8267933e9ca46c37ec641ff4fb62e72 GIT binary patch literal 54725 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 HKaKo9;P6l= literal 0 HcmV?d00001 diff --git a/assets/figures/semantic-router/request.png b/assets/figures/semantic-router/request.png new file mode 100644 index 0000000000000000000000000000000000000000..202bb537479631a4b73c8648488806c323261bf2 GIT binary patch literal 106818 zcmeFZbySq!*Efs^IP`#kfWXX9(%s!NC`d?&gu?(5lF}*NDM$%QN{0fHA|a^~f^>s~ zbi)9?7lPm4_qX0>t#{pPz0ZI5WzC$}XYbFBv(G*khN<6&6XH?hVPIeoDkBs$F)(ms zFfcHeK{!AQlt5G%_@~oDOV3FY=?b-Xv@^GSY6f+3w>N{DxmlWHV7QIhsLK*vhk+W< z;ZoPG8G1#JS1J4UExD2jtyHHgP|9}12^jUl>s0N3&L=xZ>|ug$>$eU|jRIl$TdmmY4r46ClYe?>I?>oCam^YtNEm9%@IBWlezK zq9#d{nI9I8362%vencmrn z5^o+)#q2iTSg_S! zvv-yM2MsMFcJdE=7m^(9$BysyzzsK!_ML|?RtPAoUK9u*h~@C>O#NJ) zF}xJ*O^|V?rZV+BicQ7)`P+d(|B${W>?K`Q)$yPR8%i&Z{A&Fd63<_CeHv%o%Y8h9 z;bF8z>tu3vqz$=&77bnW=||_CFwWoo9LmIrjqo!f~q{K_VQ*H zmIx0=vj-mcwNM_`C{a^-X(>DjH!*;KjhPb?>SpuQ_L-QQB>f+{V!-E%W^Q`upCL}x zlJt72>QH$*M>D7ZmjD+Jr=pvs3m?4{9#q27)LcwcLFtMF@J*85!pX^AjGNol)s@SY zpUcki2{*5(s3uB@v5&x{KQ zo>@n56=0`+Gw zFiKTbOu-K2d?Aanf+YO~vtp)pC`(hZKOa$oJVGd>uppKY-ic

sw+#<^KtR~r$zlK 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 Z!*k1TD#($_^?&^zwCQ Date: Mon, 1 Sep 2025 20:25:02 +0800 Subject: [PATCH 2/7] resolve reviews Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md index 379f3cd..d052be9 100644 --- a/_posts/2025-09-01-semantic-router.md +++ b/_posts/2025-09-01-semantic-router.md @@ -7,7 +7,7 @@ image: /assets/logos/vllm-logo-text-light.png ![](/assets/figures/semantic-router/request.png) -## **Industry Status: Inference ≠ The More, The Better** +## Industry Status: Inference ≠ The More, The Better Over the past year, **Hybrid inference / automatic routing** has become one of the hottest topics in the large model industry. @@ -38,7 +38,7 @@ Meanwhile, other companies are rapidly following suit: In summary: The industry is entering a new era where **"not a single token should be wasted"**. -## **Recent Research: vLLM Semantic Router** +## Recent Research: vLLM Semantic Router Amid the industry's push for "Hybrid inference," we focus on the **open-source inference engine vLLM**. @@ -70,7 +70,7 @@ Experimental data shows: Especially in knowledge-intensive areas like business and economics, accuracy improvements even exceed **20%**. -## **Background of the vLLM Semantic Router Project** +## Background of the vLLM Semantic Router Project The Semantic Router is not the isolated outcome of a single paper, but rather the result of collaboration and sustained efforts within the open-source community: @@ -90,7 +90,7 @@ Thus, the vLLM Semantic Router is not just a research achievement but an **impor You can start exploring and experience it by visiting the GitHub repository: [https://github.com/vllm-project/semantic-router](https://github.com/vllm-project/semantic-router). -## **Future Trends: Cost-Effective, Just-in-Time Inference** +## Future Trends: Cost-Effective, Just-in-Time Inference The large model industry has shifted from "Can we perform inference?" to "**When to perform inference and how to perform it?**" @@ -106,7 +106,7 @@ The future competitive focus will no longer be about "whose model is the largest Thus, the next frontier will be: **Intelligent self-adjusting inference mechanisms**. No need for explicit user switches or hardcoding; instead, the model/system can autonomously decide when to "think deeply" or provide a quick answer. -## **Summary in One Sentence** +## Summary in One Sentence * **GPT-5**: Uses routing for business, driving widespread intelligence. * **vLLM Semantic Router**: Uses semantic routing for efficiency, driving green AI. From 71ca42d1c812848def4ea9a6c52b3599b8114d6e Mon Sep 17 00:00:00 2001 From: bitliu Date: Tue, 2 Sep 2025 00:20:03 +0800 Subject: [PATCH 3/7] update: resolve feedbacks Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 119 +++++++++++++-------------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md index d052be9..cb01395 100644 --- a/_posts/2025-09-01-semantic-router.md +++ b/_posts/2025-09-01-semantic-router.md @@ -1,113 +1,112 @@ --- layout: post -title: "Revolution in Large Model Inference: From GPT-5 to vLLM Semantic Router" +title: "vLLM Semantic Router: Next Phase in LLM inference" author: "vLLM Semantic Router Team" image: /assets/logos/vllm-logo-text-light.png --- ![](/assets/figures/semantic-router/request.png) -## Industry Status: Inference ≠ The More, The Better +## Industry Status: Inference ≠ More Is Better -Over the past year, **Hybrid inference / automatic routing** has become one of the hottest topics in the large model industry. +Over the past year, **hybrid reasoning and automatic routing** have emerged as some of the most discussed topics in the large-model ecosystem. -Take **GPT-5** as an example. Its real breakthrough isn't in the number of parameters, but in the **"automatic routing + thinking quota"**: +Take **GPT-5** as an example. Its most significant breakthrough is not simply the number of parameters, but the introduction of **automatic routing and thinking quotas**: -* **Light queries → Light models**: For example, "Why is the sky blue?" does not require expensive inference models. - -* **Complex/High-value queries → Strong inference models**: Legal analysis, financial simulations, etc., are routed to models with Chain-of-Thought capabilities. +* **Light queries → Lightweight models**: For example, "Why is the sky blue?" does not require an expensive inference model. +* **Complex/High-value queries → Advanced models**: Tasks such as legal analysis or financial simulations are routed to models with Chain-of-Thought capabilities. -The logic behind this mechanism is called **"Per-token Unit Economics"**. +The principle behind this is often described as **per-token unit economics**. -Every token generated is no longer a meaningless "consumption" but must bring value. +Every token generated must deliver value rather than being treated as pure computational expense. -Free-tier users receive answers from lightweight models, keeping costs under control. -When a query shows commercial intent (e.g., booking flights or finding legal services), it is routed to high-computation models and agent services that plug directly into transaction flows. +For example: -For use cases like this, companies such as OpenAI can participate in the value chain by taking a commission on completed transactions — turning free traffic from a cost center into a monetizable entry point. +* Free-tier users receive answers from lightweight models, keeping costs under control. +* When a query indicates commercial intent (e.g., booking flights or finding legal services), it is routed to high-compute models or agent services directly integrated into transaction flows. -Meanwhile, other companies are rapidly following suit: +In these cases, companies like OpenAI can participate in the value chain by taking a commission on completed transactions — transforming free usage from a cost center into a monetizable entry point. -* **Anthropic Claude 3.7/4**: Fast thinking + slow thinking, with user-controlled switches. +Other companies are adopting similar strategies: -* **Google Gemini 2.5**: Introduces *thinking budget*, enabling enterprises to finely control inference costs. +* **Anthropic Claude 3.7/4**: Combines "fast thinking" and "slow thinking" with user-controlled toggles. +* **Google Gemini 2.5**: Introduces a *thinking budget*, giving enterprises fine-grained control over inference costs. +* **Alibaba Qwen3**: Explores instruction-based switching between reasoning and non-reasoning modes. +* **DeepSeek v3.1**: Implements a "single-model dual-mode" design, merging dialogue and reasoning. -* **Alibaba Qwen3**: Attempts to switch between thinking/non-thinking modes using instructions. +In short: the industry is entering an era where **no token should be wasted**. -* **DeepSeek v3.1**: Uses a "single-model dual-mode" approach, combining dialogue and reasoning. - -In summary: The industry is entering a new era where **"not a single token should be wasted"**. +--- ## Recent Research: vLLM Semantic Router -Amid the industry's push for "Hybrid inference," we focus on the **open-source inference engine vLLM**. +Amid this shift toward hybrid reasoning, we focus on the **open-source inference engine vLLM**. -vLLM has become the de facto standard for deploying large models in the industry. However, it lacks fine-grained semantic-level control - the ability to decide based on meaning rather than just query type. As a result, developers either enable full inference (wasting computation) or disable inference entirely (losing accuracy). +While vLLM has become the de facto standard for deploying large models, it lacks fine-grained, semantic-level control — the ability to make routing decisions based on meaning rather than query type alone. Developers are often forced to either enable full inference (wasting computation) or disable it entirely (sacrificing accuracy). -Thus, we propose the **vLLM Semantic Router**, bringing GPT-5's "smart routing" capabilities to the open-source ecosystem. +To address this, we propose the **vLLM Semantic Router**, which brings GPT-5-style "smart routing" to the open-source ecosystem. ![](/assets/figures/semantic-router/architecture.png) -🔹 **Architecture Design** - -1. **Semantic Classification**: Based on a **ModernBERT** fine-tuned intent classifier, determining whether a user query requires inference. +### Architecture Design +1. **Semantic Classification**: Uses a **ModernBERT** fine-tuned intent classifier to determine whether a query requires inference. 2. **Smart Routing**: - * Simple queries → Directly call the inference mode for fast responses. - - * Complex inference queries → Use Chain-of-Thought for accurate reasoning. - -3. **Rust High-Performance Engine**: Using the HuggingFace Candle framework to achieve high concurrency and zero-copy efficient inference. + * Simple queries → Fast inference mode. + * Complex queries → Chain-of-Thought for accurate reasoning. +3. **High-Performance Engine**: Built with Rust and the Hugging Face Candle framework, enabling high concurrency and zero-copy efficiency. +4. **Cloud-Native Integration**: Seamlessly integrates with Kubernetes and API Gateways via the Envoy `ext_proc` plugin for enterprise deployments. -4. **Cloud-Native Integration**: Easily integrated with Kubernetes / API Gateway via Envoy ext_proc plugin, supporting enterprise-level deployments. +Experimental results show: -Experimental data shows: +* **Accuracy**: +10.2% +* **Latency**: –47.1% +* **Token Consumption**: –48.5% -* **Accuracy**: Improved by **+10.2%** -* **Latency**: Reduced by **47.1%** -* **Token Consumption**: Decreased by **48.5%** +In knowledge-intensive areas such as business and economics, accuracy improvements can exceed **20%**. -Especially in knowledge-intensive areas like business and economics, accuracy improvements even exceed **20%**. - -## Background of the vLLM Semantic Router Project +--- -The Semantic Router is not the isolated outcome of a single paper, but rather the result of collaboration and sustained efforts within the open-source community: +## Project Background -* The project was initially proposed by **Dr. Chen Huamin**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. +The Semantic Router is not the isolated result of a single paper but a collaborative outcome of sustained community contributions: -* The project was iterated and evolved by **Xunzhuo Liu** from **Tencent**, and contributed to the vLLM community, becoming a part of the vLLM ecosystem. +* Originally proposed by **Dr. Chen Huamin**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. +* Iterated and further developed by **Xunzhuo Liu** at **Tencent**, later contributed to the vLLM community. +* **Dr. Wang Chen** from **IBM Research** and **Dr. Chen Huamin** will present the project at **KubeCon North America 2025**. -* **Dr. Wang Chen** from **IBM Research** and **Huamin** will present this project at the **2025 KubeCon North America** summit. +The mission is clear: to serve as an **inference accelerator** for open-source large models: -Its mission is: To become the "inference accelerator" for open-source large models: +* Preserve accuracy while minimizing unnecessary token usage. +* Enable seamless switching between "fast" and "slow" thinking modes without fully enabling or disabling inference. +* Deliver production-ready enterprise integration through native Kubernetes and Envoy support. -* Ensure accuracy while minimizing unnecessary token consumption. -* Allow developers to seamlessly switch between fast/slow thinking modes without needing to fully enable or disable inference. -* Through native support for Kubernetes / Envoy, bring this capability into enterprise-level production environments. +The vLLM Semantic Router is therefore not just a research milestone but an **essential bridge for open-source AI infrastructure**, translating **academic innovation into industrial application**. -Thus, the vLLM Semantic Router is not just a research achievement but an **important bridge for open-source AI infrastructure**. It brings "academic innovation" directly into "industrial application." +You can start exploring the project here: [https://github.com/vllm-project/semantic-router](https://github.com/vllm-project/semantic-router). -You can start exploring and experience it by visiting the GitHub repository: [https://github.com/vllm-project/semantic-router](https://github.com/vllm-project/semantic-router). +--- ## Future Trends: Cost-Effective, Just-in-Time Inference -The large model industry has shifted from "Can we perform inference?" to "**When to perform inference and how to perform it?**" +The central industry question has shifted from *"Can we perform inference?"* to *"When and how should inference be performed?"* -* **GPT-5**: Through automatic routing and thinking quotas, it ties computation allocation to commercial value, driving C-end monetization. +* **GPT-5**: Uses automatic routing and thinking quotas to align computation with commercial value, enabling monetization. +* **vLLM Semantic Router**: Brings semantic routing to the open-source vLLM engine, enabling low-latency, energy-efficient inference scheduling. -* **vLLM Semantic Router**: Brings semantic routing to the open-source engine vLLM, enabling low-latency, low-energy consumption inference scheduling. +The new competitive focus will be less about model scale and more about: -The future competitive focus will no longer be about "whose model is the largest," but about: +* **Performing inference at the right moment with the lowest cost.** +* **Switching between fast and slow reasoning with precision.** +* **Preserving user experience without wasting compute.** -* **Can you perform inference at the right moment with the lowest cost?** -* **Who can more precisely switch between fast/slow thinking modes?** -* **Who can guarantee user experience without wasting computational resources?** +The next frontier is **intelligent, self-adjusting inference mechanisms** — systems that autonomously determine when to "think deeply" and when to respond directly, without explicit user toggles or hardcoded rules. -Thus, the next frontier will be: **Intelligent self-adjusting inference mechanisms**. No need for explicit user switches or hardcoding; instead, the model/system can autonomously decide when to "think deeply" or provide a quick answer. +--- -## Summary in One Sentence +## One-Sentence Summary -* **GPT-5**: Uses routing for business, driving widespread intelligence. -* **vLLM Semantic Router**: Uses semantic routing for efficiency, driving green AI. -* The next competitive edge: **Performing the most appropriate inference with the lowest computation at the right time.** +* **GPT-5**: Business-driven routing → broad intelligence. +* **vLLM Semantic Router**: Efficiency-driven routing → sustainable AI. +* **Future edge**: Performing the right inference at the right time, with minimal computation. From 6b879b5c3e4cb712f1ba106afb8792fe7552175a Mon Sep 17 00:00:00 2001 From: bitliu Date: Wed, 3 Sep 2025 19:57:44 +0800 Subject: [PATCH 4/7] resolve reviews Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md index cb01395..c9c1d4e 100644 --- a/_posts/2025-09-01-semantic-router.md +++ b/_posts/2025-09-01-semantic-router.md @@ -36,8 +36,6 @@ Other companies are adopting similar strategies: In short: the industry is entering an era where **no token should be wasted**. ---- - ## Recent Research: vLLM Semantic Router Amid this shift toward hybrid reasoning, we focus on the **open-source inference engine vLLM**. @@ -72,9 +70,9 @@ In knowledge-intensive areas such as business and economics, accuracy improvemen The Semantic Router is not the isolated result of a single paper but a collaborative outcome of sustained community contributions: -* Originally proposed by **Dr. Chen Huamin**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. -* Iterated and further developed by **Xunzhuo Liu** at **Tencent**, later contributed to the vLLM community. -* **Dr. Wang Chen** from **IBM Research** and **Dr. Chen Huamin** will present the project at **KubeCon North America 2025**. +* Originally proposed by **[Dr. Chen Huamin](https://www.linkedin.com/in/huaminchen)**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. +* Iterated and further developed by **[Xunzhuo Liu](https://www.linkedin.com/in/bitliu)** at **Tencent**, later contributed to the vLLM community. +* **[Dr. Wang Chen](https://www.linkedin.com/in/chenw615)** from **IBM Research** and **Dr. Chen Huamin** will present the project at **KubeCon North America 2025**. The mission is clear: to serve as an **inference accelerator** for open-source large models: @@ -84,7 +82,7 @@ The mission is clear: to serve as an **inference accelerator** for open-source l The vLLM Semantic Router is therefore not just a research milestone but an **essential bridge for open-source AI infrastructure**, translating **academic innovation into industrial application**. -You can start exploring the project here: [https://github.com/vllm-project/semantic-router](https://github.com/vllm-project/semantic-router). +You can start exploring the project at [GitHub](https://github.com/vllm-project/semantic-router). We're currently working on the [v0.1 Roadmap](https://github.com/vllm-project/semantic-router/issues/14) and have established a [Work Group](https://github.com/vllm-project/semantic-router/issues/15). We welcome your thoughts and invite you to join us! --- From 2f757dd467ee1cd5f032246c5da4907fb351346c Mon Sep 17 00:00:00 2001 From: bitliu Date: Wed, 3 Sep 2025 22:29:51 +0800 Subject: [PATCH 5/7] update: resolve feedbacks Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md index c9c1d4e..0f3523c 100644 --- a/_posts/2025-09-01-semantic-router.md +++ b/_posts/2025-09-01-semantic-router.md @@ -64,15 +64,13 @@ Experimental results show: In knowledge-intensive areas such as business and economics, accuracy improvements can exceed **20%**. ---- - ## Project Background The Semantic Router is not the isolated result of a single paper but a collaborative outcome of sustained community contributions: * Originally proposed by **[Dr. Chen Huamin](https://www.linkedin.com/in/huaminchen)**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. * Iterated and further developed by **[Xunzhuo Liu](https://www.linkedin.com/in/bitliu)** at **Tencent**, later contributed to the vLLM community. -* **[Dr. Wang Chen](https://www.linkedin.com/in/chenw615)** from **IBM Research** and **Dr. Chen Huamin** will present the project at **KubeCon North America 2025**. +* **[Dr. Wang Chen](https://www.linkedin.com/in/chenw615)** from **IBM Research** and **Dr. Chen Huamin** will present the project at **[KubeCon North America 2025](https://kccncna2025.sched.com/event/27FaI/intelligent-llm-routing-a-new-paradigm-for-multi-model-ai-orchestration-in-kubernetes-chen-wang-ibm-research-huamin-chen-red-hat?iframe=no&w=100%&sidebar=yes&bg=no)**. The mission is clear: to serve as an **inference accelerator** for open-source large models: @@ -84,8 +82,6 @@ The vLLM Semantic Router is therefore not just a research milestone but an **ess You can start exploring the project at [GitHub](https://github.com/vllm-project/semantic-router). We're currently working on the [v0.1 Roadmap](https://github.com/vllm-project/semantic-router/issues/14) and have established a [Work Group](https://github.com/vllm-project/semantic-router/issues/15). We welcome your thoughts and invite you to join us! ---- - ## Future Trends: Cost-Effective, Just-in-Time Inference The central industry question has shifted from *"Can we perform inference?"* to *"When and how should inference be performed?"* @@ -101,8 +97,6 @@ The new competitive focus will be less about model scale and more about: The next frontier is **intelligent, self-adjusting inference mechanisms** — systems that autonomously determine when to "think deeply" and when to respond directly, without explicit user toggles or hardcoded rules. ---- - ## One-Sentence Summary * **GPT-5**: Business-driven routing → broad intelligence. From 11717a3d1976a362ec4ed7cf217efe62020147f4 Mon Sep 17 00:00:00 2001 From: bitliu Date: Thu, 4 Sep 2025 11:42:38 +0800 Subject: [PATCH 6/7] resolve reviews Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 65 +++++++++++++++------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md index 0f3523c..0adc005 100644 --- a/_posts/2025-09-01-semantic-router.md +++ b/_posts/2025-09-01-semantic-router.md @@ -9,52 +9,59 @@ image: /assets/logos/vllm-logo-text-light.png ## Industry Status: Inference ≠ More Is Better -Over the past year, **hybrid reasoning and automatic routing** have emerged as some of the most discussed topics in the large-model ecosystem. +Over the past year, **hybrid reasoning and automatic routing** have become central to discussions in the large-model ecosystem. The focus is shifting from raw parameter counts to **efficiency, selectivity**, and **per-token value**. -Take **GPT-5** as an example. Its most significant breakthrough is not simply the number of parameters, but the introduction of **automatic routing and thinking quotas**: +Take **GPT-5** as an example. Its most notable breakthrough isn’t sheer size, but the introduction of **automatic routing and thinking quotas**: -* **Light queries → Lightweight models**: For example, "Why is the sky blue?" does not require an expensive inference model. -* **Complex/High-value queries → Advanced models**: Tasks such as legal analysis or financial simulations are routed to models with Chain-of-Thought capabilities. +* **Light queries → Lightweight models**: Simple prompts like “Why is the sky blue?” don’t need costly reasoning-heavy inference. +* **Complex/High-value queries → Advanced models**: Legal analysis, financial simulations, or multi-step reasoning tasks are routed to models with Chain-of-Thought capabilities. -The principle behind this is often described as **per-token unit economics**. +This shift reflects a new principle of **per-token unit economics**. -Every token generated must deliver value rather than being treated as pure computational expense. +Every token generated must deliver value, rather than being treated as sunk computational cost. -For example: +Use cases: -* Free-tier users receive answers from lightweight models, keeping costs under control. -* When a query indicates commercial intent (e.g., booking flights or finding legal services), it is routed to high-compute models or agent services directly integrated into transaction flows. +* Free-tier users are served by lightweight models, keeping costs sustainable. +* Queries with clear commercial intent — e.g., booking flights or finding legal services — are escalated to high-compute models or directly integrated agent services. In these cases, providers can monetize not only inference but also downstream transactions, turning free usage into a revenue engine. In these cases, companies like OpenAI can participate in the value chain by taking a commission on completed transactions — transforming free usage from a cost center into a monetizable entry point. -Other companies are adopting similar strategies: +Other leaders are adopting similar strategies: -* **Anthropic Claude 3.7/4**: Combines "fast thinking" and "slow thinking" with user-controlled toggles. -* **Google Gemini 2.5**: Introduces a *thinking budget*, giving enterprises fine-grained control over inference costs. -* **Alibaba Qwen3**: Explores instruction-based switching between reasoning and non-reasoning modes. -* **DeepSeek v3.1**: Implements a "single-model dual-mode" design, merging dialogue and reasoning. +* **Anthropic Claude 3.7/4**: blends “fast thinking” and “slow thinking,” with user-controlled toggles. +* **Google Gemini 2.5**: introduces a *thinking budget*, giving enterprises fine-grained control over inference costs. +* **Alibaba Qwen3**: explores instruction-based switching between reasoning and non-reasoning. +* **DeepSeek v3.1**: pioneers a dual-mode single-model design, merging conversational and reasoning flows. -In short: the industry is entering an era where **no token should be wasted**. +In short: the industry is entering an era where **no token is wasted** — and **routing intelligence** defines the frontier of model innovation. ## Recent Research: vLLM Semantic Router -Amid this shift toward hybrid reasoning, we focus on the **open-source inference engine vLLM**. +As the industry moves toward hybrid reasoning and intelligent routing, this project zeroes in on the **open-source inference engine vLLM**. -While vLLM has become the de facto standard for deploying large models, it lacks fine-grained, semantic-level control — the ability to make routing decisions based on meaning rather than query type alone. Developers are often forced to either enable full inference (wasting computation) or disable it entirely (sacrificing accuracy). +vLLM has quickly become the **de facto standard** for serving large models at scale. Yet, it still lacks **semantic-level control** — the ability to decide when and how to apply reasoning based on the actual meaning of a query, not just its type. Without this capability, developers face an all-or-nothing trade-off: -To address this, we propose the **vLLM Semantic Router**, which brings GPT-5-style "smart routing" to the open-source ecosystem. +* Enable reasoning everywhere → higher accuracy, but wasted computation and inflated costs. +* Disable reasoning entirely → lower cost, but accuracy drops sharply on reasoning-heavy tasks. + +To overcome this gap, we introduce the **vLLM Semantic Router** — an intent-aware, fine-grained routing layer that brings **GPT-5-style “smart routing”** to the open-source ecosystem. + +By classifying queries at the semantic level and selectively enabling reasoning, the vLLM Semantic Router delivers **higher accuracy where it matters** and **significant cost savings where it doesn’t** — a step toward the principle that no token should be wasted. ![](/assets/figures/semantic-router/architecture.png) ### Architecture Design -1. **Semantic Classification**: Uses a **ModernBERT** fine-tuned intent classifier to determine whether a query requires inference. +The **vLLM Semantic Router** is built to combine fine-grained semantic awareness with production-grade performance. Its design includes four key components: + +1. **Semantic Classification**: A **ModernBERT** fine-tuned intent classifier determines whether each query requires advanced reasoning or can be handled by lightweight inference. 2. **Smart Routing**: - * Simple queries → Fast inference mode. - * Complex queries → Chain-of-Thought for accurate reasoning. -3. **High-Performance Engine**: Built with Rust and the Hugging Face Candle framework, enabling high concurrency and zero-copy efficiency. -4. **Cloud-Native Integration**: Seamlessly integrates with Kubernetes and API Gateways via the Envoy `ext_proc` plugin for enterprise deployments. + * Simple queries → Fast inference mode. Minimal latency and cost for straightforward requests. + * Complex queries → Chain-of-Thought for accurate reasoning. Ensures accuracy on tasks that demand multi-step reasoning. +3. **High-Performance Engine**: Implemented in **Rust** using the **Hugging Face Candle** framework, the engine achieves high concurrency and **zero-copy efficiency**, making it well-suited for large-scale serving. +4. **Cloud-Native Integration**: Seamlessly integrates with **Kubernetes** and **API Gateways** through the **Envoy** `ext_proc` plugin. Experimental results show: @@ -66,7 +73,7 @@ In knowledge-intensive areas such as business and economics, accuracy improvemen ## Project Background -The Semantic Router is not the isolated result of a single paper but a collaborative outcome of sustained community contributions: +The **vLLM Semantic Router** is not the isolated result of a single paper but a collaborative outcome of sustained community contributions: * Originally proposed by **[Dr. Chen Huamin](https://www.linkedin.com/in/huaminchen)**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. * Iterated and further developed by **[Xunzhuo Liu](https://www.linkedin.com/in/bitliu)** at **Tencent**, later contributed to the vLLM community. @@ -86,16 +93,16 @@ You can start exploring the project at [GitHub](https://github.com/vllm-project/ The central industry question has shifted from *"Can we perform inference?"* to *"When and how should inference be performed?"* -* **GPT-5**: Uses automatic routing and thinking quotas to align computation with commercial value, enabling monetization. -* **vLLM Semantic Router**: Brings semantic routing to the open-source vLLM engine, enabling low-latency, energy-efficient inference scheduling. +* **GPT-5**: exemplifies this shift with **automatic routing** and **thinking quotas** to align computation with commercial value, enabling monetization. +* **vLLM Semantic Router**: extends this paradigm to the open-source **vLLM engine**, enabling **semantic aware**, **low-latency**, and **energy-efficient** inference routing. -The new competitive focus will be less about model scale and more about: +Looking ahead, competitive differentiation will hinge less on sheer **model scale** and more on: * **Performing inference at the right moment with the lowest cost.** -* **Switching between fast and slow reasoning with precision.** +* **Switching seamlessly between fast and slow reasoning modes.** * **Preserving user experience without wasting compute.** -The next frontier is **intelligent, self-adjusting inference mechanisms** — systems that autonomously determine when to "think deeply" and when to respond directly, without explicit user toggles or hardcoded rules. +The next frontier is **intelligent, self-adjusting inference systems** — engines that autonomously decide when to think deeply and when to respond directly, without user toggles or rigid rules. This shift marks a new era where inference becomes not just powerful, but **context-aware, adaptive, and economically sustainable**. ## One-Sentence Summary From 87c5b927b418a02e8859e13095d2936d572ce3fc Mon Sep 17 00:00:00 2001 From: bitliu Date: Thu, 11 Sep 2025 11:47:10 +0800 Subject: [PATCH 7/7] update Signed-off-by: bitliu --- _posts/2025-09-01-semantic-router.md | 111 -------------------------- _posts/2025-09-11-semantic-router.md | 115 +++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 111 deletions(-) delete mode 100644 _posts/2025-09-01-semantic-router.md create mode 100644 _posts/2025-09-11-semantic-router.md diff --git a/_posts/2025-09-01-semantic-router.md b/_posts/2025-09-01-semantic-router.md deleted file mode 100644 index 0adc005..0000000 --- a/_posts/2025-09-01-semantic-router.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: post -title: "vLLM Semantic Router: Next Phase in LLM inference" -author: "vLLM Semantic Router Team" -image: /assets/logos/vllm-logo-text-light.png ---- - -![](/assets/figures/semantic-router/request.png) - -## Industry Status: Inference ≠ More Is Better - -Over the past year, **hybrid reasoning and automatic routing** have become central to discussions in the large-model ecosystem. The focus is shifting from raw parameter counts to **efficiency, selectivity**, and **per-token value**. - -Take **GPT-5** as an example. Its most notable breakthrough isn’t sheer size, but the introduction of **automatic routing and thinking quotas**: - -* **Light queries → Lightweight models**: Simple prompts like “Why is the sky blue?” don’t need costly reasoning-heavy inference. -* **Complex/High-value queries → Advanced models**: Legal analysis, financial simulations, or multi-step reasoning tasks are routed to models with Chain-of-Thought capabilities. - -This shift reflects a new principle of **per-token unit economics**. - -Every token generated must deliver value, rather than being treated as sunk computational cost. - -Use cases: - -* Free-tier users are served by lightweight models, keeping costs sustainable. -* Queries with clear commercial intent — e.g., booking flights or finding legal services — are escalated to high-compute models or directly integrated agent services. In these cases, providers can monetize not only inference but also downstream transactions, turning free usage into a revenue engine. - -In these cases, companies like OpenAI can participate in the value chain by taking a commission on completed transactions — transforming free usage from a cost center into a monetizable entry point. - -Other leaders are adopting similar strategies: - -* **Anthropic Claude 3.7/4**: blends “fast thinking” and “slow thinking,” with user-controlled toggles. -* **Google Gemini 2.5**: introduces a *thinking budget*, giving enterprises fine-grained control over inference costs. -* **Alibaba Qwen3**: explores instruction-based switching between reasoning and non-reasoning. -* **DeepSeek v3.1**: pioneers a dual-mode single-model design, merging conversational and reasoning flows. - -In short: the industry is entering an era where **no token is wasted** — and **routing intelligence** defines the frontier of model innovation. - -## Recent Research: vLLM Semantic Router - -As the industry moves toward hybrid reasoning and intelligent routing, this project zeroes in on the **open-source inference engine vLLM**. - -vLLM has quickly become the **de facto standard** for serving large models at scale. Yet, it still lacks **semantic-level control** — the ability to decide when and how to apply reasoning based on the actual meaning of a query, not just its type. Without this capability, developers face an all-or-nothing trade-off: - -* Enable reasoning everywhere → higher accuracy, but wasted computation and inflated costs. -* Disable reasoning entirely → lower cost, but accuracy drops sharply on reasoning-heavy tasks. - -To overcome this gap, we introduce the **vLLM Semantic Router** — an intent-aware, fine-grained routing layer that brings **GPT-5-style “smart routing”** to the open-source ecosystem. - -By classifying queries at the semantic level and selectively enabling reasoning, the vLLM Semantic Router delivers **higher accuracy where it matters** and **significant cost savings where it doesn’t** — a step toward the principle that no token should be wasted. - -![](/assets/figures/semantic-router/architecture.png) - -### Architecture Design - -The **vLLM Semantic Router** is built to combine fine-grained semantic awareness with production-grade performance. Its design includes four key components: - -1. **Semantic Classification**: A **ModernBERT** fine-tuned intent classifier determines whether each query requires advanced reasoning or can be handled by lightweight inference. -2. **Smart Routing**: - - * Simple queries → Fast inference mode. Minimal latency and cost for straightforward requests. - * Complex queries → Chain-of-Thought for accurate reasoning. Ensures accuracy on tasks that demand multi-step reasoning. -3. **High-Performance Engine**: Implemented in **Rust** using the **Hugging Face Candle** framework, the engine achieves high concurrency and **zero-copy efficiency**, making it well-suited for large-scale serving. -4. **Cloud-Native Integration**: Seamlessly integrates with **Kubernetes** and **API Gateways** through the **Envoy** `ext_proc` plugin. - -Experimental results show: - -* **Accuracy**: +10.2% -* **Latency**: –47.1% -* **Token Consumption**: –48.5% - -In knowledge-intensive areas such as business and economics, accuracy improvements can exceed **20%**. - -## Project Background - -The **vLLM Semantic Router** is not the isolated result of a single paper but a collaborative outcome of sustained community contributions: - -* Originally proposed by **[Dr. Chen Huamin](https://www.linkedin.com/in/huaminchen)**, Distinguished Engineer at **Red Hat**, in early **2025** across multiple open-source communities. -* Iterated and further developed by **[Xunzhuo Liu](https://www.linkedin.com/in/bitliu)** at **Tencent**, later contributed to the vLLM community. -* **[Dr. Wang Chen](https://www.linkedin.com/in/chenw615)** from **IBM Research** and **Dr. Chen Huamin** will present the project at **[KubeCon North America 2025](https://kccncna2025.sched.com/event/27FaI/intelligent-llm-routing-a-new-paradigm-for-multi-model-ai-orchestration-in-kubernetes-chen-wang-ibm-research-huamin-chen-red-hat?iframe=no&w=100%&sidebar=yes&bg=no)**. - -The mission is clear: to serve as an **inference accelerator** for open-source large models: - -* Preserve accuracy while minimizing unnecessary token usage. -* Enable seamless switching between "fast" and "slow" thinking modes without fully enabling or disabling inference. -* Deliver production-ready enterprise integration through native Kubernetes and Envoy support. - -The vLLM Semantic Router is therefore not just a research milestone but an **essential bridge for open-source AI infrastructure**, translating **academic innovation into industrial application**. - -You can start exploring the project at [GitHub](https://github.com/vllm-project/semantic-router). We're currently working on the [v0.1 Roadmap](https://github.com/vllm-project/semantic-router/issues/14) and have established a [Work Group](https://github.com/vllm-project/semantic-router/issues/15). We welcome your thoughts and invite you to join us! - -## Future Trends: Cost-Effective, Just-in-Time Inference - -The central industry question has shifted from *"Can we perform inference?"* to *"When and how should inference be performed?"* - -* **GPT-5**: exemplifies this shift with **automatic routing** and **thinking quotas** to align computation with commercial value, enabling monetization. -* **vLLM Semantic Router**: extends this paradigm to the open-source **vLLM engine**, enabling **semantic aware**, **low-latency**, and **energy-efficient** inference routing. - -Looking ahead, competitive differentiation will hinge less on sheer **model scale** and more on: - -* **Performing inference at the right moment with the lowest cost.** -* **Switching seamlessly between fast and slow reasoning modes.** -* **Preserving user experience without wasting compute.** - -The next frontier is **intelligent, self-adjusting inference systems** — engines that autonomously decide when to think deeply and when to respond directly, without user toggles or rigid rules. This shift marks a new era where inference becomes not just powerful, but **context-aware, adaptive, and economically sustainable**. - -## One-Sentence Summary - -* **GPT-5**: Business-driven routing → broad intelligence. -* **vLLM Semantic Router**: Efficiency-driven routing → sustainable AI. -* **Future edge**: Performing the right inference at the right time, with minimal computation. diff --git a/_posts/2025-09-11-semantic-router.md b/_posts/2025-09-11-semantic-router.md new file mode 100644 index 0000000..733402d --- /dev/null +++ b/_posts/2025-09-11-semantic-router.md @@ -0,0 +1,115 @@ +--- +layout: post +title: "vLLM Semantic Router: Next Phase in LLM inference" +author: "vLLM Semantic Router Team" +image: /assets/logos/vllm-logo-text-light.png +--- + +![](/assets/figures/semantic-router/request.png) + +## Industry Status: Inference ≠ More Is Better + +Over the past year, hybrid reasoning and automatic routing have increasingly defined progress in large-model infrastructure—shifting the debate from raw scale to per-token efficiency, latency control, and targeted compute use. + +Take GPT-5 for example: its standout innovation lies not in sheer parameters, but in routing policies and quota-based reasoning: + +- Light queries → lightweight paths: trivial prompts like “Why is the sky blue?” don’t trigger expensive reasoning. +- Complex/high-value queries → reasoning-enabled models: multi-step tasks—like legal analysis or financial planning—are routed to Chain-of-Thought–enabled inference. + +This represents a broader principle of task-aware compute allocation, where every inference token must contribute meaningful value—not just be consumed. + +Similar ideas are appearing in other systems: + +- Anthropic Claude 3.7/4: differentiates “fast thinking” and “slow thinking” pathways. +- Google Gemini 2.5: offers explicit *thinking budgets*, allowing enterprises to cap reasoning depth. +- Alibaba Qwen3: supports instruction-driven switching between reasoning and non-reasoning modes. +- DeepSeek v3.1: merges conversational and reasoning flows within a dual-mode single model. + +The trend is clear: future inference systems will be defined by selectivity and intelligence, not just model size. + +## Recent Research: vLLM Semantic Router + +Responding to this shift, the vLLM Semantic Router offers an open-source, intent-aware routing layer for the highly efficient vLLM inference engine. + +vLLM enables scalable LLM serving—but lacks semantic decision-making around reasoning. Developers face a trade-off: + +- Enable reasoning always → accuracy increases, but so does cost. +- Disable reasoning → cost drops, but accuracy suffers on complex tasks. + +The Semantic Router fills this gap by classifying queries semantically and routing them appropriately, giving accurate results where needed and efficiency where reasoning is unnecessary. + +![](/assets/figures/semantic-router/architecture.png) + +### Architecture Design + +The system comprises four pillars: + +1. Semantic Classification: Uses ModernBERT—currently a lightweight, standalone classifier integrated into the router—to determine routing paths. +2. Smart Routing: + - Simple queries → "fast path" inference. + - Complex queries → "Chain-of-Thought" reasoning mode. +3. High-Performance Engine: Written in Rust using Hugging Face Candle, it delivers high concurrency and zero-copy inference. +4. Cloud-Native Integration: Works out-of-the-box with Kubernetes and Envoy via the `ext_proc` plugin. + +In trials, this design yielded: + +- \~10% higher accuracy +- \~50% lower latency +- \~50% fewer tokens + +In business and economics domains, gains exceeded 20% accuracy improvements. + +## Challenges in Execution: Budgets and Tool Calling + +Two technical constraints are important to address: + +- Reasoning Budget Costs + Unlimited reasoning inflates cold-start latency and resource usage. Without dynamic control, simple queries may over-consume tokens while critical queries may not get deep reasoning when needed. SLOs like TTFT and p95 latency are necessary—with possible adaptation mid-inference. +- Tool Calling Constraints + Adding more tools (i.e. “tool catalog bloat”) or longer tool outputs can drastically reduce accuracy. The router must pre-filter tools and keep catalogs tight. + +## Project Background + +The Semantic Router evolved from contributions across the open-source community: + +- Proposed in early 2025 by [Dr. Chen Huamin](https://www.linkedin.com/in/huaminchen) (Red Hat) +- Further developed by [Xunzhuo Liu](https://www.linkedin.com/in/bitliu) (Tencent) +- To be presented by [Dr. Wang Chen](https://www.linkedin.com/in/chenw615) (IBM Research) and Dr. Chen Huamin at [KubeCon North America 2025](https://kccncna2025.sched.com/event/27FaI/intelligent-llm-routing-a-new-paradigm-for-multi-model-ai-orchestration-in-kubernetes-chen-wang-ibm-research-huamin-chen-red-hat?iframe=no&w=100%&sidebar=yes&bg=no) + +Our goal: provide inference acceleration for open-source LLMs through: + +- Semantic-aware routing +- Efficient model switching +- Enterprise-friendly deployment (Kubernetes & Envoy) + +Find the project on [GitHub](https://github.com/vllm-project/semantic-router). The current focus is on a [Work Group](https://vllm-semantic-router.com/community/work-groups) and planned [v0.1 Roadmap](https://vllm-semantic-router.com/roadmap/v0.1). + +## Integration & Future Work: Embeddings and Pluggability + +Currently, ModernBERT runs internally within the router for classification. It is not yet served by vLLM. However, future work aims to make the classifier—and potentially other embedding models—pluggable, allowing integration with vLLM-hosted models or external embedding services. + +This capability will enhance the semantic cache and enable smoother inference customization. + +## Roadmap: v0.1 Milestone Highlights + +The [v0.1 milestone](https://github.com/vllm-project/semantic-router/milestone/1) will expand the project’s technical capabilities: + +- Core: ExtProc-based modularity, semantic caching across backends, multi-factor routing logic +- Benchmarking: CLI tools, performance testing suite, reasoning-mode evaluation +- Networking: Deeper integration with Envoy, GIE, and llm-d gateways +- Observability & UX: Admin dashboards, routing policy visualization, developer quickstarts, and policy cookbook + +## Future Trends: Just-in-Time Inference + +The field is maturing from *“Can we run inference?”* to *“How can inference be smarter?”* + +- GPT-5 uses commercial value to guide reasoning depth. +- vLLM Semantic Router delivers that capability to open source. + +Looking ahead, systems that adapt their inference strategy on the fly, without manual toggles, will lead in efficiency, latency, and sustainability. + +## One-Sentence Summary + +- GPT-5: enterprise routing for smarter inference +- vLLM Semantic Router: technical-first routing for open-source LLMs +- Edge future: context-aware, minimal-compute inference that works seamlessly