2023 年,伴随着 ChatGPT 的横空出世,生成式 AI (Generative AI) 的发展引起了广泛关注。各种规模的公司,从新兴初创到大型企业,都在努力探索适合自己的 GenAI 应用策略。
他们面临的问题包括:
- 如何巧妙地将 GenAI 融合到现有产品中?
- 应该参考哪些成功的架构模式?
- 针对特定需求,哪些 AI 模型最为合适?
- 合适的技术栈选择是什么?
- 如何有效地测试和优化大语言模型 (LLM) 的应用?
在这个充满不确定性的时代,企业们不仅在寻求自身的解答,也渴望了解行业内其他公司的动向。虽然市场上已经有一些初步的探索来阐明这一点,但凭借 LangChain 在整个生态系统中的特殊地位,我们有能力深入揭示各团队如何实际利用大语言模型 (LLM) 来进行创新和构建。
我们通过分析 LangSmith 上的匿名元数据来实现这一目标。LangSmith 是我们专为简化从概念原型到产品实现过程的云平台,它提供了诸如追踪、回归测试、评估等一系列强大功能。目前 LangSmith 还处于私人测试阶段,但我们正逐日向等待名单中的用户开放使用权限。
通过这些数据,我们能够解答这样的问题:人们都在构建些什么?他们是如何构建这些项目的?以及他们如何对这些应用程序进行测试?所有的统计数据均来自于 2023 年 7 月 2 日至 12 月 11 日期间的记录。
探索创新:用户都在构建些什么?
让我们来探索一下最常见的用户构建项目。
LangSmith 虽然与 LangChain 实现了无缝集成,但它也能够轻松适应 LangChain 生态系统之外的应用。有趣的是,大约 15% 的 LangSmith 用户并没有使用 LangChain。为了满足更广泛的用户需求,我们投入了大量工作,致力于改善所有相关组件的使用体验,无论用户是否采用 LangChain。
在结合数据和大语言模型的过程中,检索技术(Retrieval)已成为主流方法。LangChain 提供了与超过 60 种向量存储的集成,这是对非结构化数据进行索引的最常见方式。此外,LangChain 还提供了多种更高级的检索策略。有意思的是,高达 42% 的复杂查询涉及到了检索技术,这不仅凸显了检索的重要性,也显示了 LangChain 在简化检索过程方面的成就。
最后,我们发现大约 17% 的复杂查询涉及到了智能体 (Agent) 的应用。 智能体允许大语言模型自主决定如何操作,从而使系统更有效地处理复杂查询和特殊情况。然而,由于智能体的可靠性和性能仍有待提高,这可能是其应用不如预期普及的原因。
LCEL:助力创新的新工具
在过去几个月中,LangChain 增加了一个引人注目的新功能:LangChain 表达式语言(LangChain Expression Language,简称 LCEL)。LCEL 提供了一种轻松的方式来组合不同的组件,非常适合构建复杂且个性化的解决方案。在这个生成式 AI (GenAI) 探索的初期,每个人都在摸索如何让大语言模型更好地为自己服务。这个过程充满了实验和个性化定制。LCEL 正是为了简化这一过程而设计的 - 随着我们不断增加其功能并优化相关文档,LCEL 的使用在过去几个月里呈现出快速增长的趋势。
大语言模型提供商之争:谁在领跑?
在大语言模型 (LLMs) 这一革命性技术领域,哪些提供商受到了用户的青睐?
毫不意外地,OpenAI 名列榜首,其次是 AzureOpenAI。OpenAI 以其卓越的技术和服务在 2023 年崭露头角,成为大语言模型的领军企业。而 Azure 依托其强大的企业级保障,也紧随其后,成功抓住了市场的脉搏。
在专有模型的托管服务领域,我们看到 Anthropic(排名第三)、Vertex AI(排名第四)和 Amazon Bedrock(排名第八)也各自占据了一席之地。
在开源模型方面,则是 Hugging Face(排名第四)、Fireworks AI(排名第六)和 Ollama(排名第七)成为用户接触这些模型的主要渠道。
值得一提的是,这些排名是根据用户使用特定提供商的数量来确定的。
开源模型的新风潮:谁在引领?
随着开源模型越来越受到关注,众多提供商正争相推出更经济的托管方案。那么,开发者们又是如何接入这些开源模型的呢?
目前,大多数开发者选择在本地运行这些模型,像 Hugging Face、LlamaCpp、Ollama 和 GPT4All 这类工具因其方便性而受到青睐。
在提供开源模型 API 访问服务的提供商中,Fireworks AI 率先崭露头角,紧随其后的则是 Replicate、Together 和 Anyscale。
值得一提的是,这些排名是根据用户选择使用特定提供商的数量来确定的。
向量存储的热门选择:哪些是开发者的首选?
正如我们之前所提到的,检索(retrieval)是大语言模型应用中不可或缺的一部分。向量存储已经成为执行相关上下文检索的首选方法。在 LangChain 的 60 多个向量存储集成中,哪些最受欢迎呢?
数据显示,本地向量存储最为常用,其中 Chroma、FAISS、Qdrant 和 DocArray 均位列前五。这些排名基于用户的使用情况,因此,考虑到本地和免费的向量存储的便利性,它们成为最热门的选择也就不足为奇了。
在托管服务方面,Pinecone 作为前五名中唯一的托管向量存储,遥遥领先。其后是 Weaviate,显示出以向量为核心的数据库目前比添加向量功能的数据库更受欢迎。
至于那些增添了向量功能的数据库, Postgres (PGVector)、Supabase、Neo4j、Redis、Azure Search 和 Astra DB 等均表现出色。
值得一提的是,这些排名是根据使用特定向量存储的用户数量来确定的。
嵌入技术的热门选择:开发者青睐哪些工具?
要有效利用向量存储,首先需要为文本片段计算嵌入。开发者们通常是如何实现这一步骤的呢?
在嵌入技术领域,OpenAI 依旧处于领先地位。但在其之后,我们可以看到更多的多样化选择。开源提供商的受欢迎程度更高,其中 Hugging Face 位居第二,而 GPT4All 和 Ollama 也在前八名内。在托管服务方面,Vertex AI 竟然超过了 AzureOpenAI,Cohere 和 Amazon Bedrock 也紧随其后,显示出这一领域的竞争愈发激烈。
探索先进的检索策略:哪些最受欢迎?
在检索领域,仅依赖嵌入间的余弦相似度远远不够。我们注意到,许多开发者正在依赖更为高级的检索策略,而这些策略大多已在 LangChain 中得到实现和详细记录。
值得一提的是,我们观察到最常用的检索策略并非内置策略,而是自定义策略。这反映了两个方面:
- 在 LangChain 中实现自定义检索策略的便捷性;
- 为了达到最佳性能,开发者需要采用自定义逻辑。
在此基础上,我们还看到了一些更为熟悉的策略名字出现:
- Self Query - 该策略从用户的问题中提取元数据过滤器;
- Hybrid Search - 主要通过特定提供商如 Supabase 和 Pinecone 的集成实现;
- Contextual Compression - 对基本检索结果进行后处理;
- Multi Query - 将单一查询转换为多个查询,并检索所有相关结果;
- TimeWeighted VectorStore - 更偏好近期的文档。
测试与评估:开发者如何克服挑战?
在构建大语言模型应用的过程中,评估和测试已成为开发者面临的一大挑战,而 LangSmith 逐渐成为解决这一问题的优选方案。
我们发现,大部分用户能够为他们的大语言模型应用制定出有效的评估指标 - 有 83% 的测试运行与某种形式的反馈相关联。这些有反馈的测试平均涉及 2.3 种不同类型的反馈,这反映出开发者在寻找单一可靠评估指标上的困难,因此他们倾向于采用多种不同的指标进行综合评估。
在所有记录的反馈中,大部分采用大语言模型来评估输出结果。虽然这种方法引起了一些担忧和犹豫,但我们对其持积极看法,并观察到这已成为实践中的主流测试方法。另一个值得关注的数据是,近 40% 的评估工具为自定义评估器。这与我们的观察相符,即评估通常高度特定于正在开发的应用,而并不存在一个适用于所有情况的标准评估工具。
测试焦点:开发者最关心什么?
从当前的情况来看,大多数开发者仍然把重点放在应用程序的正确性上,而不是毒性(toxicity)、提示词泄露(prompt leakage)或其他安全保障措施。此外,由于精确匹配在评估技术中的应用率较低,我们可以看出,判断一个应用的正确性往往远比单纯比较输出结果更为复杂(你不能只是简单地直接比较输出结果)。
结论
随着大语言模型应用开发的首个真正年度即将结束,许多团队都表达了一个共同的愿望:缩短从原型到产品的转化时间。希望通过分享这些使用统计数据,能够为大家在构建应用、开发方法和测试策略方面提供一些启示。
不论是否采用 LangChain,LangSmith 正在成为团队将应用从原型推向产品阶段的首选工具。