Skip to content

fix(container): start on CPU when device=auto and align run commands - #351

Merged
LauraGPT merged 1 commit into
QwenAudio:mainfrom
modelpath-dev:fix/339-container-start-path
Sep 5, 2026
Merged

fix(container): start on CPU when device=auto and align run commands#351
LauraGPT merged 1 commit into
QwenAudio:mainfrom
modelpath-dev:fix/339-container-start-path

Conversation

@modelpath-dev

Copy link
Copy Markdown
Contributor

Summary

  • English GPU docker run now matches the command already verified on zh/ja and in [Bug]: Unable to pull Docker image or start Docker service #339: --rm, port 50000, and the sensevoice-models volume.
  • Default docker-compose.yaml no longer reserves GPUs, so docker compose up --build starts on a machine without the NVIDIA runtime.
  • SENSEVOICE_DEVICE=auto (the image default) resolves to cuda:0 or cpu instead of being passed into FunASR as the string auto.
  • Contract tests require the same GPU/CPU run lines across README / README_zh / CONTRIBUTING, and reject the retired Aliyun registry, anonymous GHCR pull, and port 60001.

Refs #339

User impact

The original report could not pull a public image or start the service. Public pulls are still 401 (Aliyun and GHCR). The path that should actually start is the local build. After this change the English start command, compose, and auto device match that path, including on CPU hosts.

Model, API, and runtime impact

  • No model behavior changes.
  • Affects SenseVoiceSmall ASR output.
  • Affects emotion, audio-event, or language-tag behavior.
  • Affects FastAPI, web UI, ONNX, Docker, or examples.
  • Affects GGUF / llama.cpp runtime assets or docs.
  • Affects Hugging Face, ModelScope, or model-card routing.

Validation

  • I ran the relevant tests or commands: python -m unittest tests.test_container_contract tests.test_device_env (12 passed)
  • I checked changed README/docs/model links.
  • I verified affected runtime behavior from a clean amd64 host (Docker 28.2.2):
# anonymous GHCR
curl -sI https://ghcr.io/v2/qwenaudio/sensevoice/manifests/latest
HTTP/2 401

# anonymous Aliyun
curl -sI https://registry.cn-hangzhou.aliyuncs.com/v2/funasr/sensevoice/manifests/latest
HTTP/2 401

Dockerfile still EXPOSE 50000. I did not rebuild the full pytorch image locally; the container workflow on this PR will do that.

Screenshots, logs, or transcripts

Before, English GPU run was docker run --gpus all -p 50000:50000 sensevoice (no volume, no --rm). After, it is the same line as zh/ja:

docker run --rm --gpus all -p 50000:50000 -v sensevoice-models:/models sensevoice

resolve_sensevoice_device("auto", cuda_available=False) returns cpu.

Notes for reviewers

Issue stays open until the reporter confirms the local build. GHCR visibility is still private; this PR does not advertise an anonymous pull.

Made with Cursor

The English GPU run command was missing the model volume, compose
reserved GPUs so CPU machines could not start, and SENSEVOICE_DEVICE=auto
was passed straight into FunASR. Align the docs with the verified
runtime and resolve auto to cuda:0 or cpu.

Signed-off-by: Chandan Kumar <cml.codes@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants