--- 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 모델** [![HuggingFace](https://img.shields.io/badge/🤗-HuggingFace-yellow)](https://huggingface.co/solbi12/ax4-mongodb-query-generator) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Korean](https://img.shields.io/badge/Language-Korean-red)](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 도구를 만들기 위해 지속적으로 개선해나가겠습니다.*