AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dify v0.8.0:Workflow 重磅更新 - 通过并行处理多个分支,显著提升速度
发布日期:2024-09-10 19:20:07 浏览次数: 2415 来源:Dify


自 Dify Workflow 上线以来,凭借其直观的编排方式和强大的功能,赢得了用户的广泛认可。在先前的版本中,Workflow 能够按照预设的节点顺序依次运行(串行),但缺乏同时处理多个步骤的能力。每个节点都必须等待前一个节点完成后才能开始,这种设计虽然结构清晰,但在处理某些复杂任务时往往会影响运行效率,导致响应缓慢和延时较高的问题。

为了给用户带来更高效的体验,我们在本次更新中对 Workflow 进行了重构,引入了并行处理能力。现在,Workflow 可以同时运行多个不同分支,实现多项任务的并行处理。这种新的处理方式显著提升了整体运行效率,使得 LLM 应用能够更快速、更灵活地应对各种复杂的任务场景。

创建不同类型的并行分支

在 Workflow 中,你可以通过以下方式创建并行分支:将鼠标悬停在节点上,当 + 号出现时,点击它来添加不同类型的节点。这些新创建的分支能够在 Workflow 内并行运行,最终合并输出结果。详细操作指引,请查看帮助文档。

? 帮助文档:

https://docs.dify.ai/v/zh-hans/guides/workflow/orchestrate-node

我们为你提供了几种可以在 Workflow 中运行的并行场景。你可以尝试通过编排这些并行分支来提高整体运行效率。对于那些在之前版本中已经创建了 Workflow 的用户,我们也建议参考以下几种使用场景,将原本串行的 Workflow 重新改编成并行结构,从而提升运行速度。

简单并行

首先,在最简单的情况下,在一个固定的节点如开始节点,分别拉出几个平行的分支,用于同时处理相似的子任务,如翻译,模型能力对比等,下图是在模型对比场景下的简单并行情况:

嵌套并行

嵌套并行是指在一个 Workflow 中允许多层次的并行结构存在。它从一个起始节点开始,可以分出多个并行分支,而这些分支中又可以包含其他的并行处理。以"科普文章撰写助手"为例,我们可以清晰地看到两层嵌套:

  1. 第一层嵌套(1号框):从问题分类器开始,分出两类主要分支:处理概念解释(1号框)和处理无关话题("Refuse small talk"分支)。在处理概念解释分支(1号框)中,进一步包含了:
    a. 提供隐喻和类比的分支,增强概念理解
    b. 提取主题|第二层嵌套(2号框),用于更详细的概念分析和内容生成
  2. 第二层嵌套(2号框):在提取主题的分支中,同时进行两个并行任务:
  3. a. 提取主题并进行搜索(Extract the theme -> Serper),获得相关概念的背景信息
    b. 提取主题并生成学习计划(Study Plan -> Parameter Extractor -> TavilySearch)

这种结构中,第一层(1号框)的分支内部划分出多个子任务,这些子任务同时执行,其中提取主题的分支又形成了第二层(2号框)的并行结构。这种多层嵌套的并行结构特别适用于处理复杂的、多阶段的任务,如深度概念解析和科普内容生成。它能够同时处理概念的多个方面,包括基本解释、类比理解、背景研究和学习规划,从而显著提高处理效率和输出质量。

迭代中并行

迭代并行是指在一个循环或迭代结构内部实现并行处理。以"股票新闻情感分析"为例,这种并行的应用如下:

  1. 初始化:系统搜索并提取与特定股票相关的多个新闻 URL。

  2. 迭代处理:对每个 URL 进行迭代,在每次迭代中并行执行以下任务:
  3. a. 内容获取:使用 JinaReader 工具抓取和解析网页内容。
    b. 观点提取:通过参数提取器从文章中识别并提取乐观与悲观观点。
    c. 观点总结:同时使用两个独立的 LLM 模型,分别总结乐观和悲观观点(并行)。
  4. 结果整合:将每篇文章的分析结果组合成结构化的表格。

这种方法能高效处理大量新闻文章,同时从多角度分析每篇文章的情感倾向,有助于投资者优化投资组合,做出更明智的决策。迭代中的并行处理方法在面对大量结构相似的数据(如多篇新闻文章)时,在循环结构内加速特定步骤(如提取乐观和悲观观点),从而更快完成任务,节省时间。

条件并行

条件分支并行是指在工作流中根据不同条件执行不同的并行任务分支。以"面试准备助手"为例,我们可以看到这种结构的应用:

  1. 主要条件分支(IF/ELSE节点):根据对话计数(dialogue_count)将流程分为两个主要分支:

    a. 首次对话:确认面试角色和公司;
    b. 后续对话:进入更深层的处理。
  2. 次要条件分支(IF/ELSE 2节点):在后续对话分支中,根据是否已有公司信息和面试问题,又分为多个并行任务:

    a. 如果缺少公司信息:并行执行搜索公司、抓取网页内容、总结公司信息等任务;

    b. 如果缺少面试问题:并行生成多个面试问题。
  3. 并行任务执行:在生成面试问题的分支中,同时启动多个 LLM 节点,每个节点负责生成一个不同的面试问题。

通过 IF/ELSE 节点的这种结构,Workflow 能够根据当前状态和需求灵活地选择和执行不同的并行任务(注:问题分类器节点也能发挥类似作用)。这不仅提高了处理效率,还保证了流程的逻辑性和完整性。它特别适用于需要根据不同条件,同时执行不同复杂任务的场景,如此处的面试准备过程。

从 Workflow 并行中获益

通过以上四种主要的并行处理方式(简单并行、嵌套并行、迭代中并行和条件并行),显著提升了 Dify Workflow 的性能和功能,支持多模型协作,优化复杂流程,动态调整执行路径。这些改进不仅提高了处理效率,还扩展了应用范围,使其能够更好地应对复杂业务场景,你可以在探索页面的对应模板中快速体验这些新功能。
未来,Dify 将继续优化 Workflow 的功能,进一步拓展其应用领域,用户提供更强大、灵活的自动化解决方案!


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询