An existing CLI parser test invoked live voice audio down because it omitted --dry-run. |
The test removed and recreated the protected Parakeet and Kokoro containers. Their exact image IDs and bindings were immediately restored and functionally checked. |
The test now passes --dry-run; live restoration is documented in the finding. |
| The corpus contract allowed FLAC, but the Parakeet endpoint returned HTTP 400 for every selected human FLAC. |
The two incomplete fail-closed artifacts are retained in this directory. |
voice corpus prepare now requires an explicit/system FFmpeg and normalizes selected LibriSpeech audio to 16-kHz mono WAV. Validation still accepts conforming WAV or FLAC inputs. |
| The planned Transformers 5.12 runtime could not load the pinned Nemotron checkpoint. |
The checkpoint requires the model support added in Transformers 5.13.0. |
The experiment image pins 5.13.0 and records the resulting image digest. |
transformers[serving] omitted runtime packages needed by the transcription endpoint. |
Requests failed first for missing librosa, then for missing python-multipart. |
The image pins librosa==0.11.0 and python-multipart==0.0.32. |
Transformers 5.13 accepted but ignored transcription language, and its handler passed a generation output object directly to batch_decode. |
Explicit en-US conditioning was not honored; the first decoded request failed with a type error. |
A fail-closed source patch forwards language to the processor, unwraps .sequences, and returns detected language tags for auto probes. |
Transformers /v1/models returned an error when its hub cache directory did not exist. |
Managed readiness could not distinguish an empty cache from a failed server. |
The entrypoint creates the hub directory before starting transformers serve. |
The pinned Qwen vLLM runtime parsed CUDA_VISIBLE_DEVICES as an integer, not a GPU UUID. |
The first Qwen launch failed before model load. |
Docker retains the UUID device reservation while the restricted container receives ordinal 0; PyTorch was checked to see only the RTX 5090. |
Container-level nvidia-smi listed both host GPUs even though the framework-level CUDA selector exposed only the RTX 5090. |
An operator could misread placement, and a process ignoring CUDA_VISIBLE_DEVICES would have a broader view than intended. |
Both experiment services now set NVIDIA_VISIBLE_DEVICES to the selected UUID in addition to the Docker reservation; Qwen keeps ordinal 0 only inside that UUID boundary. |
The official Qwen image did not register its custom Transformers architecture before direct vllm serve. |
The second Qwen launch rejected model type qwen3_asr. |
The managed command imports the official qwen_asr package before entering vLLM. |
| Qwen's default 65,536-token context could not fit beside the protected Omni serve at 20% vLLM utilization. |
vLLM reported that 7.0 GiB of KV cache was required but only 1.83 GiB was available. |
The one-shot STT experiment pins --max-model-len 16384; Omni remained running throughout. |
vLLM returned Qwen's internal language ...<asr_text> envelope as transcript text. |
A nominal HTTP 200 was not a valid one-shot transcript contract. |
A fail-closed image patch applies the official qwen_asr.parse_asr_output function before the OpenAI response is built, and the benchmark client rejects any residual provider envelope. |
serves up and serves down do not use identical options. |
Repeated qualification commands were easy to misremember; serves down rejects --no-router and uses --manifest, not a generic config flag. |
The reusable skill records the exact managed lifecycle commands and keeps mechanics in the CLI/manifest rather than skill scripts. |