EmbeddingTaskGenerator¶
Generate task descriptions for embedding-related tasks using an LLM.
EmbeddingTaskGenerator is a GeneratorTask that doesn't receieve any input besides the
    provided attributes that generates task descriptions for embedding-related tasks using a
    pre-defined prompt based on the category attribute. The category attribute should be
    one of the following:
- `text-retrieval`: Generate task descriptions for text retrieval tasks.
- `text-matching-short`: Generate task descriptions for short text matching tasks.
- `text-matching-long`: Generate task descriptions for long text matching tasks.
- `text-classification`: Generate task descriptions for text classification tasks.
Attributes¶
- 
category: The category of the task to be generated, which can either be text-retrieval,text-matching-short,text-matching-long, ortext-classification.
- 
flatten_tasks: Whether to flatten the tasks i.e. since a list of tasks is generated by the LLM, this attribute indicates whether to flatten the list or not. Defaults toFalse, meaning that running this task withnum_generations=1will return adistilabel.Distisetwith one row only containing a list with around 20 tasks; otherwise, if set toTrue, it will return adistilabel.Distisetwith around 20 rows, each containing one task.
Input & Output Columns¶
graph TD
    subgraph Dataset
        subgraph New columns
            OCOL0[tasks]
            OCOL1[task]
            OCOL2[model_name]
        end
    end
    subgraph EmbeddingTaskGenerator
        StepOutput[Output Columns: tasks, task, model_name]
    end
    StepOutput --> OCOL0
    StepOutput --> OCOL1
    StepOutput --> OCOL2
Outputs¶
- 
tasks ( List[str]): the list of tasks generated by theLLM.
- 
task ( str): the task generated by theLLMifflatten_tasks=True.
- 
model_name ( str): the name of the model used to generate the tasks.
Examples¶
Generate embedding tasks for text retrieval¶
from distilabel.pipeline import Pipeline
from distilabel.steps.tasks import EmbeddingTaskGenerator
with Pipeline("my-pipeline") as pipeline:
    task = EmbeddingTaskGenerator(
        category="text-retrieval",
        flatten_tasks=True,
        llm=...,  # LLM instance
    )
    ...
    task >> ...