初始化项目,由ModelHub XC社区提供模型
Model: cs-552-2026-aaty/group_model Source: Original Platform
This commit is contained in:
106
README.md
Normal file
106
README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
license: apache-2.0
|
||||
base_model: Qwen/Qwen3-1.7B
|
||||
pipeline_tag: text-generation
|
||||
library_name: transformers
|
||||
language:
|
||||
- en
|
||||
- it
|
||||
- es
|
||||
- zh
|
||||
- ru
|
||||
- hi
|
||||
datasets:
|
||||
- cs-552-2026-aaty/sft_mixture
|
||||
- cs-552-2026-aaty/grpo_mixture
|
||||
tags:
|
||||
- qwen3
|
||||
- group-model
|
||||
- reasoning
|
||||
- sft
|
||||
- grpo
|
||||
- cs-552
|
||||
- mnlp
|
||||
metrics:
|
||||
- accuracy
|
||||
---
|
||||
|
||||
# group_model
|
||||
|
||||
Group model for team **AATY**, CS-552 MNLP (EPFL). It is `Qwen/Qwen3-1.7B`
|
||||
post-trained with supervised fine-tuning followed by GRPO, and is the
|
||||
whole-team submission evaluated on all four domains: math, general knowledge,
|
||||
safety, and multilinguality. Its leaderboard rank is the 4-domain average.
|
||||
|
||||
## Model details
|
||||
|
||||
- **Base model:** `Qwen/Qwen3-1.7B`
|
||||
- **Post-training:** SFT (LoRA adapter, merged back into the base weights),
|
||||
then GRPO seeded from the SFT checkpoint with reward functions for the math
|
||||
and reasoning objectives
|
||||
- **Domains:** math (free-form, pass@8) and general knowledge, safety,
|
||||
multilinguality (multiple-choice, pass@1)
|
||||
- **Format:** vLLM-loadable safetensors with `config.json`,
|
||||
`generation_config.json`, and a tokenizer `chat_template`
|
||||
|
||||
## Output contract
|
||||
|
||||
The model writes its reasoning and then wraps the final answer in `\boxed{...}`.
|
||||
The training mix covers both question styles, because the group model is scored
|
||||
on both:
|
||||
|
||||
Free-form:
|
||||
|
||||
```
|
||||
Q: What is the smallest prime greater than 100?
|
||||
A: ...reasoning... \boxed{101}
|
||||
```
|
||||
|
||||
Multiple-choice (the boxed content is the option letter, with 2 to 20 options):
|
||||
|
||||
```
|
||||
Q: Which of the following is a noble gas?
|
||||
A) Oxygen
|
||||
B) Argon
|
||||
C) Nitrogen
|
||||
D) Hydrogen
|
||||
A: ...reasoning... \boxed{B}
|
||||
```
|
||||
|
||||
## Thinking mode
|
||||
|
||||
This model runs in **thinking mode**: it emits a `<think>...</think>` reasoning
|
||||
block before the final `\boxed{...}` answer. Thinking is forced on inside the
|
||||
chat template, because the evaluation passes only
|
||||
`tokenizer.apply_chat_template(messages, add_generation_prompt=True)` with no
|
||||
`enable_thinking` argument, so the template default is the only signal honored.
|
||||
|
||||
The relevant line in `chat_template.jinja`:
|
||||
|
||||
```jinja
|
||||
{%- set enable_thinking = true %}
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```python
|
||||
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||||
|
||||
tok = AutoTokenizer.from_pretrained("cs-552-2026-aaty/group_model")
|
||||
model = AutoModelForCausalLM.from_pretrained("cs-552-2026-aaty/group_model")
|
||||
|
||||
messages = [{"role": "user", "content": "What is the capital of Australia?"}]
|
||||
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
|
||||
inputs = tok(prompt, return_tensors="pt").to(model.device)
|
||||
out = model.generate(**inputs, max_new_tokens=512)
|
||||
print(tok.decode(out[0], skip_special_tokens=True))
|
||||
```
|
||||
|
||||
## Training data
|
||||
|
||||
- **SFT:** `cs-552-2026-aaty/sft_mixture`, the chat-formatted mixture built from
|
||||
public QA, knowledge, instruction, and math datasets.
|
||||
- **GRPO:** `cs-552-2026-aaty/grpo_mixture`, prompts with verifiable answers
|
||||
used for reward-driven optimization.
|
||||
|
||||
See the team data pipeline in `code/data/` for the exact sources and filters.
|
||||
Reference in New Issue
Block a user