LangChain - 为何我们选择 ClickHouse 作为 LangSmith 的动力

news2024/11/17 17:33:57

图片

本文字数:4742;估计阅读时间:12 分钟

作者:Ankush Gola

审校:庄晓东(魏庄)

本文在公众号【ClickHouseInc】首发

图片

“我们在使用 ClickHouse 方面有着良好的经历。它使我们能够将 LangSmith 扩展到生产环境,并提供一个用户可以记录所有数据的服务。如果没有 ClickHouse,我们无法取得这样的成就。”

LangChain 的联合创始人 Ankush Gola

简介

我们越来越多地看到公司使用 ClickHouse 构建可观测性解决方案,因为它能够处理高负荷的数据插入,并满足在这种用例中经常遇到的低延迟分析查询需求。更令人振奋的是,我们看到了一些创新的领域特定解决方案,它们有可能开启一个新的范式,并提高开发者的生产力水平。LangChain 就开发了这样一种解决方案,名为 LangSmith,它是一个统一的开发者平台,用于支持 LLM 应用的观察和评估。LangSmith 涵盖了 AI 产品开发生命周期的各个阶段,并利用 ClickHouse 提供了关键的用户体验。

最近宣布 LangSmith 已普遍可用,我们有幸采访了 LangChain 的联合创始人 Ankush Gola,他向我们解释了 LangSmith 对 LLM 应用开发人员的价值,以及为何选择 ClickHouse 作为支持用户体验的数据库,以及选择 ClickHouse Cloud 作为他们托管服务的后端服务。

LangSmith 解决了哪些问题?

LangSmith 主要解决了用户在开发 LLM(大语言模型)应用时面临的两个主要挑战:可观测性和评估。

可观测性

在处理 LLM 应用时,通常会涉及许多组件,包括链式 API 调用和决策流程。这使得理解底层发生的情况变得具有挑战性,用户需要调试无限的代理循环或存在过度使用 Token 的情况。鉴于这里存在明显的需求,LangSmith 最初作为一个可观测性工具,旨在通过在 LLM 序列的每一步提供清晰的可见性和调试信息,帮助开发人员诊断和解决这些问题。

图片

检查由 ClickHouse 驱动的 LLM 应用运行的跟踪

来源:LangChain

评估

很明显,在开发 LLM(大语言模型)应用时,用户必须执行更广泛的其他任务,这些任务属于评估范畴。这些任务包括衡量对提示和模型的更改的影响,构建用于基准测试和微调的数据集,执行 A/B 测试和在线评估。因此,LangSmith 从一个可观测性工具演变为一个更广泛的全能开发者平台,涵盖了 LLM 应用生命周期的每个步骤。

图片

并排查看测试运行 - 由 ClickHouse 提供支持

来源:LangChain

LangSmith 与现有工具有何不同?

Ankush 解释说,构建 LLM(大语言模型)应用导致了一个非常独特的新开发生命周期,并需要其专用的工具包。虽然有许多工具适用于更广泛的可观测性用例,但 LLM 应用有其独特的挑战,需要专门为用户处理数据的方式而设计的工作流程。LangSmith 通过识别 LLM 应用开发周期中的常见步骤,并提供工具来克服通常相关的挑战,提供了这种专注的体验。

图片

LangSmith 在 LLM(大语言模型)应用生命周期的每个阶段支持的工作流程

来源:LangChain

在选择用于支持 LangSmith 的数据库时,您有哪些要求?

当 LangChain 首次推出 LangSmith 时,他们完全依赖于 Postgres。这是最快的方式来启动应用并让用户尝试。同时,他们也无法确定用户会如何使用该应用,因此无法确定工作负载——例如,他们是否只会将其用作评估 LLM 工作流程的工具,从而记录稀疏的数据?

他们很快意识到,用户想要记录生产数据的大部分内容,以执行特定操作,如跟踪和创建数据集、运行评估作业、进行 A/B 测试和监视性能。这意味着需要支持高吞吐量的摄入,并且需要快速过滤以便在用户界面的图表上进行细化。例如,用户可以在跟踪关键指标随时间变化的监视图上进行过滤。在这一点上,LangChain 团队意识到,Postgres 越来越难以满足他们的要求。

图片

查看监控图表并按 LLM 类型分组 - 由 ClickHouse 提供支持

致谢:LangChain

您在使用 Postgres 时面临的挑战是什么?

