Archive 27.05.2026

Page 28 of 66
1 26 27 28 29 30 66

Industry-standard LLM benchmarks in DataRobot

Every LLM deployment has a ceiling, a latency curve, and a unit cost. Most teams operate blindly, discovering their deployment limits only when over-provisioning exhausts their GPU budget or peak traffic causes a catastrophic failure.

Three numbers matter: maximum sustained concurrency before GPU saturation, end-to-end latency at that concurrency, and cost per million tokens at sustained load. These metrics emerge from how the model interacts with your hardware, runtime, tokenizer, and traffic mix.

DataRobot 11.8 changes that with LLM Profiling Jobs: a native integration of NVIDIA AIPerf, the industry-standard generative AI benchmarking tool. One authenticated POST benchmarks any DataRobot LLM deployment serving an OpenAI-compatible web server, sweeps the concurrency range and use cases you define, and returns the empirical inputs to Quota Reservations (available in DataRobot 11.9).

Why LLM capacity is hard to predict

LLM inference doesn’t scale linearly. Compute and memory demands per request depend dynamically on prompt length, response length, sampling parameters, and KV cache utilization.A deployment that serves 50 short chat turns per second can stall at 5 long-context RAG requests per second on the same hardware. Four distinct behaviors make static or speculative capacity estimates unreliable:

  • Latency is non-linear in concurrency. Time to first token and inter-token latency stay roughly flat across a wide concurrency range, then rise sharply once GPU memory bandwidth or compute saturates. TTFT rises when prefill compute saturates; inter-token latency rises when decode memory bandwidth saturates. Which one bites first depends on the workload mix and the deployment’s GPU configuration (single card or a cluster). The saturation knee is the operating point that matters, and it can’t be inferred from a single low-load measurement.
  • Throughput and latency trade off. You can squeeze more total tokens per second out of a deployment by running it at higher concurrency, at the cost of slower per-user response. The right trade-off depends on your SLO, not on a generic recommendation.
  • Use case mix matters. Two deployments running the same model on the same hardware can have very different capacity if one serves short Q&A and the other serves long-context summarization. The mix has to be in the test, or the test is wrong.
  • Caching and routing change the answer. Prefix caching (common in agentic coding with periodic compaction) and KV-aware routing can lift effective throughput dramatically. Profiles run against a cold deployment with random inputs represent the floor, not the ceiling.

LLM Profiling Jobs make those curves visible.

How LLM benchmarks help

  • Defend capacity and quota decisions with measured data. When finance questions a four-H100 footprint, or when cross-functional teams negotiate shared capacity, you can justify the architecture with empirical profiling data. Saturation knee, SLO target, and forecast traffic make GPU sizing an evidence-based line item. The same numbers feed Quota Reservations directly.
  • Account for cost per consumer. Total token throughput plus the GPU instance cost gives a cost-per-million-tokens figure that supports chargeback or showback. Attribute spend to consumers proportionally to their reservations, not by guesswork.
  • Compare models and hardware on equal terms. Hold the workload profile constant and vary one dimension at a time: the same model on different GPU configurations (a B200 node vs a B300 node, or 4×H100 vs 8×H100), or different models on the same configuration (Qwen3.6 35B-A3B MoE vs Qwen3.6 27B dense). Because AIPerf metrics match NVIDIA’s published NIM benchmarks, the numbers are also directly comparable to public benchmarks for the same model and hardware combinations. The right input for procurement and capacity-sizing decisions before a hardware order.
  • Prove a change is safe before you ship it. Before a model upgrade, vLLM bump, driver swap, or GPU migration, rerun the same profile and compare against the prior baseline. Regressions show up in the metrics, not in incident reports.

What LLM benchmark metrics mean

The four headline metrics AIPerf returns map directly to user experience and to GPU economics:

  • Time to first token (TTFT, ms). Measures how long a user waits between submitting a prompt and seeing the first character; this metric is dominated by prefill compute.
  • Inter-token latency (ITL, ms). Average time between successive output tokens once generation has started. Sets the perceived “typing speed” of the response.
  • Request throughput (requests/sec). Full request-and-response cycles per second at the tested concurrency. The basis for the Capacity (RPM) value on Quota Reservations.
  • Total token throughput (tokens/sec). Total tokens (input plus output) processed per second across all concurrent requests. The basis for cost-per-token economics.

