qwen36-27b: MAX_NUM_BATCHED_TOKENS experiments with MAX_NUM_SEQS=32
- Feed Queries
- All Stories
- Search
- Feed Search
- Transactions
- Transaction Logs
Yesterday
Thu, Oct 15
Plan: experiments for the qwen36-27b and qwen38-27b SLOs
Ah, yes, this is what I understood, but the diagram shows "Orchestrator (e.g. Change-prop)" emitting the page_revert_risk_wikidata_prediction_change to eventgate -> kafka.
I think the arrows are kinda misleading in the schema. We just mean that the change-prop calls the LiftWing and goes on...
In T433699#12431388, @Ottomata wrote:Thanks! How does change_prop emit the mediawiki.page_revert_risk_wikidata_prediction_change.v1 event?
Wed, Oct 14
A quick heads-up following our ML meeting: we decided to go with the following schema and proceed with the Hoard integration.
Fri, Oct 9
| conc | req/s | out tok/s | tot tok/s | TTFT p50 | TTFT p99 | TPOT p50 | TPOT p99 | E2EL p50 | E2EL p99 | fail |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.30 | 33.34 | 337.48 | 247.76 | 290.64 | 28.00 | 28.20 | 3,797.70 | 3,868.59 | 0 |
| 8 | 1.48 | 170.87 | 1,681.49 | 313.65 | 1,759.69 | 42.75 | 89.06 | 5,764.16 | 6,482.22 | 0 |
| 32 | 2.75 | 310.44 | 3,127.14 | 2,810.46 | 6,992.81 | 78.21 | 918.98 | 12,420.07 | 13,918.52 | 0 |
| 64 | 3.25 | 363.44 | 3,692.45 | 6,904.68 | 13,927.84 | 120.64 | 3,442.51 | 21,913.03 | 23,346.07 | 0 |
Tested revertrisk-wikidata on ml-staging-codfw from this liftwing-patch and this deployment_patch and grpc_deployment using rev_id 1892513445:
Thu, Oct 8
Here are the grafana snapshots: Istio-Qwen36-27b and ML-Infra-qwen36-27b.
These are the results of the vllm-bench (latencies in ms).
More info in the paste.
| conc | req/s | out tok/s | tot tok/s | TTFT p50 | TTFT p99 | TPOT p50 | TPOT p99 | E2EL p50 | E2EL p99 | fail |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.38 | 47.64 | 441.37 | 40.80 | 52.26 | 20.81 | 20.99 | 2,683.66 | 2,714.08 | 0 |
| 8 | 2.59 | 326.58 | 2,976.60 | 79.06 | 124.44 | 23.70 | 25.61 | 3,089.76 | 3,333.64 | 0 |
| 32 | 7.27 | 908.27 | 8,356.60 | 174.40 | 343.67 | 31.12 | 33.08 | 4,137.11 | 4,255.82 | 0 |
| 64 | 7.52 | 927.64 | 8,632.88 | 4,228.66 | 4,475.93 | 31.17 | 32.86 | 8,150.33 | 8,422.01 | 0 |
Thank you @hashar for your comment.
Tue, Oct 6
Latest Version of reverence-risk model deployed
Mon, Oct 5
Next steps:
- Deploy the latest version of the reference-risk model server: patch-1351300
- Deploy the latest changes in the liftwing-openapi-server: patch-1351302
Fri, Oct 2
Alert: Oct 1, 2026, 7:22 PM
description = The rate of errors (non-2/3/4xx return codes) in the LiftWing service llm-qwen3-14b-predictor in eqiad is higher than the configured threshold.
Thu, Oct 1
Sharing the 96GB partition size of the ml-serve1013/1014 machines.
$ kube_env llm ml-serve-eqiad $ kubectl get pods NAME READY STATUS RESTARTS AGE cope-b-a4b-predictor-00003-deployment-7c8bd68bb5-sdqhq 3/3 Running 0 63d embeddings-predictor-00004-deployment-dbbf479bb-tnmv4 3/3 Running 0 46h embeddings-staging-predictor-00003-deployment-59c78d858c-c5hxz 3/3 Running 0 46h jina-embeddings-predictor-00005-deployment-65d9bdb7d4-znspb 3/3 Running 0 46h jina-embeddings-staging-predictor-00020-deployment-567cd65wnz42 3/3 Running 0 46h langid-predictor-00003-deployment-76d5df85f7-8nbfq 3/3 Running 0 46h llm-gpt-oss-safeguard-20b-predictor-00002-deployment-94c7999w28 3/3 Running 0 2d llm-qwen3-14b-predictor-00011-deployment-79dffcd5f4-bfd4z 3/3 Running 0 22h llm-qwen36-27b-predictor-00007-deployment-7cd4884974-4f8kk 3/3 Running 0 35m llm-qwen38-27b-predictor-00001-deployment-5d77fdc4b5-lw5vn 3/3 Running 0 14d semantic-highlighting-predictor-00002-deployment-5cbf59b95dxpqx 3/3 Running 0 46h semantic-highlighting-staging-predictor-00003-deployment-6ssm6j 3/3 Running 0 46h tts-predictor-00003-deployment-9b886cb55-qcw8q 3/3 Running 0 14d
Wed, Sep 30
Qwen3-14b Deployed on ml-serve1015
Starting gradually to move the LLMs one by one to the suggested machines.
- llm-qwen3-14b -> ml-serve1015
- llm-qwen36-27b -> ml-serve1013/14
- llm-qwen38-27b -> ml-serve1013/14
- cope-b-a4b -> ml-serve1013/14
Tue, Sep 29
Thu, Sep 24
Mon, Sep 21
Fri, Sep 18
After the MR was merged I deployed the Qwen3.8 model on LiftWing studio.
You can check this in the image below:
After increasing the cpu quotas in llm namespace by merging/deploying this patch: 1343012
The llm-qwen38-27b service is working properly.
Thu, Sep 17
- Qwen3.8-27B deployed to llm namespace.
Sep 16 2026
Sep 10 2026
Hey @Ottomata, thnx for your comment.
In T433699#12304464, @Ottomata wrote:Q: I wonder if a better generalized route would be like:
Public LiftWing HTTP API -> LAC -> LiftWing Lambda
And if needed, LiftWing HTTP API could add support for passing Cache-Control: no-cache through to LAC.
Sep 9 2026
Sep 8 2026
Sep 4 2026
The vllm-bench results can be found in the following paste:
| 1 | ~$ vllm-bench --compare \ |
|---|---|
| 2 | results/20260717T091358Z_llm-qwen36-27b/c32.json \ |
| 3 | results/20260904T115842Z_llm-qwen38-27b/c32.json |
| 4 | |
| 5 | Open-file limit: 1048576 |
| 6 | ================================== Benchmark Comparison ================================== |
| 7 | A: results/20260717T091358Z_llm-qwen36-27b/c32.json (model: llm-qwen36-27b, date: 2026-07-17T09:27:40Z) |
| 8 | B: results/20260904T115842Z_llm-qwen38-27b/c32.json (model: llm-qwen38-27b, date: 2026-09-04T12:14:01Z) |
| 9 | |
| 10 | Metric A B Delta Change |
| 11 | ----------------------------------- ------------ ------------ ---------- -------- |
| 12 | Request throughput (req/s) 3.63 3.54 -0.09 -2.5%- |
| 13 | Output throughput (tok/s) 349.26 379.71 +30.45 +8.7%+ |
| 14 | Total token throughput (tok/s) 4065.75 4003.25 -62.50 -1.5%- |
| 15 | Peak output tokens/s 896 927 +31 +3.5%+ |
| 16 | Peak concurrent requests 59 51 -8 -13.6%- |
| 17 | Mean TTFT (ms) 1600.11 1627.27 +27.16 +1.7%- |
| 18 | Median TTFT (ms) 730.21 942.95 +212.74 +29.1%- |
| 19 | P99 TTFT (ms) 4797.97 4558.32 -239.66 -5.0%+ |
| 20 | Mean TPOT (ms) 114.66 82.97 -31.69 -27.6%+ |
| 21 | Median TPOT (ms) 78.28 68.80 -9.48 -12.1%+ |
| 22 | P99 TPOT (ms) 1031.74 490.48 -541.26 -52.5%+ |
| 23 | Mean ITL (ms) 72.80 65.25 -7.55 -10.4%+ |
| 24 | Median ITL (ms) 35.88 35.29 -0.59 -1.7%+ |
| 25 | P99 ITL (ms) 460.49 364.30 -96.19 -20.9%+ |
| 26 | Mean E2EL (ms) 8532.75 8564.08 +31.33 +0.4%- |
| 27 | Median E2EL (ms) 10341.57 10032.92 -308.65 -3.0%+ |
| 28 | P99 E2EL (ms) 12392.65 10833.83 -1558.82 -12.6%+ |
| 29 | Completed requests 200 200 +0 +0.0% |
| 30 | Failed requests 0 0 +0 +0.0% |
| 31 | Duration (s) 55.11 56.52 +1.41 +2.6%- |
| 32 | |
| 33 | ====================== Steady-State Comparison ======================= |
| 34 | SS Request throughput (req/s) 3.32 3.23 -0.08 -2.5%- |
| 35 | SS Output throughput (tok/s) 333.71 390.28 +56.57 +17.0%+ |
| 36 | SS Input throughput (tok/s) 3417.38 3331.67 -85.71 -2.5%- |
| 37 | SS Total token throughput (tok/s) 3751.09 3721.95 -29.14 -0.8%- |
| 38 | SS Mean TTFT (ms) 1237.72 1310.35 +72.63 +5.9%- |
| 39 | SS Median TTFT (ms) 634.41 718.96 +84.56 +13.3%- |
| 40 | SS Mean TPOT (ms) 106.20 83.90 -22.30 -21.0%+ |
| 41 | SS Median TPOT (ms) 81.70 72.14 -9.56 -11.7%+ |
| 42 | SS P90 TPOT (ms) 132.99 95.12 -37.87 -28.5%+ |
| 43 | SS P99 TPOT (ms) 651.83 442.89 -208.94 -32.1%+ |
| 44 | ========================================================================================== |
| 45 | |
| 46 | Legend: + = improvement, - = regression (relative to A → B) |
| 47 | |
| 48 | |
| 49 | ~$ vllm-bench --compare results/20260717T091358Z_llm-qwen36-27b/c1.json results/20260904T115842Z_llm-qwen38-27b/c1.json |
| 50 | vllm-bench --compare results/20260717T091358Z_llm-qwen36-27b/c64.json results/20260904T115842Z_llm-qwen38-27b/c64.json |
| 51 | |
| 52 | Open-file limit: 1048576 |
| 53 | ================================== Benchmark Comparison ================================== |
| 54 | A: results/20260717T091358Z_llm-qwen36-27b/c1.json (model: llm-qwen36-27b, date: 2026-07-17T09:24:59Z) |
| 55 | B: results/20260904T115842Z_llm-qwen38-27b/c1.json (model: llm-qwen38-27b, date: 2026-09-04T12:11:08Z) |
| 56 | |
| 57 | Metric A B Delta Change |
| 58 | ----------------------------------- ------------ ------------ ---------- -------- |
| 59 | Request throughput (req/s) 0.37 0.32 -0.05 -13.5%- |
| 60 | Output throughput (tok/s) 34.74 35.77 +1.03 +3.0%+ |
| 61 | Total token throughput (tok/s) 410.49 360.79 -49.70 -12.1%- |
| 62 | Peak output tokens/s 47 45 -2 -4.3%- |
| 63 | Peak concurrent requests 4 3 -1 -25.0%- |
| 64 | Mean TTFT (ms) 202.19 185.63 -16.56 -8.2%+ |
| 65 | Median TTFT (ms) 196.70 181.75 -14.95 -7.6%+ |
| 66 | P99 TTFT (ms) 435.02 206.54 -228.48 -52.5%+ |
| 67 | Mean TPOT (ms) 26.62 26.50 -0.12 -0.4%+ |
| 68 | Median TPOT (ms) 26.94 26.54 -0.40 -1.5%+ |
| 69 | P99 TPOT (ms) 27.05 26.65 -0.40 -1.5%+ |
| 70 | Mean ITL (ms) 26.93 26.54 -0.39 -1.5%+ |
| 71 | Median ITL (ms) 26.97 26.56 -0.41 -1.5%+ |
| 72 | P99 ITL (ms) 27.73 27.17 -0.56 -2.0%+ |
| 73 | Mean E2EL (ms) 2724.67 3150.09 +425.42 +15.6%- |
| 74 | Median E2EL (ms) 3613.99 3551.88 -62.11 -1.7%+ |
| 75 | P99 E2EL (ms) 3650.21 3581.24 -68.97 -1.9%+ |
| 76 | Completed requests 200 200 +0 +0.0% |
| 77 | Failed requests 0 0 +0 +0.0% |
| 78 | Duration (s) 545.04 630.12 +85.08 +15.6%- |
| 79 | |
| 80 | ====================== Steady-State Comparison ======================= |
| 81 | SS Request throughput (req/s) 0.37 0.32 -0.05 -13.5%- |
| 82 | SS Output throughput (tok/s) 34.74 35.77 +1.03 +3.0%+ |
| 83 | SS Input throughput (tok/s) 375.75 325.02 -50.74 -13.5%- |
| 84 | SS Total token throughput (tok/s) 410.49 360.79 -49.70 -12.1%- |
| 85 | SS Mean TTFT (ms) 202.19 185.63 -16.56 -8.2%+ |
| 86 | SS Median TTFT (ms) 196.70 181.75 -14.95 -7.6%+ |
| 87 | SS Mean TPOT (ms) 26.62 26.50 -0.12 -0.4%+ |
| 88 | SS Median TPOT (ms) 26.94 26.54 -0.40 -1.5%+ |
| 89 | SS P90 TPOT (ms) 26.97 26.56 -0.40 -1.5%+ |
| 90 | SS P99 TPOT (ms) 27.05 26.65 -0.40 -1.5%+ |
| 91 | ========================================================================================== |
| 92 | |
| 93 | Legend: + = improvement, - = regression (relative to A → B) |
| 94 | Open-file limit: 1048576 |
| 95 | ================================== Benchmark Comparison ================================== |
| 96 | A: results/20260717T091358Z_llm-qwen36-27b/c64.json (model: llm-qwen36-27b, date: 2026-07-17T09:28:28Z) |
| 97 | B: results/20260904T115842Z_llm-qwen38-27b/c64.json (model: llm-qwen38-27b, date: 2026-09-04T12:14:47Z) |
| 98 | |
| 99 | Metric A B Delta Change |
| 100 | ----------------------------------- ------------ ------------ ---------- -------- |
| 101 | Request throughput (req/s) 4.24 4.41 +0.17 +4.1%+ |
| 102 | Output throughput (tok/s) 412.71 492.57 +79.86 +19.4%+ |
| 103 | Total token throughput (tok/s) 4750.15 5007.60 +257.46 +5.4%+ |
| 104 | Peak output tokens/s 1536 1592 +56 +3.6%+ |
| 105 | Peak concurrent requests 114 115 +1 +0.9%+ |
| 106 | Mean TTFT (ms) 3921.86 4527.89 +606.04 +15.5%- |
| 107 | Median TTFT (ms) 3729.42 4690.11 +960.69 +25.8%- |
| 108 | P99 TTFT (ms) 9400.95 8910.15 -490.80 -5.2%+ |
| 109 | Mean TPOT (ms) 206.47 149.39 -57.08 -27.6%+ |
| 110 | Median TPOT (ms) 104.29 92.44 -11.85 -11.4%+ |
| 111 | P99 TPOT (ms) 2432.58 1534.69 -897.90 -36.9%+ |
| 112 | Mean ITL (ms) 104.21 86.01 -18.20 -17.5%+ |
| 113 | Median ITL (ms) 41.67 40.71 -0.96 -2.3%+ |
| 114 | P99 ITL (ms) 942.18 503.67 -438.52 -46.5%+ |
| 115 | Mean E2EL (ms) 13971.70 14050.44 +78.75 +0.6%- |
| 116 | Median E2EL (ms) 18124.83 16215.31 -1909.52 -10.5%+ |
| 117 | P99 E2EL (ms) 19845.27 16953.16 -2892.11 -14.6%+ |
| 118 | Completed requests 200 200 +0 +0.0% |
| 119 | Failed requests 0 0 +0 +0.0% |
| 120 | Duration (s) 47.22 45.36 -1.86 -3.9%+ |
| 121 | |
| 122 | ====================== Steady-State Comparison ======================= |
| 123 | SS Request throughput (req/s) 3.54 3.42 -0.12 -3.3%- |
| 124 | SS Output throughput (tok/s) 414.65 411.02 -3.64 -0.9%- |
| 125 | SS Input throughput (tok/s) 3653.19 3531.30 -121.89 -3.3%- |
| 126 | SS Total token throughput (tok/s) 4067.84 3942.32 -125.52 -3.1%- |
| 127 | SS Mean TTFT (ms) 2963.90 3830.61 +866.71 +29.2%- |
| 128 | SS Median TTFT (ms) 1623.93 3794.79 +2170.87 +133.7%- |
| 129 | SS Mean TPOT (ms) 179.28 127.99 -51.29 -28.6%+ |
| 130 | SS Median TPOT (ms) 111.30 91.10 -20.21 -18.2%+ |
| 131 | SS P90 TPOT (ms) 157.62 129.90 -27.72 -17.6%+ |
| 132 | SS P99 TPOT (ms) 2361.75 839.92 -1521.83 -64.4%+ |
| 133 | ========================================================================================== |
| 134 | |
| 135 | Legend: + = improvement, - = regression (relative to A → B) |
I created a subtask for the benchmark: https://phabricator.wikimedia.org/T437034 adding my findings there.
Sep 3 2026
Hey, just a short question regarding LiftWing LLM testing:
I see that the current task is an old one (Oct 15 2024) and it refers to https://gitlab.wikimedia.org/repos/research/llm_evaluation/-/blob/mnz/llmperf/llmperf/results/huggingface.ipynb?ref_type=heads .
| Check | Result |
|---|---|
| Plain completion | ✅ Clean content, no think leakage |
| Streaming option | ✅ Streaming works as expected |
| Reasoning behavior | ✅ Matches llm-qwen36-27b (thinking disabled, no token drain) |
| Hard question | ✅ Correct answer, sane token usage (455/489 completion tokens) |
| Tool calling (tools provided) | ✅ Structured tool_calls via qwen3_coder parser |
| Tool calling (no tools) | ✅ Honest text answer, no phantom tool calls |
| Weights loading | ✅ 28.5 GiB loaded, 66/66 shards |
Sep 2 2026
The latest changes on LiftWing-ApenAPI-Specs are deployed.
Sep 1 2026
Aug 31 2026
Aug 27 2026
I developed the LLM chat-completions endpoint for the llm-* models (currently llm-qwen3-14b, llm-qwen36-27b): /service/lw/inference/v1/models/llm-<model>/openai/v1/chat/completions
Aug 26 2026
Hey @elukey thank you very much for your comment.
Hi @catherine.kelsey.wmde, thank you for your comment.
Update
All models are deployed on staging + prod.
Logo-detection issue is fixed merged and deployed on staging + prod, more info in the phabricator-task comment: https://phabricator.wikimedia.org/T435946#12255974
Logo-detection model CI/CD failure is fixed.
Merged and deployed on staging + prod.
Aug 25 2026
I created this related task https://phabricator.wikimedia.org/T435946 regarding the CI/CD failure on the logo-detection model server. The fix is in this patch
All the updates about it will be pasted in the corresponding task.
Aug 19 2026
I removed old edit-check. I just left the latest ones.
The latest changes following the updates on the descriptions for the editing-suggestions are merged and deployed on staging and prod.
The updated csv file with the latest descriptions can be found here
Here are the pods running:
Aug 18 2026
Excluding bots lowered the base rate but the model discriminates far better on the human-editor population (AUC 0.72 → 0.89).
Aug 17 2026
Thank you for your comment @isarantopoulos.
Just chiming in as I've noticed a discrepancy in how the classes should be configured. In damaging models classes maybebad, likelybad and verylikelybad are not mutually exclusive and demonstrate relaxed versions of the same filter. This means that their upper bound is always a probability of 1. More references of this can be found in mediawiki-config repo
Following review feedback, three fixes were applied to the ground truth and the comparison was made valid across models.
Aug 14 2026
Thank you @achou for your comment it was very helpful.
I am pasting here some initial results.
I suspect it happens often, since method includes rollback, which reverts every consecutive edit by the last editor. And the ones we'd miss are the later edits in a rolled-back run, likely the >higher-scoring ones, so they'd end up labelled as negatives right where we're defining verylikelybad. Can you make a quick check? something like COUNT(*) WHERE rev_reverted_newest_id != rev_reverted_oldest_id. If it's non-trivial, the > fix should be easy — oldest -> newest is a contiguous run on one page, so we can join on page.page_id with rev_id BETWEEN oldest AND newest instead of equality.
