Page MenuHomePhabricator

isarantopoulos (Ilias Sarantopoulos)
Machine Learning/MLOps Engineer

Today

  • No visible events.

Tomorrow

  • No visible events.

Saturday

  • No visible events.

User Details

User Since
Nov 1 2022, 12:34 PM (206 w, 1 d)
Availability
Available
LDAP User
Ilias Sarantopoulos
MediaWiki User
ISarantopoulos-WMF [ Global Accounts ]

Recent Activity

Yesterday

isarantopoulos updated subscribers of T440311: Define and implement SLOs for the CoPE-B model.

I've talked with @kostajh and confirmed that the following SLOs are ok for now so we can proceed with next steps

Availability SLI: percentage of all requests that receive a non-error (non-5xx) response. SLO: 95%
Latency SLI: percentage of successful (2xx) requests that complete within 2000 ms. SLO: 90%

Wed, Oct 14, 12:55 PM · Product Safety and Integrity, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440977: clef-flash: Serve an FP8 version of clef-flash on a 24GB partition.
Wed, Oct 14, 11:59 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T440976: clef-flash: Reduce the data we send from vLLM to the clef head.

I wonder if we're already hitting the CPU-GPU data transfer bottleneck with longer inputs,

I think this is what the task wants to address, or to put it better see if it is an issue and improve it.

though the short-input test was run in ML-Lab while this one is on Lift Wing.

both of these tests were ran on ml-lab.

Wed, Oct 14, 11:55 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440976: clef-flash: Reduce the data we send from vLLM to the clef head.
Wed, Oct 14, 11:10 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440976: clef-flash: Reduce the data we send from vLLM to the clef head.
Wed, Oct 14, 11:01 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.

I've tracked down what was causing the above failure or to be more precise what avoids it:
With prefix caching on, vLLM 0.22.1 used an experimental cache mode for clef-flash's linear-attention layers. That mode crashes the vLLM engine when two or more long requests are processed at the same time and after that, every request failed with EngineDeadError.
The previous mL-lab load tests didn't catch it because they sent either many short requests or one long request at a time. Lift Wing traffic was the first to send several long ones at once.
I've replicated the above issue on ml-lab when sending parallel requests with 12k input tokens and also verified that the attached patch fixes this.

Wed, Oct 14, 10:05 AM · Machine-Learning-Team (Q2 FY2026-27)

Tue, Oct 13

isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.

The vllm deployment failed so I've reverted it for now to the previous state

