GenerateShortTextMatchingData¶
使用 LLM
生成短文本匹配数据,以便稍后训练嵌入模型。
GenerateShortTextMatchingData
是一个 Task
,它使用 LLM
生成短文本匹配数据,以便稍后训练嵌入模型。此任务基于论文 "Improving Text Embeddings with Large Language Models",数据基于提供的属性生成,如果未提供,则随机抽样。
注意¶
理想情况下,此任务应与 EmbeddingTaskGenerator
和 flatten_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