v75 (Galaxy S24 / SM8650, soc_model 57): Canary-Qwen-2.5B LLM path (LoRA-merged Qwen3-1.7B backbone) — runs 13.4 tok/s; NOT a standalone text LLM (needs audio)

#1
by flying101 - opened

Adds the Hexagon v75 Canary-Qwen-2.5B LLM path under v75/ — the LoRA-merged Qwen3-1.7B decoder backbone of the SALM.

Files (~4.9G):

  • canary-qwen-2.5b-llm.json (family=llm, host-op qwen3_generate, registered in the runtime)
  • canaryqwen_decn1k_w8.bin (1.4G, W8 decode), canaryqwen_pf_f16.bin (2.7G, fp16 prefill), canaryqwen_lmh_w8.bin (300M, W8 lm-head), canaryqwen_embed_f16.bin (594M), tokenizer.json
  • Params: hidden 2048, 28 layers, vocab 151936, head_dim 128, kv_dim 1024, rope_theta 1e6, eos 151645. LoRA (r=128 on q/v_proj) merged via merge_and_unload.
  • Compile: QAIRT 2.47.0, dsp_arch v75, soc_model 57.

IMPORTANT — this is the ASR backbone, not a chat LLM. Device-tested on the Galaxy S24 (v75): loads all graphs and runs at 13.4 tok/s (status=Ok), but as a standalone text LLM it only echoes the prompt (no meaningful completion) because this Qwen3-1.7B was LoRA-trained to decode conditioned on audio (FastConformer -> adapter -> <|audioplaceholder|> splice). The functional ASR path additionally needs the v75 nb6_conformer + canary_host.bin + the canary_qwen_generate host-op (see the v81 dir). The conformer re-export is currently blocked (NeMo speechlm2.SALM won’t import under the build box’s Python 3.10). Published as the LLM-backbone half for v75 arch parity; use the full ASR (conformer + splice) path for transcription.

flying101 changed pull request status to open
sanmonga22 changed pull request status to merged

Sign up or log in to comment