File size: 3,577 Bytes
362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec 362e048 17a0eec |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
---
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()) |