For each metric, AIPerf reports averages and percentiles (p50, p90, p99). When GPU saturation is detected during the sweep, estimatedCapacity reports the iteration immediately before it. When saturation isn’t detected (the common case, since the profiler isn’t co-located with the deployment), estimatedCapacity reports the last iteration tested. Sweep wide enough that the curve clearly bends, or treat the result as a lower bound.

Submitting a job

A profiling request takes four parameters: a deploymentId (the ID of the DataRobot LLM deployment you want to profile), a list of concurrency levels to sweep, a request count scalar (how many requests each concurrent worker issues), and one or more use cases. Each use case defines an input sequence length (ISL), an output sequence length (OSL), standard deviations for both, and a weight (prob). Weights across all use cases must sum to 100.

export DATAROBOT_ENDPOINT="https://app.datarobot.com"
export DR_API_KEY="<your DataRobot API key>"
export HUGGINGFACE_DR_CRED_ID="<your DataRobot credential ID>"
export DEPLOYMENT_ID="<your DataRobot LLM deployment ID>"
export CONCURRENCIES="[1,10,50,100]"
export REQUEST_COUNT_SCALAR=2
export MODEL_TOKENIZER="openai/gpt-oss-20b"
export USE_CASES='[{"isl":200,"islStddev":15,"osl":1000,"oslStddev":15,"prob":100}]'
 
curl -X POST -H "Authorization: Bearer ${DR_API_KEY}" \
     -H "Content-Type: application/json" \
     "${DATAROBOT_ENDPOINT}/api/v2/llmProfilingJobs/" \
     -d @- <<EOF
{
  "deploymentId": "${DEPLOYMENT_ID}",
  "credentialId": "${HUGGINGFACE_DR_CRED_ID}",
  "concurrencies": ${CONCURRENCIES},
  "tokenizer": "${MODEL_TOKENIZER}",
  "requestCountScalar": ${REQUEST_COUNT_SCALAR},
  "useCases": ${USE_CASES}
}
EOF

A 202 Accepted response returns the job ID, an execution ID, and a status ID:

{
  "id": "69e09f9e25fdfdfab0d27925",
  "jobExecutionId": "69e09f9f25fdfdfab0d27926",
  "statusId": "5633f028-3f68-4f83-bddc-560d266d6bd2"
}

Monitoring and retrieving LMM benchmark results

Poll the Status API with the returned statusId. When the job finishes, the API returns 303 See Other and the Location header points to the results endpoint:

curl -s -L -i \
  -H "Authorization: Bearer ${DR_API_KEY}" \
  "${DATAROBOT_ENDPOINT}/api/v2/status/${STATUS_ID}/"

Fetch the full results with the profiling job id:

curl -H "Authorization: Bearer ${DR_API_KEY}" \
     "${DATAROBOT_ENDPOINT}/api/v2/llmProfilingJobs/${LLM_PROFILING_JOB_ID}/profilingResults/"

Example payload (truncated):

{
  "estimatedCapacity": {
    "metrics": [
      { "name": "request_throughput",     "units": "requests/sec", "measurements": [{ "name": "avg", "value": 8.84    }] },
      { "name": "inter_token_latency",    "units": "ms",           "measurements": [{ "name": "avg", "value": 23.79   }] },
      { "name": "time_to_first_token",    "units": "ms",           "measurements": [{ "name": "avg", "value": 833.06  }] },
      { "name": "total_token_throughput", "units": "tokens/sec",   "measurements": [{ "name": "avg", "value": 4524.80 }] }
    ]
  },
  "results": [ "...per-iteration benchmark data..." ]
}

estimatedCapacity is the sustained operating point. results contains one entry per concurrency level tested, with the full metric set.

Reading the curve

The estimated-capacity numbers tell you the sustained ceiling. The per-iteration results show you how the deployment behaves as load climbs toward that ceiling. The table below is an illustrative example.

Concurrent requestsTTFT (ms)Total throughput (tokens/sec)Note
1~150~600Low load, near-floor latency
10~250~2,500Throughput scales nearly linearly
50~800~4,500estimatedCapacity returned from this iteration
100~1,500~4,600Saturated: TTFT roughly doubles, throughput plateaus

