VELA โ€” ํ•œ๊ตญ์–ด ASR (Qwen3-ASR-1.7B ํŒŒ์ธํŠœ๋‹)

Qwen/Qwen3-ASR-1.7B ๋ฅผ AI Hub ๊ทนํ•œ ์†Œ์Œ ์Œ์„ฑ ์ธ์‹ ๋ฐ์ดํ„ฐ(136-1) ์›๋ณธ ์˜ค๋””์˜ค 100์‹œ๊ฐ„์œผ๋กœ ํŒŒ์ธํŠœ๋‹ํ•œ ์ฒดํฌํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ์œ ์•„ยท์•„๋™ ์Œ์„ฑ ์ธ์‹ ์„ฑ๋Šฅ์„ ๋ชฉํ‘œ๋กœ ํ•œ ์‹คํ—˜ ๊ณ„์—ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

  • ํ•™์Šต ์ฒดํฌํฌ์ธํŠธ: checkpoint-7257 (3 epoch ์ข…๋ฃŒ ์‹œ์ )
  • ๋ฐฐํฌ ํ˜•์‹: bf16 ๋‹จ์ผ model.safetensors (3.8 GB) โ€” ์›๋ณธ fp32 ํ•™์Šต ์ฒดํฌํฌ์ธํŠธ(์˜ตํ‹ฐ๋งˆ์ด์ € ํฌํ•จ 21 GB)์—์„œ ์ถ”๋ก ์— ํ•„์š”ํ•œ ๊ฐ€์ค‘์น˜๋งŒ ์ถ”์ถœํ•ด bf16 ์œผ๋กœ ์บ์ŠคํŒ…ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๋ก  ์ฝ”๋“œ๊ฐ€ ์–ด์ฐจํ”ผ bf16 ์œผ๋กœ ๋กœ๋“œํ•˜๋ฏ€๋กœ ๋™์ผ ์กฐ๊ฑด์—์„œ ์›๋ณธ๊ณผ ์˜ˆ์ธก์ด ์™„์ „ํžˆ ์ผ์น˜ํ•จ์„ 20๊ฐœ ํด๋ฆฝ์œผ๋กœ ๋Œ€์กฐ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ

ํ‰๊ฐ€์…‹์€ 5์ข… STT(gpt-4o ยท chirp-3 ยท voxtral ยท mai ยท soniox) ํ•ฉ์˜๋กœ ์ •์ œํ•œ canonical ํ…Œ์ŠคํŠธ์…‹๊ณผ ์‚ฌ๋žŒ์ด ๊ต์ •ํ•œ ์ „์‚ฌ์ž…๋‹ˆ๋‹ค. ์ˆ˜์น˜๋Š” ๋ชจ๋‘ ๋‚ฎ์„์ˆ˜๋ก ์ข‹์Œ.

ํ‰๊ฐ€์…‹ ๊ตฌ์„ฑ WER (%) CER (%)
์•„์ด์ข‹์•„ 576 ํด๋ฆฝ (ํ•ฉ์˜ ๋ผ๋ฒจ) 37.19 21.33
์ƒํ’์œ ์น˜์› 429 ํด๋ฆฝ (ํ•ฉ์˜ ๋ผ๋ฒจ) 38.68 19.45
kids ํ†ตํ•ฉ 1,005 ํด๋ฆฝ (์œ„ ๋‘˜ ํ•ฉ์‚ฐ) 37.61 20.77
์ƒํ’์ „์ฒด 6,867 ๋ฐœํ™” (์‚ฌ๋žŒ ๊ต์ • ์ •๋‹ต) 51.40 31.80

์‚ฌ๋žŒ ์ •๋‹ต ๊ธฐ์ค€(์ƒํ’์ „์ฒด)์—์„œ๋Š” ๊ฐ™์€ ๊ณ„์—ด ์‹คํ—˜ ์ค‘ ๊ฐ€์žฅ ์ข‹์€ ๊ฐ’์ด๊ณ , ํ•ฉ์˜ ๋ผ๋ฒจ kids ๊ธฐ์ค€์œผ๋กœ๋Š” 50์‹œ๊ฐ„ ํ•™์Šต๋ณธ(37.61 ๋Œ€๋น„ 36.11)์ด ์•ฝ๊ฐ„ ์•ž์„ญ๋‹ˆ๋‹ค.

์ฃผ์˜: ์œ„ ์ˆ˜์น˜๋Š” ์ด ์ฒดํฌํฌ์ธํŠธ์˜ ์ ˆ๋Œ€ ์„ฑ๋Šฅ์ด๋ฉฐ, ๋ฒ ์ด์Šค ๋ชจ๋ธ(Qwen/Qwen3-ASR-1.7B) ๋Œ€๋น„ ๊ฐœ์„ ์„ ์ฃผ์žฅํ•˜๋Š” ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋™์ผ ํ‰๊ฐ€์…‹์—์„œ ๋ฒ ์ด์Šค ๋Œ€๋น„ ๋น„๊ต๋Š” ๋ณ„๋„๋กœ ๊ฒ€์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ์„ค์ •

