File size: 6,495 Bytes
9575892 577a31e 9575892 577a31e 9575892 577a31e 9575892 577a31e 9575892 577a31e 9575892 577a31e 9575892 577a31e 9575892 577a31e 9575892 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e 5afe371 577a31e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 |
---
language: en
license: other
tags:
- qwen
- grpo
- instruct
- fine-tuned
- reasoning
- 3b
- menda
- chat
- transformers
library_name: transformers
datasets:
- gsm8k
model-index:
- name: Menda-3B-250
results:
- task:
type: text-generation
name: Text Generation
dataset:
type: arc-challenge
name: ARC-Challenge
metrics:
- name: Accuracy
type: accuracy
value: 50.0
- task:
type: text-generation
name: Text Generation
dataset:
type: boolq
name: BoolQ
metrics:
- name: Accuracy
type: accuracy
value: 80.0
- task:
type: text-generation
name: Text Generation
dataset:
type: hellaswag
name: HellaSwag
metrics:
- name: Accuracy
type: accuracy
value: 40.0
- task:
type: text-generation
name: Text Generation
dataset:
type: mmlu
name: MMLU (Overall)
metrics:
- name: Accuracy
type: accuracy
value: 68.95
---
# Menda-3B-250: GRPO-Tuned Qwen2.5 Model
Menda-3B-250 is a fine-tuned version of Qwen2.5-3B-Instruct, trained with GRPO (Guided Reinforcement from Preference Optimization) for 250 steps. This model shows improved performance on reasoning benchmarks compared to the base model.
## Model Details
- **Base Model**: Qwen/Qwen2.5-3B-Instruct
- **Training Method**: GRPO (Guided Reinforcement from Preference Optimization)
- **Training Steps**: 250
- **Parameters**: 3 billion
- **Context Length**: 32K tokens
- **Training Data**: GSM8K (mathematical reasoning)
- **Chat Template**: Uses the Qwen2 chat template
## Chat Format
This model uses the standard Qwen2 chat template. For best results when using the model directly, format your prompts as follows:
```
<|im_start|>system
You are a helpful AI assistant.<|im_end|>
<|im_start|>user
Your question here<|im_end|>
<|im_start|>assistant
```
When using the model through the Hugging Face Transformers library, the chat template will be applied automatically when using the `chat_template` functionality:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "weathermanj/Menda-3B-250"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
messages = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Explain the concept of machine learning in simple terms."}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False)
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=300)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
```
## Benchmark Results
Menda-3B-250 has been evaluated on several standard benchmarks:
| Benchmark | Task Type | Accuracy |
|-----------|-----------|----------|
| ARC-Challenge | Scientific Reasoning | 50.0% |
| BoolQ | Reading Comprehension | 80.0% |
| HellaSwag | Common Sense Reasoning | 40.0% |
| Lambada | Text Completion | 70.0% |
| PIQA | Physical Reasoning | 90.0% |
| Winogrande | Commonsense Reasoning | 90.0% |
### MMLU Performance
| MMLU Category | Score |
|---------------|-------|
| Overall | 68.95% |
| Humanities | 76.92% |
| Social Sciences | 75.83% |
| STEM | 60.00% |
| Other | 67.69% |
## Key Strengths
- **Highest MMLU Score**: This checkpoint achieves the highest overall MMLU score (68.95%) among all checkpoints in the training progression.
- **Strong Humanities Performance**: Exceptional performance in humanities subjects (76.92%).
- **Efficient Training**: Achieves impressive results with minimal training (only 250 steps).
- **Balanced Capabilities**: Maintains strong performance across diverse tasks without significant trade-offs.
## Usage Examples
### Basic Usage with Transformers
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "weathermanj/Menda-3B-250"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
prompt = "Explain the concept of machine learning in simple terms."
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=300)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
```
### Chat Usage with Transformers
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "weathermanj/Menda-3B-250"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
messages = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Give me a short introduction to large language models."}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
```
### Using with Ollama
You can also use this model with Ollama by converting it to GGUF format:
```bash
# Convert to GGUF
python -m llama_cpp.convert_hf_to_gguf weathermanj/Menda-3B-250 --outfile menda-3b-250.gguf
# Create Ollama model
cat > Modelfile << EOF
FROM menda-3b-250.gguf
TEMPLATE """{{ .Prompt }}"""
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
EOF
ollama create menda-3b-250 -f Modelfile
ollama run menda-3b-250
```
## Training Configuration
The model was trained using the GRPO methodology with the following configuration:
- **LoRA Rank**: 128
- **Learning Rate**: 5e-6
- **Optimizer**: AdamW (8-bit)
- **Batch Size**: 8 per device
- **Gradient Accumulation Steps**: 4
- **Training Samples**: 100 examples from GSM8K
## License
This model inherits the license of the base Qwen2.5-3B-Instruct model. Please refer to the [Qwen2 license](https://huggingface.co/Qwen/Qwen2-3B-Instruct/blob/main/LICENSE) for details.
|