langchain debug调研

前言

Langchain作为市面上一个比较新的sdk,并且是大语言模型开发方向,具体debug方式较少目前只有 verbose配置项、Langsmith和Evaluation评估器这三种,其中Langsmith和Evaluation评估器这两种方式没有完成使用,本次调研只作简单介绍。


一、verbose配置项

Langchain提供了一个verbose 配置项,设置为True时显示一些关键信息,这个配置项在模型、检索器、链、代理等组件中支持,但是模型和检索器的调试依赖于第三方服务的实现,我们主要看在链和代理中如何使用verbose。通过在代理(agent)的参数中将verbose设置为true,用户可以轻松地监控代理的运行过程。

js 复制代码
  const executor = await initializeAgentExecutorWithOptions(tools, model, {

    agentType: "structured-chat-zero-shot-react-description",
    verbose: true,

  })

实时日志打印: 通过将verbose配置设为true,项目的后台将能够实时打印有关代理运行的信息。这意味着用户和开发人员可以在演示过程中密切关注代理的活动,随时了解项目的状态。

运行过程的可视化: 后台日志使项目运行过程可视化,有助于用户更好地理解代理是如何处理用户请求的。这种透明性有助于用户更好地与代理互动,并有可能改进代理的性能。

及时错误反馈: 在代理运行中发生错误时,后台日志也能够即时反馈。这样,用户和开发人员能够立即识别问题并采取纠正措施,确保项目持续高效地运行。

性能监控: 通过监控代理的详细运行信息,用户可以评估项目的性能并进行必要的优化。这有助于确保代理在不断改进中,以满足不断变化的需求。 具体日志呈现方式如下图所示:

二、 Langsmith

通过设置verbose配置项为True,在开发Langchain应用时就能查看执行时的关键信息,但是这些信息是文字形式的,查看起来并不直观,信息量也非常有限,Langchain公司提供的一个用于调试、测试、评估和监控LLM应用程序的统一平台,Langsmith(原名:Langchain-server)支持云托管和本地托管,目前账号只对特定人员邀请开放,还处于封测阶段。

Langsmith介绍

langsmith关注了一个目前大模型的一个投入生产比较棘手的问题,就是大模型prompt的可读性,可调式性以及大模型输出的不稳定干预。目前微软等厂商也提供了guidance,Guardrails等工具库来解决,但集成度不高,有使用门槛。

Debugging

LangSmith 可让您全面了解事件链中每一步的模型输入和输出。这使得团队可以轻松尝试新的链和提示模板,并发现意外结果、错误或延迟问题的来源。我们还将公开延迟和令牌使用情况,这样您就可以确定是哪些调用导致了问题。

Testing

开发过程中要解决的一个主要问题是"如果我更改了这个链/提示,会对我的输出产生什么影响?要回答这个问题,最有效的方法是策划一个你所关心的示例数据集,然后在这个数据集上运行任何更改过的提示/链。首先,LangSmith 可以让开发者轻松地根据轨迹创建这些数据集,或者上传手动策划的数据集。然后,开发者就可以在这些数据集上轻松运行链和提示.

Monitoring

虽然调试、测试和评估可以帮助从原型到生产,但工作并不会在程序开发完成后就停止。开发人员需要积极跟踪性能,并根据反馈优化性能。我们经常看到开发人员依靠 LangSmith 来跟踪应用程序的系统级性能(如延迟和成本)、跟踪模型/链性能(通过将反馈与运行关联起来)、调试问题(深入研究出错的特定运行),并广泛了解用户如何与其应用程序交互以及他们的体验如何。

三、Evaluation评估器

LangChainjs 的最新文档中还有一种Evaluation工具。LangChain 提供各种类型的评估器来帮助衡量不同数据的性能和完整性。每种评估器类型都带有即用型实现和可扩展的 API,允许根据您的独特要求进行自定义。不过目前该工具尚未完善以及需要用到openai去评估性能,本文未能复现该功能。 根据英文文档简单概括工具的组件。

String Evaluators 字符串计算器

字符串评估器是 LangChain 中的一个组件,旨在通过将语言模型生成的输出(预测)与参考字符串或输入进行比较来评估语言模型的性能。这种比较是评估语言模型的关键步骤,可以衡量生成文本的准确性或质量。

在实践中,字符串计算器通常用于根据给定输入(如问题或提示)评估预测字符串。通常,会提供参考标签或上下文字符串来定义正确或理想响应的外观。这些评估器可以定制,以定制评估过程,以满足您应用的特定要求。

在实践中,字符串计算器通常用于根据给定输入(如问题或提示)评估预测字符串。通常,会提供参考标签或上下文字符串来定义正确或理想响应的外观。这些评估器可以定制,以定制评估过程,以满足您应用的特定要求。

Comparison Evaluators 比较评估器

LangChain 中的比较评估器有助于测量两个不同的链或 LLM 输出。这些评估器有助于比较分析,例如两个语言模型之间的 A/B 测试,或比较同一模型的不同版本。它们还可用于生成 AI 辅助强化学习的偏好分数等。

Trajectory Evaluators 轨迹赋值器

LangChain 中的轨迹评估器提供了一种更全面的方法来评估代理。这些评估者评估代理采取的完整行动序列及其相应的响应,称之为"轨迹"。可以更好地衡量代理的有效性和能力。代理可能难以全面评估,因为它们可以采取的行动和生成范围很广。评估代理的一种方法是查看所采取行动的整个轨迹及其响应。评分标准是由openai去执行,这种评分标准是否合理有待考究。

总结

根据本次调研结果,langchain debug方式目前尚不成熟,很多功能才处于起步阶段,因为不同于一般的程序是直接由代码执行,langchain是调用大模型去实现功能。如何去评判大模型在langchain调用令人满意,还需要评价体系的构建,以及langchain流式追踪的技术迭代。才能成熟实现调试langchain。

相关推荐
sthnyph26 分钟前
Spring Framework 中文官方文档
java·后端·spring
zb2006412036 分钟前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
青柠代码录1 小时前
【MySQL】事务:事务的隔离级别
后端
分享牛1 小时前
Operaton入门到精通22-Operaton 2.0 升级指南:Spring Boot 4 核心变更详解
java·spring boot·后端
jinanmichael1 小时前
SpringBoot 如何调用 WebService 接口
java·spring boot·后端
深蓝轨迹1 小时前
吃透 Spring Boot dataSource与Starter
java·spring boot·笔记·后端
spring2997921 小时前
springboot和springframework版本依赖关系
java·spring boot·后端
yuhaiqiang1 小时前
为什么这道初中数学题击溃了所有 AI
前端·后端·面试
面向Google编程1 小时前
从零学习Kafka:副本机制
大数据·后端·kafka
超级大福宝2 小时前
用买火车票的例子讲解Java反射的作用
java·开发语言·后端