Qwen2-VL-7B LoRA (AJU Multimodal Challenge)
๋จ์ผ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ(์ด๋ฏธ์ง ์บก์
, VQA, ์ํ ์ถ๋ก , ๋ฌธ๋งฅ QA, ์์ฝ)์ ๋ถ๊ธฐ ์๋ ํ๋กฌํํธ ๋ผ์ฐํ
์ผ๋ก ์ฒ๋ฆฌํ๋๋ก
Qwen/Qwen2-VL-7B-Instruct
์ LoRA(QLoRA) ๋ฅผ ์ ์ฉํด ํ๋ํ ์ด๋ํฐ ๊ฐ์ค์น์
๋๋ค.
๋ฒ ์ด์ค ๋ชจ๋ธ ๊ฐ์ค์น๋ ํฌํจํ์ง ์์ต๋๋ค.
- ๊ฐ๋ฐ์: tahn0321/qwen2vl-7b-ajou-lora
- Finetuned from:
Qwen/Qwen2-VL-7B-Instruct
- ํ๊ฒฝ: Colab A100 / PyTorch / Transformers / PEFT / bitsandbytes
- ํต์ฌ ํน์ง: Single Adapter, No task-branching, Vision Tower Frozen, Auto-Grow ๋์ฝ๋ฉ
๐ง ์ฌ์ฉ๋ฒ (์ด๋ํฐ ๋ก๋)
from transformers import AutoProcessor, AutoModelForCausalLM
from peft import PeftModel
base_id = "Qwen/Qwen2-VL-7B-Instruct"
adapter_id = "tahn0321/qwen2vl-7b-ajou-lora"
processor = AutoProcessor.from_pretrained(base_id, trust_remote_code=True)
base = AutoModelForCausalLM.from_pretrained(base_id, device_map="auto", trust_remote_code=True)
model = PeftModel.from_pretrained(base, adapter_id)
model.eval()
# msgs = [{"role":"system","content":[{"type":"text","text":"You are a concise, honest, multimodal assistant."}]},
# {"role":"user","content":[{"type":"image"}, {"type":"text","text":"Question: ..."}]}]
# prompt = processor.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
# enc = processor(text=prompt, images=[pil_image], return_tensors="pt")
# out = model.generate(**{k:v.to(model.device) for k,v in enc.items()}, max_new_tokens=192)
๐ ํ์ผ ๊ตฌ์ฑ
adapter_model.safetensors
adapter_config.json
processor_config.json
tokenizer.json
tokenizer.model
tokenizer_config.json
๐ฌ ํ์ต ๊ฐ์
ํ๋ ๋ฐฉ์: QLoRA(4-bit) + LoRA
LoRA ๋์ ๋ชจ๋: q_proj, k_proj, v_proj, o_proj, up_proj, down_proj, gate_proj
LoRA ํ์ดํผํ๋ผ๋ฏธํฐ: r=32, alpha=16, dropout=0.05
๋น์ ํ์: ์์ ๋๊ฒฐ
ํ์ต ํ์ดํผ(์์): per_device_batch=1, grad_accum=16, lr=1e-4, cosine, warmup=3%
์ ๋ฐ๋: bf16(๊ฐ๋ฅ ์) / fp16
๋ฐ์ดํฐ: ๋ํ ์ ๊ณต ๋ฉํฐํ์คํฌ ๋ฐ์ดํฐ(*.parquet)
ํ๋กฌํํธ: ์์คํ
๊ณ ์ + (์ด๋ฏธ์ง+์ง๋ฌธ) ๋๋ (์ง๋ฌธ + "Question: ...") โ ํ์คํฌ ๋ถ๊ธฐ ์์
๋ผ๋ฒจ๋ง: ํ๋กฌํํธ ํ ํฐ -100(๋ง์คํน), ์ ๋ต ํ ํฐ๋ง loss ๋ฐ์
๐ง ์ถ๋ก ๋ฉ๋ชจ
๋์ฝ๋ฉ: Greedy, no_repeat_ngram_size=4, repetition_penalty=1.05
Auto-Grow: ํ์คํฌ๋ณ ๊ธธ์ด ํ๋กํ์ผ๊ณผ ์ข
๊ฒฐ๋ถํธ ๊ฐ์ง๋ก ์ค๊ฐ ๋๊น ๋ฐฉ์ง
ํ์ฒ๋ฆฌ: ์ํ/์ซ์ ์ง์๋ ์ต์ข
์ซ์๋ง ํ์ฑํ๋ ๊ฐ๋จ ๊ท์น(์ต์
)
๐ ๊ฒฐ๊ณผ & ์ธ์ฌ์ดํธ(์์ฝ)
8,000 ์ํ ๋ถ๋ถ ํ์ต์ด ์ค์๊ฐ ๋ฆฌ๋๋ณด๋ BLEU์์ ์๋์ ์ผ๋ก ์ ๋ฆฌํ๋ ๋ฐ๋ฉด,
์ ์ฒด ํ์ต/๊ฒ์ฆ ๋ถํ ์์๋ ์ ์๊ฐ ๋ฎ์์ง๋ ๊ฒฝ์ฐ๋ฅผ ๊ด์ฐฐ.
๊ตํ: ์ค๊ฐ ๋ฆฌ๋๋ณด๋ ์ต์ ํ๋ณด๋ค ์ ์ฒด ๋ถํฌ ์ผ๋ฐํ๋ฅผ ์ฐ์ ํ ๊ฒ.
โ
๊ถ์ฅ ์ฌ์ฉ ๋ฒ์
๋ฉํฐ๋ชจ๋ฌ ์ง์ ์ถ๋ก (์ด๋ฏธ์ง ์บก์
, VQA, ์์ฝ ๋ฑ) ์ฐ๊ตฌ/์คํ
๋จ์ผ ๋ชจ๋ธ/๋จ์ผ ์ด๋ํฐ/๋ฌด๋ถ๊ธฐ ํ๋กฌํํธ ๋ผ์ฐํ
์ค์
โ ๏ธ ์ ํ/์ฃผ์
์์ฑ ๋ชจ๋ธ ํน์ฑ์ ํ๊ฐ/์คํด์ ๊ฐ๋ฅ์ฑ.
์์ /์ค๋ฆฌ ์๊ตฌ์ฌํญ์ด ์๋ ๋๋ฉ์ธ์์๋ ์ถ๊ฐ ํํฐ๋ง/๊ฐ๋๋ ์ผ ํ์.
๋ฒ ์ด์ค ๋ชจ๋ธ/๋ฐ์ดํฐ์ ๋ผ์ด์ ์คยท์ฝ๊ด์ ์ค์ํ์ธ์.
๐ ์ฐธ๊ณ
Base model: https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct
ํ๋ก์ ํธ ์ค๋ช
/์ฝ๋: https://github.com/TaeYunAhn/2025_AJU_Multimodal_DeepLearning_Challenge.git
๐ ๋ผ์ด์ ์ค
์ด๋ํฐ ๊ฐ์ค์น: apache-2.0
๋ฒ ์ด์ค ๋ชจ๋ธ/๋ฐ์ดํฐ: ๊ฐ ์ถ์ฒ ๋ผ์ด์ ์ค/์ฝ๊ด ์ค์
- Downloads last month
- 18