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

AI Agent Runtime 架构演进:从上下文溢出到事件驱动的会话治理 AI Agent 运行时(Runtime)是大模型应用落地的核心基础设施,其本质是解决 LLM 的不可靠性、上下文限制与状态管理难题。原理上,现代 Runtime 通过三层解耦——事件日志化的 Session 层、无状态的 Harness 执行器、凭证隔离的 Sandbox 沙箱——实现可审计、可恢复、可合规的长周期交互。技术价值在于将隐式崩溃(如 context overflow)转化为显式可控的工程行为,支撑金融、销售等高敏场景稳定运行。典型应用场景包括跨系统自动化工作流、合规敏感的客户交互、需司法存证 阅读详情

图片

本文字数: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

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

CommandNotFoundError : No command ‘conda rename‘解决方案 本文主要介绍了CommandNotFoundError : No command 'conda rename’解决方案,希望能对使用conda的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 阅读详情

相关推荐

微腔光频梳仿真入门:MATLAB求解LLE方程全流程解析

光学频率梳在精密测量、光通信和微波光子学中有着广阔应用,而微环谐振腔中的Kerr非线性与四波混频效应能够紧凑地产生宽带梳齿。仿真这类系统的核心是求解Lugiato-Lefever方程(LLE),但直接从物理参数到数值代码往往让初学者无从下手。本文从微腔光频梳的物理图像出发,介绍LLE方程的推导与归一化方法,并重点讲解MATLAB数值实现的两种思路:基于ode45的频域耦合方程组求解与分裂步长RK4IP方法。同时讨论失谐扫描、孤子态识别、参数稳定性边界,以及如何将真实器件参数换算为无量纲仿真参数。无论你是刚接

weixin_32325225的博客 291

【LangChain】SQL

您还可以自定义所使用的prompt。这是一个prompt示例:它理解foobar与Employee表是相同的;

山鬼谣的专栏 1万+

Cadence数模混合仿真实战:从Verilog到ADE L的完整流程解析

本文详细解析了Cadence数模混合仿真的完整流程,从Verilog代码编写到ADE L仿真环境配置。通过实战案例讲解如何创建Config文件、搭建混合信号原理图,并分享提高仿真效率的技巧和常见问题排查方法,帮助工程师掌握这一关键芯片设计验证技术。

weixin_29246195的博客 986

Langfuse 与 ClickHouse:面向现代大语言模型(LLM)应用的新一代数据栈

ClickHouse 已经成为 Langfuse 架构的中枢,让平台能够伴随社区一起成长。

ClickHouseDB的博客 1228

避坑指南:ros2_control在Gazebo中的常见配置错误及解决方案

本文系统梳理了在Gazebo仿真环境中配置ros2_control框架时最常见的错误,并提供了详细的解决方案。重点解析了YAML配置文件的结构陷阱、URDF/XACRO中关键标签的正确写法、Launch文件的启动顺序管理,并分享了实用的调试命令与故障排查思路,帮助开发者高效避坑,实现流畅的关节运动控制。

q5r6s7的博客 970

Codex驱动AEDT完成无线充电仿真——从双线圈建模到三维电磁场动画

本文介绍了一个利用Codex、PyAEDT和Ansys Electronics Desktop 2025 R2实现双线圈无线充电系统自动建模与仿真的案例。通过简化模型(平面线圈+铁氧体磁芯),完成了从参数化建模、电磁场求解到后处理的全流程自动化,获得了耦合系数(k=0.17)、三维电磁场分布及多周期动态可视化效果。研究发现:线圈间距对传输效率影响最大(10-30mm间距时效率从40.2%降至5.57%),横向偏移15mm会使效率下降35%,而磁芯厚度增加带来的效率提升有限(3→7mm仅提高1.67%)。该框

sjjsjjsjjsjjsjj的博客 445

使用Langchain构建简单的数据库Agent

这篇文章我们介绍一个使用LangChain实现SQLagent的方法,LangChain直接内置了自己的SQLagent实现-—SQLDatabaseChain。这个方法使用 SQL Alchemy 与数据库交互。感兴趣的可以考虑一下这两个方案是否可以融合,这样保证SQL的准确性从而提升最终结果的准确率。下面将介绍今天主要内容的实现步骤:实现步骤首先,我们得有一个数据库。这里我们用的是ClickHouse,一个开源的、面向列的SQL数据库管理系统,特别适合大数据分析。安装起来超级简单,一行命令就搞定。

m0_59235245的博客 1579

软考「系统规划与管理师(第2版)」抱佛脚|案例分析预测

