Page MenuHomePhabricator

Upgrade langid model server from debian bullseye to bookworm
Closed, ResolvedPublic

Description

Use the latest bookworm image and update langid model.

Operating_system_upgrade_policy

Event Timeline

Change #1172597 had a related patch set uploaded (by Gkyziridis; author: Gkyziridis):

[machinelearning/liftwing/inference-services@main] langid-model: Update base image from bullseye to the latest bookworm image.

https://gerrit.wikimedia.org/r/1172597

Testing Bookworm on langid

Tested it on ml-tesing machine.

Total wall clock time: 41s
Downloaded: 1 files, 1.1G in 41s (28.7 MB/s)
MODEL_PATH=models/langid/lid201-model.bin MODEL_NAME=langid \
 \
my_venv/bin/python src/models/langid/./model.py \
 \

2025-07-25 09:30:03.295 128 kserve INFO [model_server.py:register_model():384] Registering model: langid
2025-07-25 09:30:03.296 128 kserve INFO [model_server.py:start():254] Setting max asyncio worker threads as 12
2025-07-25 09:30:03.296 128 kserve INFO [model_server.py:serve():260] Starting uvicorn with 1 workers
2025-07-25 09:30:03.324 uvicorn.error INFO:     Started server process [128]
2025-07-25 09:30:03.324 uvicorn.error INFO:     Waiting for application startup.
2025-07-25 09:30:03.329 128 kserve INFO [server.py:start():63] Starting gRPC server on [::]:8081
2025-07-25 09:30:03.330 uvicorn.error INFO:     Application startup complete.
2025-07-25 09:30:03.330 uvicorn.error INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
2025-07-25 09:31:34.205 kserve.trace requestId: N.A., preprocess_ms: 0.473976135, explain_ms: 0, predict_ms: 0.774145126, postprocess_ms: 0.013589859
2025-07-25 09:31:34.206 uvicorn.access INFO:     127.0.0.1:49322 128 - "POST /v1/models/langid%3Apredict HTTP/1.1" 200 OK
2025-07-25 09:31:34.207 kserve.trace kserve.io.kserve.protocol.rest.v1_endpoints.predict: 0.005282878875732422
2025-07-25 09:31:34.207 kserve.trace kserve.io.kserve.protocol.rest.v1_endpoints.predict: 0.005215000000000192
root@a82ca20a19f3:/# curl localhost:8080/v1/models/langid:predict -i -X POST -d '{"text": "Some random text in any language"}'
HTTP/1.1 200 OK
date: Fri, 25 Jul 2025 09:31:33 GMT
server: uvicorn
content-length: 90
content-type: application/json

{"language":"eng_Latn","wikicode":"en","languagename":"English","score":0.223587766289711}root@a82ca20a19f3:/#

Test it on ml-testing