Postgres 在最初启动应用时表现良好,但随着 LangChain 的规模扩大,他们遇到了其处理生产所需数据量的能力挑战。此外,它在处理他们需要支持的分析工作负载时效率不高。他们尝试提前物化统计数据,但这通常不能为用户提供最佳体验,因为用户只能按照预定义的物化方式对数据进行切片。这些物化作业定期运行,并且在所需的数据量上也消耗了大量计算资源。随着对 Postgres 的请求数量增加,锁竞争问题也变得日益严重。

“最终,我们清楚地意识到,需要添加另一个数据库来补充 Postgres,以适应我们的用例,并为我们的用户实时洞察力。”

LangChain 的联合创始人 Ankush Gola

是什么特别引导您选择了 ClickHouse?

“在使用 Postgres 的过程中,我们发现我们需要具备高吞吐量摄入能力,并且需要从向用户呈现的图表和统计数据中进行低延迟的分析查询。这自然而然地使我们相信我们需要一种 OLAP/实时分析数据库。”

LangChain 的联合创始人 Ankush Gola

图片

LangChain 还发现需要在开发和 CI/CD 中本地运行所选数据库,并在自管理架构和云解决方案中部署它。前两个需求排除了许多传统的封闭云解决方案,而不可避免地推向了开源解决方案。

“我们希望选择一种在架构上简单易部署,不会使我们的基础设施更加复杂的解决方案。我们考虑了 Druid 和 Pinot,但这些解决方案需要专门的摄入服务,连接到队列服务(例如 Kafka),而不是简单地接受 INSERT 语句。考虑到我们的自管理需求,我们特别希望避免这种架构复杂性。”

LangChain 的联合创始人 Ankush Gola

一些简单的测试显示,ClickHouse 能够满足他们的性能要求,同时在架构上简单,与所有部署模型兼容。所有这些要求最终导致 LangChain 最终选择了 ClickHouse。

你是怎么了解到 ClickHouse 的呢?

“当你深耕于数据库领域时,你几乎无法不听说过 ClickHouse!”

LangChain 的联合创始人 Ankush Gola

Ankush 知道像 Cloudflare 这样的公司正在使用 ClickHouse 来支持大规模的高吞吐量工作负载。

在使用 ClickHouse 时,LangChain 遇到了哪些挑战呢?

Ankush 特别强调,用户在使用 ClickHouse 时不应该将其视为其他数据库系统(如 Postgres)或数据仓库解决方案(如 BigQuery)。尽管 ClickHouse 是一款功能强大且灵活的工具,但用户应该关注排序键和引擎的选择。

LangChain 的重要配置是确保他们正确理解并正确利用排序键,使 ClickHouse 能够优化数据的所有查询方式。由于他们需要支持定期更新,因此他们使用了 ReplacingMergeTree 引擎。

Ankush 发现,与 Postgres 相比,ClickHouse 的查询规划能力并不那么高级,用户需要深入了解内部机制和查询执行才能优化查询。他建议用户熟悉 EXPLAIN Api,这是了解查询执行方式的重要工具。LangChain 期待新的分析器能够满足许多手动优化查询的需求。

对于新的 ClickHouse 用户,有什么建议吗?

虽然 LangSmith 的界面主要由图表和统计数据组成,但它也收集并展示大量的跟踪数据。LangSmith 的用户希望能够直观地查看单个跟踪及其所有细分。因此,底层数据存储也需要具备逐行查询的能力。具体而言,常见的工作流程包括通过排序键中的维度进行跟踪筛选,例如按照用户反馈评分、特定租户和会话进行筛选。一旦确定了感兴趣的跟踪子集,用户就可以使用详细的跟踪视图深入了解其中的问题点。

图片

从 ChatLangChain 记录跟踪和反馈评分,然后在 LangSmith 中查看结果。

来源:LangChain

这最后一步需要根据跟踪 ID 进行查找,而跟踪 ID 并不是排序键的一部分(至少不是在前几个位置)。在这种情况下,查找通常需要对整个表进行扫描,这并不高效。

为了避免这种情况,LangChain 使用了一种材料化视图的方法,其中目标表包括跟踪 ID 和运行 ID 作为排序键的一部分。这些表中存储的行具有列,这些列是主表的排序键。这使得 LangChain 几乎可以将这些视图视为反向索引,根据跟踪 ID 或运行 ID 查找主表的排序键值。然后,对主表的最终查询包括一个过滤器,可以用于最小化扫描的行数。

LangChain 已确定的方法最好通过以下示例来说明:

