|
|
--- |
|
|
base_model: unsloth/gemma-3-4b-it-unsloth-bnb-4bit |
|
|
license: apache-2.0 |
|
|
language: |
|
|
- it |
|
|
datasets: |
|
|
- Jakala/gsm8k-platinum_translated_ita |
|
|
- bezir/MATH-500-multilingual |
|
|
- Jakala/s1k_o1_checked_translated_ita |
|
|
tags: |
|
|
- reasoning |
|
|
- math |
|
|
- grpo |
|
|
- rl |
|
|
- lora |
|
|
- unsloth |
|
|
- gemma3 |
|
|
- transformers |
|
|
- text-generation-inference |
|
|
--- |
|
|
|
|
|
# J-1 |
|
|
|
|
|
J-1 è un modello di reasoning addestrato da Jakala a partire dal modello **Gemma 3 4-B** su problemi di matematica e ragionamento **in italiano** con **GRPO** tramite [Unsloth](https://github.com/unslothai/unsloth). |
|
|
|
|
|
J-1 migliora drasticamente le sue performance overall sul dataset di test [Invalsi ITA](https://huggingface.co/datasets/Jakala/invalsi) (non visto in fase training) dal 57% al **79%** rispetto al modello base (per comparison, phi-4-14B -> 90%). |
|
|
|
|
|
J-1 è stato addestrato con un mix di dataset di reasoning di diversa difficoltà, originariamente in inglese tradotti automaticamente in italiano tramite 4o. |
|
|
|
|
|
Il training di J-1 ha richiesto 4 giorni su una singola A100 40GB. |
|
|
|
|
|
_Nome in codice originale: Jakala/gemma-3-4b-reasoning-ita-grpo-gsm8k-math-500-s1k-ita-1200steps_ |
|
|
|
|
|
## Colab |
|
|
|
|
|
* Simple Inference colab: https://colab.research.google.com/drive/1n4Dw9l45Rz7WEosk_el96bj-YZsWSYqc |
|
|
* PTTC - Parallel test-time compute colab (per inferenze in parallelo + voting, simile a o3-pro): https://colab.research.google.com/drive/1fBGWgHqL_Ds1owoCj4zXnv9YrN0MU_1G |
|
|
|
|
|
|
|
|
## Parametri di addestramento utilizzati |
|
|
|
|
|
| Parametro | Valore | |
|
|
|-----------|--------| |
|
|
| `max_seq_length` | **8000** token | |
|
|
| `max_prompt_length` | 700 token | |
|
|
| `max_completion_length` | 4000 token | |
|
|
| Num generazioni per step GRPO | 4 | |
|
|
| Step di training | **1200** | |
|
|
| Algoritmo RL | GRPO (TRL 0.15.2) | |
|
|
| LoRA rank / α | **64 / 64** | |
|
|
| Scheduler | cosine, LR 5e-6 | |
|
|
| Batch size | 1 | |
|
|
| Hardware | 1 × NVIDIA A100 40 GB | |
|
|
|
|
|
## Dataset usati |
|
|
|
|
|
Il modello è stato addestrato concatenando e randomizzando: |
|
|
|
|
|
* **GSM8K-platinum (IT)** – problemi aritmetici tradotti in italiano. |
|
|
* **MATH-500 (IT)** – sotto-insieme italiano di problemi olimpionici. |
|
|
* **S1K** (versioni tradotte + revisionate) – domande aperte di ragionamento/logica. |
|
|
|
|
|
Totale esempi 1600, di cui il modello ne ha visti 1200 in 1200 steps. |
|
|
Non è stato effettuato nessun addestramento SFT iniziale per insegnare il formato al modello. |
|
|
|
|
|
## System prompt usato |
|
|
|
|
|
Il **system prompt** di training, consigliato per l'inferenza è il seguente: |
|
|
|
|
|
```text |
|
|
Rispondi nel seguente formato, ragionando a lungo prima di rispondere: |
|
|
<think> |
|
|
_qui_il_tuo_ragionamento_ |
|
|
</think> |
|
|
_qui_la_tua_risposta_ |
|
|
``` |
|
|
|
|
|
## Risposta del modello |
|
|
|
|
|
Se il **system prompt** è quello consigliato, il modello risponde nel seguente formato compatibile con OpenWebUI per i modelli di reasoning: |
|
|
|
|
|
```text |
|
|
<think> |
|
|
_ragionamento_del_modello_ |
|
|
</think> |
|
|
_risposta_del_modello_ |
|
|
``` |
|
|
|
|
|
## Parametri di generazione consigliati |
|
|
|
|
|
| Parametro | Valore | |
|
|
|-----------|--------| |
|
|
| `temperature` | **0.9** | |
|
|
| `repetition_penalty` | 0 (in generale disattivare) | |
|
|
| `frequency_penalty` | 0 (in generale disattivare) | |
|
|
| stop_sequence | < think> (senza lo spazio) | |
|
|
|