1docker buildx build --target production -f .pipeline/langid/blubber.yaml --platform=linux/amd64 . -t langid:v1
2[+] Building 151.6s (27/27) FINISHED docker:default
3 => [internal] load build definition from blubber.yaml
4 => => transferring dockerfile: 1.28kB
5 => resolve image config for docker-image://docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.21.1
6 => CACHED docker-image://docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.21.1@sha256:6588f13cb8fee4b648bfc8f46b63222d0d53317f39d41d3413c6030ba14a036d
7 => local://dockerfile
8 => => transferring dockerfile: 1.28kB
9 => local://context
10 => => transferring context: 34B
11 => [internal] load metadata for docker-registry.wikimedia.org/bookworm:20250720
12 => [build 1/10] FROM docker-registry.wikimedia.org/bookworm:20250720@sha256:2e8d99bc7a9be89c2aa3e711004730202eef793f3a912e73c99dc743b17ef3e6
13 => [internal] load build context
14 => => transferring context: 924B
15 => CACHED [build 2/10] RUN apt-get update && apt-get install -y "python3-pip" "python3-dev" "build-essential" "git" "g++" "wget" && rm -rf /var/lib/apt/lists/*
16 => [build 3/10] RUN python3 "-m" "pip" "install" "-U" "setuptools!=60.9.0" && python3 "-m" "pip" "install" "-U" "wheel" "tox" "pip"
17 => CACHED [production 2/10] RUN apt-get update && apt-get install -y "python3" "python3-distutils" "wmf-certificates" && rm -rf /var/lib/apt/lists/*
18 => CACHED [production 3/10] RUN (getent group "65533" || groupadd -o -g "65533" -r "somebody") && (getent passwd "65533" || useradd -l -o -m -d "/home/somebody" -r -g "65533" -u "65533" "somebody") && mkdir -p "/srv/app" && chown "65533":"65533" "/srv/app" && mkdir -p "/opt/lib" && chown "65533":"65533" "/opt/lib" 0.0s
19 => CACHED [production 4/10] RUN (getent group "900" || groupadd -o -g "900" -r "runuser") && (getent passwd "900" || useradd -l -o -m -d "/home/runuser" -r -g "900" -u "900" "runuser")
20 => CACHED [production 5/10] WORKDIR /srv/app
21 => CACHED [production 6/10] COPY --chown=65533:65533 [src/models/langid/, langid/]
22 => CACHED [production 7/10] COPY --chown=65533:65533 [python, python/]
23 => [build 4/10] RUN (getent group "65533" || groupadd -o -g "65533" -r "somebody") && (getent passwd "65533" || useradd -l -o -m -d "/home/somebody" -r -g "65533" -u "65533" "somebody") && mkdir -p "/srv/app" && chown "65533":"65533" "/srv/app" && mkdir -p "/opt/lib" && chown "65533":"65533" "/opt/lib" 0.8s
24 => [build 5/10] RUN (getent group "900" || groupadd -o -g "900" -r "runuser") && (getent passwd "900" || useradd -l -o -m -d "/home/runuser" -r -g "900" -u "900" "runuser")
25 => [build 6/10] WORKDIR /srv/app
26 => [build 7/10] COPY --chown=65533:65533 [src/models/langid/requirements.txt, src/models/langid/]
27 => [build 8/10] COPY --chown=65533:65533 [python/requirements.txt, python/]
28 => [build 9/10] RUN mkdir -p "/opt/lib/python"
29 => [build 10/10] RUN python3 "-m" "pip" "wheel" "-r" "src/models/langid/requirements.txt" "-r" "python/requirements.txt" && python3 "-m" "pip" "install" "--target" "/opt/lib/python/site-packages" "-r" "src/models/langid/requirements.txt" "-r" "python/requirements.txt"
30 => [production 8/10] COPY --chown=65533:65533 --from=build [/opt/lib/python/site-packages, /opt/lib/python/site-packages]
31 => [production 9/10] COPY --chown=65533:65533 [model_server_entrypoint.sh, entrypoint.sh]
32 => [production 10/10] COPY --chown=65533:65533 [common_settings.sh, common_settings.sh]
33 => exporting to image
34 => => exporting layers
35 => => writing image sha256:72989f10a3b7adcc12dc59b361368860a8cf0aa54a64be22a21be2063bc453d0
36 => => naming to docker.io/library/langid:v1

Change #1172597 merged by jenkins-bot:

[machinelearning/liftwing/inference-services@main] langid-model: Update base image from bullseye to the latest bookworm image.

https://gerrit.wikimedia.org/r/1172597

Change #1174412 had a related patch set uploaded (by Gkyziridis; author: Gkyziridis):

[operations/deployment-charts@master] ml-services: Deploy latest image for langid on staging.

https://gerrit.wikimedia.org/r/1174412

Change #1174412 merged by jenkins-bot:

[operations/deployment-charts@master] ml-services: Deploy latest image for langid on staging.

https://gerrit.wikimedia.org/r/1174412

Change #1175477 had a related patch set uploaded (by Gkyziridis; author: Gkyziridis):

[operations/deployment-charts@master] ml-services: Deploy latest image for langid on production.

https://gerrit.wikimedia.org/r/1175477

Change #1175477 merged by jenkins-bot:

[operations/deployment-charts@master] ml-services: Deploy latest image for langid on production.

https://gerrit.wikimedia.org/r/1175477