prometheus
PrometheusTask
dataclass
¶
Bases: CritiqueTask
A CritiqueTask
following the prompt templated used by Prometheus.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
system_prompt |
str
|
the system prompt to be used for generation. Defaults to |
'You are a fair evaluator language model.'
|
scoring_criteria |
str
|
the scoring criteria to be used for the task, that defines
the scores below, provided via |
required |
score_descriptions |
Dict[int, str]
|
the descriptions of the scores, where the key is the rating value (ideally those should be consecutive), and the value is the description of each rating. |
required |
Disclaimer
Since the Prometheus model has been trained with OpenAI API generated data, the prompting strategy may just be consistent / compliant with either GPT-3.5 or GPT-4 from OpenAI API, or with their own model. Any other model may fail on the generation of a structured output, as well as providing an incorrect / inaccurate critique.
References
Source code in src/distilabel/tasks/critique/prometheus.py
generate_prompt(input, generations, ref_completion, **_)
¶
Generates a prompt following the Prometheus specification.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input |
str
|
the input to be used for the prompt. |
required |
generations |
List[str]
|
the generations to be used for the prompt, in this case, the ones to be critiqued. |
required |
ref_completion |
str
|
the reference completion to be used for the prompt, which is the reference one, assuming the one with the highest score. |
required |
Returns:
Name | Type | Description |
---|---|---|
Prompt |
Prompt
|
the generated prompt. |
Examples:
>>> from distilabel.tasks.critique import PrometheusTask
>>> task = PrometheusTask(
... scoring_criteria="Overall quality of the responses provided.",
... score_descriptions={0: "false", 1: "partially false", 2: "average", 3: "partially true", 4: "true"},
... )
>>> task.generate_prompt(
... input="What are the first 5 Fibonacci numbers?",
... generations=["0 1 1 2 3", "0 1 1 2 3"],
... ref_completion="0 1 1 2 3",
... )
Prompt(
system_prompt="You are a fair evaluator language model.",
formatted_prompt=""###Task Description:...",
)
Source code in src/distilabel/tasks/critique/prometheus.py
parse_output(output)
¶
Parses the output of the model into the desired format.