yeongseok11's picture
Update README.md
17a0eec verified
---
license: cc-by-nc-4.0
library_name: peft
base_model: naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B
tags:
- text-to-sql
- erp
- hyperclova
- korean
- nlp
- lora
- generated_from_trainer
---
# HyperCLOVAX-1.5B-ERP-SQL ๐Ÿš€
์ด ๋ชจ๋ธ์€ [naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B](https://huggingface.co/naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ **ํ•œ๊ตญ์–ด ERP ๋„๋ฉ”์ธ์˜ Text-to-SQL ์ž‘์—…**์„ ์œ„ํ•ด ํŒŒ์ธํŠœ๋‹๋œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
1.5B๋ผ๋Š” ์ดˆ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ํŒŒ์ธํŠœ๋‹ ํ›„ **0.5%์—์„œ 62.0%๋กœ ๊ทน์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ**์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ณต์žกํ•œ ์ถ”๋ก (Lv 5) ์˜์—ญ์—์„œ๋Š” 2B๊ธ‰ ๋ชจ๋ธ๋“ค์„ ์ƒํšŒํ•˜๋Š” ํšจ์œจ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
## ๐Ÿ“Š ๋ชจ๋ธ ์„ฑ๋Šฅ (Dramatic Improvement)
์ž์ฒด ๊ตฌ์ถ•ํ•œ ERP-SQL ๋ฐ์ดํ„ฐ์…‹ ํ‰๊ฐ€ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์‚ฌ์ „ ํ•™์Šต(Baseline) ์ƒํƒœ์—์„œ๋Š” ๋„๋ฉ”์ธ ์ง€์‹์ด ์—†์–ด ๊ฑฐ์˜ ์ •๋‹ต์„ ๋งžํžˆ์ง€ ๋ชปํ–ˆ์œผ๋‚˜, ํ•™์Šต ํ›„ ์‹ค๋ฌด ํˆฌ์ž… ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์œผ๋กœ ํ™˜๊ณจํƒˆํƒœํ•˜์˜€์Šต๋‹ˆ๋‹ค.
| ๋ชจ๋ธ (Model) | ํ•™์Šต ์ƒํƒœ | ์ „์ฒด ์ •ํ™•๋„ | Lv 1 (์‰ฌ์›€) | **Lv 5 (๋งค์šฐ ์–ด๋ ค์›€)** |
| :--- | :--- | :--- | :--- | :--- |
| **HyperCLOVA X 1.5B** | Baseline | 0.5% | 2.5% | 0.0% |
| **HyperCLOVA X 1.5B** | **Fine-tuned (Ours)** | **62.0%** | **92.5%** | **47.5%** |
> **ํ•ต์‹ฌ ๋ถ„์„:** ์ „์ฒด ์ •ํ™•๋„๋Š” 2B๊ธ‰ ๋ชจ๋ธ ๋Œ€๋น„ ์†Œํญ ๋‚ฎ์„ ์ˆ˜ ์žˆ์œผ๋‚˜, **๊ณ ๋‚œ์ด๋„(Lv 5) ์ถ”๋ก  ์ •ํ™•๋„(47.5%)**๋Š” 2.1B ๊ฒฝ์Ÿ ๋ชจ๋ธ(45.0%)๋ณด๋‹ค ์˜คํžˆ๋ ค ๋†’๊ฒŒ ์ธก์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ€๋„๊ฐ€ ๋งค์šฐ ํšจ์œจ์ ์ž„์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
## ๐Ÿ”ง ํ•™์Šต ์ •๋ณด (Training Details)
* **๋ฒ ์ด์Šค ๋ชจ๋ธ:** naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B
* **ํ•™์Šต ๋ฐฉ๋ฒ•:** LoRA (Low-Rank Adaptation)
* **์ตœ์  ์—ํญ(Epoch):** 5 (์ง€์†์ ์ธ ์„ฑ๋Šฅ ์šฐ์ƒํ–ฅ ํ™•์ธ)
* **๋ฐ์ดํ„ฐ์…‹:** ์Šคํ‚ค๋งˆ๊ฐ€ ๋ฐ˜์˜๋œ ํ•ฉ์„ฑ(Synthetic) ํ•œ๊ตญ์–ด ERP ์งˆ๋ฌธ-์ฟผ๋ฆฌ ์Œ
* **ํ•˜๋“œ์›จ์–ด:** NVIDIA RTX 4060 Ti (16GB) x 2ea
## ๐Ÿ’ป ์‚ฌ์šฉ ๊ฐ€์ด๋“œ (How to Use)
### 1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
```bash
pip install torch transformers peft accelerate
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
# 1. ๋ชจ๋ธ ๋กœ๋“œ
base_model_id = "naver-hyperclovax/HyperCLOVAX-SEED-Text-Instruct-1.5B"
adapter_id = "yeongseok11/hyperclovax-1.5b-erp-nl2sql"
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
model = PeftModel.from_pretrained(base_model, adapter_id)
model.eval()
# 2. ํ”„๋กฌํ”„ํŠธ ์ •์˜
schema_context = """
[Tables]
employees(emp_id, name, dept_id, hire_date, salary)
departments(dept_id, dept_name, location)
"""
question = "์ธ์‚ฌํŒ€ ์ง์›๋“ค์˜ ์ด๋ฆ„์„ ์•Œ๋ ค์ค˜."
prompt = f"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
์•„๋ž˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์งˆ๋ฌธ์„ SQL๋กœ ๋ณ€ํ™˜ํ•˜์„ธ์š”.
### Input:
### ์งˆ๋ฌธ:
{question}
### ์Šคํ‚ค๋งˆ:
{schema_context}
### Response:
"""
# 3. ์ถ”๋ก 
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
eos_token_id=tokenizer.eos_token_id
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True).split("### Response:")[-1].strip())