在promptflow中运行所有变体的组合

kg7wmglp  于 5个月前  发布在  其他
关注(0)|答案(6)|浏览(72)

您的功能请求是否与问题相关?请描述。

根据https://learn.microsoft.com/en-us/azure/machine-learning/prompt-flow/how-to-tune-prompts-using-variants?view=azureml-api-2#run-all-variants-with-a-single-row-of-data-and-check-outputs,节点越多,运行时遗漏的组合就越多。每次只能选择一个带有变体的LLM节点运行,而其他LLM节点将使用默认变体。这对于熟悉机器学习中的网格搜索的人来说是一个必备的功能。起初,我认为这是我代码中的一个错误,但根据文档,这是预期的行为。

描述您希望实现的解决方案

不再仅能一次更改一个节点的变体,而是支持运行包含所有变体(包括非默认变体)的流程。

描述您考虑过的替代方案

只使用一个带有变体的节点,但这显然会废弃变体的概念。

附加上下文

#944相关,它被标记为长期无参数。

ig9co6j1

ig9co6j11#

Hi @ZhiliangWu ,我们近期不会支持运行所有变体。作为解决方法,您可以在运行前更新流程YAML中的默认变体,或者像这样使用--variant覆盖单个节点的变体:

pf run create --flow web-classification --data web-classification/data.jsonl --variant '${summarize_text_content.variant_1}' --column-mapping url='${data.url}' --stream --name my_first_variant_run
w8f9ii69

w8f9ii692#

你好 @ZhiliangWu ,我们近期不会支持运行所有变体。作为解决方法,你可以在运行前更新流程YAML中的默认变体,或者像这样覆盖单个节点的变体:

pf run create --flow web-classification --data web-classification/data.jsonl --variant '${summarize_text_content.variant_1}' --column-mapping url='${data.url}' --stream --name my_first_variant_run

有任何关于实时覆盖默认变体的建议吗?

y4ekin9u

y4ekin9u3#

遗憾的是,我们无法在pf run中提供覆盖YAML的功能。但是,您可以使用我们的flow-as-func功能来覆盖YAML文件,如下所示:

f = load_flow(
    flow_path,
)
f.context.overrides = {
    "node_variants.node_name.default_variant_id": "variant_id",
}

参考:https://microsoft.github.io/promptflow/how-to-guides/execute-flow-as-a-function.html

kgqe7b3p

kgqe7b3p4#

请考虑在pf命令中添加此覆盖功能。我们使用pf进行实验,而flow-as-func feature并不为此设计。我仍然想知道为什么支持类似网格搜索的实验能力如此困难。难道变体不是提示流程中的突出功能吗?在当前形式下,对于具有多个节点和变体的流程,这种变体机制基本上是无用的。

rdrgkggo

rdrgkggo6#

对不起,我错过了这个。我们仍在评估我们的变体支持的长期计划,所以我不能保证我们能在短期内支持它。一旦我们决定支持它,我会在这里更新。

相关问题