CoolFace
Modelpublic

Vision21Tech/VELA

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
0likes6downloads
Model Card

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.1921.33
상풍유치원429 클립 (합의 라벨)38.6819.45
kids 통합1,005 클립 (위 둘 합산)37.6120.77
상풍전체6,867 발화 (사람 교정 정답)51.4031.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 / lr3 / 2e-5 (linear, warmup 0.02)
정밀도fp32 학습 + 오디오 인코더 동결 (bf16 학습은 grad NaN 발생)
유효 배치32 (per-device 2 × grad-acc 8 × 2 GPU DDP)

사용법

bash
pip install -r requirements.txt
# torch 는 GPU 에 맞는 빌드로:
#   pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu128

동봉한 transcribe.py 로 바로 전사할 수 있습니다.

bash
python transcribe.py 오디오.wav
python transcribe.py 오디오폴더/ --out 결과.jsonl --device cuda:0

직접 로드하려면:

python
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 표기는 그 제약을 반영한 보수적 표기입니다.