LLM应用:Prompt flow vs LangChain

发布于:2024-03-29 ⋅ 阅读:(21) ⋅ 点赞:(0)

背景

Prompt flow和LangChain都是LLM时代,为高效地构建LLM应用而生。

Prompt flow是Microsoft开源的,其诞生时,LangChain已经很有名气了。

所以作为后生的Prompt flow会为我们带来哪些新的东西呢?

​​​​​​​

Prompt flow带来新的设计理念

概述:

Prompt flow提供了一套开发工具,并通过实验来构建高质量的LLM应用程序,而不是一套框架(LangChain)。

可见其重点是聚焦在LLM应用程序的效果(质量)。

而这正是因LLM的不确定的特点所引发的新的思考方式。

所有用到的Prompt都要显示出来

当前的LLM应用,最重要的一个特点是围绕“prompt”提示词。

任何为了构建LLM应用而提供的工具or框架,都应该优先专注于prompt设计以及prompt的调优。

Prompt特点

Prompt的特点是不稳定(不确定)。

同一套Prompt在不同的LLM里,其效果是不一样的。

甚至是对于同一个LLM的不同版本,其效果也是无法保证一致的。

Prompt显示

所以在实际构建LLM应用时,任何用到Prompt的地方,都要能方便的调优。

由此可以推导出,在实际构建LLM应用时,任何用到Prompt的地方都需要显示出来,可以被修改,可以被调优。

而那些将Prompt隐藏在框架里的方式,很大概率会导致LLM应用的效果不一致,这时候就只能去修改框架了。

以效果评估为中心的工作方式

因Prompt的不稳定性,所以在LLM应用构建时,需要重点关注效果。

类似算法的常见评估指标:准确率、召回率等。

LLM应用的质量(效果)也需要一套评估标准。

Prompt flow为评估任务提供了很多的工具:

  1. 将评估程序转化为评估流
  2. 基于SDK/CLI的实验及评估管理(会记录每次评估的过程)
  3. 可将评估集成到CICD中

增强可视化

LLM应用中使用到的ReAct、RAG等模式,本身并不是新发明的。

其更多的是表达与外部系统的交互,例如与Search Engine的交互,与知识库的交互,与本地数据的交互等。

交互可以认为就是API调用。

在LLM应用构建以效果评估为中心时,我们需要明确的知道每一个交互步骤具体是怎么样的,每一个步骤的效果如何。

因此交互步骤级别的可视化就很有必要,可极大的提升研发和评估效率。

以上便是Prompt flow和LangChain的区别。

显而易见,更多的是理念上区别。

Prompt flow更像是实战派,通过在实战中总结经验,通过第一性原理,找到本质的地方,然后对齐抽象和封装。

本文含有隐藏内容,请 开通VIP 后查看