LLM应用:Prompt flow vs LangChain

news2024/11/27 22:34:21

背景

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更像是实战派,通过在实战中总结经验,通过第一性原理,找到本质的地方,然后对齐抽象和封装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560676.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文了解JAVA的常用API

目录 常用kpimathSystemRuntimeObjectObjectsBigIntegerBigDecima正则表达式包装类 常用kpi 学习目的: 了解类名和类的作用养成查阅api文档的习惯 math 工具类。因为是工具类,因此直接通过类名.方法名(形参)即可直接调用 abs:获取参数绝对…

Docker容器与Serverless的融合:探索《2023腾讯云容器和函数计算技术实践精选集》中的云原生创新案例

Docker容器与Serverless的融合:探索《2023腾讯云容器和函数计算技术实践精选集》中的云原生创新案例 文章目录 Docker容器与Serverless的融合:探索《2023腾讯云容器和函数计算技术实践精选集》中的云原生创新案例一、引言二、《2023腾讯云容器和函数计算…

recover 的使用

一旦mayPanic触发了panic,控制流会跳到defer函数中,尝试执行recover。 如果recover捕获到了panic,它会阻止panic继续传播,程序控制流会继续在safeCall函数的defer函数之后进行。 然而,由于panic导致的提前返回&#xf…

Linux---多线程(下)

前情提要:Linux---多线程(上) 七、互斥 临界资源:多线程执行流共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的代码,就叫做临界区互斥:任何时刻,互斥保证有且只有一个执行流进入临…

SuccessFactors-cpi-SAP 错误重复机制

系统做复杂的模型不是全量传输,最复杂的是增量模型,增量模型的设计完善,程序的复杂度几何倍增长,今天就讨论下SuccessFactor与HCM集成的增量原理。 首先我们看看同步步骤,见下图 同步过程中有多次数据交互,…

时序预测 | Python实现VMD-CNN-LSTM时间序列预测

时序预测 | Python实现VMD-CNN-LSTM时间序列预测 目录 时序预测 | Python实现VMD-CNN-LSTM时间序列预测预测效果基本介绍模型描述代码设计预测效果 基本介绍 VMD-CNN-LSTM 是一种混合深度学习模型,结合了变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)的…

探索创新前沿,ATFX出席CriptoSummit峰会,共商数字资产市场生态构建

发现、连接并转变您的数字金融愿景。3月20日,以数字资产生态构建和多元化配置为主题的CriptoSummit峰会在智利首都圣地亚哥盛大召开。大会汇聚了智利和拉丁美洲的领导人、学术专家和数字资产爱好者,历时8小时的深度对话与交流,不仅吸引了500余…

Sublime Text4 4169 安装激活【亲测可用】

此教程用于Windows 下Sublime Text4 4169版本的安装和激活。 无需安装其他软件,无需下载替换文件,无需注册机等。 官网: https://www.sublimetext.com 下载地址 64位:https://download.sublimetext.com/sublime_text_build_41…

使用Redis集合List实现消息队列

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型…

人体姿态识别项目 | 在EdgeTPU平台部署人体姿态识别算法

项目应用场景 面向 EdgeTPU 边缘计算设备平台上部署人体姿态识别算法 项目效果: 项目细节 > 具体参见项目 README.md (1) 安装依赖 sh install_requirements.sh (2) 执行图片检测示例 python3 simple_pose.py (3) 执行视频检测示例 python3 pose_camera.py# …

与鲸同行,智领未来!和鲸科技“人工智能+X”学科建设合作交流会(北京站)圆满结束!

在国家加快发展新质生产力的大背景下,3月25日下午,和鲸科技 2024 年“人工智能X”学科建设合作交流会(北京站)暨“AIX”实验室建设与供应商选型座谈会顺利召开。为提供更为集中和专业的讨论环境,本次会议特别采取闭门审…

JUC:java内存模型(如何保证?可见性、原子性、有序性)

文章目录 java内存模型可见性解决方法 原子性有序性流水线技术 模式之Balking(犹豫) java内存模型 JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等。 JMM 体现在以下几个方面 &#x…

从0到1:兼职招聘小程序开发笔记(一)

可行性分析 兼职招聘小程序:为雇主和求职者提供便利的平台,旨在帮助雇主招聘兼职员工,并让求职者寻找合适的兼职工作。提供简单、快捷的方式来匹配兼职岗位和候选人,节省了招聘和求职的时间和精力。其主要功能模块包括&#xff1…

C语言数据结构易错知识点(6)(快速排序、归并排序、计数排序)

快速排序属于交换排序,交换排序还有冒泡排序,这个太简单了,这里就不再讲解。 归并排序和快速排序都是采用分治法实现的排序,理解它们对分支思想的感悟会更深。 计数排序属于非比较排序,在数据集中的情况下可以考虑使…

详细分析Mysql中的STR_TO_DATE基本知识(全)

目录 前言1. 基本知识2. Demo3. 实战Demo4. Sql彩蛋4.1 LPAD函数4.2 SUBSTRING_INDEX函数 5. Java彩蛋 前言 对于该知识点,主要因为数据库类型为String(类似2024-03-26),放置于后端操作后,需要自定义比较,…

LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程

LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程 准备 1、下载 下载LLaMA-Factory下载ChatGLM3-6B下载ChatGLM3windows下载CUDA ToolKit 12.1 (本人是在windows进行训练的,显卡GTX 1660 Ti) CUDA安装完毕后&#xff0c…

HCIP---MGRE和GRE实验

一、配置ip R1: [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [R1-GigabitEthernet0/0/0]int s4/0/0 [R1-Serial4/0/0]ip add 15.1.1.1 24 [R1]ip route-static 0.0.0.0 0 15.1.1.5 R2: [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.2.2…

GROBID库文献解析

1. 起因 由于某些原因需要在大量的文献中查找相关内容,手动实在是太慢了,所以选择了GROBID库进行文献批量解析 2. GROBID介绍 GROBID是一个机器学习库,用于将PDF等原始文档提取、解析和re-structuring为结构化的XML/TEI编码文档&#xff0…

C++第十四弹---模板初阶

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、泛型编程 2、函数模板 2.1、函数模板的概念 2.2、函数模板的格式 2.3、函数模板的原理 2.4、函数模板的实例化 2.5、模板参数的匹配原则 …

【学习】如何成为资深的软件测试工程师“大神”?

一个优秀的软件测试工程师不仅需要有深厚的技术知识和经验,还需要有良好的沟通能力、分析能力和问题解决能力。总的来说,一个"大神"一样的软件测试工程师应该是一个全面的技术专家,同时还需要有出色的沟通和问题解决能力&#xff0…