大模型开发栈已成!

作者 | Richard macManus
策划 | 言征
Web3未能颠覆掉Web2,但新兴的大模型开发栈正在让开发者从“云原生”时代迈向新的AI技术栈 。
提示工程师或许不能触动开发者奔赴大模型的神经,但产品经理或者领导的一句:能不能开发一个“agent”,能不能实现一条“chain”,“使用哪款向量数据库”,却成为了目前各大主流大模型应用公司中驱动技术同学攻克生成AI开发的难点所在 。
那么,新兴的技术栈究竟分哪几层?哪里最为棘手?本文带大家一探究竟 。
1、技术栈需要更新了开发者迎来AI工程师时代在过去一年,LangChain和LlamaIndex等工具的出现,使得AI应用程序的开发者生态系统开始成熟 。甚至,现在还有一个术语来形容专注于人工智能的开发人员:“AI工程师”,根据其倡导者Shawn@swyx Wang的说法,这是“提示工程师”的下一步 。他还创建了一张坐标图,形象展示了AI工程师在更广泛的人工智能生态系统中的位置:

大模型开发栈已成!

文章插图
图源:swyx
大型语言模型(LLM)是AI工程师的核心技术 。LangChain和LlamaIndex都是扩展和补充LLM的工具,这绝非巧合 。但是,对于这类新的开发人员来说,还有什么其他工具可用呢?
到目前为止,我看到的LLM堆栈的最佳图表来自风险投资公司Andreessen Horowitz(a16z) 。以下是它对“LLM App stack”的看法:
大模型开发栈已成!

文章插图
图源:a16z
2、没错,最顶层的还是数据很明显,LLM技术栈中最重要的是数据 。在a16z的图中,这是最顶层 。“嵌入模型”是LLM的用武之地——你可以从OpenAI、Cohere、Hugging Face或其他几十种LLM选项中进行选择,包括越来越流行的开源LLM 。
但即使在使用LLM之前,还需要建立一个“数据管道”——它将Databricks和Airflow列为两个示例,或者可以对数据进行“非结构化”处理 。这也适合数据周期,可以帮助企业在将数据输入自定义LLM之前“清理”或简单地整理数据 。像Alation这样的“数据智能”公司,就提供这种类型的服务——听起来,有点像IT技术栈中更为人知的“商业智能”等工具 。
数据层的最后一部分则是近期名声大噪的向量数据库,来存储和处理LLM数据 。根据微软的定义,这是“一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示 。”数据通过一种名为“embedding”的技术存储为向量 。
领先的向量数据库供应商Pinecone在一次媒体交谈时指出,Pinecone的工具经常与数据管道工具(如Databricks)一起使用 。在这种情况下,数据通常位于其他地方(例如,数据湖),然后通过机器学习模型将其转换为嵌入 。在对数据进行处理和分块后,生成的向量被发送到Pinecone 。
3、提示和查询接下来的两层可以概括为提示和查询——这是人工智能应用程序与LLM和(可选)其他数据工具接口的地方 。A16z将LangChain和LlamaIndex定位为“编排框架”,这意味着开发人员一旦知道自己使用的是哪种LLM,就可以使用这些工具 。
根据a16z的说法,像LangChain和LlamaIndex这样的编排框架“抽象掉了提示链接的许多细节”,这意味着在应用程序和LLM之间查询和管理数据 。这个编排过程包括与外部API接口,从矢量数据库检索上下文数据,以及在多个LLM调用中维护内存 。a16z图表中最有趣的方框是“游乐场”,其中包括OpenAI、nat.dev和Humanloop 。
A16z在博客文章中没有确切定义,但我们可以推断,“游乐场”工具可以帮助开发人员施展A16z所说的“提示柔术” 。在这些地方,开发人员可以尝试各种提示技术 。
Humanloop是一家英国公司,其平台的一个功能是“协作提示工作区” 。它进一步将自己描述为“用于生产LLM功能的完整开发工具包” 。因此,基本上,它允许您尝试LLM的东西,然后将其部署到应用程序中(如果它有效的话) 。
4、流水线作业:LLMOps大模型生产的流水线目前正在逐渐清晰 。编排框的右侧是许多操作框,包括LLM缓存和验证 。还有一系列与LLM相关的云和API服务,包括Hugging Face等开放的API存储库,以及OpenAI等专有的API提供商 。
这可能是我们在“云原生”时代习惯的开发人员技术栈中最相似的地方,许多DevOps公司将人工智能添加到了他们的产品列表中,这绝非巧合 。5月,我与Harness首席执行官Jyoti Bansal进行了交谈 。Harness运行一个“软件交付平台”,专注于CI/CD流程的“CD”部分 。


推荐阅读