| name | add-reward |
| description | Guide for adding a new reward function to AReaL. Use when user wants to create a reward function. |
Add Reward
Add a new reward function to AReaL.
When to Use
This skill is triggered when:
- User asks "how do I add a reward function?"
- User wants to implement custom rewards
- User mentions reward computation
Step-by-Step Guide
Step 1: Create Reward File
Create areal/reward/<name>.py:
from typing import Any
from areal.utils import logging
logger = logging.getLogger("MyReward")
def <name>_reward_fn(
prompt: str,
completions: str,
prompt_ids,
completion_ids,
answer: str | None = None,
**kwargs: Any,
) -> float:
"""Compute reward for a single completion.
Args:
prompt: Prompt string
completions: Completion string (model output)
prompt_ids: Tokenized prompt IDs
completion_ids: Tokenized completion IDs
answer: Ground truth answer from dataset (optional)
**kwargs: Additional data from dataset
Returns:
Reward value (float), typically 0.0 or 1.0
"""
try:
extracted = _extract_answer(completions)
answer extracted == (answer):
Exception:
logger.warning(, exc_info=)
() -> :
re
= re.search(, completion)
:
.group().strip()
completion.strip()