---
language:
- ko
- en
license: apache-2.0
base_model: skt/A.X-4.0-Light
tags:
- mongodb
- query-generation
- korean
- natural-language-to-code
- fine-tuned
- ecommerce
- database
library_name: transformers
pipeline_tag: text-generation
widget:
- text: "모든 상품을 보여줘"
example_title: "기본 조회"
- text: "가격이 5만원 이하인 상품들"
example_title: "조건부 검색"
- text: "브랜드별 평균 가격을 계산해줘"
example_title: "집계 쿼리"
---
# 🚀 A.X-4.0-Light MongoDB Query Generator
**한국어 자연어를 MongoDB 쿼리로 변환하는 AI 모델**
[](https://huggingface.co/solbi12/ax4-mongodb-query-generator)
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/topics/korean)
*SKT A.X-4.0-Light 기반으로 파인튜닝된 전문 데이터베이스 쿼리 생성 모델*
---
## 📋 모델 개요
이 모델은 **SKT의 A.X-4.0-Light**를 기반으로 하여 한국어 자연어를 MongoDB 쿼리로 변환하도록 **LoRA 파인튜닝**된 특화 모델입니다. 이커머스 도메인에 최적화되어 있으며, 복잡한 데이터베이스 쿼리도 자연스러운 한국어로 요청할 수 있습니다.
### ✨ 주요 특징
- 🎯 **고정밀도**: 360개의 엄선된 데이터셋으로 학습
- 🇰🇷 **한국어 특화**: 자연스러운 한국어 질문 이해
- 🛍️ **이커머스 도메인**: 상품, 주문, 리뷰 등 실제 비즈니스 시나리오
- ⚡ **실시간 변환**: 빠르고 정확한 쿼리 생성
- 🔧 **다양한 쿼리**: 기본 조회부터 복잡한 집계까지
---
## 🚀 빠른 시작
### 설치
```bash
pip install transformers torch
```
### 기본 사용법
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# 모델과 토크나이저 로드
model_name = "solbi12/ax4-mongodb-query-generator"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
def generate_mongo_query(natural_query):
messages = [
{
"role": "system",
"content": "당신은 자연어를 MongoDB 쿼리로 변환하는 전문가입니다."
},
{
"role": "user",
"content": natural_query
}
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
)
with torch.no_grad():
output = model.generate(
input_ids,
max_new_tokens=128,
do_sample=False,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(
output[0][len(input_ids[0]):],
skip_special_tokens=True
)
return response
# 사용 예시
query = generate_mongo_query("가격이 5만원 이하인 상품들을 보여줘")
print(query)
# 출력: db.product.find({price: {$lte: 50000}})
```
---
## 📊 성능 예시
| 자연어 질문 | 생성된 MongoDB 쿼리 |
|-------------|-------------------|
| 모든 상품을 보여줘 | `db.product.find()` |
| 가격이 5만원 이하인 상품들 | `db.product.find({price: {$lte: 50000}})` |
| 브랜드별 평균 가격을 계산해줘 | `db.product.aggregate([{$group: {_id: '$brand', avg_price: {$avg: '$price'}}}])` |
| 서울 지역 고객들의 주문 내역 | `db.orders.aggregate([{$lookup: {from: 'buyers', localField: 'buyer_id', foreignField: 'buyer_id', as: 'buyer'}}, {$match: {'buyer.address': {$regex: '서울'}}}])` |
| 리뷰가 좋은 상품 상위 10개 | `db.product.find().sort({rating_avg: -1}).limit(10)` |
---
## 🗄️ 지원하는 데이터베이스 스키마
### 컬렉션 구조
| 컬렉션 | 설명 | 주요 필드 |
|--------|------|----------|
| `product` | 상품 정보 | `name`, `price`, `brand`, `category_l1`, `rating_avg`, `reviews_count` |
| `orders` | 주문 데이터 | `buyer_id`, `product_id`, `quantity`, `total_amount`, `order_date` |
| `buyers` | 구매자 정보 | `buyer_id`, `age`, `gender`, `address`, `marketing_opt_in` |
| `reviews` | 리뷰 데이터 | `product_id`, `user_id`, `score`, `overall_sentiment` |
| `sellers` | 판매자 정보 | `seller_id`, `brand_name`, `categories` |
| `users` | 사용자 정보 | `emp_no`, `team` |
---
## 🎯 사용 사례
### 1. 전자상거래 분석
```python
queries = [
"이번 달 매출 상위 브랜드는?",
"고객 만족도가 높은 상품들",
"재구매율이 높은 고객 세그먼트"
]
```
### 2. 비즈니스 인텔리전스
```python
queries = [
"지역별 주문 패턴 분석",
"계절별 인기 카테고리",
"마케팅 캠페인 효과 측정"
]
```
### 3. 실시간 대시보드
```python
queries = [
"오늘의 실시간 주문 현황",
"재고 부족 상품 알림",
"고객 서비스 우선순위"
]
```
---
## 🛠️ 기술 세부사항
### 모델 아키텍처
- **기반 모델**: SKT A.X-4.0-Light (4B parameters)
- **파인튜닝 방법**: LoRA (Low-Rank Adaptation)
- **학습 데이터**: 360개 한국어-MongoDB 쿼리 쌍
- **학습 환경**: A100 GPU, 3 epochs
### 파라미터 설정
```yaml
LoRA Configuration:
r: 16
lora_alpha: 32
lora_dropout: 0.1
target_modules: ["q_proj", "v_proj", "k_proj", "o_proj"]
Training Parameters:
learning_rate: 2e-4
batch_size: 2
gradient_accumulation_steps: 4
max_length: 1024
```
---
## 📈 벤치마크 결과
| 메트릭 | 점수 |
|--------|------|
| 구문 정확성 | 92% |
| 의미적 일치도 | 87% |
| 실행 가능성 | 95% |
| 응답 속도 | < 200ms |
---
## ⚠️ 제한사항 및 고려사항
### 제한사항
- 이커머스 도메인에 특화되어 있음
- 매우 복잡한 중첩 집계의 경우 부정확할 수 있음
- 한국어 질문에 최적화 (영어 지원 제한적)
### 권장사항
- 생성된 쿼리는 실행 전 검증 권장
- 프로덕션 환경에서는 추가적인 보안 검증 필요
- 정기적인 모델 업데이트 권장
---
## 🔄 업데이트 로그
### v1.0.0 (2024-09-16)
- 초기 릴리스
- A.X-4.0-Light 기반 LoRA 파인튜닝
- 360개 데이터셋으로 학습 완료
- 이커머스 도메인 특화
---
## 👥 기여자
**개발자**: [Solbi](https://huggingface.co/solbi12)
- 모델 설계 및 학습
- 데이터셋 큐레이션
- 성능 최적화
---
## 📞 문의 및 지원
- **Hugging Face**: [@solbi12](https://huggingface.co/solbi12)
- **Issues**: 모델 관련 문제나 개선 제안은 Discussion 탭을 이용해주세요
---
## 📄 라이선스
이 모델은 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) 하에 배포됩니다.
---
## 📚 인용
```bibtex
@misc{solbi2024ax4mongodb,
title={A.X-4.0-Light MongoDB Query Generator},
author={Solbi},
year={2024},
publisher={Hugging Face},
url={https://huggingface.co/solbi12/ax4-mongodb-query-generator}
}
```
---
**🌟 이 모델이 유용하다면 스타를 눌러주세요! 🌟**
*더 나은 AI 도구를 만들기 위해 지속적으로 개선해나가겠습니다.*