> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/fr/commencer/reinforcement-learning-rl-guide/advanced-rl-documentation/gspo-reinforcement-learning.md).

# Apprentissage par renforcement GSPO

Nous présentons GSPO, qui est une variante de [GRPO](/docs/fr/commencer/reinforcement-learning-rl-guide.md#from-rlhf-ppo-to-grpo-and-rlvr) créée par l’équipe Qwen chez Alibaba. Ils ont fait l’observation que lorsque GRPO prend des poids d’importance pour chaque jeton, alors qu’en réalité les avantages ne se mettent pas à l’échelle et ne changent pas avec chaque jeton. Cela a conduit à la création de GSPO, qui attribue désormais l’importance à la vraisemblance de la séquence plutôt qu’aux vraisemblances individuelles des jetons.

* Utilisez nos notebooks GSPO gratuits pour : [**gpt-oss-20b**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-GRPO.ipynb) et [**Qwen2.5-VL**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen2_5_7B_VL_GRPO.ipynb)

Activez GSPO dans Unsloth en définissant `importance_sampling_level = "sequence"` dans la configuration GRPO. La différence entre ces deux algorithmes peut être vue ci-dessous, à la fois à partir de l’article GSPO de Qwen et Alibaba :

<figure><img src="/files/71070c1f23656c6ea3da36c262f7e943361cc5a0" alt="" width="563"><figcaption><p>Algorithme GRPO, source : <a href="https://arxiv.org/abs/2507.18071">Qwen</a></p></figcaption></figure>

<figure><img src="/files/2c91908097ff4f0243bbcc6092be9984f0807a9a" alt="" width="563"><figcaption><p>Algorithme GSPO, source : <a href="https://arxiv.org/abs/2507.18071">Qwen</a></p></figcaption></figure>

Dans l’équation 1, on peut voir que les avantages mettent à l’échelle chacune des lignes dans les logprobs des jetons avant que ce tenseur ne soit sommé. Essentiellement, chaque jeton reçoit le même facteur d’échelle, bien que ce facteur ait été appliqué à l’ensemble de la séquence plutôt qu’à chaque jeton individuel. Un schéma simple de cela est présenté ci-dessous :

<figure><img src="/files/a07e036e2ce9fa0e3917825b78308e78e3233bec" alt="" width="286"><figcaption><p>Rapport de logprob GRPO mis à l’échelle ligne par ligne avec les avantages</p></figcaption></figure>

L’équation 2 montre que les rapports de logprob pour chaque séquence sont sommés et exponentiés après le calcul des rapports de logprob, et seuls les rapports de séquence résultants sont ensuite multipliés ligne par ligne par les avantages.

<figure><img src="/files/1ec6e15370ae70f72c4d6ff4359cbe2f2db08d84" alt="" width="313"><figcaption><p>Rapport de séquence GSPO mis à l’échelle ligne par ligne avec les avantages</p></figcaption></figure>

Activer GSPO est simple, tout ce que vous avez à faire est de définir le `importance_sampling_level = "sequence"` drapeau dans la configuration GRPO.

```python
training_args = GRPOConfig(
    output_dir = "vlm-grpo-unsloth",
    per_device_train_batch_size = 8,
    gradient_accumulation_steps = 4,
    learning_rate = 5e-6,
    adam_beta1 = 0.9,
    adam_beta2 = 0.99,
    weight_decay = 0.1,
    warmup_ratio = 0.1,
    lr_scheduler_type = "cosine",
    optim = "adamw_8bit",
    # beta = 0.00,
    epsilon = 3e-4,
    epsilon_high = 4e-4,
    num_generations = 8,    
    max_prompt_length = 1024,
    max_completion_length = 1024,
    log_completions = False,
    max_grad_norm = 0.1,
    temperature = 0.9,
    # report_to = "none", # Définissez sur "wandb" si vous voulez enregistrer dans Weights & Biases
    num_train_epochs = 2, # Pour un test rapide, augmentez pour un entraînement complet
    
    # GSPO est ci-dessous :
    importance_sampling_level = "sequence",
    
    # Dr GRPO / GAPO etc
    loss_type = "dr_grpo",
)
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/fr/commencer/reinforcement-learning-rl-guide/advanced-rl-documentation/gspo-reinforcement-learning.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
