作者 | Richard macManus
策划 | 言征
Web3未能颠覆掉Web2,但新兴的大模型开发栈正在让开发者从“云原生”时代迈向新的AI技术栈。
提示工程师或许不能触动开发者奔赴大模型的神经,但产品经理或者领导的一句:能不能开发一个“agent”,能不能实现一条“chain”,“使用哪款向量数据库”,却成为了目前各大主流大模型应用公司中驱动技术同学攻克生成AI开发的难点所在。
那么,新兴的技术栈究竟分哪几层?哪里最为棘手?本文带大家一探究竟。
在过去一年,LangChain和LlamaIndex等工具的出现,使得AI应用程序的开发者生态系统开始成熟。甚至,现在还有一个术语来形容专注于人工智能的开发人员:“AI工程师”,根据其倡导者Shawn@swyx Wang的说法,这是“提示工程师”的下一步。他还创建了一张坐标图,形象展示了AI工程师在更广泛的人工智能生态系统中的位置:
图源:swyx
大型语言模型(LLM)是AI工程师的核心技术。LangChain和LlamaIndex都是扩展和补充LLM的工具,这绝非巧合。但是,对于这类新的开发人员来说,还有什么其他工具可用呢?
到目前为止,我看到的LLM堆栈的最佳图表来自风险投资公司Andreessen Horowitz(a16z)。以下是它对“LLM App stack”的看法:
图源:a16z
很明显,LLM技术栈中最重要的是数据。在a16z的图中,这是最顶层。“嵌入模型”是LLM的用武之地——你可以从OpenAI、Cohere、Hugging Face或其他几十种LLM选项中进行选择,包括越来越流行的开源LLM。
但即使在使用LLM之前,还需要建立一个“数据管道”——它将Databricks和Airflow列为两个示例,或者可以对数据进行“非结构化”处理。这也适合数据周期,可以帮助企业在将数据输入自定义LLM之前“清理”或简单地整理数据。像Alation这样的“数据智能”公司,就提供这种类型的服务——听起来,有点像IT技术栈中更为人知的“商业智能”等工具。
数据层的最后一部分则是近期名声大噪的向量数据库,来存储和处理LLM数据。根据微软的定义,这是“一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。”数据通过一种名为“embedding”的技术存储为向量。
领先的向量数据库供应商Pinecone在一次媒体交谈时指出,Pinecone的工具经常与数据管道工具(如Databricks)一起使用。在这种情况下,数据通常位于其他地方(例如,数据湖),然后通过机器学习模型将其转换为嵌入。在对数据进行处理和分块后,生成的向量被发送到Pinecone。
接下来的两层可以概括为提示和查询——这是人工智能应用程序与LLM和(可选)其他数据工具接口的地方。A16z将LangChain和LlamaIndex定位为“编排框架”,这意味着开发人员一旦知道自己使用的是哪种LLM,就可以使用这些工具。
根据a16z的说法,像LangChain和LlamaIndex这样的编排框架“抽象掉了提示链接的许多细节”,这意味着在应用程序和LLM之间查询和管理数据。这个编排过程包括与外部API接口,从矢量数据库检索上下文数据,以及在多个LLM调用中维护内存。a16z图表中最有趣的方框是“游乐场”,其中包括OpenAI、nat.dev和Humanloop。
A16z在博客文章中没有确切定义,但我们可以推断,“游乐场”工具可以帮助开发人员施展A16z所说的“提示柔术”。在这些地方,开发人员可以尝试各种提示技术。
Humanloop是一家英国公司,其平台的一个功能是“协作提示工作区”。它进一步将自己描述为“用于生产LLM功能的完整开发工具包”。因此,基本上,它允许您尝试LLM的东西,然后将其部署到应用程序中(如果它有效的话)。
大模型生产的流水线目前正在逐渐清晰。编排框的右侧是许多操作框,包括LLM缓存和验证。还有一系列与LLM相关的云和API服务,包括Hugging Face等开放的API存储库,以及OpenAI等专有的API提供商。
这可能是我们在“云原生”时代习惯的开发人员技术栈中最相似的地方,许多DevOps公司将人工智能添加到了他们的产品列表中,这绝非巧合。5月,我与Harness首席执行官Jyoti Bansal进行了交谈。Harness运行一个“软件交付平台”,专注于CI/CD流程的“CD”部分。
Bansai告诉我,人工智能可以减轻软件交付生命周期中涉及的繁琐和重复的任务,从基于现有功能生成规范到编写代码。此外,他还表示,人工智能可以自动化代码审查、漏洞测试、错误修复,甚至为构建和部署创建CI/CD管道。根据我在五月份的另一次对话,人工智能也在改变开发人员的生产力。来自构建自动化工具Gradle的Trisha Gee告诉我,人工智能可以通过减少重复任务(如编写样板代码)的时间来加速开发,并使开发人员能够专注于大局,如确保代码满足业务需求。
在新兴的LLM开发技术栈中,我们看到了一系列新的产品类型,例如编排框架(LangChain和LlamaIndex)、向量数据库和Humanloop等“游乐场”平台。所有这些都扩展和/或补充了这个时代的底层核心技术:大型语言模型。
一如前几年Spring Cloud、Kube.NETes等云原生时代工具的兴起。只不过当下,几乎所有云原生时代的大、小、顶流企业都在极力将其工具适应AI工程化,这就会对LLM技术栈的未来发展非常有利。
没错,这一次的大模型俨然“站在巨人的肩膀上”,计算机技术中最好的创新总是建立在以前的基础上。也许这就是“Web3”革命失败的原因——与其说它是建立在上一代的基础上,不如说它试图篡夺它。
很明显,LLM技术栈似乎做到了,它是从云开发时代到更新的、基于AI的开发者生态系统的桥梁。
参考链接:https://thenewstack.io/llm-app-ecosystem-whats-new-and-how-cloud-native-is-adapting/