Instructions to use yeongseok11/Llama-3.2-3B-korean-nl2sql with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use yeongseok11/Llama-3.2-3B-korean-nl2sql with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Model Card: Llama-3.2-3B-Korean-NL2SQL (Merged)
๋ณธ ๋ชจ๋ธ์ Meta์ Llama-3.2-3B-Instruct ๋ชจ๋ธ์ ๋ฒ ์ด์ค๋ก ํ์ฌ, ์ค๋ฌด์ฉ PostgreSQL ํ๊ฒฝ์์ ํ๊ตญ์ด ์ง์๋ฅผ ๊ณ ์ ๋ฐ SQL ์ฟผ๋ฆฌ๋ก ๋ณํ(NL2SQL)ํ ์ ์๋๋ก ํ์ธํ๋ ๋ฐ ๊ฐ์ค์น ๋ณํฉ(Weight Merge)์ ์๋ฃํ ๊ฒฝ๋ ํนํ ๋ชจ๋ธ์ ๋๋ค.
3B๋ผ๋ ์ํ ์ฒด๊ธ์์๋ ๋ถ๊ตฌํ๊ณ , ์๋ฌ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฌ๊ท์ ์๊ฐ ์์ ์์ด์ ํธ ํ๊ฒฝ์์ 22.73%๋ผ๋ ๋์ ๋ณต๊ตฌ ์ฑ๊ณต๋ฅ ์ ๊ธฐ๋กํ๋ฉฐ ๋ฐ์ด๋ ์ ์ฐ์ฑ๊ณผ ๋น์ฉ ํจ์จ์ฑ(Cost-Efficiency)์ ์ฆ๋ช ํ ๋ชจ๋ธ์ ๋๋ค.
๐ ์ฃผ์ ํน์ง (Key Features)
- ์ด๊ฒฝ๋ยท๊ณ ํจ์จ ์์ง๋์ด๋ง: 3B ํ๋ผ๋ฏธํฐ ์ฌ์ด์ฆ๋ก VRAM ์๋ชจ๋ฅผ ์ต์ํํ์ฌ, ์ฌ์์ด ์ ํ๋ ์ฃ์ง ์๋ฒ๋ ๋ก์ปฌ ํ๊ฒฝ์์๋ ๋๊ท๋ชจ ์ธํ๋ผ ๋ถ๋ด ์์ด ๊ณ ์ ์ถ๋ก ๋ฐ ์๋น์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋์ ํ๋ณต ํ๋ ฅ์ฑ (High Resilience): ์ต์ด ์์ฑ์์ ๋ฌธ๋ฒ์ ์ค์๊ฐ ๋ฐ์ํ๋๋ผ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฌ ๋ก๊ทธ๋ฅผ ์ฃผ์ ํ์ ๋ ๋ฌธ๋งฅ์ ํ์ ํ์ฌ ์ฌ๋ฐ๋ฅธ ์ฟผ๋ฆฌ๋ก ๊ณ ์ณ ์ฐ๋ ๋๋ฒ๊น ๋ฅ๋ ฅ์ด ์ฒด๊ธ ๋๋น ๋งค์ฐ ํ์ํฉ๋๋ค.
- ์ค๋ฌดํ PostgreSQL ๋งคํ: ์ํ ๋ชจ๋ธ์ด ํํ ๋ฒํ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ์ ๋น์ฝ์ ์ต์ ํ๊ณ , PostgreSQL ๊ท๊ฒฉ์ ๋ง๋ ์์ ์ ์ธ ์ฟผ๋ฆฌ ํจํด์ ๊ตฌ์ฌํ๋๋ก ํ๋๋์์ต๋๋ค.
๐ ์ฑ๋ฅ ํ๊ฐ ์์ฝ (Evaluation Results)
์ค๋ฌด์ฉ ERP ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ๋์ด๋๋ณ(Level 1 ~ 5) ํ๊ฐ ๋ฐ์ดํฐ์ 400๋ฌธํญ์ ๋ฐํ์ผ๋ก ์๋ฐํ๊ฒ ์ธก์ ํ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ์ ๋๋ค.
| Difficulty | Pure Acc | Final Acc | Errors | Repaired | Repair Rate |
|---|---|---|---|---|---|
| Level 1 | 92.50% | 92.50% | 1 | 0 | 0.00% |
| Level 2 | 85.00% | 87.50% | 5 | 2 | 40.00% |
| Level 3 | 76.25% | 78.75% | 3 | 2 | 66.67% |
| Level 4 | 60.00% | 61.25% | 6 | 1 | 16.67% |
| Level 5 | 53.75% | 53.75% | 7 | 0 | 0.00% |
| TOTAL | 73.50% | 74.75% | 22 | 5 | 22.73% |
- Pure Accuracy: ์ต์ด 1ํ ์์ฑ ์์ SQL ์คํ ๊ฒฐ๊ณผ ์ ๋ต๋ฅ ์ **73.50%**์ ๋๋ค.
- ์์ด์ ํธ ์๊ฐ ์์ ๊ธฐ์ฌ๋: 1์ฐจ ์์ฑ์์ ์๋ฌ๊ฐ ๋ฐ์ํ 22๊ฑด ์ค 5๊ฑด์ ์ค์ค๋ก ์๋ฒฝํ ์๋ฆฌ(Repair Success Rate: 22.73%)ํด๋ด๋ฉฐ, ์ต์ข ์ ๋ต๋ฅ ์ **74.75%**๊น์ง ๋์ด์ฌ๋ ธ์ต๋๋ค. ํนํ ์ค๊ฐ ๋์ด๋(Level 2, 3)์์ ์ต๋ 66.67%์ ๊ณ ํจ์จ ๋ณต๊ตฌ ์ฑ๋ฅ์ ์ ์ฆํ์ต๋๋ค.
๐ป ์ฌ์ฉ ๋ฐฉ๋ฒ (How to Use)
Llama-3.2์ ๊ณต์ Chat Template ๊ท๊ฒฉ์ ์ค์ํ์ฌ ๋ก์ปฌ ํ๊ฒฝ์์ ์ถ๋ก ํ๋ ์์ ์ฝ๋์ ๋๋ค.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "yeongseok11/Llama-3.2-3B-korean-nl2sql"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
model.eval()
# Prompt Template (Llama-3.2 ์ ์ฉ ํ
ํ๋ฆฟ ์ค์)
prompt = """<|begin_of_text|><|start_header_id|>system<|end_header_id|>
๋น์ ์ ์ค๋ฌด์ฉ PostgreSQL ์ ๋ฌธ๊ฐ์
๋๋ค. ์ค์ง SQL ์ฟผ๋ฆฌ๋ง ๋ต๋ณํ์ธ์.<|eot_id|><|start_header_id|>user<|end_header_id|>
### ์คํค๋ง:
CREATE TABLE emp (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50),
dept_id INT,
salary INT
);
### ์ง๋ฌธ:
๊ธฐํํ(dept_id = 10) ์ง์๋ค์ ํ๊ท ๊ธ์ฌ๋ฅผ ๊ตฌํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ง์ค.<|eot_id|><|start_header_id|>assistant<|end_header_id|>
### SQL:
"""
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.0,
do_sample=False,
pad_token_id=tokenizer.eos_token_id
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True).split("### SQL:\n")[-1])
๐ ์ฐ๊ตฌ ๋ฐ ํ๊ณ์ (Limitations & Future Work)
๋ณธ ๋ชจ๋ธ์ ๊ฒฝ๋ํ ๋ชจ๋ธ๋ก์ ๋ฐ์ด๋ ์ ์ฐ์ฑ์ ๊ฐ์ถ๊ณ ์์ผ๋, ์ด๊ณ ๋๋(Level 5)์ ๋ณต์กํ ๋ค์ค ์กฐ์ธ ์ ์ฝ ์กฐ๊ฑด ํ๊ฒฝ์์๋ ๋ชจ๋ธ ์ฒด๊ธ ํ๊ณ๋ก ์ธํ ์๋ฏธ๋ก ์ ํ๊ณ๋ฅผ ์ผ๋ถ ๋ณด์
๋๋ค.
์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ํฅํ ์ฐ๊ตฌ๋ ๊ธฐ์ ์ธํ๋ผ ๋จ์์ ์คํค๋ง ์ ๋ณด๋ฅผ LLM ์งํฅ์ ์ผ๋ก ๊ฐ๊ณตํด ์ฃผ๋ AI ์นํ์ ๋ฉํ๋ฐ์ดํฐ ์๋ ๊ด๋ฆฌ ํ์ดํ๋ผ์ธ(AI-Friendly Metadata Enrichment) ์ฒด๊ณ์์ ๊ฒฐํฉ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค.
- Downloads last month
- -
Model tree for yeongseok11/Llama-3.2-3B-korean-nl2sql
Base model
meta-llama/Llama-3.2-3B-Instruct