Innodata  ยท  2026

Inference Engineering

Exploring inference throughput improvements for an existing fine-tuned model: scheduler tuning, speculative decoding and quantization.

1. Background

1.1 Task

1.2 Goal

1.3 Problem overview

1.3.1 Models

A separate model was created for title and description enhancement. Both are Qwen3-4B, distilled via SFT from the production model that saw the CTR lift. Qwen3-4B is:

1.3.2 Evaluation

Generated titles and descriptions are evaluated using a combination of a hand tuned LLM-as-a-judge and deterministic functions for verifiable qualities

Each fine tuned model was distilled to match the production model's quality, with no regressions on auxiliary criteria like length and repetitive phrasing. The distilled BF16 baseline passes the judge 84.1% of the time on titles and 80.9% on descriptions (section 2), and every optimization below is measured against those numbers.

1.4 Specs

Benchmarks were run on a single RTX PRO 6000. Since deployment will eventually use data parallel inference, only single engine vLLM parameters need to be optimized.

1.5 Roofline

Roofline model: performance vs. arithmetic intensity, with a sloped memory-bound region and a flat compute-bound plateau
Roofline model: attainable performance vs. arithmetic intensity

1.6 vLLM

1.6.1 Prefill and decode

During inference, the vLLM scheduler has 2 states:

Prefill

Decode

1.6.2 Scheduler hyperparameters

The following hyperparameters are the most critical when tuning the vLLM scheduler:

2. Baseline benchmarks

A baseline is established with the distilled Qwen3-4B in BF16 with vLLM defaults.

Default parameters

ParamValue
PrecisionBF16
max_num_seqs256 (default)
max_num_batched_tokens16384 (default)
batch_size256 (default)
max_model_len5500
gpu_memory_utilization0.93
Thinkingdisabled

Baseline throughput and accuracy

TaskThroughput (req/s)Judge passQuality good / ok / poor
Description41.780.9%98.5% / 1.5% / 0%
Title115.284.1%93.1% / 6.5% / 0.43%

Description throughput is lower than title, as expected (~8× more sequential decode steps per request).

2.1 Speculative decoding

The following methods are candidates for proposing the additional tokens:

No approach was feasible, so speculative decoding yielded no performance increase in this scenario.

2.2 Scheduler hyperparameter tuning

ParamDefaultTuned
batch_size2561024
max_num_seqs2561536
max_num_batched_tokens1638416384
TaskBaseline (req/s)Tuned (req/s)Relative to baseline
Description41.762.91.51×
Title115.2123.31.07×

2.3 Quantization

Quantization approaches fall into two non mutually exclusive categories:

  1. Weights
    • Quantize the model weights only.
    • Fewer bytes per weight read, which helps memory-bound decode.
  2. Activations
    • Quantize the activations coming out of each layer so matmuls can run on low-precision tensor cores.
    • Speeds up both compute-bound prefill and weight reads, so the throughput gains are larger.
    • More likely to degrade quality.

The following approaches were considered:

TypeWeightActivationSummaryExplored
AWQ✓✗Anti-pattern on Blackwell GPUs: ignores native FP8/FP4 tensor cores✗
FP8✓✓Smaller footprint than FP16, good balance between qualtiy and throuhgput✓
NVFP4✓✓Blackwell GPU native, smallest footprint✓

FP8

TaskThroughput (req/s)Relative to baselineRelative to tunedJudge accuracy (baseline)Deterministic regressions
Description89.22.14×1.42×80.8% (80.9%)None; structure fully retained, no CJK
Title192.11.67×1.56×85.8% (84.1%)None; length fully retained, no CJK

NVFP4

TaskThroughput (req/s)Relative to baselineRelative to FP8Judge accuracy (baseline)Regressions
Description112.72.70×1.26×79.0% (80.9%)Small judge regression; CJK characters in output, unacceptable
Title256.72.23×1.34×82.6% (84.1%)Small judge regression; CJK characters in output, unacceptable

3. Summary

TechniqueTitle (req/s)Title vs. baselineDescription (req/s)Description vs. baselineVerdict
Baseline (BF16)115.21.00×41.71.00×—
Speculative decoding (n-gram)————No gain
Scheduler tuning123.31.07×62.91.51×Ship
+ FP8192.11.67×89.22.14×Ship
+ NVFP4256.72.23×112.72.70×Do not ship

Scheduler tuning plus FP8 quantization achieves the maximum throughput without regressing generation quality, according to the evaluation suite: