Skip to content

feat(examples): add MOSS diarization to offline vLLM sample - #3678

Merged
LauraGPT merged 1 commit into
mainfrom
codex/moss-offline-example-20260909
Sep 8, 2026
Merged

feat(examples): add MOSS diarization to offline vLLM sample#3678
LauraGPT merged 1 commit into
mainfrom
codex/moss-offline-example-20260909

Conversation

@LauraGPT

@LauraGPT LauraGPT commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Related to #3419; keep the issue open for reporter validation.

  • Add explicit --engine moss to the requested transcribe_vllm_offline.py sample. Default Qwen3 native-vLLM behavior and its JSON filename/schema remain unchanged.
  • Reuse the existing FunASR MOSS AutoModel HTTP adapter, upload the whole recording once, request diarized_json, and preserve text/raw_text/timestamp/sentence_info. Print anonymous speaker labels with millisecond times.
  • Keep MOSS service/model/timeout/completion options separate from Qwen3 options. Credentials come from MOSS_VLLM_API_KEY; reject malformed configuration and input/output aliases, including hard links.
  • Provide bilingual client recipes and output/long-recording boundaries; link them from both primary MOSS guides. Extend the existing MOSS workflow to cover this sample and its tests.

Verification

  • 152 local CPU regressions passed, no failures/skips: sample, actual adapter, HTTP response handling, documentation contracts, relative links, installation-command checks and API signatures.
  • CLI tests use real loopback HTTP and multipart parsing, including 200 and 503 responses. Invalid responses do not create a success result or overwrite an existing one.
  • Fresh isolated Linux/Python 3.12 environment: explicit CPU Torch 2.10.0, editable FunASR installation, pip check, AutoModel construction and 2 loopback CLI tests all passed.
  • Actual model smoke on H100: fixed MOSS revision e8681d68e7042738ffca8ac8212bc8fcb1131ab8, cached model files revalidated against Hub blob/LFS digests; vLLM 0.27.1 with eager mode, max model length 32768, one sequence and GPU utilization 0.2. The fresh CPU client processed a 5.5466875-second public README sample, returned a nonempty transcript, one S01 segment ending at 5210 ms, and exited 0. The owned service exited normally and was stopped afterward.
  • First model smoke exceeded a 240-second readiness budget while cold-start profiling progressed; it was terminated and its evidence retained. The same model/source/settings completed with a 360-second readiness budget. No profiling or test assertions were skipped.
  • Independent static review found a missing explicit Torch install in the initial recipe; this was corrected and checked in the fresh environment. Final review has no remaining actionable findings. This is not a GitHub approval.

Boundaries

This is an offline third-party MOSS path, not MOSS labels attached to Qwen3 text. Labels are anonymous within one recording, not known identity, cross-file identity, or realtime/WebSocket diarization. The 8192 completion limit is configurable, not a guarantee for the reporter's 480-second recording. The short single-speaker smoke is not a CER, multi-speaker accuracy, tail-completeness, throughput or production-capacity benchmark.

Qwen3 vLLM 0.14.0 and the pinned MOSS service vLLM 0.27.1 recipes remain separate environments. Source changes are not yet in PyPI 1.4.14. Backups, exact source hashes and original failure logs are retained before publication.

Signed-off-by: zhifu gao <zhifu.gzf@alibaba-inc.com>
@LauraGPT
LauraGPT merged commit 01e822b into main Sep 8, 2026
4 checks passed
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.

1 participant