When AIPerf detects GPU saturation during the sweep, it identifies the iteration before it (concurrency 50 here) and returns those metrics as estimatedCapacity. When saturation isn’t detected, estimatedCapacity is simply the last iteration tested, which is why the sweep needs to extend past the knee. Anything past that point trades user-perceived latency for marginal throughput gains. If the product spec calls for TTFT under 1 second, the curve shows the deployment supports up to roughly 50 concurrent requests with margin: provision GPU so peak concurrent demand stays at or below that level.

From profiling result to Quota Reservations config

The bridge from a profiling run to a Quota Reservations configuration is direct:

Quota settingWhere it comes fromExample (from sample above)
Capacity (RPM)estimatedCapacity.request_throughput × 608.84 req/sec × 60 ≈ 530 RPM
Utilization ThresholdPick 70–80% of Capacity so enforcement engages before the saturation knee80% → enforcement at ~424 RPM
Reserved % per consumerSized to the minimum each priority consumer needs during contention30% Production Agent A, 20% Agent B, 30% Agent C, 20% unreserved pool
Refill rateCapacity / 60 (requests per second)530 / 60 ≈ 8.83 req/sec

For a primer on how Capacity, Utilization Threshold, and Reserved % interact under load, see Rate Limiting vs. Quota Reservations.

A worked cost example

Take the sample result: 4,524 total tokens per second sustained (input plus output). That is roughly 16.3 million tokens per hour from one deployment.

If the underlying GPU instance costs $X per hour, the cost per million tokens is $X / 16.3. For an instance at $4 per hour, that is about $0.25 per million tokens. For $12 per hour, about $0.74. To calculate cost per million output tokens—the standard benchmark for public API comparisons—divide the total cost by the workload’s output share. For example, given an ISL of 200 and an OSL of 1000, output accounts for roughly 83% of total tokens. At a $4 hourly instance price, this translates to approximately $0.30 per million output tokens.

Every benchmark run gives you a fresh, accurate cost-per-token figure for the exact model, hardware, and quantization combination you’re running. After a vLLM upgrade or a hardware swap, re-run the same profile and confirm your unit economics improved instead of trusting a vendor claim. This is the foundation for per-token and per-agent cost transparency in chargeback.

Choosing your inputs

A useful profile starts with two questions: what concurrency range do you expect in production, and what does your traffic actually look like?

  • Concurrencies to sweep. Start wide ([1, 10, 50, 100]) to locate the saturation knee, then narrow (such as [40, 50, 60, 70]) for an SLO-grade reading around that point.
  • Request count scalar. Set it high enough that each iteration runs long enough to smooth out noise. A scalar of 2 is a reasonable starting point. Raise it if variance looks high.
  • Use cases. Match your real traffic mix. If you serve 70% short chat turns (ISL 200, OSL 300) and 30% long-context RAG (ISL 4000, OSL 800), define two use cases with prob: 70 and prob: 30. Testing a blended traffic mix exposes tail-latency behavior (such as p99 spikes) that a single-use-case average obscures.
  • Tokenizer. Set it explicitly. The benchmark depends on accurate token counts, so the matching tokenizer is part of a correct measurement.

Operational notes

  • Profiling generates synthetic load. Run jobs against a non-production LLM deployment or during a maintenance window.
  • Because the traffic is synthetic, prefill cache hits won’t appear in token metrics.
  • Profiling treats the deployment as a black box. Whether the deployment runs on one GPU or many, and whatever combination of tensor, pipeline, data, or expert parallelism it uses, the profile measures the externally observable result.
  • Jobs can be canceled with a DELETE to the profiling job ID. Cancellation is best-effort and may not stop a run that is nearly complete.
  • Before you submit, store your Hugging Face token in DataRobot Credential Management as an “API Token (API Key)” credential. AIPerf uses it to fetch the model tokenizer, and the stored credential prevents rate-limit errors.

Get access

LLM Profiling Jobs are in private preview in DataRobot 11.8. To enable on your tenant, contact your DataRobot account team. They will turn on the Enable Dynamic Quota Capacity Profiling feature flag (the internal name for LLM Profiling Jobs) and configure the profiling job image in your cluster.

Learn more

The post Industry-standard LLM benchmarks in DataRobot appeared first on DataRobot.

‘5-in-1’ seed-sized surgical robot switches tools in under one second

Scientists from Nanyang Technological University, Singapore (NTU Singapore) have developed a tiny seed-sized robot that can navigate across soft and uneven surfaces to perform five surgical functions wirelessly, paving the way for developing robots to make surgeries and medical treatments more precise.

Elmo Motion Control – The Titanium Line, Redefining Limits of Motion Control

