导读:我们可能需要了解一下 LangChain ,这是 Harrison Chase 创建并快速崛起的 LLM 应用程序框架。
LangChain 是一个用于在应用程序中使用大型语言模型 (LLM) 的编程框架。就像生成式 AI 中的所有内容一样,该项目的发展速度快得令人难以置信。
它于 2022 年 10 月开始作为 Python 工具,然后在 2 月添加了TypeScript 支持。到 4 月,它支持多种 JavaScript 环境,包括 Node.js、浏览器、Cloudflare Workers、Vercel/Next.js、Deno 和 Supabase Edge Functions。
那么,开发人员需要了解 LangChain 的哪些方面?实际上是通用的 LLM 方面的知识吗?在这篇文章中,我们将通过分析 LangChain 创始人哈里森·蔡斯 (Harrison Chase) 最近的两场演讲来回答这个问题。
LangChain 最初是一个开源项目,随后在 GitHub 上的星星开始堆积起来,它就迅速发展成为一家初创公司。
哈里森·蔡斯 (Harrison Chase) 于 2017 年还在哈佛大学学习,而现在是硅谷最热门初创公司之一的首席执行官。
本月早些时候,微软首席技术官 Kevin Scott在他的 Build 主题演讲中对 Chase 毫无掩饰的公开称赞。
Chat聊天应用正风靡一时
正如大家所感受的,LangChain 目前的主要用例是在 LLM(尤其是 ChatGPT)之上构建基于聊天的应用程序。
bytes.dev 的 Tyler McGinnis对 LangChain 的评论说,“一个人永远不会有足够的聊天界面。”
在今年早些时候接受 Charles Frye 采访时,Chase 表示,目前最好的用例是“通过文档聊天”。LangChain 提供功能来增强应用程序的聊天体验,例如流式传输——在 LLM 上下文中目前需要逐个返回 LLM 令牌的输出,而不是一次全部返回。
Chase 表示其框架的接口将进一步快速发展。
“从长远来看,用户体验可能让ChatGPT更好,我认为目前最直接的事情是,你可以非常轻松地使用起来,不需要做很多额外的工作。6个月后,你希望成为最好的用户体验吗?但我认为现在就可以构建聊天程序来提供更多价值。”
鉴于使用 LLM 开发应用程序是一件新鲜事,像 LangChain 这样的初创公司们一直在争先恐后地想出工具来帮助解决 LLM 的一些问题。例如,对于提示工程,Chase 表示它仍然主要归结为开发人员的直觉,哪些提示效果更好。但 LangChain 今年推出了“追踪”等功能来帮助实现这一目标。
代理
LangChain 最近的一项功能是“自定义代理”,Chase在 4 月份于旧金山举行的名为 LLM Bootcamp 的活动中提到了这一点。他将代理定义为一种“将语言模型用作推理引擎”的方法,以根据用户输入确定如何与外界交互。
Harrison Chase 在 LLM 训练营
他举了一个与 SQL 数据库交互的例子。
他这样解释说,一般情况下我们有自然语言查询,语言模型会将其转换为 SQL 查询。你可以执行该查询,并将结果传回语言模型,要求它根据原始问题对其进行综合,最后得到“围绕 SQL 数据库的自然语言包装器”。
代理进来的地方是处理 Chase 所谓的“边缘状态”,这可能是 LLM 在上述示例中随时“变幻”其输出的一部分。
“你使用作为代理 LLM 来选择要使用的工具,包括该工具的输入,然后你采取那个行动,得到一个视图,然后把它反馈到语言模型中。然后你可以继续这样做,直到满足停止条件。”
实施的典型代理
一种流行的代理方法称为“ReAct”,当然这与同名 JavaScript 框架无关;这个版本的“ReAct”代表 Reason + Act。按照创始人蔡斯的说法,与其他形式的即时工程相比,这一过程产生了“更高质量、更可靠的结果”。
ReAct 状态图
Chase 承认,代理也“面临很多挑战”,而且“大多数代理目前还没有做好生产准备”。
内存问题
Chase 列出的一些问题看起来特像是基本的计算机概念,但在 LLM 的背景下它们更具挑战性。例如在默认情况下,LLM 是无状态的——这意味着每个传入查询的处理都独立于其它交互。
此处,也是 LangChain 旨在帮助开发人员的一个领域,通过将内存等组件添加到处理 LLM 的过程中。
在 JavaScript 和 TypeScript 中,LangChain 有两个与内存相关的方法:loadMemoryVariables和saveContext。我们根据其开发文档,第一种方法“用于从内存中检索数据(可选地使用当前输入值),第二种方法用于将数据存储在内存中。”
Chase 谈到的另一种形式的代理是Auto-GPT,这是一个允许开发者配置和部署自主 AI 代理的软件程序。
“Auto-GPT 引入的其中一件事是代理和工具交互之间的持久记忆的想法——并为此使用检索工具来矢量化存储,即指的是矢量数据库。
新的 LAMP 技术堆栈
显然,在使用 LLM 构建应用程序时,还有很多事情要做。
在前几天的 Build 主题演讲中,微软将 LangChain 归类为面向开发人员的“Copilot 技术堆栈”中“编排”层的一部分。
在微软的系统中,编排包括提示工程和所谓的“元提示”。
微软也有提供自己的工具,称为Semantic Kernel,它做的事情与 LangChain 类似。
微软还宣布了一个名为 Prompt Flow 的新工具。微软 CTO Kevin Scott 称这是“另一种实际上统一了 LangChain 和语义内核的编排机制”。
同样值得开发者们注意的,是 LangChain 名称中的“链”一词,这表示它可以与其他工具进行互操作,而不仅是各种 LLM,还包括其他开发框架。
就在5 月中旬,Cloudflare 宣布LangChain 支持其 Workers 框架。
LangChain 推出了一个新的首字母缩略词:OPL,分别代表 OpenAI、Pinecone 和 LangChain,它的灵感来自于 LAMP 技术堆栈(Linux、Apache、MySQL、PHP/Perl/Python),它是 1990 年代的关键技术部分,并推动了 Web 2.0 的出现。
当然,还没有知道 OPL 是否会成为一个真正的术语。它的组件目前并不都是开源的。但目前对开发者来说,很好的迹象表明,LangChain 已经成为很多人的个人技术堆栈之重要组成部分。
作者:场长 参考:LangChain
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。