Process Reward Model (PRM)
iaDéfinition
Un Process Reward Model (PRM) est un type de modele de recompense entraine a evaluer la qualite de chaque etape intermediaire d'un raisonnement, plutot qu'uniquement la reponse finale. C'est une approche fondamentale dans l'entrainement des modeles de raisonnement avances comme OpenAI o1, DeepSeek-R1 et les systemes de raisonnement mathematique. Par contraste, un Outcome Reward Model (ORM) evalue uniquement la reponse finale. L'ORM peut recompenser des modeles qui arrivent a la bonne reponse par des raccourcis ou des hallucinations heureuses. Le PRM, en evaluant chaque etape, encourage des chaines de raisonnement valides et detecte les erreurs intermediaires. Le paper 'Let's Verify Step by Step' (Lightman et al., OpenAI, 2023) a demontre que les PRMs surpassent les ORMs pour les problemes de mathematiques : avec un budget de recherche fixe (N solutions generees), choisir via PRM step-by-step donne de meilleures performances que via ORM ou vote majoritaire. La construction d'un dataset PRM necessite des annotations step-level indiquant pour chaque etape si elle est correcte, incorrecte ou discutable. OpenAI a publie le dataset PRM800K (800K annotations) pour la communaute. Des datasets synthetiques (via GPT-4 comme juge) permettent de reduire le cout d'annotation. Pour les modeles o1-style bases sur le inference-time compute scaling, les PRMs jouent un role de signal d'exploration dans les algorithmes de recherche (Best-of-N, MCTS) : a chaque etape d'un arbre de raisonnement, le PRM guide le modele vers les branches les plus prometteuses.
Architecture du PRM
from transformers import AutoModelForTokenClassification
# PRM : LLM de base + tete de classification binaire
# pour chaque token [EOS step] -> P(step correct)
prm = AutoModelForTokenClassification.from_pretrained(
'Qwen/Qwen2.5-Math-PRM-7B', # PRM open-source
num_labels=2 # [incorrect, correct]
)Utilisation en Best-of-N Search
def best_of_n_search(problem, n=32):
solutions = [generate_solution(problem) for _ in range(n)]
scores = [prm_score(problem, sol) for sol in solutions]
# Agregation : minimum des scores step-level (plus conservateur)
return solutions[scores.index(max(scores))]PRM vs ORM : quand les utiliser
- PRM : problemes avec solutions longues multi-etapes (maths, code, raisonnement logique)
- ORM : taches avec reponses courtes verifiables (QA factuel, classification)
- Combinaison PRM+ORM : signal PRM pour la recherche + ORM pour le scoring final
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h