跳到内容

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",
#     }
# ]

参考文献