EvolInstructGenerator¶
使用 LLM 生成进化指令。
WizardLM:增强大型语言模型以遵循复杂指令
属性¶
-
num_instructions: 要生成的指令数量。
-
generate_answers: 是否为指令生成答案。默认为
False。 -
mutation_templates: 用于生成指令的突变模板。
-
min_length: 定义生成的指令需要高于的最小长度(以字节为单位),才能被认为是有效的。默认为
512。 -
max_length: 定义生成的指令需要低于的最大长度(以字节为单位),才能被认为是有效的。默认为
1024。 -
seed: 为
numpy设置的种子,以便随机选择突变方法。默认为42。
运行时参数¶
-
min_length: 定义生成的指令需要高于的最小长度(以字节为单位),才能被认为是有效的。
-
max_length: 定义生成的指令需要低于的最大长度(以字节为单位),才能被认为是有效的。
-
seed: 为
numpy设置的种子,以便随机选择突变方法。
输入 & 输出列¶
graph TD
subgraph Dataset
subgraph New columns
OCOL0[instruction]
OCOL1[answer]
OCOL2[instructions]
OCOL3[model_name]
end
end
subgraph EvolInstructGenerator
StepOutput[Output Columns: instruction, answer, instructions, model_name]
end
StepOutput --> OCOL0
StepOutput --> OCOL1
StepOutput --> OCOL2
StepOutput --> OCOL3
输出¶
-
instruction (
str): 如果generate_answers=False,则为生成的指令。 -
answer (
str): 如果generate_answers=True,则为生成的答案。 -
instructions (
List[str]): 如果generate_answers=True,则为生成的指令列表。 -
model_name (
str): 用于生成和进化指令的 LLM 的名称。
示例¶
生成没有初始指令的进化指令¶
from distilabel.steps.tasks import EvolInstructGenerator
from distilabel.models import InferenceEndpointsLLM
# Consider this as a placeholder for your actual LLM.
evol_instruct_generator = EvolInstructGenerator(
llm=InferenceEndpointsLLM(
model_id="mistralai/Mistral-7B-Instruct-v0.2",
),
num_instructions=2,
)
evol_instruct_generator.load()
result = next(scorer.process())
# result
# [{'instruction': 'generated instruction', 'model_name': 'test'}]