ํ•ญ๋ชฉ ๊ฐ’
๋ฒ ์ด์Šค Qwen/Qwen3-ASR-1.7B
๋ฐ์ดํ„ฐ AI Hub 136-1 ๊ทนํ•œ ์†Œ์Œ, ์›๋ณธ ์˜ค๋””์˜ค 100.1h โ†’ ์„ธ๊ทธ๋จผํŠธ 81,621๊ฐœ
๋ผ๋ฒจ AI Hub ๋™๋ด‰ JSON ์ •๋‹ต (whisper ์ „์‚ฌ์™€ ์œ ์‚ฌ๋„ ๋งค์นญ ๋ณด์ •, ์ž„๊ณ„ 0.60)
์ „์ฒ˜๋ฆฌ pyannote ํ™”์ž๋ถ„๋ฆฌ โ†’ ์„ธ๊ทธ๋จผํŠธ ๋ถ„ํ•  โ†’ 16 kHz mono
epochs / lr 3 / 2e-5 (linear, warmup 0.02)
์ •๋ฐ€๋„ fp32 ํ•™์Šต + ์˜ค๋””์˜ค ์ธ์ฝ”๋” ๋™๊ฒฐ (bf16 ํ•™์Šต์€ grad NaN ๋ฐœ์ƒ)
์œ ํšจ ๋ฐฐ์น˜ 32 (per-device 2 ร— grad-acc 8 ร— 2 GPU DDP)

์‚ฌ์šฉ๋ฒ•

pip install -r requirements.txt
# torch ๋Š” GPU ์— ๋งž๋Š” ๋นŒ๋“œ๋กœ:
#   pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu128

๋™๋ด‰ํ•œ transcribe.py ๋กœ ๋ฐ”๋กœ ์ „์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

python transcribe.py ์˜ค๋””์˜ค.wav
python transcribe.py ์˜ค๋””์˜คํด๋”/ --out ๊ฒฐ๊ณผ.jsonl --device cuda:0

์ง์ ‘ ๋กœ๋“œํ•˜๋ ค๋ฉด:

import torch, soundfile as sf
from transformers import AutoModel, AutoProcessor
from qwen_asr import Qwen3ASRModel

model = AutoModel.from_pretrained("Vision21Tech/VELA", dtype=torch.bfloat16, device_map="cuda:0")
processor = AutoProcessor.from_pretrained("Vision21Tech/VELA", fix_mistral_regex=True)
m = Qwen3ASRModel(backend="transformers", model=model, processor=processor,
                  max_inference_batch_size=8, max_new_tokens=256)

audio, sr = sf.read("์˜ค๋””์˜ค.wav", dtype="float32")   # 16 kHz mono ๊ถŒ์žฅ
print(m.transcribe([(audio, 16000)], language="Korean")[0].text)

์š”๊ตฌ์‚ฌํ•ญ: Python 3.12, qwen-asr==0.0.6 (transformers 4.57.6 / accelerate 1.12.0 ํ•€). VRAM ์€ bf16 ๊ธฐ์ค€ ์•ฝ 4~5 GB. Ampere ๋ฏธ๋งŒ GPU ๋Š” fp16, CPU ๋Š” fp32 ๋กœ ์ž๋™ ํด๋ฐฑํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค ยท ์ด์šฉ ์กฐ๊ฑด

ํ•™์Šต ๋ฐ์ดํ„ฐ๋Š” AI Hub ์ œ๊ณต ๋ฐ์ดํ„ฐ๋กœ ๋ณ„๋„ ์ด์šฉ ์•ฝ๊ด€์ด ์ ์šฉ๋˜๋ฉฐ, ๋ฒ ์ด์Šค ๋ชจ๋ธ Qwen/Qwen3-ASR-1.7B ์˜ ๋ผ์ด์„ ์Šค๋„ ํ•จ๊ป˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์žฌ๋ฐฐํฌยท์ƒ์—…์  ์ด์šฉ ์ „์— ์–‘์ธก ์กฐ๊ฑด์„ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด ์ €์žฅ์†Œ์˜ license: other ํ‘œ๊ธฐ๋Š” ๊ทธ ์ œ์•ฝ์„ ๋ฐ˜์˜ํ•œ ๋ณด์ˆ˜์  ํ‘œ๊ธฐ์ž…๋‹ˆ๋‹ค.

Downloads last month
20
Safetensors
Model size
2B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Vision21Tech/VELA

Finetuned
(92)
this model