Instructions to use okadahiroaki/Qwen3asr_diarization with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use okadahiroaki/Qwen3asr_diarization with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("/workspace/models/Qwen3-ASR-1.7B-JA") model = PeftModel.from_pretrained(base_model, "okadahiroaki/Qwen3asr_diarization") - Notebooks
- Google Colab
- Kaggle
Qwen3-ASR Speaker Diarization Adapter (v10)
neosophie/Qwen3-ASR-1.7B-JA に話者分離出力 (<|spk_0|>/<|spk_1|>) を学ばせた LoRA + 部分 embedding アダプタ。
設計
- 凍結: AuT encoder (300M)、Qwen3-1.7B backbone の大半
- 学習対象:
- LoRA (r=32) を
q/k/v/o/gate/up/down_projに適用 (~10M params) - audio→LLM projector を完全 unfreeze (~28M params)
- 新規追加
<|spk_0|>〜<|spk_7|>行 (8 行 × 2048) のみ embedding 更新
- LoRA (r=32) を
base model の既存 token 埋め込み・lm_head は完全凍結。tied weight を活用し、 backward hook で勾配を新規 token 行だけに通している。
訓練データ
電話通話 ~949 件。Qwen3-ASR の生出力を Gemma-4-31B-it に渡して、
Gemini 3.1-pro の話者付き文字起こしを参考に <|spk_N|> タグを自動挿入したもの。
詳細は phase_a/gemma_label.py 参照。
使い方
import torch
from qwen_asr import Qwen3ASRModel
from peft import PeftModel
wrapper = Qwen3ASRModel.from_pretrained(
"neosophie/Qwen3-ASR-1.7B-JA",
dtype=torch.bfloat16, device_map="cuda:0",
)
# tokenizer に spk token を追加してから resize
SPK = [f"<|spk_{i}|>" for i in range(8)]
wrapper.processor.tokenizer.add_tokens(SPK, special_tokens=False)
wrapper.model.thinker.resize_token_embeddings(
len(wrapper.processor.tokenizer), mean_resizing=True)
# adapter を被せる
wrapper.model = PeftModel.from_pretrained(wrapper.model, "okadahiroaki/Qwen3asr_diarization")
wrapper.model.eval()
res = wrapper.transcribe(audio="call.wav", language="Japanese")
print(res[0].text)
# language Japanese<asr_text><|spk_0|> もしもし、 <|spk_1|> あ、お世話に...
- Downloads last month
- 164
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support