规划类(系统/数据/云)+ 服务过程找错改进 + 风险应急终止三大块各备一套成熟模板,术语统一按第2版新教材口径,案例分析 45 分线的希望就大很多。

软件行业技术文化交流。 71

使用LangSmith来快速学习LangChain

用LangChain来完成大语言模型的应用原型/代理很简单,但是,要交付实际的大语言应用异常困难:可能要大量定制、迭代Prompt、链和其他组件。LangSmith可以帮你快速调试链、代理或者一组工具,可视化各种组件(链、llms、检索器retrievers等)如何交互及使用,评估不同的Prompts等等。

火烧径-make life easier 5615

21天学会基于 Linux 的 NPU 固件开发--12.3 如何参与 Linux 内核 NPU 子系统开发

从修复一个简单的文档拼写错误开始,或者为现有的开源 NPU 驱动(如 Sophgo, StarFive, Etinix 等厂商已上游化的驱动)添加一个缺失的 IOCTL 支持或优化一个算子,都是伟大的第一步。在 2026 年的 Linux Kernel (v6.12+) 中,NPU 驱动不再是孤立的字符设备,而是深度集成在 DRM 和 DMA-BUF 生态中,实现了与 GPU 类似的资源管理和调度能力。内核驱动必须提供清晰的 UAPI (User API),通常定义在。Step 4: 合并 (Merge)

amy_mhd的博客 66

基于双目视觉的行车中障碍距离检测方法研究与目标跟踪

本文将介绍基于Python语言的双目视觉技术,以及如何使用该技术检测行车中的障碍物并跟踪目标。双目视觉利用两个摄像头模拟人眼的立体视觉,通过对两个摄像头所捕捉的图像进行比较和分析,可以得到物体的深度信息。首先,我们需要安装Python的OpenCV库,该库提供了丰富的图像处理和计算机视觉功能。接下来,我们进入一个循环中,不断读取左右图像,并将其转换为灰度图像。在视差图上,您可以实现目标检测和跟踪算法来识别和跟踪行车中的障碍物。请注意,上述代码只是一个简单示例,您可以根据具体需求和算法进行修改和扩展。

ZgnObjectivec的博客 276

Claude Managed Agents:面向生产的AI Agent运行时基础设施

AI Agent运行时(Runtime)是支撑长周期、高可靠、可审计智能体执行的核心层,其本质是解耦状态管理、执行调度与安全隔离。随着上下文窗口瓶颈凸显和企业级SLA要求升级,传统基于LLM内存的状态维护模式已不可持续,Session-as-Event-Log、无状态Harness与按需沙箱正成为新一代Agent基础设施的标准范式。该架构显著提升故障回溯能力、弹性伸缩性与凭证安全性,广泛应用于金融风控、客户支持、代码协作等对数据一致性与合规性敏感的生产场景。Claude Managed Agents正是这一

weixin_34087307的博客 384

【MATLAB例程】基于TDOA定位(两步最小二乘)的三维轨迹定位和UKF滤波,TDOA的锚点可以自适应,附完整代码

该代码实现了一种**融合TDOA(到达时间差)定位与无迹卡尔曼滤波(UKF)**的动态目标轨迹跟踪方案,适用于三维空间中的移动目标定位与滤波。TDOA定位:通过两步加权最小二乘法(TS-WLS)解算目标位置。UKF滤波:对定位结果进行非线性滤波,抑制噪声并提升轨迹平滑性。多维度误差分析:对比滤波前后误差,评估算法性能。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 675

Langfuse数据存储:PostgreSQL与ClickHouse架构

在现代LLM应用的可观测性平台中,数据存储面临着巨大的挑战。Langfuse作为开源LLM工程平台,每天需要处理海量的追踪数据、评估结果和用户会话信息。传统的单一数据库架构无法同时满足**事务一致性**和**分析查询性能**的双重需求。 这就是Langfuse采用PostgreSQL与ClickHouse双数据库架构的根本原因。PostgreSQL负责处理事务性操作和关系型数据,而ClickHo...

gitblog_00942的博客 1581

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Langfuse ClickHouse引擎:5分钟掌握LLM应用观测数据处理

你是否正面临LLM应用观测数据爆炸式增长的困扰?日志查询缓慢、分析报表加载超时、存储成本居高不下?本文将带你5分钟快速掌握Langfuse如何利用ClickHouse构建高性能数据分析引擎,轻松应对百万级LLM交互数据的实时处理需求。读完本文你将获得:ClickHouse数据模型设计要点、批量写入优化技巧、分布式集群配置指南三大核心能力。 ## ClickHouse在Langfuse中的架构定位...

gitblog_00136的博客 1316

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Langfuse-GitHub 上星标最多的开源 LLMOps 工具

