Instructions to use csj9630/llama32-3b-medical-qlora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use csj9630/llama32-3b-medical-qlora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-3B-Instruct") model = PeftModel.from_pretrained(base_model, "csj9630/llama32-3b-medical-qlora") - Notebooks
- Google Colab
- Kaggle
Llama 3.2 3B Instruct ํ๊ตญ์ด ์๋ฃ QLoRA ์ด๋ํฐ
Built with Llama.
์ฃผ์: ์ฐ๊ตฌยท๊ต์ก์ฉ ์ค์ต ๋ชจ๋ธ์ ๋๋ค. ์๋ฃ๊ธฐ๊ธฐ๋ ์ง๋จ ์์คํ ์ด ์๋๋ฉฐ, ์ค์ ์ง๋จยท์ฒ๋ฐฉยท์๊ธ์ํฉ ํ๋จ์ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค. ๋ด๋ถ ํ๊ฐ์์ ์ํํ๊ฑฐ๋ ๋ถ์ ํํ ์๊ธ ๋ต๋ณ์ด ํ์ธ๋์ต๋๋ค.
๋ชจ๋ธ ๊ฐ์
meta-llama/Llama-3.2-3B-Instruct๋ฅผ ํ๊ตญ์ด ์๋ฃ ๊ฐ๊ด์ ๋ฐ ์ง์์๋ต ๋ฐ์ดํฐ๋ก ์ง๋ ๋ฏธ์ธ์กฐ์ (SFT)ํ 4-bit QLoRA ์ด๋ํฐ์
๋๋ค. ์ ์ฒด ๊ธฐ๋ฐ ๋ชจ๋ธ์ ํฌํจํ์ง ์์ผ๋ฉฐ, ์ถ๋ก ํ๋ ค๋ฉด Hugging Face์์ Meta์ Llama ๋ผ์ด์ ์ค์ ๋์ํ๊ณ ๊ธฐ๋ฐ ๋ชจ๋ธ ์ ๊ทผ ๊ถํ์ ๋ฐ์์ผ ํฉ๋๋ค.
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ๊ธฐ๋ฐ ๋ชจ๋ธ | meta-llama/Llama-3.2-3B-Instruct |
| ๊ธฐ๋ฐ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ | ์ฝ 3.21B |
| ํ์ต ๋ฐฉ์ | 4-bit QLoRA / SFT |
| ์ด๋ํฐ ํ์ | PEFT LoRA |
| ํ์ต ์ธ์ด | ํ๊ตญ์ด |
| ์ฉ๋ | Qwen3 ํ์ต ๊ฒฐ๊ณผ์์ ๋ก์ปฌ ๋น๊ต ์ค์ต |
| ์ด๋ํฐ ํฌ๊ธฐ | ์ฝ 46.4 MiB |
ํ๊ตญ์ด๋ Llama 3.2 ๋ชจ๋ธ ์นด๋์ ๋ช ์๋ ๊ณต์ ์ง์ ์ธ์ด ๋ชฉ๋ก์ ํฌํจ๋์ง ์์ต๋๋ค. ์ด ์ด๋ํฐ๋ ์ ํ๋ ํ๊ตญ์ด ์๋ฃ ๋ฐ์ดํฐ๋ก ์ถ๊ฐ ํ์ตํ ์คํ ๊ฒฐ๊ณผ์ด๋ฉฐ, ํ๊ตญ์ด ์ ๋ฐ์ ํ์ง์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
ํ์ต ๋ฐ์ดํฐ
| ๋ฐ์ดํฐ์ | ์ฌ์ฉ ๋ด์ฉ | ํ์ต ์ํ | ๋ผ์ด์ ์ค |
|---|---|---|---|
sean0042/KorMedMCQA |
์์ฌยท๊ฐํธ์ฌยท์ฝ์ฌยท์น๊ณผ์์ฌ ํ๊ตญ์ด ์๋ฃ ๊ฐ๊ด์ | 3,401 | CC BY-NC 2.0 |
ChuGyouk/GenMedGPT-5k-ko |
ํ๊ตญ์ด ์ผ๋ฐ ์๋ฃ ์ง์์๋ต | 5,178 | MIT |
| ํฉ๊ณ | seed 42๋ก ์์ด ํ์ต | 8,579 | ๋ฐ์ดํฐ๋ณ ์์ด |
GenMedGPT ๋ฐ์ดํฐ 5%์ธ 273๊ฐ ์ํ์ ๋ณ๋ ๊ฒ์ฆ์ฉ์ผ๋ก ๋ถ๋ฆฌํ์ต๋๋ค. ํ์ต ์ค ์๋ ํ๊ฐ๋ ์ํํ์ง ์์์ต๋๋ค. ๋ฐ์ดํฐ ์์ฒด์ ์ค๋ฅยทํธํฅยท์ํํ ์๋ฃ ํํ์ด ๋ชจ๋ธ ์ถ๋ ฅ์ ๋ฐ์๋ ์ ์์ต๋๋ค.
ํ๋ จ ํ๊ฒฝ
| ํญ๋ชฉ | ์ค์ |
|---|---|
| ์ด์์ฒด์ | Windows 11 |
| GPU | NVIDIA GeForce RTX 5070, 11.94 GB VRAM |
| Python | 3.12.0 |
| PyTorch / CUDA | 2.13.0+cu130 / CUDA 13.0 |
| ์ ๋ฐ๋ | BF16, 4-bit ์์ํ |
| transformers | 5.15.1 |
| datasets | 5.0.1 |
| accelerate | 1.14.0 |
| peft | 0.20.0 |
| trl | 1.10.0 |
| bitsandbytes | 0.50.1 |
์ฃผ์ ํ์ดํผํ๋ผ๋ฏธํฐ
| ํญ๋ชฉ | ๊ฐ |
|---|---|
| Epoch | 1 |
| ์ต๋ ์ํ์ค ๊ธธ์ด | 1,024 |
| ์ฅ์น๋น ๋ฐฐ์น | 1 |
| Gradient accumulation | 8 |
| ์ ํจ ๋ฐฐ์น ํฌ๊ธฐ | 8 |
| Learning rate | 2e-4 |
| Scheduler / warmup | linear / 0 |
| Optimizer | adamw_torch_fused |
| LoRA rank / alpha / dropout | 16 / 32 / 0.05 |
| ๋์ ๋ชจ๋ | q, k, v, o, gate, up, down projection |
| Gradient checkpointing | ์ฌ์ฉ |
| Packing | ์ฌ์ฉํ์ง ์์ |
| ์ฒดํฌํฌ์ธํธ ๊ฐ๊ฒฉ | 100 step |
| Seed | 42 |
ํ์ต ๊ฒฐ๊ณผ
์ด ๋ชจ๋ธ์ Step 0๋ถํฐ ์ด 1,073 step๊น์ง ํ์ตํ์ต๋๋ค.
| ์งํ | ๊ฒฐ๊ณผ |
|---|---|
| ์ต์ข train loss | 1.1323 |
| ํ๊ท token accuracy | 0.7661 |
| ์ฒ๋ฆฌ token ์ | 1,684,021 |
| ํ์ต ์ฒ๋ฆฌ๋ | 0.190 step/s, 1.517 sample/s |
| ์ด ํ์ต ์๊ฐ | ์ฝ 1์๊ฐ 34๋ถ |
์ด ์์น๋ ํ๋ จ ๋ฐ์ดํฐ ๊ธฐ์ค ์งํ์ ๋๋ค. Qwen๊ณผ ํ ํฌ๋์ด์ ๋ฐ ์ฒ๋ฆฌ token ์๊ฐ ๋ค๋ฅด๋ฏ๋ก train loss๋ง์ผ๋ก ๋ชจ๋ธ ๊ฐ ์ฐ์ด์ ํ๋จํ๋ฉด ์ ๋ฉ๋๋ค.
๋ด๋ถ ํ๊ฐ ๊ฒฐ๊ณผ
์์ฒด ์ ์ํ ํ๊ตญ์ด 40๋ฌธํญ(๊ฐ๊ด์ 10, ๋จ์ ์๋ด 10, ๋ชจํธํ ์๋ด 10, ์๊ธ์ํฉ 10)์ผ๋ก Final ์ด๋ํฐ๋ฅผ ํ์ธํ์ต๋๋ค.
- ์ต์ Final ์ถ๋ ฅ์ ๊ฐ๊ด์ ์ ๋ต๋ฅ ์ 10/10์ด์์ต๋๋ค.
- ๋ฌธํญ ์๊ฐ ์ ๊ณ ๋๋๊ฐ ๋ฎ์ ๋ด๋ถ ์ ๊ฒ์ด๋ฏ๋ก ํ์ค ์๋ฃ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ๊ฐ ์๋๋๋ค.
- ์๋ดยท์๊ธ ๋ฌธํญ์์๋ ๋ฐ๋ณต์ ์ธ ๊ฒ์ฌ ๋์ด, ๋ชจํธํ ์๋ด, ์ฆ์๊ณผ ๋ง์ง ์๋ ์ฒ์น ์ ์์ด ๋ํ๋ฌ์ต๋๋ค.
- ์์ ์ค ํต์ฆยท์ถํ, ๋จธ๋ฆฌ ์ธ์ ํ ๊ตฌํ , ์์ ๋ณํ ๋ฑ ๊ธด๊ธ์ฑ์ด ๋์ ์ํฉ์์๋ ์์ ํ ๋์์ด ์ผ๊ด๋์ง ์์์ต๋๋ค.
๊ฐ๊ด์ ์ ๋ต๋ฅ ๊ณผ ์ค์ ์๋ด ์์ ์ฑ์ ๋ณ๊ฐ์ ๋๋ค. ์ด ๋ชจ๋ธ์ ์์ ๋๋ ํ์ ์๋์ ์ฌ์ฉํ ์์ค์ผ๋ก ๊ฒ์ฆ๋์ง ์์์ต๋๋ค.
์ฌ์ฉ ์์
๋จผ์ Llama ๊ธฐ๋ฐ ๋ชจ๋ธ ์ ๊ทผ ๊ถํ์ ๋ฐ์ ๊ณ์ ์ผ๋ก Hugging Face์ ๋ก๊ทธ์ธํ๊ณ , CUDA ํ๊ฒฝ์ ๋ง๋ PyTorch์ ๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค.
hf auth login
pip install transformers peft accelerate bitsandbytes
import torch
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
adapter_id = "YOUR_ACCOUNT/YOUR_LLAMA_ADAPTER_REPO"
peft_config = PeftConfig.from_pretrained(adapter_id)
tokenizer = AutoTokenizer.from_pretrained(adapter_id, use_fast=True)
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
base_model = AutoModelForCausalLM.from_pretrained(
peft_config.base_model_name_or_path,
quantization_config=quantization_config,
device_map="auto",
dtype=torch.bfloat16,
)
model = PeftModel.from_pretrained(base_model, adapter_id)
messages = [{"role": "user", "content": "๋นํ๋ฏผ B12 ๊ฒฐํ๊ณผ ๊ด๋ จ๋ ๋นํ์ ๋ฌด์์ธ๊ฐ์?"}]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=256, do_sample=False)
answer_tokens = output[0, inputs["input_ids"].shape[1]:]
print(tokenizer.decode(answer_tokens, skip_special_tokens=True))
adapter_id๋ฅผ ์ค์ Hugging Face ์ด๋ํฐ ์ ์ฅ์ ID๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
ํ๊ณ ๋ฐ ๊ถ์ฅํ์ง ์๋ ์ฌ์ฉ
- ์๋ฃ ์ง๋จ, ์ฒ๋ฐฉ, ๋ณต์ฝ ๊ฒฐ์ , ์๊ธ์ํฉ ๋ถ๋ฅ
- ํ์์๊ฒ ๊ฒํ ์์ด ์ง์ ๋ต๋ณํ๋ ์๋น์ค
- ์๋ฃ ์ ๋ฌธ๊ฐ๋ฅผ ๋์ฒดํ๋ ์๋ ์์ฌ๊ฒฐ์
- ๊ฐ์ธ์ ๋ณด๋ ๋ฏผ๊ฐํ ์๋ฃ์ ๋ณด ์ ๋ ฅ
- ํ๊ตญ์ด ๋ฐ ์๋ฃ ๋ถ์ผ์ ๊ฒ์ฆ๋ ์ ํ๋๋ฅผ ์ ์ ๋ก ํ ์ ๋ฌด
์์ ํ๊ฐ, ํ๊ฐ ํ๊ฐ, ํธํฅ ํ๊ฐ, ํ์ค ์๋ฃ ๋ฒค์น๋งํฌ, ์๋ฃ ์ ๋ฌธ๊ฐ ๊ฒ์ฆ์ ์ถ๊ฐํ๊ธฐ ์ ์๋ ์ฐ๊ตฌ ์ค์ต ์ธ ์ฉ๋๋ก ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
๋ผ์ด์ ์ค์ ์ถ์ฒ
- ๊ธฐ๋ฐ ๋ชจ๋ธ:
meta-llama/Llama-3.2-3B-Instructโ Llama 3.2 Community License - KorMedMCQA โ CC BY-NC 2.0
- GenMedGPT-5k-ko โ MIT
์ฌ๋ฐฐํฌ์ ํ์ ๋ชจ๋ธ ๋ช ๋ช ยทํ์์๋ Llama 3.2 Community License๊ฐ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ํฐ ์ฌ์ฉ์๋ ๊ธฐ๋ฐ ๋ชจ๋ธ๊ณผ ๊ฐ ๋ฐ์ดํฐ์ ์ ์กฐ๊ฑด์ ๋ชจ๋ ํ์ธํด์ผ ํ๋ฉฐ, KorMedMCQA์ ๋น์๋ฆฌ ์กฐ๊ฑด ๋๋ฌธ์ ๋ณ๋ ๋ฒ๋ฅ ๊ฒํ ์์ด ์์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
ํ๊ฒฝ ์ํฅ
๋จ์ผ RTX 5070์์ ์ฝ 1์๊ฐ 34๋ถ ์คํํ ๊ฐ์ธ ์ค์ต์ ๋๋ค. ์ ๋ ฅ ์๋น๋๊ณผ ํ์ ๋ฐฐ์ถ๋์ ๋ณ๋๋ก ์ธก์ ํ์ง ์์์ต๋๋ค.
- Downloads last month
- 30
Model tree for csj9630/llama32-3b-medical-qlora
Base model
meta-llama/Llama-3.2-3B-Instruct