okadahiroaki

Qwen3asr_diarization

Dedicated Endpoints

Run this model inference on single tenant GPU with unmatched speed and reliability at scale.

Learn more

Get help setting up a custom Dedicated Endpoints.

Talk with our engineer to get a quote for reserved GPU instances with discounts.

README

設計

  • 凍結: 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 更新

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 参照。

使い方

python

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|> あ、お世話に...

Model provider

okadahiroaki

Model tree

Base

neosophie/Qwen3-ASR-1.7B-JA

Adapter

this model

Modalities

Input

Audio

Output

Text

Pricing

Dedicated Endpoints

View details

Supported Functionality

Model APIs

Dedicated Endpoints

Container

More information

Explore FriendliAI today