--- license: apache-2.0 language: - ko library_name: transformers tags: - kaidol - chatbot - idol - thinking - qwen - lora pipeline_tag: text-generation base_model: Qwen/Qwen3-4B-Thinking --- # KAIdol Thinking SFT Model (Model G) 아이돌 챗봇 KAI를 위한 Fine-tuned 모델입니다. ## 모델 정보 | 항목 | 값 | |------|-----| | Base Model | Qwen3-4B-Thinking-2507 | | Fine-tuning | LoRA (r=32, alpha=64) | | Dataset | Balanced Upsampled (52,879 train / 5,875 eval) | | Training | SFT | ## 성능 ### 일반 평가 (300 샘플) - 응답 품질: 0.598 - 정책 준수율: 99.67% - 사랑 고백 위반율: 0.33% ### Edge Case 테스트 (10개) - 전체 통과율: 100% - Hard 난이도: 100% (2/2) - Medium 난이도: 100% (4/4) - Easy 난이도: 100% (4/4) ## 특징 1. **Thinking Process**: `` 태그 내에 구조화된 사고과정 생성 2. **높은 정책 준수율**: 고백 금지, 팬 호칭 금지 등 정책 준수 3. **Edge Case 강건성**: 어려운 상황에서도 안정적인 응답 ## 사용법 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "developer-lunark/kaidol-thinking-sft-4b" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id) # 대화 생성 messages = [ {"role": "system", "content": "당신은 23세 남자 아이돌 KAI입니다..."}, {"role": "user", "content": "오빠 안녕!"} ] inputs = tokenizer.apply_chat_template(messages, return_tensors="pt") outputs = model.generate(inputs, max_new_tokens=512) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(response) ``` ## 학습 설정 ```yaml # LoRA Config r: 32 lora_alpha: 64 lora_dropout: 0.05 target_modules: ["q_proj", "k_proj", "v_proj", "o_proj"] # Training learning_rate: 2e-5 epochs: 3 batch_size: 4 gradient_accumulation_steps: 4 ``` ## 라이선스 Apache 2.0