Reward wrappers
ProgramAsJudge
Bases: Reward
Wrap a Program
into a Reward
.
You can use this to create advanced reward functions that use a Synalinks Program
.
The program should have two inputs and one output.
Note: The output data model/schema should have a field named reward
.
Example:
# ... your program declaration
program = synalinks.Program(
inputs=x0,
outputs=xn,
)
program.compile(
reward=synalinks.rewards.ProgramAsJudge(program=program)
optimizer=synalinks.optimizers.RandomFewShot(),
)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
program
|
Program
|
The reward program to wrap. |
required |
name
|
str
|
Optional. string name of the reward instance. |
None
|
in_mask
|
list
|
Optional. list of keys to keep to compute the reward. |
None
|
out_mask
|
list
|
Optional. list of keys to remove to compute the reward. |
None
|
Source code in synalinks/src/rewards/reward_wrappers.py
RewardFunctionWrapper
Bases: Reward
Wrap a stateless function into a Reward
.
You can use this to quickly build a reward from a function. The function needs
to have the signature fn(y_true, y_pred)
.
Example:
def my_reward(y_true, y_pred):
# ...
return reward
program.compile(
reward=synalinks.rewards.RewardFunctionWrapper,
optimizer=synalinks.optimizers.RandomFewShot()
)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fn
|
callable
|
The reward function to wrap, with signature
|
required |
name
|
str
|
Optional. string name of the reward instance. |
None
|
in_mask
|
list
|
Optional. list of keys to keep to compute the reward. |
None
|
out_mask
|
list
|
Optional. list of keys to remove to compute the reward. |
None
|
**kwargs
|
keyword arguments
|
Keyword arguments to pass on to |
{}
|