promptflow 批量处理LLM中的输入 - 批量分类

0s7z1bwu  于 2个月前  发布在  其他
关注(0)|答案(6)|浏览(46)

当前运行的提示流中,"输入"被定义为一个单独的"项目"。
目前,对于分类示例,它一次只能对一个输入进行分类。
需要有一个功能,能够一次输入多个产品,这样单个提示就可以输出多个分类结果。
为了能够一次导入多个输入,并将它们全部输出并链接到原始输入,以确保可以追踪准确性。
这样,提示令牌的"成本"就可以在许多输入之间分摊。
同样,在评估中也可以进行"批量"处理输入。通用流程也必须这样做。

kjthegm6

kjthegm61#

这是重要的。有没有解决这个问题的方法?如果PromptFlow不能进行批量处理,我们就不能将其作为端点使用。

qv7cva1a

qv7cva1a2#

你好,@adampolak-vertex 感谢你报告这个问题。目前,promptflow仅支持批量运行输入,每个输入都是一个单独的llm调用。要在提示中聚合多个输入为一个,也许你可以尝试将输入定义为list类型以获得一堆输出。

yvfmudvl

yvfmudvl3#

你好,@adampolak-vertex 感谢你报告这个问题。目前,promptflow 只支持将多个输入作为单个llm调用进行批量运行。要在提示中聚合多个输入为一个,你可以尝试将输入定义为 list 类型以获得一堆输出。

Bryan 谢谢你的反馈。我们已经研究过包括一个列表类型,它可以接受对象。我们发现这种方法存在以下问题:

  • 我们需要将我们的csv/jsonl评估转换为适应这种新格式
  • 尽管这不是一个大问题,可以用一个简单的脚本解决,但现在随着评估规模的增加,需要工程努力来处理
  • 我们不能再使用PromptFlow的默认评估 Jmeter 板
  • 现在 Jmeter 板上出现的每一行都是15+分类的聚合,无法再用于审查准确性,我们需要构建一个自定义 Jmeter 板来读取日志文件并“展开”分类列表
  • 现在我们需要两个服务来“ Package ”PromptFlow端点
  • 一个服务来创建适当的列表以便访问PromptFlow端点
  • 一个服务来获取PromptFlow端点的输出并“展开”它们进行下游处理

请告诉我我提到的任何问题是否可以通过其他方式解决。

qnyhuwrf

qnyhuwrf4#

是的,你提到的问题是真实的。此外,我想补充一点,如果我们支持在一个提示中聚合批量输入并发送调用,为了保持输入和输出之间的关系,我们将不得不读取和分析llm输出,这可能会导致一些合规性问题,对于某些客户来说被认为是不安全的。
因此,从我们的Angular 来看,如果用户没有令牌方面的担忧,我们仍然鼓励他们利用批量运行的能力。我们不会读取/分析任何用户的输入和llm输出。

jdg4fx2g

jdg4fx2g5#

是的,你提到的问题是真实的。此外,我想补充一点,如果我们支持在一个提示中聚合批量输入并发送调用,为了保持输入和输出之间的关系,我们将不得不读取和分析llm输出,这可能会导致一些合规性问题,对于某些客户来说被认为是不安全的。
因此,从我们的Angular 来看,我们仍然鼓励用户在没有令牌问题的情况下利用批量运行能力。我们不会读取/分析任何用户的输入和llm输出。
是的,我也在考虑这个问题,并为输入添加了一个“id”字段以解锁批处理。
如果你有:

  1. “aggregate”模块,用户可以在管道开始时或任何时候定义输入字段的“id”字段,以及要聚合的行数
  • 这将创建一个对象列表
  1. “unwind”模块,用户可以识别输出中哪个字段是输出对象列表的“id”
    PromptFlow端点正在摄取JSON,所以它不会影响用户体验,因为常规用例本来就是JSON对象。通过流程向你的JSON对象添加一个“key”,作为日志记录或下游管道的“id”,这是常规用例可能有的方式。
nbewdwxp

nbewdwxp6#

感谢您的建议。目前我们的“聚合”概念有很多限制,例如如果将流程部署为端点,则此节点不会被执行,因此您提到的“聚合”和“展开”对于流程来说是一个很大的新事物,需要对体验进行详细设计。
我们会保持这个问题开放,看看是否有任何客户有与您类似的需求,然后计划下一步。再次感谢您的反馈,我们非常感激。

相关问题