<aside>
프로젝트 간단 설명
| 분류 | 기술 |
|---|---|
| 언어 / 프레임워크 | Python 3.12 PyTorch |
| 모델 | KoBERT (monologg/kobert) llama-3.2-Korean-Bllossom-3B |
| ML 라이브러리 | HuggingFace Transformers TRL (SFTTrainer) PEFT / LoRA SentencePiece Scikit-learn |
| 학습 환경 | AWS EC2 (Ubuntu 24.04) RunPod (A100 / H100) |
| 모델 탐색 도구 | LM Studio Ollama |
| 모델 배포 / 관리 | HuggingFace Hub |
| 데이터 생성 도구 | ChatGPT API |
카드 소비 데이터를 분석하려면 기존엔 SQL 작성 가능한 인력이 필요했다. 이를 해결하기 위해 프롬프트 엔지니어링 기반으로 자연어 → SQL 변환을 먼저 시도했으나, 도메인 특화 쿼리 생성의 한계가 명확했다.
이후 경량 LLM(SLM)의 성능이 빠르게 발전하면서, 소규모 모델을 도메인에 맞게 파인튜닝하는 방식이 현실적인 대안으로 떠올랐다. 자체 Text-to-SQL 엔진을 보유하면 추후 다양한 데이터 도메인에 재활용·확장이 가능하다는 판단 하에, SFT 기반 파인튜닝 방식으로 PoC를 진행했다.
flowchart TD
A([사용자 질문 입력]) --> B
B["① 질문유효성검증 ◀ 본인 담당
KoBERT 멀티라벨 분류
욕설 / 보안위협 / 개인정보차단"]
B -->|유효 질문만 통과| C
C["② 유사 질문 검색
Pinecone Hybrid Search
BM25 + BGE-M3 임베딩"]
C -->|HIT| D
C -->|MISS| E
D["Redis
캐시 반환"]
E["③ SQL 생성 ◀ 본인 담당
LLaMA 3.2 SFT 파인튜닝
도메인 특화 쿼리 생성"]
E --> F
F["④ SQL 실행
Redshift Serverless"]
F --> G
G["⑤ 결과 출력
차트 자동 생성 / 자연어 리포트
Gradio UI"]
style B fill:#3d8b8b,stroke:#f0ad4e,stroke-width:2px
style E fill:#3d8b8b,stroke:#f0ad4e,stroke-width:2px
실제 서비스 환경에서는 욕설·비방, 개인정보 요청, 보안 위협 등 다양한 비정상 질문이 유입될 수 있다. 이를 파이프라인 제일 앞단에서 사전 차단하지 않으면 불필요한 LLM 연산 낭비, 서비스 무결성 저해, 보안·윤리 리스크로 이어진다. 이에 KoBERT 기반 파인튜닝 모델로 질문 유효성을 자동 판별하는 필터링 엔진을 구축했다.
다양한 한국어 사전학습 모델을 검토한 결과 KoBERT를 선택했다.