跳到内容

GenerateShortTextMatchingData

使用 LLM 生成短文本匹配数据,以便稍后训练嵌入模型。

GenerateShortTextMatchingData 是一个 Task,它使用 LLM 生成短文本匹配数据,以便稍后训练嵌入模型。此任务基于论文 "Improving Text Embeddings with Large Language Models",数据基于提供的属性生成,如果未提供,则随机抽样。

注意

理想情况下,此任务应与 EmbeddingTaskGeneratorflatten_tasks=True 以及 category="text-matching-short" 一起使用;以便 LLM 生成一个任务列表,这些任务被扁平化,从而使每行都包含一个用于文本匹配短类别的单个任务。

属性

  • language: 要生成的数据的语言,可以是 https://aclanthology.org/2020.acl-main.747.pdf 附录 A 中 XLM-R 列表中检索到的任何语言。

  • seed: 在 format_input 方法中进行任何抽样时要设置的随机种子。请注意,在此任务中,seed 无效,因为没有抽样参数。

输入 & 输出列

graph TD
    subgraph Dataset
        subgraph Columns
            ICOL0[task]
        end
        subgraph New columns
            OCOL0[input]
            OCOL1[positive_document]
            OCOL2[model_name]
        end
    end

    subgraph GenerateShortTextMatchingData
        StepInput[Input Columns: task]
        StepOutput[Output Columns: input, positive_document, model_name]
    end

    ICOL0 --> StepInput
    StepOutput --> OCOL0
    StepOutput --> OCOL1
    StepOutput --> OCOL2
    StepInput --> StepOutput

输入

  • task (str): 生成中要使用的任务描述。

输出

  • input (str): 由 LLM 生成的输入。

  • positive_document (str): 由 LLM 生成的正文档。

  • model_name (str): 用于生成短文本匹配数据的模型名称。

示例

生成用于训练嵌入模型的合成短文本匹配数据

from distilabel.pipeline import Pipeline
from distilabel.steps.tasks import EmbeddingTaskGenerator, GenerateShortTextMatchingData

with Pipeline("my-pipeline") as pipeline:
    task = EmbeddingTaskGenerator(
        category="text-matching-short",
        flatten_tasks=True,
        llm=...,  # LLM instance
    )

    generate = GenerateShortTextMatchingData(
        language="English",
        llm=...,  # LLM instance
    )

    task >> generate

参考