The next generation of motion control solutions that deliver outstanding performance. The Elmo advanced Titanium line of servo drives offers optimal performance and high-power density, delivering exceptional, intelligent, and compact drives that are operational within minutes. These single-axis and multi-axis servo drives, featuring top-performance multi-core processors, deliver superior productivity, Functional Safety, advanced networking, and local intelligence in a compact package.

Motion tracking system shows robots the path most traveled by, keeping them on task

There's a delicate art to teaching robots, even when you're preparing them for predictable environments like factories, where they'll repeat the same tasks a little differently depending on the obstacles they face. Whether a human is suddenly in their way or there's new clutter, the machine must closely mimic its operator's actions by staying on a trajectory (or motion path).

2026 Humanoid Robots Summit Europe

2026 European Humanoid Robots Summit Lands in Stuttgart This September Global Leading Experts Gather to Discuss Mass Production, Deployment & Industry Future As a landmark event for the global humanoid robotics industry, the summit focuses on technological innovation, commercialization, and ecosystem collaboration. Following the successful launch of the 2025 European Humanoid Robots Summit in Berlin, […]

AI won’t replace you but someone using AI might

Generative AI is transforming the workplace faster than ever, but new research from the University of Vaasa suggests the biggest threat may not be AI itself — it’s falling behind in learning how to use it. Researcher Zhe Zhu found that employees who see tools like ChatGPT and Gemini as helpful collaborators rather than job-stealing rivals tend to be more engaged, adaptable, and optimistic about their careers.

Google Releases Slew of New AI Tools

Top Ten for Writers and Creators

Google is out with a torrent of new AI tools and updates designed to charm writers and creators looking for the utmost in creativity and productivity.

Many of the tools can be especially powerful, given that they’re part of the Google ‘ecosystem,’ and can be easily connected with a number of other Google tools for added performance.

Here are the top ten you’ll want to check-out:

*Doc’s Live: Create and Edit Docs With Your Voice: While AI voice-to-text apps have been around for a while, Google takes this capability a step further by enabling you to create a Google doc with your voice – and pull relevant data for that doc from your Gmail, Google Drive, Google Chat and the Web.

Promised for sometime this summer, Doc’s Live invites you to simply talk and then does the rest by helping you brainstorm, organize your thoughts and structure your document.

Planned for release to Google AI Pro and Google Ultra subscribers, Doc’s Live is also promising to help you tweak the writing style of your doc to your personal preference.

*Ask YouTube: Dig Deeper for Knowledge-Gems on Video: Writers looking to get a better grasp of what YouTube videos have to offer will want to check out this new tool, designed to enable you to do much more complex searches on YouTube.

Each ‘Ask YouTube’ search query will trigger creation of a compilation of relevant videos across YouTube’s entire catalogue, including long-form videos and shorts.

You’ll need a YouTube Premium subscription for the service – which also removes all those ads that YouTube drops into videos.

*Google Pics: A New AI-Powered Designer: Promised for release this summer, Google Pics is a new AI-powered design tool for creating slides, social media posts, business logos, digital brochures, infographics and similar.

Special features include the ability to edit the specific design and text of your work with precision, as well as the ability to integrate Google Pics with Google Workspace.

When available, you’ll need a Google AI Pro or Google AI Ultra subscription to use Google Pics.

*Daily Brief: The Overnight Organizer for Your Life: While the quality of AI agent work varies significantly, Google is promising that its new Daily Brief AI agent will hit a home run for you.

Designed to organize and prioritize your day, Daily Brief – currently available to all Google AI subscribers (18+) in the Gemini app – is a personalized digest that keeps track of your key goals and suggests the next steps for getting there.

Intriguingly, the AI agent works overnight, analyzing your inbox, calendar and tasks while — in a perfect world — connecting all the dots across your life.

*Gemini Spark: An Army of AI Agents Working for You: Promised for release sometime this summer, Gemini Spark is Google’s answer to OpenClaw – an Open Source program that uses multiple AI agents to complete an ongoing series of tasks for you in background.

Such a system – which can be programmed to make decisions for you such as making purchases, sending automated emails, engaging in ongoing research and setting up a flight booking – can be tricky to get right.

Ergo, Google is promising to be extra careful with this one before releasing it wide.

*Google Search Agents: 24/7, Continually Updated Monitoring and Analysis: While my own experience with AI search agents has been mixed – I find they like to make-up citations or simply don’t work as advertised – Google is promising this new issue of search agents will be different.

