跳到内容

GroupColumns

组合来自 StepInput 列表的列。

GroupColumns 是一个 Step,它实现了 process 方法,该方法调用 group_dicts 函数来处理和组合 StepInput 列表。此外,GroupColumns 提供了两个属性 columnsoutput_columns,用于指定要分组的列和输出列,这将分别覆盖属性 inputsoutputs 的默认值。

属性

  • columns: 包含要分组的列名称的字符串列表。

  • output_columns: 可选的字符串列表,包含输出列的名称。

输入 & 输出列

graph TD
    subgraph Dataset
        subgraph Columns
            ICOL0[dynamic]
        end
        subgraph New columns
            OCOL0[dynamic]
        end
    end

    subgraph GroupColumns
        StepInput[Input Columns: dynamic]
        StepOutput[Output Columns: dynamic]
    end

    ICOL0 --> StepInput
    StepOutput --> OCOL0
    StepInput --> StepOutput

输入

  • dynamic (由 columns 属性确定): 要分组的列。

输出

  • dynamic (由 columnsoutput_columns 属性确定): 已分组的列。

示例

对数据集的列进行分组

from distilabel.steps import GroupColumns

group_columns = GroupColumns(
    name="group_columns",
    columns=["generation", "model_name"],
)
group_columns.load()

result = next(
    group_columns.process(
        [{"generation": "AI generated text"}, {"model_name": "my_model"}],
        [{"generation": "Other generated text", "model_name": "my_model"}]
    )
)
# >>> result
# [{'merged_generation': ['AI generated text', 'Other generated text'], 'merged_model_name': ['my_model']}]

指定输出列的名称

from distilabel.steps import GroupColumns

group_columns = GroupColumns(
    name="group_columns",
    columns=["generation", "model_name"],
    output_columns=["generations", "generation_models"]
)
group_columns.load()

result = next(
    group_columns.process(
        [{"generation": "AI generated text"}, {"model_name": "my_model"}],
        [{"generation": "Other generated text", "model_name": "my_model"}]
    )
)
# >>> result
#[{'generations': ['AI generated text', 'Other generated text'], 'generation_models': ['my_model']}]