图片

这种方法使 LangChain 能够高效地处理单个行的查找,并且比使用次要索引和布隆过滤器更易于设置。

LangChain 在这里采用的方法与 Open Telemetry ClickHouse 集成中所采用的相同,可以实现高效的跟踪查找。

对于 LangSmith 的云服务提供方而言,选择 ClickHouse Cloud 而不是自行管理的关键考虑因素是什么?

“我们不想自己管理 ClickHouse 集群。能够在我们选择的 GCP 区域轻松启动一个云服务,在成本方面是一个毫无疑问的选择。”

Ankush Gola,LangChain 的联合创始人

除了 ClickHouse,您的架构中还有哪些关键组件?

LangChain 还在使用 Postgres 来管理一些应用程序状态。这与 ClickHouse 很好地相辅相成,因为他们需要对应用程序的某些部分进行事务处理。

Redis 在 LangSmith 中被广泛用作缓存,并支持异步作业队列。

随着团队尝试涉及图像的多模型,云对象存储变得越来越重要,成为这些模型的主要存储介质。

您对 ClickHouse Cloud 未来的期待有哪些?

Ankush 表示,他特别期待倒排索引在生产环境中的可用性(目前还在实验阶段),以实现更快速的全文搜索功能。目前,LangChain 使用数据跳跃索引加速文本搜索,但他们认为这方面还有改进的空间。

LangSmith + ClickHouse 未来的计划是什么?

当我们最初采访 Ankush 时,他解释说他们正在努力改进几个产品方面,包括:

  • 改进对回归测试的支持,允许用户提交更改,例如他们的提示、代码或模型,然后跟踪他们感兴趣的指标。

    这样用户就可以根据评分标准,例如重复性和简洁性,对应用程序在真实场景中的表现有更直观的了解。

  • 引入在生产数据样本上运行自动评估器并检查响应的能力。

  • 目前显示跟踪的方式并不能很好地展示 LLM 与用户之间的聊天历史。

    虽然数据已经存在,但他们意识到在视觉呈现上还有改进的空间。

几周后,这些功能已经发布并可用!🚀🤯

所有这些功能都依赖于 ClickHouse 进行分析查询。此外,虽然不是新功能,但 LangChain 最近改进了用户的过滤选项,尤其是全文搜索。最后,随着他们的企业客户群体的增长,他们预计需要支持诸如 RBAC 和 SSO 等功能,这将需要与 ClickHouse 进行更紧密的集成。

征稿启示

面向社区长期正文,文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出&图文并茂。质量合格的文章将会发布在本公众号,优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至:Tracy.Wang@clickhouse.com

​​联系我们

手机号:13910395701

邮箱:Tracy.Wang@clickhouse.com

满足您所有的在线分析列式数据库管理需求

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

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

相关文章

centos7.9用docker运行一个nginx容器

首先你的linux 系统里面已经安装好了docker,docker的安装教程看这个 1,下载nginx镜像 有很多文章会把镜像下载说成是拉取镜像, 我觉得就是下载的意思啊,搞不懂为什么要说拉取? docker pull nginx 下载最新版 Nginx …

PostgreSQL基础(二):PostgreSQL的安装与配置

文章目录 PostgreSQL的安装与配置 一、PostgreSQL的安装 二、PostgreSQL的配置 1、远程连接配置

Springboot+Vue项目-基于Java+MySQL的酒店管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

知识分享:大数据信用花导致的评分不足多久能恢复

随着金融风控领域越来越科技化,基于大数据技术的金融风控成为了贷前风控不可或缺的重要环节,相信很多人在申贷的时候都听说过大数据信用和综合评分等词语,那大数据信用花导致的评分不足多久能恢复呢?本文带大家一起去了解一下。 首先&#x…

公认最好用的随身wifi品牌推荐!欧本VS闪鱼VS格行随身wifi哪款更好用?欧本随身wifi靠谱吗?

最近小编后台私信快被问爆了,都想让测评一下自己相中的随身wifi到底行不行。该说不说随身wifi品牌真是越来越多了,今天就挑选咨询量最多的三款:格行,欧本,闪鱼!咱们各方面都实测一下,看看哪款更…

WORD、PPT技巧

WORD技巧 编辑设置 word标题导航窗口怎么调出word2016,缩小了页面,可是怎么是竖着的一页一页排列啊?以前不是好几页横排着的么?怎么设置,求救:在Word标题栏那一行找到“视图”,点击“显示比例…