Ideally, Google’s search agents can take any question dream up and run with it, relentlessly scouring blogs, news sites, social media posts and more to return with regular, synthesized updates relevant to your query.

You can use search agents, for example, to scan the Web for new stories on Open Source AI models that offer the greatest creativity when it comes to writing.

*AI Inbox: Yet Another Email Inbox Organizer: Granted, there seem to be any number of AI tools promising to make email processing a breeze, but Google believes this one is extra special.

Essentially, this upgraded version of AI Inbox – already available for Google AI Ultra subscribers and rolling out to Google AI Plus and Google AI Pro subscribers — is designed to surface the emails that matter most to you each day and prioritize you To-Dos.

AI Inbox will also generate personalized email replies – for your approval — based on contextual information.

Plus, this summer, Google is promising that Google AI Pro and Google Ultra subscribers will be able to use AI Inbox to “talk” to their Gmail without being forced to dig through conversational threads.

*New Gemini 3.5 Flash: AI for the Down and Dirty: While you’ll want to use Google 3.1 Pro for answers that require deeper reasoning and more thoughtful replies, this Flash upgrade for Gemini is for those looking for fast answers that may be a little rough around the edges.

Google is also promising that the new Gemini 3.5 Flash is perfect for tackling long-horizon agentic tasks.

Meanwhile, Gemini 3.5 Pro – Flash’s heftier cousin – is promised for release sometime in June 2026.

*Gemini Omni Flash: Google’s New Spin on Video Creation: Back in the ‘olden days’ – i.e., last week – we were limited to creating video with AI by using a text input.

No more. With Gemini Omni Flash, you can ideally feed Gemini AI any type of input – text, images, audio or video – and the tool will output video for you.

Moreover, videos can be created by adding text instructions regarding what you’re looking for. Or, you can get things going with a conversational interface that pops up when you simply enter a raw input with no instructions.

Available for AI Plus, AI Pro and AI Ultra subscribers, Gemini Omni Flash includes an improved intuitive understanding of forces like gravity, kinetic energy and fluid dynamics, allowing you to create more realistic scenes, according to Koray Kavukcuoglu, a chief AI architect at Google.

*The Whole Kit-and-Kaboodle: Other interesting, new AI and AI upgrades from Google of interest to writers include Personal Intelligence, Google Flow, Google Antigravity, SynthID and Neural Expressive.

You can grab the skinny on all those – as well as a full overview on virtually every important news-making new AI from Google — at “100 Things We Announced at I/O 2026.”

Share a Link:  Please consider sharing a link to https://RobotWritersAI.com from your blog, social media post, publication or emails. More links leading to RobotWritersAI.com helps everyone interested in AI-generated writing.

Joe Dysart is editor of RobotWritersAI.com and a tech journalist with 20+ years experience. His work has appeared in 150+ publications, including The New York Times and the Financial Times of London.

Never Miss An Issue
Join our newsletter to be instantly updated when the latest issue of Robot Writers AI publishes
We respect your privacy. Unsubscribe at any time -- we abhor spam as much as you do.

The post Google Releases Slew of New AI Tools appeared first on Robot Writers AI.

AI scans 400,000 Reddit posts and finds hidden Ozempic side effects

By analyzing over 400,000 Reddit posts, researchers discovered that users of popular GLP-1 weight-loss drugs frequently discussed unexpected symptoms like menstrual irregularities, chills, and hot flashes. The findings suggest AI could turn social media into a powerful early-warning system for spotting side effects that clinical trials may miss.

New AI body map reveals obesity’s hidden attack on facial nerves

Scientists have created an AI-powered system that can scan and map an entire mouse body in extraordinary detail — and it just uncovered a surprising new effect of obesity. Beyond disrupting metabolism, obesity appears to damage facial sensory nerves linked to touch and sensation, while also triggering widespread inflammation across the body.

Ordinary WiFi can now identify people with near perfect accuracy

Scientists in Germany have demonstrated a startling new form of surveillance: identifying people using nothing more than ordinary WiFi signals. By analyzing how radio waves bounce around a room, researchers can effectively “see” and recognize individuals — even if they are not carrying a device and even if their phone is turned off.

A practical guide for platform teams managing shared AI deployments

Rate Limiting vs. Quota Reservations: when to use each

