--- library_name: transformers base_model: - Qwen/Qwen3.5-9B - openai/whisper-medium datasets: - Joysw909/AVQA language: - en tags: - qwen - qwen3.5 - whisper - audio - avqa - adapter - audio-graft - pytorch - korean-notebook --- # Qwen3.5 Audio Graft AVQA Adapter 이 리포지토리는 **Qwen/Qwen3.5-9B** backbone에 **openai/whisper-medium** hidden state를 soft-token으로 graft하기 위한 실험용 adapter checkpoint입니다. 전체 Qwen backbone weight를 포함하지 않습니다. 즉, standalone 모델이 아니라 **base model + audio encoder + audio graft adapter** 조합으로 로드해야 합니다. ## 구성 - Base LLM/VLM backbone: `Qwen/Qwen3.5-9B` - Audio encoder: `openai/whisper-medium` - 학습 데이터: `Joysw909/AVQA` - 저장 파일: - `audio_graft.pt`: audio projector, audio start/end soft token, 설정값 - `tokenizer/`: tokenizer files - `training_config.json`: 학습 설정 - `qwen_lora/`: Qwen LoRA가 켜진 경우에만 존재 ## 학습 방식 저VRAM Kaggle 환경을 고려해 기본값은 다음과 같습니다. - Qwen backbone: frozen - Whisper encoder: frozen - 학습 대상: audio projector + audio soft tokens - 입력: audio waveform + text prompt - 출력: AVQA multiple-choice answer text ## 제한사항 이 checkpoint는 연구용 prototype입니다. - 원본 Qwen3.5-9B가 필요합니다. - 원본 Whisper-medium이 필요합니다. - video branch 전체 end-to-end 학습이 아니라 audio hidden-state graft 중심입니다. - AVQA 영어 QA 기준으로 맞춰져 있어 한국어/일반 음성대화 성능을 보장하지 않습니다. - 안전성/정확성 검증이 완료된 production 모델이 아닙니다. ## 사용 예시 개요 ```python import torch from transformers import AutoTokenizer, AutoModelForCausalLM, WhisperFeatureExtractor, WhisperModel ckpt = torch.load("audio_graft.pt", map_location="cpu") base_model_id = ckpt["qwen_model_id"] audio_encoder_id = ckpt["audio_encoder_id"] # 이 노트북의 QwenAudioGraft 클래스 정의를 함께 사용하세요. ``` ## 재현 이 모델은 Kaggle notebook `qwen35_audio_graft_avqa_kaggle` 계열에서 생성되었습니다. 주요 설정은 `training_config.json`에 기록되어 있습니다.