1INFO:kserve.trace:kserve.io.metrics: 0.00551699999996913 ['http_status:200', 'http_method:GET', 'time:cpu']
2INFO:root:Performing inference...
3ERROR:root:Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
4ERROR:kserve:Exception:
5Traceback (most recent call last):
6 File "/srv/app/model.py", line 465, in predict
7 hidden_states = await self._hidden_states(encoded, inputs.get("images"))
8 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9 File "/srv/app/model.py", line 484, in _hidden_states
10 async for output in self.vllm_engine.encode(
11 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 830, in encode
12 q = await self.add_request(
13 ^^^^^^^^^^^^^^^^^^^^^^^
14 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 301, in add_request
15 raise EngineDeadError()
16vllm.v1.engine.exceptions.EngineDeadError: EngineCore encountered an issue. See stack trace (above) for the root cause.
17
18The above exception was the direct cause of the following exception:
19
20Traceback (most recent call last):
21 File "/srv/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
22 await app(scope, receive, sender)
23 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 136, in app
24 response = await f(request)
25 ^^^^^^^^^^^^^^^^
26 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 690, in app
27 raw_response = await run_endpoint_function(
28 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
29 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 344, in run_endpoint_function
30 return await dependant.call(**values)
31 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
32 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/rest/v1_endpoints.py", line 84, in predict
33 response, response_headers = await self.dataplane.infer(
34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
35 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/dataplane.py", line 473, in infer
36 response, res_headers = await model(request, headers=headers)
37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
38 File "/srv/venv/lib/python3.12/site-packages/kserve/model.py", line 228, in __call__
39 (await self.predict(payload, headers))
40 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
41 File "/srv/app/model.py", line 470, in predict
42 raise InferenceError(error_message) from e
43kserve.errors.InferenceError: Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
44INFO:uvicorn.access:127.0.0.6:0 - "POST /v1/models/llm-clef-flash%3Apredict HTTP/1.1" 500
45INFO:kserve.trace:kserve.io.v1.models.llm-clef-flash:predict: 0.002392292022705078 ['http_status:500', 'http_method:POST', 'time:wall']
46INFO:kserve.trace:kserve.io.v1.models.llm-clef-flash:predict: 0.002448000000015327 ['http_status:500', 'http_method:POST', 'time:cpu']
47INFO:root:Performing inference...
48ERROR:root:Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
49ERROR:kserve:Exception:
50Traceback (most recent call last):
51 File "/srv/app/model.py", line 465, in predict
52 hidden_states = await self._hidden_states(encoded, inputs.get("images"))
53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54 File "/srv/app/model.py", line 484, in _hidden_states
55 async for output in self.vllm_engine.encode(
56 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 830, in encode
57 q = await self.add_request(
58 ^^^^^^^^^^^^^^^^^^^^^^^
59 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 301, in add_request
60 raise EngineDeadError()
61vllm.v1.engine.exceptions.EngineDeadError: EngineCore encountered an issue. See stack trace (above) for the root cause.
62
63The above exception was the direct cause of the following exception:
64
65Traceback (most recent call last):
66 File "/srv/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
67 await app(scope, receive, sender)
68 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 136, in app
69 response = await f(request)
70 ^^^^^^^^^^^^^^^^
71 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 690, in app
72 raw_response = await run_endpoint_function(
73 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
74 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 344, in run_endpoint_function
75 return await dependant.call(**values)
76 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
77 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/rest/v1_endpoints.py", line 84, in predict
78 response, response_headers = await self.dataplane.infer(
79 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
80 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/dataplane.py", line 473, in infer
81 response, res_headers = await model(request, headers=headers)
82 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
83 File "/srv/venv/lib/python3.12/site-packages/kserve/model.py", line 228, in __call__
84 (await self.predict(payload, headers))
85 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
86 File "/srv/app/model.py", line 470, in predict
87 raise InferenceError(error_message) from e
88kserve.errors.InferenceError: Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
89INFO:uvicorn.access:127.0.0.6:0 - "POST /v1/models/llm-clef-flash%3Apredict HTTP/1.1" 500
90INFO:kserve.trace:kserve.io.v1.models.llm-clef-flash:predict: 0.00275421142578125 ['http_status:500', 'http_method:POST', 'time:wall']
91INFO:kserve.trace:kserve.io.v1.models.llm-clef-flash:predict: 0.002819999999985612 ['http_status:500', 'http_method:POST', 'time:cpu']
92INFO:root:Performing inference...
93ERROR:root:Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
94ERROR:kserve:Exception:
95Traceback (most recent call last):
96 File "/srv/app/model.py", line 465, in predict
97 hidden_states = await self._hidden_states(encoded, inputs.get("images"))
98 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
99 File "/srv/app/model.py", line 484, in _hidden_states
100 async for output in self.vllm_engine.encode(
101 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 830, in encode
102 q = await self.add_request(
103 ^^^^^^^^^^^^^^^^^^^^^^^
104 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 301, in add_request
105 raise EngineDeadError()
106vllm.v1.engine.exceptions.EngineDeadError: EngineCore encountered an issue. See stack trace (above) for the root cause.
107
108The above exception was the direct cause of the following exception:
109
110Traceback (most recent call last):
111 File "/srv/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
112 await app(scope, receive, sender)
113 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 136, in app
114 response = await f(request)
115 ^^^^^^^^^^^^^^^^
116 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 690, in app
117 raw_response = await run_endpoint_function(
118 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
119 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 344, in run_endpoint_function
120 return await dependant.call(**values)
121 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
122 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/rest/v1_endpoints.py", line 84, in predict
123 response, response_headers = await self.dataplane.infer(
124 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
125 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/dataplane.py", line 473, in infer
126 response, res_headers = await model(request, headers=headers)
127 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
128 File "/srv/venv/lib/python3.12/site-packages/kserve/model.py", line 228, in __call__
129 (await self.predict(payload, headers))
130 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
131 File "/srv/app/model.py", line 470, in predict
132 raise InferenceError(error_message) from e
133kserve.errors.InferenceError: Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
134INFO:uvicorn.access:127.0.0.6:0 - "POST /v1/models/llm-clef-flash%3Apredict HTTP/1.1" 500
135INFO:kserve.trace:kserve.io.v1.models.llm-clef-flash:predict: 0.10541510581970215 ['http_status:500', 'http_method:POST', 'time:wall']
136INFO:kserve.trace:kserve.io.v1.models.llm-clef-flash:predict: 0.20425399999999172 ['http_status:500', 'http_method:POST', 'time:cpu']
137INFO:root:Performing inference...
138ERROR:root:Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
139ERROR:kserve:Exception:
140Traceback (most recent call last):
141 File "/srv/app/model.py", line 465, in predict
142 hidden_states = await self._hidden_states(encoded, inputs.get("images"))
143 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
144 File "/srv/app/model.py", line 484, in _hidden_states
145 async for output in self.vllm_engine.encode(
146 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 830, in encode
147 q = await self.add_request(
148 ^^^^^^^^^^^^^^^^^^^^^^^
149 File "/srv/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 301, in add_request
150 raise EngineDeadError()
151vllm.v1.engine.exceptions.EngineDeadError: EngineCore encountered an issue. See stack trace (above) for the root cause.
152
153The above exception was the direct cause of the following exception:
154
155Traceback (most recent call last):
156 File "/srv/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
157 await app(scope, receive, sender)
158 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 136, in app
159 response = await f(request)
160 ^^^^^^^^^^^^^^^^
161 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 690, in app
162 raw_response = await run_endpoint_function(
163 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
164 File "/srv/venv/lib/python3.12/site-packages/fastapi/routing.py", line 344, in run_endpoint_function
165 return await dependant.call(**values)
166 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/rest/v1_endpoints.py", line 84, in predict
168 response, response_headers = await self.dataplane.infer(
169 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
170 File "/srv/venv/lib/python3.12/site-packages/kserve/protocol/dataplane.py", line 473, in infer
171 response, res_headers = await model(request, headers=headers)
172 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
173 File "/srv/venv/lib/python3.12/site-packages/kserve/model.py", line 228, in __call__
174 (await self.predict(payload, headers))
175 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
176 File "/srv/app/model.py", line 470, in predict
177 raise InferenceError(error_message) from e
178kserve.errors.InferenceError: Error during inference: EngineCore encountered an issue. See stack trace (above) for the root cause.
179INFO:uvicorn.access:127.0.0.6:0 - "POST /v1/models/llm-clef-flash%3Apredict HTTP/1.1" 500
. Will have to take a closer look as the logs don't give much info.

Tue, Oct 13, 6:09 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos created P96678 vllm-clef-flash.
Tue, Oct 13, 5:23 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos edited projects for T433580: Design LLM hosting on LiftWing, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Tue, Oct 13, 2:52 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos edited projects for T433699: RevertRisk-Wikidata: move serving and stream to Linked Artifacts Cache, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Tue, Oct 13, 2:51 PM · Machine-Learning-Team (Q2 FY2026-27), Patch-For-Review
isarantopoulos moved T439967: qwen3-14b model server: Return specific http status (400) when the prompt exceeds MAX_MODEL_LEN from Unsorted/Needs Triage to Ready to Go on the Machine-Learning-Team (Q2 FY2026-27) board.
Tue, Oct 13, 2:47 PM · Essential-Work, Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos moved T438033: Remove article-descriptions model from LiftWing from Unsorted/Needs Triage to SRE on the Machine-Learning-Team (Q2 FY2026-27) board.
Tue, Oct 13, 2:47 PM · Data-Platform-SRE (2026-10-09 - 2026-10-30), Machine-Learning-Team (Q2 FY2026-27), Essential-Work
isarantopoulos moved T431553: ml-serve: review documentation and apply AMD MI300X system-optimization settings to ml-serve1012-1015 from In Progress to SRE on the Machine-Learning-Team (Q2 FY2026-27) board.
Tue, Oct 13, 2:44 PM · Data-Platform-SRE (2026-10-09 - 2026-10-30), Machine-Learning-Team (Q2 FY2026-27), Essential-Work
isarantopoulos created T440977: clef-flash: Serve an FP8 version of clef-flash on a 24GB partition.
Tue, Oct 13, 12:08 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos created T440976: clef-flash: Reduce the data we send from vLLM to the clef head.
Tue, Oct 13, 12:06 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.

Thanks @isarantopoulos for doing this. Right now the Wikitech page lists it in the "public API and Studio" section, but it seems this is only available as a predict API endpoint so it's not usable in liftwing-studio. Maybe change that on the page, or make a new set of columns for each model showing whether it's available as API call or in studio.

Tue, Oct 13, 5:14 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.
UsersvLLM req/sTransformers req/sThroughput gainvLLM medianTransformers medianLatency reduction
110.233.383.0x953003.2x
415.713.434.6x25011004.4x
826.863.397.9x30023007.7x
3229.443.348.8x110093008.5x
Tue, Oct 13, 4:52 AM · Machine-Learning-Team (Q2 FY2026-27)

Mon, Oct 12

isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.

I've added a vllm backend to the qwen model that clef-flash is based on in order to speed up the service. Below are the load tests with the new variant as test on ml-lab.
Locust with 8 concurrent users

Type  Name                                  # reqs    # fails  Avg  Min  Max  Med  req/s  failures/s
----  ------------------------------------  ------  ---------  ---  ---  ---  ---  -----  ----------
POST  /v1/models/clef-flash:predict [text]    3226  0 (0.00%)  297   86  695  300  26.86        0.00
----  ------------------------------------  ------  ---------  ---  ---  ---  ---  -----  ----------
      Aggregated                              3226  0 (0.00%)  297   86  695  300  26.86        0.00
Mon, Oct 12, 9:12 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated subscribers of T438838: Provide an OpenCode configuration for Lift Wing models.
Mon, Oct 12, 12:54 PM · Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos updated subscribers of T438838: Provide an OpenCode configuration for Lift Wing models.

@BWojtowicz-WMF sharing here a modified version of your opencode config (includes only the providers.

Mon, Oct 12, 12:54 PM · Machine-Learning-Team (Q1 FY2026-27)

Fri, Oct 9

isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.

Thanks for all the work!
I added a row in the list of available models on Wikitech https://wikitech.wikimedia.org/wiki/Machine_Learning/LiftWing/Large_Language_Models#Available_Models
Since this is using a huggingface backend and not vllm we don't expect it to be that performant but it is fast enough to allow experimentation, We'll follow up with load tests.
Also note that the frameworks we're using (kserve, vllm etc) have note yet adopted the endpoints that decision models have introduced (v1/systemone & v1/decisions) so here we're using a standard kserve :predict endpoint for now.

Fri, Oct 9, 5:50 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T416659: Host sentence-transformers/LaBSE model in LiftWing.

Thanks for returning to this @santhosh. Is this model still the best candidate for low resource languages or are there other alternatives?
We can offer a first deployment of this model for some initial explorations and we can later assess its performance and work on any improvements if needed.

Fri, Oct 9, 2:02 PM · Machine-Learning-Team (Q2 FY2026-27), Language and Product Localization
isarantopoulos edited projects for T416659: Host sentence-transformers/LaBSE model in LiftWing, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team.
Fri, Oct 9, 2:00 PM · Machine-Learning-Team (Q2 FY2026-27), Language and Product Localization

Thu, Oct 8

isarantopoulos added a comment to T434525: Decide on the future shape of ML/LW SLOs, and how they are monitored.

We've started some work on the SLOs for the following services which are also sorted by priority (highest prio first):

Thu, Oct 8, 7:34 AM · Data-Platform-SRE (2026-10-09 - 2026-10-30), Essential-Work, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T440311: Define and implement SLOs for the CoPE-B model from Unsorted/Needs Triage to Ready to Go on the Machine-Learning-Team (Q2 FY2026-27) board.
Thu, Oct 8, 7:31 AM · Product Safety and Integrity, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T440307: Define and implement SLOs for the public LLM inference services.

WIP SLO draft is currently being worked on here https://wikitech.wikimedia.org/wiki/SLO/LiftWing_LLM

Thu, Oct 8, 7:30 AM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos moved T435831: Incorporate user decision signals into Add Link model training from Unsorted/Needs Triage to In Progress on the Machine-Learning-Team (Q2 FY2026-27) board.
Thu, Oct 8, 7:27 AM · Machine-Learning-Team (Q2 FY2026-27), Growth-Team, Add-Link-Structured-Task
isarantopoulos moved T439245: Create SLO for the jina-embeddings model server using Sloth from Unsorted/Needs Triage to Ready to Go on the Machine-Learning-Team (Q2 FY2026-27) board.
Thu, Oct 8, 7:27 AM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos assigned T439245: Create SLO for the jina-embeddings model server using Sloth to OKarakaya-WMF.
Thu, Oct 8, 7:27 AM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos moved T440307: Define and implement SLOs for the public LLM inference services from Unsorted/Needs Triage to In Progress on the Machine-Learning-Team (Q2 FY2026-27) board.
Thu, Oct 8, 7:26 AM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos moved T439555: Move llm isvcs to new partitions from Unsorted/Needs Triage to In Progress on the Machine-Learning-Team (Q2 FY2026-27) board.
Thu, Oct 8, 7:26 AM · Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos closed T436758: Publish TTS v1 audio files with standard caching at the CDN, a subtask of T430676: Q1 FY2026-27 Text-to-Speech V1 Experiment, as Resolved.
Thu, Oct 8, 7:25 AM · OKR-Work, Goal, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos closed T436758: Publish TTS v1 audio files with standard caching at the CDN as Resolved.
Thu, Oct 8, 7:25 AM · Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T436525: ORESFetchScoreJobKafkaLag (1 alert) and LiftWingServiceErrorRate (1 alert) from Ready to Go to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Thu, Oct 8, 7:25 AM · Essential-Work, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos closed T436525: ORESFetchScoreJobKafkaLag (1 alert) and LiftWingServiceErrorRate (1 alert) as Resolved.

Resolving this for now as there was no follow up action and it has not occurred again.

Thu, Oct 8, 7:25 AM · Essential-Work, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T438673: liftwing-studio: Set up a shared local LibreChat environment from Unsorted/Needs Triage to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Thu, Oct 8, 7:23 AM · Patch-For-Review, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos closed T438673: liftwing-studio: Set up a shared local LibreChat environment as Resolved.

This work has resulted in the setup available under the directory https://gitlab.wikimedia.org/repos/machine-learning/liftwing-studio/-/tree/main/experiments/litellm?ref_type=heads
(LibreChat + LiteLLM)

Thu, Oct 8, 7:23 AM · Patch-For-Review, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T435491: Spike: scope work needed to enable single domain lookup in the existing Reference Risk model from Unsorted/Needs Triage to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Thu, Oct 8, 7:22 AM · Machine-Learning-Team (Q1 FY2026-27), Patch-For-Review, LPL sprints (S3 2026 September), OKR-Work, LPL Projects (Guidance while editing - FY27 DE 1.4.4), Article-Guidance
isarantopoulos edited projects for T438228: [ML TTS] Expose structured sentence, paragraph, and revision metadata for Read-Along synchronization, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 8, 7:21 AM · Machine-Learning-Team (Q2 FY2026-27), Reader Growth Team
isarantopoulos moved T438845: Enable For You TTS experiment via remote config flag from Unsorted/Needs Triage to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Thu, Oct 8, 7:20 AM · App Experience (AppEx Sprint [FY2627 Sep 9 - Sep 22]), Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos edited projects for T439967: qwen3-14b model server: Return specific http status (400) when the prompt exceeds MAX_MODEL_LEN, added: Machine-Learning-Team (Q2 FY2026-27), Essential-Work; removed Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 8, 7:20 AM · Essential-Work, Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos edited projects for T438033: Remove article-descriptions model from LiftWing, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 8, 7:19 AM · Data-Platform-SRE (2026-10-09 - 2026-10-30), Machine-Learning-Team (Q2 FY2026-27), Essential-Work
isarantopoulos edited projects for T440288: Add 'test/unit/<model>/' paths to Zuul trigger file filters, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 8, 7:19 AM · Machine-Learning-Team (Q2 FY2026-27), Patch-For-Review, Lift-Wing, Essential-Work
isarantopoulos edited projects for T439555: Move llm isvcs to new partitions, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 8, 7:19 AM · Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos edited projects for T435831: Incorporate user decision signals into Add Link model training, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 8, 7:18 AM · Machine-Learning-Team (Q2 FY2026-27), Growth-Team, Add-Link-Structured-Task
isarantopoulos closed T430676: Q1 FY2026-27 Text-to-Speech V1 Experiment as Resolved.
Thu, Oct 8, 7:17 AM · OKR-Work, Goal, Machine-Learning-Team (Q1 FY2026-27)

Wed, Oct 7

isarantopoulos updated the task description for T440311: Define and implement SLOs for the CoPE-B model.
Wed, Oct 7, 12:31 PM · Product Safety and Integrity, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a project to T440311: Define and implement SLOs for the CoPE-B model: Product Safety and Integrity.
Wed, Oct 7, 12:24 PM · Product Safety and Integrity, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440311: Define and implement SLOs for the CoPE-B model.
Wed, Oct 7, 12:22 PM · Product Safety and Integrity, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos assigned T440223: Deploy an open-weight decision model for classification use cases to • kevinbazira.
Wed, Oct 7, 8:35 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T440223: Deploy an open-weight decision model for classification use cases.

Thanks for creating this task Fabian. We've been looking into decision models as well and there is indeed a lot of benefit in using them. We'll get started on this soon with clef-flash as the first candidate to try which would be easier to scale because of its size. Does that sound ok to you or is there a strong preference for another model?

Wed, Oct 7, 8:29 AM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated subscribers of T440395: Hoarde: send Last-Modified in HTTP date format (GMT, not UTC).

Would we (ML) need to make any change or is this purely on LAC side?
As far as I know only the Apps team is using the article topics hoarde endpoint. @Dbrant would this change affect you at all?

Wed, Oct 7, 8:22 AM · Data-Persistence

Tue, Oct 6

isarantopoulos added a comment to T440307: Define and implement SLOs for the public LLM inference services.

One thing that needs further discussion is how to define the SLOs to take concurrent requests into consideration in the availability SLI. When designing an SLO, the SLIs that are defined need to be things that we control and in this case it won't be true as both TTFP and TPOT would be affected. I think this should also be defined in the services in the vllm parameter MAX_NUM_SEQS.

Tue, Oct 6, 1:43 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos moved T440223: Deploy an open-weight decision model for classification use cases from Unsorted/Needs Triage to Ready to Go on the Machine-Learning-Team (Q2 FY2026-27) board.
Tue, Oct 6, 1:38 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos edited projects for T440223: Deploy an open-weight decision model for classification use cases, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Tue, Oct 6, 1:37 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos created T440311: Define and implement SLOs for the CoPE-B model.
Tue, Oct 6, 1:30 PM · Product Safety and Integrity, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440307: Define and implement SLOs for the public LLM inference services.
Tue, Oct 6, 1:27 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos edited projects for T439245: Create SLO for the jina-embeddings model server using Sloth, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Tue, Oct 6, 1:25 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos edited projects for T440307: Define and implement SLOs for the public LLM inference services, added: Machine-Learning-Team (Q2 FY2026-27); removed Machine-Learning-Team (Q1 FY2026-27).
Tue, Oct 6, 1:25 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440307: Define and implement SLOs for the public LLM inference services.
Tue, Oct 6, 1:25 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos updated the task description for T440307: Define and implement SLOs for the public LLM inference services.
Tue, Oct 6, 1:24 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos created T440307: Define and implement SLOs for the public LLM inference services.
Tue, Oct 6, 1:22 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a comment to T439659: Add Qwen3-14B-FP8 LLMInferenceService in LiftWing staging.

Legacy :predict path:

@kevinbazira Thanks for all the tests! regarding the missing :predict endpoints; I think this makes sense since there is no code that defines this path here. I propose that we only offer /chat/completions endpoints for LLMs and have a single API instead of maintaining both predict and /chat/completions. What do you think?

Tue, Oct 6, 1:19 PM · Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos created Machine-Learning-Team (Q2 FY2026-27).
Tue, Oct 6, 12:50 PM
isarantopoulos moved T438691: LiteLLM: Test locally as a gateway for Lift Wing models from In Progress to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Tue, Oct 6, 12:44 PM · Patch-For-Review, Machine-Learning-Team (Q1 FY2026-27)

Mon, Oct 5

isarantopoulos added a comment to T434046: CDN caching request for TTS v1 audio files.

So are 1 hour TTLs sufficiently long for this requirement @isarantopoulos?
If you're OK with the current settings, then we might be done here and can maybe resolve the ticket.

During this experiment we will be serving a snapshot of data which means audio files based on specific revisions. No new data is generated so if we can have a higher TTL that would be great, otherwise I don't believe it is going to be an issue.

Mon, Oct 5, 7:42 PM · Traffic, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos edited projects for T440223: Deploy an open-weight decision model for classification use cases, added: Machine-Learning-Team (Q1 FY2026-27); removed Machine-Learning-Team.
Mon, Oct 5, 5:57 PM · Machine-Learning-Team (Q2 FY2026-27)
isarantopoulos added a project to T440218: No tone suggestions found from API for title {title} and revision {revision}: Machine-Learning-Team (Q1 FY2026-27).
Mon, Oct 5, 5:33 PM · MW-1.48-notes (1.48.0-wmf.1; 2026-10-20), MW-1.47-notes (1.47.0-wmf.24; 2026-10-13), Machine-Learning-Team (Q1 FY2026-27), Revise-Tone-Structured-Task, Growth-Team, Wikimedia-production-error

Fri, Oct 2

isarantopoulos closed T438691: LiteLLM: Test locally as a gateway for Lift Wing models as Resolved.
Fri, Oct 2, 1:37 PM · Patch-For-Review, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos updated the task description for T438691: LiteLLM: Test locally as a gateway for Lift Wing models.
Fri, Oct 2, 1:37 PM · Patch-For-Review, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos added a comment to T434046: CDN caching request for TTS v1 audio files.

The total size is much smaller than the initial request since we are only generating audio for the Lead section of each article. @kevinbazira can provide more info either here or in the related task T436758: Publish TTS v1 audio files with standard caching at the CDN

Fri, Oct 2, 11:54 AM · Traffic, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T438987: Evaluate LibreChat and Open WebUI for LiftWing Studio Productionization from In Progress to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Fri, Oct 2, 11:52 AM · Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T439395: Expose gpt-oss-safeguard-20b publicly from In Progress to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Fri, Oct 2, 11:52 AM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T432128: Create dataset of article titles for TTS V1 from In Progress to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Fri, Oct 2, 11:52 AM · Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos added a comment to T434046: CDN caching request for TTS v1 audio files.

@ssingh o/
Just a heads up that @kevinbazira has started generating the batch of audio files that will be used in the TTS experiment that will start on Monday the 5th of October.

Fri, Oct 2, 11:45 AM · Traffic, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos closed T432128: Create dataset of article titles for TTS V1, a subtask of T430676: Q1 FY2026-27 Text-to-Speech V1 Experiment, as Resolved.
Fri, Oct 2, 11:18 AM · OKR-Work, Goal, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos closed T432128: Create dataset of article titles for TTS V1 as Resolved.

Since were generating the audio files I'm marking this task as resolved

Fri, Oct 2, 11:18 AM · Machine-Learning-Team (Q1 FY2026-27)

Thu, Oct 1

isarantopoulos added a project to T435491: Spike: scope work needed to enable single domain lookup in the existing Reference Risk model: Machine-Learning-Team (Q1 FY2026-27).
Thu, Oct 1, 8:42 AM · Machine-Learning-Team (Q1 FY2026-27), Patch-For-Review, LPL sprints (S3 2026 September), OKR-Work, LPL Projects (Guidance while editing - FY27 DE 1.4.4), Article-Guidance
isarantopoulos edited projects for T437216: Set an identifiable User-Agent on WMF tools calling gitlab.wikimedia.org, added: Machine-Learning-Team (Q1 FY2026-27); removed Machine-Learning-Team.
Thu, Oct 1, 8:35 AM · Machine-Learning-Team (Q1 FY2026-27), SecTeam-Processed, Product Safety and Integrity, Research, Security-Team, Release-Engineering-Team (Radar), GitLab, Collaboration-Services

Tue, Sep 29

isarantopoulos closed T439395: Expose gpt-oss-safeguard-20b publicly as Resolved.
Tue, Sep 29, 3:48 PM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos updated the task description for T439395: Expose gpt-oss-safeguard-20b publicly.
Tue, Sep 29, 1:42 PM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos added a comment to T439395: Expose gpt-oss-safeguard-20b publicly.
curl -s https://api.wikimedia.org/service/lw/inference/v1/models/llm-gpt-oss-safeguard-20b:predict -H "Content-Type: application/json" -d '{ "messages": [{"role": "user", "content": "CLICK HERE TO WIN $10000!!! Visit http://totallylegit.biz NOW before offer expires!!!"}], "developer_prompt": "You are a content safety classifier.\n## Spam Policy\n\n### INSTRUCTIONS\nClassify the following content as spam or not spam. Return JSON: {\"violation\": 0 or 1, \"rationale\": \"brief explanation\"}\n0 = not spam, 1 = spam\n\n### VIOLATES (1)\n- Unsolicited promotional content\n- Repetitive messages\n- Phishing attempts\n- Deceptive links\n\n### SAFE (0)\n- Genuine questions or discussions\n- Relevant information sharing\n- Normal conversation", "max_tokens": 4096, "temperature": 0.7, "top_p": 0.95 }'
{"reasoning":"[TextContent(text='We need to classify content as spam or not. The message: \"CLICK HERE TO WIN $10000!!! Visit http://totallylegit.biz NOW before offer expires!!!\"\\n\\nThis is obviously a promotional spam. So violation=1. Provide rationale.')]","verdict":"[TextContent(text='{\"violation\": 1, \"rationale\": \"The message is a promotional click‑bait offering a prize and directing users to a suspicious link, which is characteristic of unsolicited spam.\"}')]"}%
Tue, Sep 29, 1:42 PM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos claimed T439395: Expose gpt-oss-safeguard-20b publicly.
Tue, Sep 29, 1:32 PM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos moved T439395: Expose gpt-oss-safeguard-20b publicly from Ready to Go to In Progress on the Machine-Learning-Team (Q1 FY2026-27) board.
Tue, Sep 29, 1:32 PM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos updated the task description for T439555: Move llm isvcs to new partitions.
Tue, Sep 29, 1:22 PM · Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos updated the task description for T439555: Move llm isvcs to new partitions.
Tue, Sep 29, 1:21 PM · Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos added a comment to T439555: Move llm isvcs to new partitions.

Note that gpt-oss-safeguard-model has been moved in the task T439395: Expose gpt-oss-safeguard-20b publicly

Tue, Sep 29, 1:20 PM · Machine-Learning-Team (Q2 FY2026-27), Lift-Wing
isarantopoulos created T439555: Move llm isvcs to new partitions.
Tue, Sep 29, 1:20 PM · Machine-Learning-Team (Q2 FY2026-27), Lift-Wing

Mon, Sep 28

isarantopoulos renamed T439395: Expose gpt-oss-safeguard-20b publicly from Expose gpt-oss-safeguard publicly to Expose gpt-oss-safeguard-20b publicly.
Mon, Sep 28, 11:25 AM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos created T439395: Expose gpt-oss-safeguard-20b publicly.
Mon, Sep 28, 11:25 AM · Essential-Work, Lift-Wing, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos updated the task description for T439385: Update httpbb tests and add a single script to run them.
Mon, Sep 28, 10:11 AM · Essential-Work, Machine-Learning-Team (Q1 FY2026-27)
isarantopoulos created T439385: Update httpbb tests and add a single script to run them.
Mon, Sep 28, 10:06 AM · Essential-Work, Machine-Learning-Team (Q1 FY2026-27)

Fri, Sep 25

isarantopoulos updated the task description for T439245: Create SLO for the jina-embeddings model server using Sloth.
Fri, Sep 25, 1:07 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos updated subscribers of T439245: Create SLO for the jina-embeddings model server using Sloth.

o/ @pfischer. We would like to discuss and negotiate the SLOs defined in this task in order to reach a consensus. Let us know what you think.

Fri, Sep 25, 1:02 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos added a project to T439245: Create SLO for the jina-embeddings model server using Sloth: Discovery-Search.
Fri, Sep 25, 12:55 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos triaged T439245: Create SLO for the jina-embeddings model server using Sloth as High priority.
Fri, Sep 25, 12:38 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search
isarantopoulos created T439245: Create SLO for the jina-embeddings model server using Sloth.
Fri, Sep 25, 12:37 PM · Patch-For-Review, Machine-Learning-Team (Q2 FY2026-27), Discovery-Search

Wed, Sep 23

isarantopoulos closed T438894: AbuseReview: CoPE model URL on production is incorrect as Resolved.
Wed, Sep 23, 9:40 AM · Machine-Learning-Team (Q1 FY2026-27), Product Safety and Integrity, FY25-26 DE4.1 Platform capacity, WikimediaAntiAbuse-AbuseReview
isarantopoulos moved T438894: AbuseReview: CoPE model URL on production is incorrect from Unsorted/Needs Triage to Done on the Machine-Learning-Team (Q1 FY2026-27) board.
Wed, Sep 23, 9:39 AM · Machine-Learning-Team (Q1 FY2026-27), Product Safety and Integrity, FY25-26 DE4.1 Platform capacity, WikimediaAntiAbuse-AbuseReview

Tue, Sep 22

isarantopoulos added a comment to T438894: AbuseReview: CoPE model URL on production is incorrect.

A follow up item before we close this task is for the ML team to add an explicit statement in the documentation on Wikitech that these models exist in eqiad https://wikitech.wikimedia.org/wiki/Machine_Learning/LiftWing/Large_Language_Models. We'll add that and resolve it afterwards.

Tue, Sep 22, 5:58 PM · Machine-Learning-Team (Q1 FY2026-27), Product Safety and Integrity, FY25-26 DE4.1 Platform capacity, WikimediaAntiAbuse-AbuseReview