You have a single gpt-oss-20b deployment. Six teams want to use it. Marketing is running batch summarization jobs at 3am. The fraud team needs sub-second responses 24/7. An intern’s Jupyter notebook is accidentally hammering the endpoint in a tight loop. And your GPU bill is already eye-watering.

Sound familiar? DataRobot gives you two tools to solve this: Rate Limiting and Quota Reservations. This post explains when to reach for each, backed by a real load test example on a staging deployment.

Rate Limits and Quota Reservations, in plain English

Rate Limits – Available in DataRobot v11.4

Rate limits sets per-consumer caps across multiple dimensions: requests per minute, token count per hour, concurrent requests, and input sequence length. A default policy applies to all consumers, with per-entity exceptions available for specific overrides.

Capacity Management in DataRobot

What it protects against: Any single consumer overconsuming — whether through high request volume, large inputs, or excessive concurrency.

Quota Reservations – available in DataRobot v11.9

Quota reservations define the deployment’s total possible throughput (value per minute) and a utilization threshold that triggers enforcement. Within that budget, specific entities can be allocated a reserved percentage — guaranteeing them a minimum slice of capacity that other consumers can’t take away.

What it protects against: Priority starvation. Without reservations, a noisy neighbor can consume the entire capacity budget, leaving your critical workloads with nothing.

How Rate Limits and Quota Reservations work together (and apart)

Used alone, each tool solves a specific problem:

  • Rate limiting alone caps total throughput. Under saturation, all consumers compete equally — first come, first served.
  • Quota reservations alone guarantee minimum throughput for specific consumers, regardless of what others are doing.

Together, they give you both control surfaces: a ceiling that protects the model and guaranteed floors for the consumers that matter most.

Load testing a multi-tenant deployment

To evaluate these features under pressure, we load-tested a gpt-oss-20b deployment in our staging environment. The setup simulates a real multi-tenant scenario: four consumers sharing one model, each with different priority levels.

Example configuration

SettingValue
Modelgpt-oss-20b (NVIDIA NIM)
Capacity1000 RPM
Utilization Threshold80% (enforcement kicks in at 800 RPM)
ConsumerTypeReserved CapacityEffective Guarantee
Production Agent ADeployment30%300 RPM
Production Agent BDeployment20%200 RPM
Production Agent CDeployment30%300 RPM
Dev User (unreserved)UserNone — shares the 20% unreserved pool

This left a 20% unreserved pool (200 RPM) for the dev user and any overflow.

Example load profile

We ran six escalating scenarios over 17 minutes to observe behaviour at different saturation levels:

ScenarioWhat HappensCombined Load
Normal trafficAll four consumers at moderate, throttled rates~600 RPM (below utilization threshold)
Slight overloadAll four consumers ramp up to just over capacity~1,200 RPM (1.2× capacity)
Heavy overloadAll four consumers fire as fast as possible~7,200 RPM (7× capacity)
Extreme overloadMaximum concurrent workers per consumer~12,000 RPM (12× capacity)
Late joinerThree agents flood first, dev user joins 60s later~9,000 RPM
Reserved-onlyThree agents compete, dev user silent~7,200 RPM

When to use Rate Limiting alone

Rate limiting by itself is the right choice when:

  • All consumers are equally important. If no team’s traffic is more critical than another’s, there’s no need for reservations. Equal competition under saturation is fair enough.
  • You just need to protect the GPU. Your primary concern is that a spike in traffic doesn’t degrade model latency or cause OOM errors. You want a safety valve, not a traffic policy.
  • You have a single consumer. If there’s only one application hitting the deployment, reservations are meaningless — there’s no one to reserve against.

What the example showed

During the normal traffic scenario (~600 RPM combined, well below the 800 RPM utilization threshold), the rate limiter was invisible and all four consumers achieved 100% success rates with zero rejected requests.

ScenarioCombined RPMSuccess Rate429s
Normal traffic~600100%0

Size your reservations based on the absolute minimum throughput each consumer requires during peak contention. This is by design, so you’re not penalizing normal traffic.

And it protects the model even under extreme abuse. During the extreme overload scenario (20,000+ RPM against 1,000 RPM capacity, which is a a 20× overload), the rate limiter rejected 95% of requests. But the model itself stayed perfectly healthy:

