SelfCritique module
SelfCritique
Bases: Module
Useful to critique the given inputs.
This component critique the inputs given and eventually generate an intermediate reward between 0.0 and 1.0.
You can enable or disable the intermediate reward computation by
using the return_reward
flag (default to True).
To have more accurate results, ensure that the inputs are provided along
with the output to evaluate using return_inputs
in your modules.
Example:
import synalink
import asyncio
class Query(synalinks.DataModel):
query: str = synalinks.Field(
description="The user query",
)
class Answer(synalinks.DataModel):
answer: str = synalinks.Field(
description="The correct answer",
)
async def main():
language_model = synalinks.LanguageModel(
model="ollama/mistral",
)
x0 = synalinks.Input(data_model=Query)
x1 = await synalinks.ChainOfThought(
data_model=Answer,
language_model=language_model,
return_inputs=True,
)(x0)
x2 = await synalinks.SelfCritique(
language_model=language_model,
)(x1)
program = synalinks.Program(
inputs=x0,
outputs=x2,
name="answer_with_cot_and_self_critique",
description="Useful to answer accurately",
)
if __name__ == "__main__":
asyncio.run(main())
Parameters:
Name | Type | Description | Default |
---|---|---|---|
language_model
|
LanguageModel
|
The language model to use. |
None
|
prompt_template
|
str
|
The jinja2 prompt template (see |
None
|
examples
|
list
|
The default list of examples (see |
None
|
instructions
|
list
|
The default instructions being a list of string containing
additional instructions for the language model (see |
None
|
use_inputs_schema
|
bool
|
Optional. Whether or not use the inputs schema in
the prompt (Default to False) (see |
False
|
use_outputs_schema
|
bool
|
Optional. Whether or not use the outputs schema in
the prompt (Default to False) (see |
False
|
return_reward
|
bool
|
Optional. Whether or not to compute an intermediate reward. |
True
|
return_inputs
|
bool
|
Optional. Whether or not to concatenate the inputs to
the outputs (Default to True) (see |
True
|
name
|
str
|
Optional. The name of the module. |
None
|
description
|
str
|
Optional. The description of the module. |
None
|
trainable
|
bool
|
Whether the module's variables should be trainable. |
None
|
Source code in synalinks/src/modules/ttc/self_critique.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
|