dify ``` Fork Join Parallelism for Workflows ```

smdncfj3  于 2个月前  发布在  其他
关注(0)|答案(3)|浏览(33)

自检

  • 我已搜索现有问题 search for existing issues ,包括已关闭的问题。
  • 我确认我使用英语提交此报告(我已阅读并同意 Language Policy )。
  • 请不要修改此模板 :) 并填写所有必需的字段。

1. 此请求是否与您正在经历的挑战相关?

一些工作流配置具有较高的响应延迟,因为它们需要顺序执行多个正交请求。通过简单的分叉-合并并行性可以大大降低延迟。例如,并行执行多个 LLM 代数和 HTTP 请求。

2. 描述您希望看到的功能

添加分叉-合并块。

  • 将分叉放在 LLM/HTTP 块的任何地方。
  • 输出是一系列可以并行执行的路径。
  • 在路径中,只能访问在分叉之前定义的变量。
  • 路径可能具有受限制的块选择。例如,对于聊天工作流,由于执行顺序不是确定性的,“Answer”块可能需要禁用。
  • 为了使配置有效,所有源自分叉的并行路径都必须结束于 Join 块。
  • Join 块等待所有路径完成,然后继续顺序执行。

3. 此功能如何改善您的工作流或体验?

通过并行执行正交任务来提高响应延迟。

4. 其他上下文或评论

分叉-合并图感谢 this paper 提供。

5. 您能帮助我们实现这个功能吗?

  • 我对为这个功能做出贡献感兴趣。
xj3cbfub

xj3cbfub1#

Using workflows as tools I think will contribute to the benefit of this feature. Many times i'm taking a query and executing multiple individual llm queries to a cheaper llm, rather than packing it into a single llm completion. Or, i might want to execute multiple searches via searxng tool in parallel, then aggregate the response.
At the moment, there is no way to do this without doing it external to dify where the token counts are no longer available to understand the total workflow cost.

nhhxz33t

nhhxz33t2#

并行节点功能将非常有用。这是一个常见的用例。
以下是我脑海中这种工作流程的伪示例,如果“并行节点”可以连接到任何类型的节点,它可以使工作流程更高效和灵活。

yfwxisqw

yfwxisqw3#

可能需要一个机制来实现速率和并发限制,但分叉-合并或MapReduce模式将使新的迭代块运行得更快。

相关问题