NIM MetricUnder 20× Overload
GPU Utilization91–95% (stable)
E2E Latency1.25s → 2.09s (brief spike, then stable)
Time to First Token35ms (unchanged)
Inter-Token Latency18ms (unchanged)
KV Cache<3% (not stressed)

The rate limiter acted as a firewall between chaotic client demand and stable model inference. Without it, those 20,000 requests per minute would have queued up inside the NIM, latency would have ballooned, and the model would have effectively become unusable for everyone.

Takeaway: If your only goal is “don’t let traffic spikes kill the model,” rate limiting alone is sufficient and zero-config beyond setting the capacity number.

When to add Quota Reservations

Quota reservations become essential when:

  • Some consumers are more important than others. Your fraud detection system can’t afford to be starved out by a batch analytics job. Your production agent needs guaranteed throughput that a developer’s test harness can’t steal.
  • You have a multi-tenant deployment. Multiple teams, applications, or downstream deployments share the same model. Without reservations, the loudest consumer wins.
  • You want predictable SLAs. If you’ve promised a team “your application will get at least 300 RPM,” reservations are how you enforce that promise at the infrastructure level.
  • You have a mix of interactive and batch workloads. Batch jobs are bursty and will happily consume all available capacity. Reservations ensure interactive workloads still get their share during batch spikes.

How to size reservations

Size your reservations based on the absolute minimum throughput each consumer requires during peak contention.

Rules of thumb:

  • Don’t reserve 100%. Leave an unreserved pool (10–20%) for ad-hoc traffic, new consumers, and overflow. If you reserve everything, any new application gets zero throughput until you reconfigure.
  • Size reservations to minimum needs, not peak needs. Reservations guarantee a floor, not a ceiling. An entity with 30% reserved can still use more than 30% when capacity is available.
  • Match reservation size to business criticality, not team size. Your fraud detection system might have fewer requests than your analytics pipeline, but it needs guaranteed access more.

In our example, three production agents received 30%/20%/30% reservations, leaving a 20% unreserved pool for the dev user. This meant the dev user could still use the deployment — they just wouldn’t get guaranteed access during contention.

Do reservations work under real load?

At slight overload (1.2× capacity): The system degrades gracefully

During the slight overload scenario (~1,200 RPM against 1,000 RPM capacity), all four consumers achieved 100% success — the token bucket’s burst capacity absorbed the slight overage. This is the “graceful degradation” zone where reservations aren’t yet needed, but the system is proving it can handle bursts.

At heavy-to-extreme overload (7–12× capacity): reservations maintain a guaranteed floor

When all four consumers fired as fast as possible (7,000–12,000 RPM against a 1,000 RPM capacity), the system was overwhelmed. Here’s what each consumer experienced across the full test:

ConsumerReservedSuccess RateSuccessful Requests
Production Agent A30%29.0%4,172
Production Agent B20%30.2%4,332
Production Agent C30%28.9%4,176
Dev User (unreserved)28.9%2,828

Why the success rates look similar: At 12× overload, even a 300 RPM reservation is only ~2.5% of what each consumer is attempting to send (~3,000 RPM per consumer vs. a 300 RPM guarantee). The reservation works by ensuring each consumer receives its guaranteed 200–300 RPM. However, because 97% of total traffic is rejected during extreme overloads, the relative percentage differences compress.

The more revealing metric is absolute throughput. Reserved consumers completed 4,172–4,332 successful requests. The unreserved dev user completed 2,828 — about 34% fewer. Even accounting for the dev user’s shorter active time, reserved consumers consistently got more requests through during shared scenarios.

At saturation with a late joiner: reservations protect incumbents

In the late joiner scenario, the three production agents were already flooding the system when the dev user joined 60 seconds later. With all reserved capacity spoken for, the dev user was confined to the 20% unreserved pool (~200 RPM). The production agents continued drawing from their guaranteed buckets, unaffected by the new arrival.

This is the scenario that matters most in production. A batch job kicks off, or a new application goes live, and suddenly there’s more demand than supply. Without reservations, the new load pushes everyone’s throughput down equally. With reservations, your critical consumers are shielded.

Reserved consumers compete fairly among themselves

In the reserved-only scenario, the dev user went silent and only the three production agents competed. Their success rates were nearly identical (28.9%–30.2%) — the system divided throughput proportionally across their reservations.

What the server sees: OTEL metrics tell the story

Client-side metrics (success rates, 429 counts) tell you what your consumers experienced. Server-side OTEL metrics tell you what the platform experienced. Here’s what our example deployment looked like from the inside.

