Files
esh-pfi-infrastructure/stacks/h2o-eval
vh 2b40805b84 feat(h2o-eval): round 2 eval seat on GPU 3 with floor-on/floor-off fronts for the judge investigation
Prime (via albok-dev): understand why h2o failed and re-fit the judge. One
vLLM on GPU 3 behind two fronts: :8034 with the shim's yes/no floor at 0.801
exactly as the cutover ran (same judge stamp), :8035 with SHIM_NOUL_FLOOR=0 and
a distinct stamp (h2o-lightning-4b+noul-floor-0). Both refuse image URLs; the
vLLM --allowed-media-domains backstop is now verified (400, no fetch).
2026-10-12 14:29:15 -07:00
..

h2o-eval (TEMPORARY) — fv-ml1 GPU 3, :8034

UP again since 2026-10-12 1428 PT, round 2 (Prime 1420, via albok-dev): "I'd like to understand why h2o failed, so stand it up on gpu3 and refit it and let's get an understanding." albok-dev runs the investigation and the judge re-fit (thread 01M4S026GWS354WZGXZ5E34F31). No load tests or other traffic while their runs are in. Round 1 (1300–1319) was the pre-cutover validation. Take it down with docker compose down when albok-dev is done.

port front floor judge stamp (/health model)
:8034 h2o-eval-front ON, 0.801, as the live cutover ran h2o-lightning-4b@b43f759b…, identical to the cutover's
:8035 h2o-eval-front-nofloor OFF (SHIM_NOUL_FLOOR=0) h2o-lightning-4b+noul-floor-0@b43f759b…

Both fronts sit over ONE vLLM (14,420 MiB, KV 135,070 tokens, util-sized because GPU 3 is otherwise empty). Each /health also reports backend.noul_floor {value, source}.

Checked at 1428:

  • /decide/shared 200 on both, with the cutover's smoke values reproduced (adult 0.052, personal 0.876).
  • An https image URL is refused on both: 422 "not accepted here".
  • The vLLM backstop answered for the first time. An https image URL posted straight to vLLM got 400 "The URL must be from one of the allowed domains: ['media.invalid']", with no fetch.

h2o-lightning-4b @ b43f759b behind services/h2o-decision-front (copied into conf/front/), for albok-dev's re-validation of Nemi's sensitivity judge before the GPU 1 cutover (Prime 2026-10-12 via brokkr). Remove right after the cutover: GPU 3 is for transient work only (Scriberr and MIA use it).

  • Weights: /tank/aimodels/h2o-lightning-4b-b43f759b (copied from the bench kit; model.safetensors sha256 2d51561f221e1549d91bd1c38b3512a1435dd32950d454a9f040f1d4d11497b6, tokenizer.json 5f9e4d49…, shim git oid fee7807e…, serve_config 5e6fef1c…: all equal to Hugging Face at b43f759b).
  • vLLM exactly as benched: --max-model-len 40960 --max-num-seqs 16 --gpu-memory-utilization 0.1506, vision limits as the vendor's serve.sh; healthy ~3 min after up (graph capture), ~14.4 GB on GPU 3.
  • .env on the host: FRONT_TOKEN = intern-decision's token (= vault albok/judge-token).
  • Remove: cd /opt/docker/compose/h2o-eval && docker compose down (the weights stay for the GPU 1 seat).