🚀 A.X-4.0-Light MongoDB Query Generator
한국어 자연어를 MongoDB 쿼리로 변환하는 AI 모델
SKT A.X-4.0-Light 기반으로 파인튜닝된 전문 데이터베이스 쿼리 생성 모델
📋 모델 개요
이 모델은 SKT의 A.X-4.0-Light를 기반으로 하여 한국어 자연어를 MongoDB 쿼리로 변환하도록 LoRA 파인튜닝된 특화 모델입니다. 이커머스 도메인에 최적화되어 있으며, 복잡한 데이터베이스 쿼리도 자연스러운 한국어로 요청할 수 있습니다.
✨ 주요 특징
- 🎯 고정밀도: 360개의 엄선된 데이터셋으로 학습
- 🇰🇷 한국어 특화: 자연스러운 한국어 질문 이해
- 🛍️ 이커머스 도메인: 상품, 주문, 리뷰 등 실제 비즈니스 시나리오
- ⚡ 실시간 변환: 빠르고 정확한 쿼리 생성
- 🔧 다양한 쿼리: 기본 조회부터 복잡한 집계까지
🚀 빠른 시작
설치
pip install transformers torch
기본 사용법
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. 전자상거래 분석
queries = [
"이번 달 매출 상위 브랜드는?",
"고객 만족도가 높은 상품들",
"재구매율이 높은 고객 세그먼트"
]
2. 비즈니스 인텔리전스
queries = [
"지역별 주문 패턴 분석",
"계절별 인기 카테고리",
"마케팅 캠페인 효과 측정"
]
3. 실시간 대시보드
queries = [
"오늘의 실시간 주문 현황",
"재고 부족 상품 알림",
"고객 서비스 우선순위"
]
🛠️ 기술 세부사항
모델 아키텍처
- 기반 모델: SKT A.X-4.0-Light (4B parameters)
- 파인튜닝 방법: LoRA (Low-Rank Adaptation)
- 학습 데이터: 360개 한국어-MongoDB 쿼리 쌍
- 학습 환경: A100 GPU, 3 epochs
파라미터 설정
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
- 모델 설계 및 학습
- 데이터셋 큐레이션
- 성능 최적화
📞 문의 및 지원
- Hugging Face: @solbi12
- Issues: 모델 관련 문제나 개선 제안은 Discussion 탭을 이용해주세요
📄 라이선스
이 모델은 Apache License 2.0 하에 배포됩니다.
📚 인용
@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 도구를 만들기 위해 지속적으로 개선해나가겠습니다.
- Downloads last month
- 12
Model tree for solbi12/ax4-mongodb-query-generator
Base model
skt/A.X-4.0-Light