Android Compose 九:常用组件列表 简单使用

遇事不决 先看官方文档 列表和网格 如果不需要任何滚动,通过Column 或 Row可以使用verticalScroll() 使Column滚动 Column(modifier Modifier.verticalScroll(rememberScrollState())) {for (i in 0..50){Text(text "条目>>${i}")}}显示大量列表…

音视频学习规划

文章目录 概述闲聊点 小结 概述 最近在学习音视频,觉得还是要先写个提纲,给自己制定下学习路线及目标。先写下我的个人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒体RTMP,HLS 闲聊点 先说下学习命令行吧,学习命令行是为了…

FreeRTOS任务间通信“IPC”

---------------信号量--------------- 信号量的定义: 操作系统中一种解决问题的机制,可以实现 “共享资源的访问” 信号:起通知作用量:还可以用来表示资源的数量当"量"没有限制时,它就是"计数型信…

pycharm找不到conda可执行文件解决办法

解决办法 1、第一种 按照以下步骤,找到condabin文件下面,conda.bat 文件,把路径给复制下来,粘贴到 Conda 可执行文件,即可。 然后再点击加载环境,我这里是已经汉化了 pycharm ,如何汉化&…

提取 Chrome、Firefox 中储存的用户密码用于凭据发现

操作环境 Chrome 浏览器 Version 125.0.6422.112 (Official Build) (64-bit)Firefox 浏览器 Version 126.0 (64 位) Chrome 浏览器储存密钥原理 新的 Chrome 浏览器储存密码的方案是使用 Chrome 生成的 AES 密钥对用户密码进行加密之后储存在 Sqlite 数据库文件中,A…

c++入门的基础知识

c入门 C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C学习有一定的帮助,本章节主要目标: 补充C语言语法的不足,以及C是如何对C语言设计…

C++ 数据结构算法 学习笔记(32) -五大排序算法

C 数据结构算法 学习笔记(32) -五大排序算法 选择算法 如下若有多个女生的身高需要做排序: 常规思维: 第一步先找出所有候选美女中身高最高的,与最后一个数交换 第二步再找出除最后一位美女外其它美女中的最高者,与倒数第二个美女交换位置 再找出除最…

ASE60P06-ASEMI场效应MOS管ASE60P06

编辑:ll ASE60P06-ASEMI场效应MOS管ASE60P06 型号:ASE60P06 品牌:ASEMI 封装:TO-220 批号:2024 沟道:N沟道 导通内阻RDS(ON)Max:19mΩ 启动电压:2V-4…

【启明智显技术分享】SOM2D02-2GW核心板适配ALSA(适用Sigmastar ssd201/202D)

提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…

【代码随想录】二分查找算法总结篇

目录 前言二分查找例题一例题二例题三例题四 前言 本篇文章记录了代码随想录二分查找算法的总结笔记,下面我们一起来学习吧!! 二分查找 关于二分查找算法,我在之前的这篇博客里面做了非常多的分析,但是后面做题做着…

Leetcode | 5-21| 每日一题

2769. 找出最大的可达成数字 考点: 暴力 数学式子计算 思维 题解 通过式子推导: 第一想法是二分确定区间在区间内进行查找是否符合条件的, 本题最关键的便是 条件确定 , 第二种方法: 一般是通过数学公式推导的,这种题目我称为数学式编程题 代码 条件判断式 class Solution { …

长文处理更高效:一键章节拆分,批量操作轻松搞定,飞速提升工作效率!

在当今信息爆炸的时代,我们时常需要处理大量的文本内容。无论是阅读长篇小说、整理专业资料还是编辑大型文档,TXT文本文件的普遍性不言而喻。然而,当TXT文本内容过于庞大时,阅读、编辑和管理都变得异常繁琐。此时,一款…

齐护K210系列教程(三十一)_视觉小车

视觉小车 齐护编程小车端程序动作说明联系我们 在经常做小车任务项目时会用的K210的视觉与巡线或其它动作结合,这就关系到要将K210的识别结果传送给小车的主控制器,K210为辅助传感器(视觉采集)。 这节课我们用K210识别图像&#x…

多微信如何高效管理?一台电脑就能搞定!

对于有多个微信号的人来说,管理这些微信无疑是一道难题。 今天,就给大家分享一个能够让你高效管理多个微信号的神器——个微管理系统,下面,就一起来看看它都有哪些功能吧! 1、多号同时登录在线 系统支持多个微信号同…