InstructionBacktranslation¶
使用指令回译进行自对齐。
属性¶
- _template: 用于指令回译任务的 Jinja2 模板。
输入和输出列¶
graph TD
subgraph Dataset
subgraph Columns
ICOL0[instruction]
ICOL1[generation]
end
subgraph New columns
OCOL0[score]
OCOL1[reason]
OCOL2[model_name]
end
end
subgraph InstructionBacktranslation
StepInput[Input Columns: instruction, generation]
StepOutput[Output Columns: score, reason, model_name]
end
ICOL0 --> StepInput
ICOL1 --> StepInput
StepOutput --> OCOL0
StepOutput --> OCOL1
StepOutput --> OCOL2
StepInput --> StepOutput
输入¶
-
instruction (
str
): 用于评估文本输出的参考指令。 -
generation (
str
): 要针对给定指令评估的文本输出。
输出¶
-
score (
str
): 基于给定指令的生成结果的分数。 -
reason (
str
): 提供分数的理由。 -
model_name (
str
): 用于评分生成的模型名称。
示例¶
为给定的指令和生成结果生成分数和理由¶
from distilabel.steps.tasks import InstructionBacktranslation
instruction_backtranslation = InstructionBacktranslation(
name="instruction_backtranslation",
llm=llm,
input_batch_size=10,
output_mappings={"model_name": "scoring_model"},
)
instruction_backtranslation.load()
result = next(
instruction_backtranslation.process(
[
{
"instruction": "How much is 2+2?",
"generation": "4",
}
]
)
)
# result
# [
# {
# "instruction": "How much is 2+2?",
# "generation": "4",
# "score": 3,
# "reason": "Reason for the generation.",
# "model_name": "meta-llama/Meta-Llama-3.1-8B-Instruct",
# }
# ]