--- license: apache-2.0 language: - ko tags: - math - reasoning - korean - grpo - reinforcement-learning - qwen2.5 datasets: - ChuGyouk/AI-MO-NuminaMath-CoT-Ko base_model: - Qwen/Qwen2.5-3B-Instruct --- # Qwen2.5-3B-MATH-GRPO-KOR ## 모델 개요 한국어 수학 추론에 특화된 Qwen2.5-3B 모델입니다. GRPO(Group Relative Policy Optimization)를 사용하여 한국어 수학 문제 해결 능력을 향상시켰습니다. ## 주요 특징 - **베이스 모델**: Qwen/Qwen2.5-3B-Instruct - **학습 방법**: GRPO (Group Relative Policy Optimization) - **데이터셋**: ChuGyouk/AI-MO-NuminaMath-CoT-Ko (5,000 샘플) - **언어**: 한국어 - **특화 분야**: 수학 문제 해결 및 추론 ## 사용법 ```python from unsloth import FastLanguageModel # 모델 로드 model, tokenizer = FastLanguageModel.from_pretrained( model_name="byh711/Qwen2.5-3B-MATH-GRPO-KOR", max_seq_length=1024, load_in_4bit=True, ) # 추론 모드 FastLanguageModel.for_inference(model) # 프롬프트 설정 system_prompt = '''다음 형식으로 정확히 답변해주세요: 단계별 풀이 과정을 자세히 설명 최종 답안 ''' # 수학 문제 입력 question = "어떤 수의 8배가 120보다 작을 때, 그 수의 최대 정수를 구하세요." messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": question} ] # 토큰화 및 생성 inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt") outputs = model.generate(input_ids=inputs, max_new_tokens=200, temperature=0.1) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(response) ``` ## 출력 형식 모델은 다음과 같은 XML 형식으로 답변을 생성합니다: ``` 1. 주어진 조건: 어떤 수를 x라고 하면, 8x < 120 2. 부등식 풀이: x < 120/8 = 15 3. x는 15보다 작아야 하므로, 최대 정수는 14 14 ``` ## 학습 세부사항 - **학습 데이터**: 5,000개 한국어 수학 문제 - **에포크**: 2 - **배치 크기**: 4 (효과적) - **학습률**: 5e-6 - **옵티마이저**: AdamW 8bit - **LoRA Rank**: 64 ## 라이선스 Apache 2.0