Model Card: Kanana-1.5-8B-Korean-NL2SQL (Merged)

본 모델은 Kakaocorp의 Kanana-1.5-8B-Instruct 모델을 베이스로 하여, 실무용 PostgreSQL 환경에서 한국어 질의를 정확한 SQL 쿼리로 변환(NL2SQL)할 수 있도록 전교정(Fine-tuning) 및 가중치 병합(Weight Merge)을 완료한 고성능 특화 모델입니다.

특히, 복잡한 ERP 데이터베이스 스키마 구조를 이해하고, 단순 구문 생성을 넘어 에이전트 기반의 재귀적 자가 수정(Recursive Syntax Repair Flow) 환경에서 최고의 시너지를 내도록 설계되었습니다.

🌟 주요 특징 (Key Features)

  • PostgreSQL 실무 최적화: 표준 SQL을 넘어 PostgreSQL 고유의 문법 및 다양한 내장 함수(Window Function, Date/Time Manipulation 등)를 정확하게 구사합니다.
  • 구조적 스키마 추론: 복잡한 테이블 간의 관계(JOIN), 다중 서브쿼리(Subquery), 그리고 제약 조건을 고려한 쿼리 빌딩 능력을 갖추고 있습니다.
  • 에이전트 친화적 설계: 실행 에러 피드백을 받았을 때, 기존 실패 쿼리의 모순을 파악하고 구조적으로 완전히 다른 대안 쿼리를 제시하는 회복 탄력성(Resilience)이 뛰어납니다.

📊 성능 평가 요약 (Evaluation Results)

실무용 ERP 데이터베이스 스키마와 난이도별(Level 1 ~ 5) 평가 데이터셋 400문항을 바탕으로 엄밀하게 측정한 벤치마크 결과입니다.

Difficulty Pure Accuracy (1-Shot) Final Accuracy (3-Try Repair) Initial Errors Repaired Repair Rate
Level 1 92.50% 92.50% 0 0 0.00%
Level 2 86.25% 86.25% 3 0 0.00%
Level 3 81.25% 82.50% 3 1 33.33%
Level 4 58.75% 58.75% 3 0 0.00%
Level 5 60.00% 61.25% 4 1 25.00%
TOTAL 75.75% 76.25% 13 2 15.38%
  • Pure Accuracy: 최초 1회 생성 시의 SQL 문법 및 실행 결과 정답률입니다. 75.75%라는 훌륭한 기초 체력을 보여줍니다.
  • Final Accuracy: 실행 에러(Syntax/Runtime Error) 발생 시, DB 에러 로그를 피드백 받아 최대 3회 자가 수정한 최종 정답률입니다. 에이전트 루프 결합 시 성능이 **76.25%**까지 확장됩니다.

💻 사용 방법 (How to Use)

병합이 완료된 풀 모델이므로, peft 라이브러리 없이 표준 transformers 코드로 즉시 추론 및 서빙(vLLM, Ollama 등)이 가능합니다.

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "yeongseok11/kanana-1.5-8b-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 (ChatML 포맷 준수)
prompt = """<|im_start|>system
당신은 실무용 PostgreSQL 전문가입니다. 오직 SQL 쿼리만 답변하세요.<|im_end|>
<|im_start|>user
### 스키마:
CREATE TABLE emp (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(50),
    dept_id INT,
    salary INT
);

### 질문:
기획팀(dept_id = 10) 직원들의 평균 급여를 구하는 쿼리를 짜줘.<|im_end|>
<|im_start|>assistant
### 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)
본 모델은 데이터베이스 내의 기저 인프라(메타데이터 체계)가 인간 중심적일 때 발생할 수 있는 의미론적 추론 한계를 보완하기 위해 개발되었습니다. 향
후 연구로는 LLM의 SQL 추론 정확도를 극대화할 수 있는 AI 친화적 메타데이터 자동 관리 파이프라인(AI-Friendly Metadata Enrichment) 및 능동형 에이전트 서치 아키텍처와의 결합을 목표로 하고 있습니다.
Downloads last month
-
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for yeongseok11/kanana-1.5-8b-korean-nl2sql

Adapter
(33)
this model