Langfuse是一款开源LLM工程平台,专注于AI应用全生命周期管理,包括开发、监控、评估和调试。其核心优势在于轻量化部署(几分钟内完成自托管)和实战可靠性,已在大量实际场景中验证。平台提供三大核心功能:可观测性(Trace/Session/User三级追踪)、提示词管理(版本控制/动态拉取)和自动化评估(LLM-as-a-Referee评分)。技术栈采用NextJS14前端+PostgreSQL/ClickHouse双数据库架构,支持JS/Python/Java等多语言SDK。

wend的博客 2698

如何执行混合查询?

我们还可以将远程查询的数据与本地ClickHouse中的数据进行连接(join),当与ClickHouse Local一起使用时,我们可以实现一种混合查询。直到最近几个月,我才被这样几个工具改变了我的理解:ClickHouse Local,它允许我们通过CLI运行ClickHouse前端的进程内版本,以及chDB,一个由ClickHouse驱动的嵌入式SQL OLAP引擎。我先编写了一个小Python脚本,从GitHub API下载尽可能多的项目的数据,将每个项目存储在自己的机器上的一个JSON文件中。

ClickHouseDB的博客 968

本地部署 LangFuse - 修改默认端口

本地部署 LangFuse - 修改默认端口

engchina的专栏 1427

Langfuse 的 ClickHouse 写入调优:用 async_insert 应对高频小批量写入

Langfuse 是一个开源的 AI 工程平台(LLM 可观测性、评估、指标、Prompt 管理、数据集),其核心事件数据存储在 ClickHouse 中。本文基于 Langfuse 仓库内 ClickHouse 最佳实践规则集(`clickhouse-best-practices` skill)中的 `insert-async-small-batches` 规则展开,讲清"当客户端无法自行攒批时

gitblog_00106的博客 340

用ClickHouse创建高效的矢量存储解决方案

ClickHouse为实时应用提供了高效的矢量存储解决方案。这篇文章简要介绍了设置、管理和查询矢量存储的方法。ClickHouse文档Langchain API参考。

ppoojjj的博客 518

LangChain 与 LangSmith:构建与微调支持LLM的智能应用双重攻略

随着人工智能领域的不断发展,自然语言处理 (NLP) 技术也在不断进步。近年来,革命性的大型语言模型 (LLM) 已经成为了 NLP 技术的重要组成部分。作为一种可以理解并生成类似人类的文本的技术,LLM 已经在机器翻译、情感分析、聊天机器人和内容生成等任务中发挥了重要作用。在这个以语言为桥梁的世界中,LLM 的应用前景无限,而 LangChain 创新平台则是充分利用 LLM 潜力的重要手段。在本文中,我们将探索 LLM 的奇迹,并介绍如何使用 LangChain 构建 LLM 支持的应用程序。

FrenzyTechAI的博客 9190

Mac本地部署大模型体验AIGC能力

仅基于Transformer解码器的大模型(图中的蓝色部分),例如,OpenAI的GPT系列、Meta的LLaMa、Google的PaLM等;仅基于Transformer编码器的大模型(图中的粉丝部分),例如,Google的BERT、Meta的RoBERTa等;同时基于Transformer编码器和解码器的大模型(图中的绿色部分),例如,Meta的BART、Google的T5、清华大学的GLM/ChatGLM等。

m0_63171455的博客 1950

2024年精选推荐的16个向量数据库:提升你的AI应用性能

随着人工智能技术的不断进步,向量数据库在现代数据管理和机器学习应用中扮演着越来越重要的角色。它们提供了处理和检索高维向量数据的能力,这对于构建高效的AI模型和搜索引擎至关重要。上述探讨了16个2024年最值得关注的向量数据库,这些数据库在性能、可扩展性、易用性和特定应用场景的支持方面各有特色。无论是在寻找一个托管的解决方案还是一个可以自托管的开源项目,无论需求是处理图像、文本还是其他类型的数据,这些向量数据库都能提供支持。

BASK2312的博客 1万+

【LLM大模型】LangChain框架:Hub和LangSmith入门

最开始的`LangChainHub`,类似于github一样,可以理解为`LangChain` 工具包 或者说 组件中心,里面提供了高质量的组件方便开发者使用。确确实实是一个分享和探索Prompt、链 和Agent的地方。

瓦罗兰特顶级C位的博客 3842
上一篇: 100%降本增效!Bonree ONE平台通过ClickHouse实现了可观测信号数据的统一!
下一篇: 从ES到ClickHouse,Bonree ONE平台更轻更快!
ClickHouseDB
博客等级 码龄3年 1707粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值