Instructions to use yeongseok11/gemma-2-9b-it-korean-nl2sql with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use yeongseok11/gemma-2-9b-it-korean-nl2sql with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Model Card: Gemma-2-9B-it-Korean-NL2SQL (Merged)
λ³Έ λͺ¨λΈμ Googleμ Gemma-2-9B-it λͺ¨λΈμ λ² μ΄μ€λ‘ νμ¬, μ€λ¬΄μ© PostgreSQL νκ²½μμ νκ΅μ΄ μμ°μ΄ μ§μλ₯Ό κ³ μ λ° SQL μΏΌλ¦¬λ‘ λ³ν(NL2SQL)ν μ μλλ‘ νμΈνλ λ° κ°μ€μΉ λ³ν©(Weight Merge)μ μλ£ν 9B μ²΄κΈ μ΅κ°μ νΉν λͺ¨λΈμ λλ€.
λ³Έ μ°κ΅¬μ μ€ν κ³Όμ μμ **λ¨ 2건μ ꡬ문 μλ¬(Initial Syntax Error)**λ§ κΈ°λ‘νμ μ λλ‘ PostgreSQL λ¬Έλ² κ΅¬μ‘°μ λν μ΄ν΄λμ 무결μ±μ΄ μλμ μΌλ‘ λ°μ΄λ κ²μ΄ νΉμ§μ λλ€.
π μ£Όμ νΉμ§ (Key Features)
- μλμ μΈ λ¬Έλ² λ¬΄κ²°μ± (Syntactic Precision): λκ·λͺ¨ μ½νΌμ€ κΈ°λ°μ μ¬μ νμ΅ λ₯λ ₯μ λ°νμΌλ‘, 볡μ‘ν PostgreSQL ν¨μ λ° μλΈμΏΌλ¦¬ μμ± μ λ¬Έλ²μ μ€λ₯λ₯Ό κ±°μ λ²νμ§ μμ΅λλ€.
- λ€μ€ μ‘°μΈ λ° μλΈμΏΌλ¦¬ μ΅μ ν: λμ΄λκ° λμ λκ·λͺ¨ ERP μ€ν€λ§(Level 4, 5) λ΄μμλ ν μ΄λΈ κ°μ κ΄κ³μ±μ μ νν μΆλ‘ νμ¬ μ΅μ μ μ€ν κ²½λ‘λ₯Ό κ°μ§ 쿼리λ₯Ό λΉλ©ν©λλ€.
- μν°νλΌμ΄μ¦ λ 벨 μλΉ κ°λ₯: LoRA μ΄λν°κ° λ² μ΄μ€ λ μ΄μ΄μ μμ ν ν‘μ(Merged)λμ΄ μμ΄, vLLMμ΄λ Ollama λ± μ€λ¬΄ μΆλ‘ μμ§μ μ¦μ μΉμ΄ λ¨λ°μ±(Zero-shot) μ΄κ³ μ API μλΉμ΄ κ°λ₯ν©λλ€.
π μ±λ₯ νκ° μμ½ (Evaluation Results)
μ€λ¬΄μ© ERP λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§μ λμ΄λλ³(Level 1 ~ 5) νκ° λ°μ΄ν°μ 400λ¬Ένμ λ°νμΌλ‘ μλ°νκ² μΈ‘μ ν λ²€μΉλ§ν¬ κ²°κ³Όμ λλ€.
| Difficulty | Pure Acc | Final Acc | Errors | Repaired | Repair Rate |
|---|---|---|---|---|---|
| Level 1 | 93.75% | 93.75% | 0 | 0 | 0.00% |
| Level 2 | 90.00% | 90.00% | 1 | 0 | 0.00% |
| Level 3 | 83.75% | 83.75% | 0 | 0 | 0.00% |
| Level 4 | 62.50% | 62.50% | 1 | 0 | 0.00% |
| Level 5 | 65.00% | 65.00% | 0 | 0 | 0.00% |
| TOTAL | 79.00% | 79.00% | 2 | 0 | 0.00% |
- Pure Accuracy: μ΅μ΄ 1ν μμ± μμ SQL μ€ν κ²°κ³Ό μ λ΅λ₯ μ΄ λ¬΄λ € **79.00%**μ λ¬ν©λλ€.
- μ΄κ³ μ λ°λ μ¦λͺ : μ 체 400κ°μ 볡μ‘ν 쿼리 μ€ μ€ν μλ¬(Syntax/Runtime Error)κ° λ°μν μΌμ΄μ€κ° λ¨ 2건(Level 2μμ 1건, Level 4μμ 1건)μ λΆκ³Όνμ¬, λ² μ΄μ€ λͺ¨λΈλ‘μ κ°μ₯ μλ²½νκ³ μ λ’°ν μ μλ Baseline μ§νλ₯Ό μ 곡ν©λλ€.
π» μ¬μ© λ°©λ² (How to Use)
Gemma 2μ 곡μ Chat Template κ·κ²©μ μ€μνμ¬ μμμ ν¨μ¨μ μΌλ‘ μΆλ‘ νλ μμ μ½λμ λλ€.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "yeongseok11/gemma-2-9b-it-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 (Gemma-2 μ μ© ν
νλ¦Ώ μ€μ)
prompt = """<start_of_turn>user
λΉμ μ μ€λ¬΄μ© PostgreSQL μ λ¬Έκ°μ
λλ€. μ€μ§ SQL μΏΌλ¦¬λ§ λ΅λ³νμΈμ.
### μ€ν€λ§:
CREATE TABLE emp (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50),
dept_id INT,
salary INT
);
### μ§λ¬Έ:
κΈ°νν(dept_id = 10) μ§μλ€μ νκ· κΈμ¬λ₯Ό ꡬνλ 쿼리λ₯Ό μ§μ€.<end_of_turn>
<start_of_turn>model
### 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)
λ³Έ λͺ¨λΈμ λμ λ¬Έλ²μ μμ±λλ₯Ό μλνμ§λ§, μΈκ°μ΄ μ€κ³ν 볡μ‘νκ³ λΉμ ννλ λ°μ΄ν° λ μ΄ν¬ νκ²½μμλ μλ―Έλ‘ μ (Semantic) λ§€ν μ€μ°¨κ° λ°μν μ μμ΅λλ€.
μ΄λ₯Ό 극볡νκΈ° μν΄ ν₯ν λ³Έ μ°κ΅¬λ LLM μ§ν₯μ λ©νλ°μ΄ν° νμ₯ νμ΄νλΌμΈ(AI-Friendly Metadata Enrichment) λ° μμ΄μ νΈ κΈ°λ°μ λ₯λν λ°μ΄ν° λ΄λΉκ²μ΄μ
μν€ν
μ² μ°κ΅¬λ‘ νμ₯λ μμ μ
λλ€.
- Downloads last month
- -