The rate limiter protects model health

During peak load (20,596 requests/minute hitting the endpoint), the NIM was serving only the ~1,000 RPM that the rate limiter let through:

What the endpoint sawWhat the NIM saw
20,596 requests/min~1,000 requests/min (served)
19,603 rate-limited/min18–22 concurrent requests
1.25s E2E latency (stable)
91–95% GPU utilization (healthy)

Without rate limiting, those 20,000 RPM would have queued inside the NIM. The GPU wouldn’t have gotten more productive — it’s already at 91–95% — but latency would have spiraled as requests stacked up. Instead, the rate limiter rejected excess requests immediately (at 429-response speeds, not inference speeds), keeping the model responsive for the traffic it did accept.

Server-Side Request Volume & Rate Limiting (OTEL)
GPU & KV Cache (OTEL)

Token throughput follows successful requests

Peak token throughput was ~199,350 tokens/min (total), with ~115,939 input and ~83,411 output. These numbers track directly with the rate limiter’s allowed throughput — not with the attempted request volume. Another way of seeing that the rate limiter is correctly shaping traffic.

Token Throughput Over Time
Server-Side OTEL Dashboard

Deciding between Rate Limits and Quota Reservations

Use this flowchart to decide what to configure:

Step 1: Do you have a shared deployment with multiple consumers?

  • No → Rate limiting alone is sufficient. Set capacity to protect the GPU and move on.
  • Yes → Continue to Step 2.

Step 2: Are all consumers equally important?

  • Yes → Rate limiting alone may be enough. Under saturation, all consumers compete equally — first come, first served. If that’s acceptable, stop here.
  • No → Continue to Step 3.

Step 3: Do any consumers need guaranteed minimum throughput?

  • Yes → Add quota reservations. Size them to the minimum RPM each critical consumer needs during peak contention.
  • No, but some consumers need to be deprioritized → Use per-entity exceptions instead of reservations. Cap the noisy neighbors rather than guaranteeing the critical ones.

Step 4: Configure the unreserved pool.

  • Don’t reserve 100% of capacity. Leave 10–20% unreserved for ad-hoc traffic, overflow, and new applications that haven’t been assigned reservations yet.

Practical configuration tips

Start with rate limiting only. Monitor your deployment’s traffic patterns for a week. Look at peak RPM, who’s sending what, and whether anyone is consistently overconsuming. Then add reservations where the data tells you they’re needed.

Set utilization threshold at 70–80%. This gives the token bucket burst room to absorb short spikes without triggering rate limiting on every minor fluctuation. In our example, we used 80% and the system handled 1.2× capacity gracefully before enforcement kicked in.

Monitor with OTEL metrics. After configuring rate limiting, check these server-side metrics to confirm things are working:

  • deployment.requests vs deployment.requests.rate_limited — are you rejecting the right amount?
  • nvidia_gpu_utilization — is the model still saturated or did rate limiting create headroom?
  • nvidia_vllm:e2e_request_latency_seconds — is latency stable under load?
  • deployment.concurrent_requests — are requests queuing up or flowing smoothly?

Reservation sizing formula:

Reserved RPM = Capacity × Reserved %

Example: 1000 RPM × 30% = 300 RPM guaranteed

Don’t confuse this with a rate limit. A 30% reservation means “you’ll always get at least 300 RPM, even when the system is saturated.” The entity can still use more when capacity is available.

Summary

FeatureProtects AgainstUse When
Rate LimitingGPU overload, runaway consumers, latency spikesAlways — it’s your safety net
Quota ReservationsPriority starvation, noisy neighbors, SLA violationsMultiple consumers with different importance levels
Per-entity exceptionsA specific consumer overconsumingYou want to cap a noisy neighbor without reserving capacity for others

When considering Rate Limiting vs. Quota Reservations: use each tool where it fits. Layer them where the problem demands it.

The post A practical guide for platform teams managing shared AI deployments appeared first on DataRobot.

Unlocking soft robotics control with AI’s cousin: Reservoir computing

Soft robotics—machines made of flexible, muscle-like materials—can bend and stretch in fluid ways that put the rigid robots of old sci-fi movies to shame. But the flexibility that lets them pick ripe tomatoes or navigate a search-and-rescue site comes at a cost: Soft robotics are notoriously difficult to control.
Page 28 of 66
1 26 27 28 29 30 66