{"id":18466,"date":"2026-09-06T17:32:59","date_gmt":"2026-09-06T17:32:59","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=18466"},"modified":"2026-09-06T17:32:59","modified_gmt":"2026-09-06T17:32:59","slug":"switchyard-nvidias-open-supply-routing-library","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=18466","title":{"rendered":"Switchyard: NVIDIA\u2019s Open Supply Routing Library"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"post-\">\n<p><img loading=\"lazy\" width=\"1774\" height=\"887\" decoding=\"async\" class=\"article-hero perfmatters-lazy\" alt=\"Switchyard: NVIDIA\u2019s Open Source Routing Library\" src=\"https:\/\/www.kdnuggets.com\/wp-content\/uploads\/kdn-switchyard-nvidias-open-source-routing-library-feature.png\"\/><\/p>\n<p>Most manufacturing AI brokers nonetheless ship each LLM name to the identical costly frontier mannequin. Classification steps, easy software calls, progress checks, and exhausting reasoning all hit the identical endpoint. The result&#8217;s pointless price and latency. <strong><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/NVIDIA-NeMo\/Switchyard\" target=\"_blank\">NVIDIA NeMo Switchyard<\/a><\/strong> solves this.<\/p>\n<p>It&#8217;s an open-source routing layer (proxy + library) that sits between your agent and the fashions. It decides, request by request or flip by flip, which mannequin ought to deal with the work. On this tutorial, we&#8217;ll construct a working two-model router and step by step transfer from random routing to content-aware routing. So, let&#8217;s get began.<\/p>\n<h2 class=\"article-heading\">What Precisely Does Switchyard Do?<\/h2>\n<p>A traditional LLM software may appear like this:<\/p>\n<pre class=\"article-code\"><code>Utility&#13;\n    |&#13;\n    v&#13;\nGPT \/ Claude \/ Native LLM<\/code><\/pre>\n<p>Switchyard provides a routing layer:<\/p>\n<pre class=\"article-code\"><code>Utility&#13;\n    |&#13;\n    v&#13;\nSwitchyard&#13;\n   \/   &#13;\n  v     v&#13;\nLow cost   Highly effective&#13;\nMannequin   Mannequin<\/code><\/pre>\n<p>The applying doesn&#8217;t must know which upstream mannequin finally serves the request. Switchyard selects the precise goal and forwards the request. Let&#8217;s examine this virtually.<\/p>\n<h2 class=\"article-heading\">Step 1: Putting in Switchyard<\/h2>\n<p>For the CLI\/server path, the venture documentation supplies a <strong><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/docs.astral.sh\/uv\/\" target=\"_blank\">uv<\/a><\/strong> set up route:<\/p>\n<pre class=\"article-code\"><code>uv software set up \"nemo-switchyard[cli,server]\"<\/code><\/pre>\n<p>Confirm the set up:<\/p>\n<pre class=\"article-code\"><code>switchyard --version<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre class=\"article-code\"><code>switchyard 0.2.0&#13;\nnemo-switchyard v0.2.0<\/code><\/pre>\n<p>Alternatively, the native Rust server will be put in instantly with Cargo:<\/p>\n<pre class=\"article-code\"><code>cargo set up --locked switchyard-server<\/code><\/pre>\n<p>For this tutorial, we&#8217;ll route fashions by means of <strong><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/openrouter.ai\/\" target=\"_blank\">OpenRouter<\/a><\/strong>, so export your API key:<\/p>\n<pre class=\"article-code\"><code>export OPENROUTER_API_KEY=\"your-key-here\"<\/code><\/pre>\n<p>Don&#8217;t retailer the API key instantly within the configuration file.<\/p>\n<h2 class=\"article-heading\">Step 2: Understanding a Switchyard Configuration<\/h2>\n<p>Let&#8217;s begin with the best attainable setup: two fashions and random routing.<\/p>\n<p>Create a YAML file named <code style=\"background: #F5F5F5;\">routes.random.yaml<\/code> and add:<\/p>\n<pre class=\"article-code\"><code>defaults:&#13;\n  base_url: https:\/\/openrouter.ai\/api\/v1&#13;\n  api_key: ${OPENROUTER_API_KEY}&#13;\n&#13;\nroutes:&#13;\n  ab-test:&#13;\n    kind: random_routing&#13;\n&#13;\n    robust:&#13;\n      mannequin: openai\/gpt-4o&#13;\n&#13;\n    weak:&#13;\n      mannequin: openai\/gpt-4o-mini&#13;\n&#13;\n    strong_probability: 0.3&#13;\n    rng_seed: 42&#13;\n    fallback_target_on_evict: weak<\/code><\/pre>\n<p>The important thing setting is:<\/p>\n<pre class=\"article-code\"><code>strong_probability: 0.3<\/code><\/pre>\n<p>Switchyard interprets this as roughly:<\/p>\n<pre class=\"article-code\"><code>30% -&gt; robust mannequin&#13;\n70% -&gt; weak mannequin<\/code><\/pre>\n<p>Random routing isn&#8217;t clever routing, however it&#8217;s helpful for A\/B exams and for validating the proxy earlier than introducing a classifier. <code style=\"background: #F5F5F5;\">fallback_target_on_evict<\/code> is required for this route kind and refers to a tier ID corresponding to <code style=\"background: #F5F5F5;\">robust<\/code> or <code style=\"background: #F5F5F5;\">weak<\/code>.<\/p>\n<h2 class=\"article-heading\">Step 3: Beginning the Routing Server<\/h2>\n<p>Begin Switchyard with:<\/p>\n<pre class=\"article-code\"><code>switchyard serve &#13;\n  -c routes.random.yaml &#13;\n  --host 127.0.0.1 &#13;\n  --port 4000<\/code><\/pre>\n<p>There is no such thing as a <code style=\"background: #F5F5F5;\">--dry-run<\/code> choice within the examined <code style=\"background: #F5F5F5;\">serve<\/code> CLI. Beginning the server is successfully the validation step: an invalid routing bundle fails throughout startup. You may confirm that the proxy is alive with:<\/p>\n<pre class=\"article-code\"><code>curl -s http:\/\/127.0.0.1:4000\/well being<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre class=\"article-code\"><code>{\"standing\":\"okay\"}<\/code><\/pre>\n<h2 class=\"article-heading\">Step 4: Sending a Request Via the Router<\/h2>\n<p>Now ship an OpenAI-compatible request:<\/p>\n<pre class=\"article-code\"><code>curl http:\/\/localhost:4000\/v1\/chat\/completions &#13;\n  -H \"Content material-Kind: software\/json\" &#13;\n  -d '{\"mannequin\":\"ab-test\",\"messages\":[{\"role\":\"user\",\"content\":\"Explain gradient descent in simple terms.\"}]}'<\/code><\/pre>\n<p>Discover this area:<\/p>\n<pre class=\"article-code\"><code>\"mannequin\": \"ab-test\"<\/code><\/pre>\n<p>Your consumer isn&#8217;t asking for a selected mannequin (gpt-4o or gpt-4o-mini). Switchyard chooses the precise mannequin. For this instance, the request landed on the weak tier:<\/p>\n<pre class=\"article-code\"><code>\"mannequin\": \"openai\/gpt-4o-mini\",&#13;\n\"utilization\": { \"prompt_tokens\": 14, \"completion_tokens\": 247, \"price\": 0.0001503 }<\/code><\/pre>\n<p><strong>Response:<\/strong><\/p>\n<pre class=\"article-code\"><code>Gradient descent is a technique utilized in optimization to seek out the minimal of a operate. Think about you are on a hilly panorama, and your purpose is to get to the bottom level within the valley. Here is the way it works, step-by-step:&#13;\n1) Begin at a Random Level: You start at a random location on the hill.&#13;\n2) Discover the Slope: You go searching and decide the steepness of the hill (the gradient) at your present location. This tells you which ones path is downhill.&#13;\n3) Take a Step Downhill: You are taking a step within the path that goes down the steepest slope. The size of your step known as the \"studying price\" \u2014 in case you take small steps, you are cautious, whereas bigger steps will get you there sooner however may lead you off target.&#13;\n4) Repeat: You retain repeating this course of, recalculating the slope and stepping down till you possibly can't go any decrease \u2014 that is the underside of the valley or the minimal of the operate.&#13;\n&#13;\nIn easy phrases, gradient descent is about marching down the hill step-by-step till you attain the bottom level. It is broadly utilized in machine studying to regulate fashions in order that they make higher predictions.<\/code><\/pre>\n<h2 class=\"article-heading\">Step 5: Upgrading to Clever Routing<\/h2>\n<p>Random routing is nice for experiments, however suppose we would like this habits:<\/p>\n<p>Easy request \u2014 low cost mannequin<\/p>\n<p>Exhausting request \u2014 robust mannequin<\/p>\n<p>Switchyard supplies a <code style=\"background: #F5F5F5;\">classifier<\/code> route for precisely this function. The classifier estimates whether or not the weaker mannequin can remedy the duty, then applies a configured threshold. Create <code style=\"background: #F5F5F5;\">routes.sensible.yaml<\/code> and write this configuration:<\/p>\n<pre class=\"article-code\"><code>defaults:&#13;\n  base_url: https:\/\/openrouter.ai\/api\/v1&#13;\n  api_key: ${OPENROUTER_API_KEY}&#13;\n&#13;\nroutes:&#13;\n  sensible:&#13;\n    kind: deterministic&#13;\n&#13;\n    classifier:&#13;\n      mannequin: openai\/gpt-4o-mini&#13;\n&#13;\n    robust:&#13;\n      mannequin: openai\/gpt-4o&#13;\n&#13;\n    weak:&#13;\n      mannequin: openai\/gpt-4o-mini&#13;\n&#13;\n    profile: common&#13;\n    session_affinity: true&#13;\n    fallback_target_on_evict: weak<\/code><\/pre>\n<p>And begin it:<\/p>\n<pre class=\"article-code\"><code>switchyard serve &#13;\n  -c routes.sensible.yaml &#13;\n  --host 127.0.0.1 &#13;\n  --port 4000<\/code><\/pre>\n<p>Now there are three roles:<\/p>\n<pre class=\"article-code\"><code>classifier&#13;\n    |&#13;\n    | predicts weak-model functionality&#13;\n    v&#13;\n+-------------------+&#13;\n| Ought to weak remedy?|&#13;\n+-------------------+&#13;\n       \/      &#13;\n      \/        &#13;\n    sure         no&#13;\n     |           |&#13;\n     v           v&#13;\n   weak        robust<\/code><\/pre>\n<p>The classifier produces a structured estimate containing a worth referred to as <code style=\"background: #F5F5F5;\">p_solve<\/code>: an estimate of the likelihood that the weak mannequin can efficiently full the request.<\/p>\n<h2 class=\"article-heading\">Step 6: Testing the Sensible Route<\/h2>\n<p>Attempt a simple query:<\/p>\n<pre class=\"article-code\"><code>curl http:\/\/localhost:4000\/v1\/chat\/completions &#13;\n  -H \"Content material-Kind: software\/json\" &#13;\n  -d '{&#13;\n    \"mannequin\": \"sensible\",&#13;\n    \"messages\": [&#13;\n      {&#13;\n        \"role\": \"user\",&#13;\n        \"content\": \"What is 15% of 200?\"&#13;\n      }&#13;\n    ]&#13;\n  }'<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre class=\"article-code\"><code>To seek out 15% of 200, you possibly can multiply 200 by 0.15:&#13;\n200 \u00d7 0.15 = 30&#13;\nSo, 15% of 200 is 30.<\/code><\/pre>\n<p>Then attempt a more durable one:<\/p>\n<pre class=\"article-code\"><code>curl http:\/\/localhost:4000\/v1\/chat\/completions &#13;\n  -H \"Content material-Kind: software\/json\" &#13;\n  -d '{&#13;\n    \"mannequin\": \"sensible\",&#13;\n    \"max_tokens\": 1500,&#13;\n    \"messages\": [&#13;\n      {&#13;\n        \"role\": \"user\",&#13;\n        \"content\": \"Find the race condition in a distributed job queue where workers acquire leases using non-transactional Redis operations, then propose a failure-safe redesign.\"&#13;\n      }&#13;\n    ]&#13;\n  }'<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre class=\"article-code\"><code>In a distributed job queue system utilizing Redis to handle and lease&#13;\njobs to staff, race situations can happen if a number of staff&#13;\ntry to amass a lease for a similar job concurrently utilizing&#13;\nnon-transactional operations. This may result in a number of staff&#13;\nincorrectly believing they've efficiently acquired the lease,&#13;\nleading to duplicate processing of the identical job.&#13;\n&#13;\n### Typical Race Situation Situation&#13;\n...&#13;\nBy incorporating these redesign components into the distributed job&#13;\nqueue structure, race situations will be considerably lowered&#13;\nand job leases will be dealt with extra reliably and safely.<\/code><\/pre>\n<p>We did not hard-code the mannequin choice right here. As an alternative, the classifier determines the suitable tier for every immediate and routes the request accordingly. When you take a look at the logs, you possibly can see which mannequin was finally chosen for every request.<\/p>\n<p>\u00a0<\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; color: #333;\">\n<thead>\n<tr style=\"background-color: #ffd29a;\">\n<th style=\"padding: 12px; border: 1px solid #ddd; text-align: left;\">Immediate<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd; text-align: left;\">Served Mannequin<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd; text-align: left;\">Tier<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd; text-align: left;\">Latency<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">&#8220;What&#8217;s 15% of 200?&#8221;<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\"><code>openai\/gpt-4o-mini<\/code><\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\"><strong>weak<\/strong><\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">1,428 ms<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Redis race-condition redesign<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\"><code>openai\/gpt-4o<\/code><\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\"><strong>robust<\/strong><\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">4,475 ms<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n<h2 class=\"article-heading\">Step 7: Routing Coding Brokers Primarily based on Their Progress<\/h2>\n<p>Immediate issue isn&#8217;t the one helpful routing sign.<\/p>\n<p>Contemplate a coding agent working for 30 turns. It could spend early turns exploring recordsdata, debugging failures, and reasoning about structure. Later turns might merely apply a longtime plan or make repetitive edits. Utilizing the strongest mannequin for each flip wastes inference funds. Switchyard&#8217;s <code style=\"background: #F5F5F5;\">stage_router<\/code> is designed for this sort of multi-turn workload. It makes use of dialog and tool-result alerts to resolve whether or not a flip ought to go to a <strong>succesful<\/strong> or <strong>environment friendly<\/strong> tier.<\/p>\n<p>You may create a configuration like this:<\/p>\n<pre class=\"article-code\"><code>routes:&#13;\n  stage:&#13;\n    kind: stage_router&#13;\n&#13;\n    robust:&#13;\n      mannequin: openai\/gpt-4o&#13;\n&#13;\n    weak:&#13;\n      mannequin: openai\/gpt-4o-mini&#13;\n&#13;\n    picker: efficient_first&#13;\n    confidence_threshold: 0.5&#13;\n    signal_recent_window: 3&#13;\n    fallback_target_on_evict: weak<\/code><\/pre>\n<p>The concept is:<\/p>\n<pre class=\"article-code\"><code>Agent flip&#13;\n    |&#13;\n    v&#13;\nCurrent progress \/ failure alerts&#13;\n    |&#13;\n    v&#13;\nIs additional functionality helpful now?&#13;\n     \/ &#13;\n    \/   &#13;\n weak   robust<\/code><\/pre>\n<p>Right here, the router seems to be for alerts related to issues corresponding to errors, repeated unproductive habits, exploration, and up to date productive adjustments. The purpose is to order the stronger mannequin for turns the place additional functionality seems helpful.<\/p>\n<h2 class=\"article-heading\">Step 8: Escalating Solely After the Weak Mannequin Struggles<\/h2>\n<p>One other technique is to keep away from predicting issue up entrance.<\/p>\n<p>Let a budget mannequin attempt first, then escalate when proof of sustained hassle seems. The move turns into:<\/p>\n<pre class=\"article-code\"><code>Request&#13;\n   |&#13;\n   v&#13;\nWeak mannequin&#13;\n   |&#13;\n   v&#13;\nDecide consequence&#13;\n  \/    &#13;\nokay   struggling&#13;\n |        |&#13;\n v        v&#13;\nkeep    robust mannequin<\/code><\/pre>\n<p>Switchyard calls this <strong>escalation routing<\/strong>. You may create a configuration like this:<\/p>\n<pre class=\"article-code\"><code>routes:&#13;\n  agent:&#13;\n    kind: escalation_router&#13;\n&#13;\n    robust:&#13;\n      mannequin: openai\/gpt-4o&#13;\n&#13;\n    weak:&#13;\n      mannequin: openai\/gpt-4o-mini&#13;\n&#13;\n    choose:&#13;\n      mannequin: openai\/gpt-4o-mini&#13;\n      confirmations: 2&#13;\n      recent_turn_window: 28&#13;\n      window_message_chars: 500&#13;\n&#13;\n    fallback_target_on_evict: weak<\/code><\/pre>\n<p>That is conceptually completely different from up-front deterministic classification. Deterministic\/functionality routing asks:<\/p>\n<pre class=\"article-code\"><code>How troublesome does this request seem?<\/code><\/pre>\n<p>Escalation routing asks:<\/p>\n<pre class=\"article-code\"><code>Is the weak mannequin really moving into hassle?<\/code><\/pre>\n<p>This makes escalation helpful for long-running agent periods the place activity issue can change over time.<\/p>\n<h2 class=\"article-heading\">Step 9: Measuring Whether or not Routing Is Truly Serving to<\/h2>\n<p>A router is just helpful if it improves the quality-cost trade-off. Switchyard exposes Prometheus metrics and statistics round requests, errors, latency, tokens, and routing habits. The venture additionally helps structured request telemetry and optionally available routing logs.<\/p>\n<p>You may get server metrics with:<\/p>\n<pre class=\"article-code\"><code>curl -s http:\/\/localhost:4000\/metrics | head<\/code><\/pre>\n<p>and mixture JSON statistics:<\/p>\n<pre class=\"article-code\"><code>curl -s http:\/\/localhost:4000\/v1\/stats | python3 -m json.software<\/code><\/pre>\n<p>For experiments, examine a minimum of three runs:<\/p>\n<p>\u00a0<\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; color: #333;\">\n<thead>\n<tr style=\"background-color: #ffd29a;\">\n<th style=\"padding: 12px; border: 1px solid #ddd; text-align: left;\">Configuration<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd; text-align: left;\">Objective<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">All the time robust<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">High quality ceiling and value baseline<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">All the time weak<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Low cost baseline<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Switchyard router<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Take a look at whether or not routing captures most strong-model high quality at decrease price<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n<p>The extra helpful query isn&#8217;t whether or not the router was 85% correct, however <strong>how a lot of the robust mannequin&#8217;s high quality did routing protect, and the way a lot price and latency did it scale back?<\/strong> For instance:<\/p>\n<pre class=\"article-code\"><code>Sturdy-only:&#13;\n$20&#13;\n92% activity success&#13;\n&#13;\nWeak-only:&#13;\n$5&#13;\n71% activity success&#13;\n&#13;\nRouter:&#13;\n$9&#13;\n89% activity success<\/code><\/pre>\n<p>This tells you whether or not routing is economically helpful.<\/p>\n<h2 class=\"article-heading\">Remaining Ideas<\/h2>\n<p>As LLM programs turn into extra agentic, the query is shifting from:<\/p>\n<p>\u00a0<\/p>\n<blockquote>\n<p>\nWhich mannequin ought to I exploit?\n<\/p>\n<\/blockquote>\n<p>\u00a0<\/p>\n<p>to:<\/p>\n<p>\u00a0<\/p>\n<blockquote>\n<p>\nWhich mannequin ought to I exploit <strong>for this request, at this level within the workflow, beneath this price funds?<\/strong>\n<\/p>\n<\/blockquote>\n<p>\u00a0<\/p>\n<p>Switchyard is NVIDIA&#8217;s try to show that call into reusable infrastructure.<\/p>\n<p>For a primary experiment, do not soar instantly into stage routing or advanced agent escalation.<\/p>\n<p>Begin with two fashions.<\/p>\n<p>Measure them independently.<\/p>\n<p>Use weighted random routing to confirm your setup.<\/p>\n<p>Then introduce capability-based routing and measure whether or not it preserves a lot of the robust mannequin&#8217;s high quality whereas shifting a significant share of requests to the cheaper tier.<\/p>\n<p>This experiment provides you one thing way more helpful than one other LLM benchmark:<\/p>\n<pre class=\"article-code\"><code>a quality-versus-cost curve on your precise workload.<\/code><\/pre>\n<p>And that&#8217;s finally what clever mannequin routing is making an attempt to optimize.<\/p>\n<p>\u00a0<br \/>\u00a0<\/p>\n<p><b><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/kanwal-mehreen1\/\" rel=\"noopener\"><strong><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/kanwal-mehreen1\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kanwal Mehreen<\/a><\/strong><\/a><\/b> is a machine studying engineer and a technical author with a profound ardour for information science and the intersection of AI with drugs. She co-authored the e book &#8220;Maximizing Productiveness with ChatGPT&#8221;. As a Google Technology Scholar 2022 for APAC, she champions range and tutorial excellence. She&#8217;s additionally acknowledged as a Teradata Range in Tech Scholar, Mitacs Globalink Analysis Scholar, and Harvard WeCode Scholar. Kanwal is an ardent advocate for change, having based FEMCodes to empower ladies in STEM fields.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Most manufacturing AI brokers nonetheless ship each LLM name to the identical costly frontier mannequin. Classification steps, easy software calls, progress checks, and exhausting reasoning all hit the identical endpoint. The result&#8217;s pointless price and latency. NVIDIA NeMo Switchyard solves this. It&#8217;s an open-source routing layer (proxy + library) that sits between your agent and [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":18468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[3424,5125,525,6804,1683,10453],"class_list":["post-18466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-learning","tag-library","tag-nvidias","tag-open","tag-routing","tag-source","tag-switchyard"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/18466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18466"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/18466\/revisions"}],"predecessor-version":[{"id":18467,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/18466\/revisions\/18467"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/18468"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}