Views
No views yet
snuaichallenge) 예선 최종 제출 모델의 LoRA 어댑터입니다.v20_32b_qlora/ 폴더)submission_v20_best.csv)을 만들었습니다.log P(Yes) - log P(No) 점수를 계산합니다(속도상 이점).| 항목 | 값 |
|---|---|
| Base model | Qwen/Qwen3-VL-32B-Instruct |
| 양자화 | 4bit NF4 (bitsandbytes), double quant 적용, vision tower(visual)는 양자화 제외(bf16 유지) |
| LoRA | r=128, alpha=256, dropout=0.05, target: q/k/v/o_proj, gate/up/down_proj (language model 전용) |
| Loss | ListwiseSoftmaxLoss (1 positive + 7 hard negative, 8-way joint softmax) |
| Hard negative 샘플링 | 켄달타우 거리 1~6 전 구간 커버 (SAMPLE_COUNTS = {1:2, 2:1, 3:1, 4:1, 5:1, 6:1}) |
| Epochs | 3 |
| Learning rate | 5e-5 |
| 분산학습 | DDP, 4×NVIDIA H100 80GB (accelerate launch --num_processes=4 --mixed_precision=bf16) |
1from transformers import Qwen3VLForConditionalGeneration, AutoProcessor, BitsAndBytesConfig
2from peft import PeftModel
3import torch
4
5MODEL_PATH = "Qwen/Qwen3-VL-32B-Instruct"
6bnb_config = BitsAndBytesConfig(
7 load_in_4bit=True,
8 bnb_4bit_quant_type="nf4",
9 bnb_4bit_compute_dtype=torch.bfloat16,
10 bnb_4bit_use_double_quant=True,
11 llm_int8_skip_modules=["visual"],
12)
13base_model = Qwen3VLForConditionalGeneration.from_pretrained(
14 MODEL_PATH, quantization_config=bnb_config, torch_dtype=torch.bfloat16, device_map="auto",
15)
16processor = AutoProcessor.from_pretrained(MODEL_PATH)
17model = PeftModel.from_pretrained(base_model, "lky473736/snuaichallenge-v20-qwen3vl32b-qlora")
18model.eval()v20_32b_qlora/inference.py를 참고하세요.