构建 LLM (大型语言模型)应用程序——从入门到精通(第七部分:开源 RAG)-1. 简介

时间:2024-11-30 10:43:03

我们之前的博客文章广泛探讨了大型语言模型 (LLM),涵盖了其发展和广泛的应用。现在,让我们仔细看看这一旅程的核心:在本地构建 LLM 应用程序。

在这篇博文中,我们将使用 LangChain 创建一个基本的 LLM 应用程序。

之后,我们将继续在本地开发另外三个开源 LLM 应用程序。

 

让我们首先研究一下 LLM App Stack 中的工具。

我们将看到更多 LLM 应用得到实施,我们将开始看到更多此类应用具有生产氛围。这些包括但不限于 — 基本组件上的可观察性、数据版本控制和企业功能。

截至 2024 年 3 月更新,本文包含 8 个类别的 67 家公司:

  • 法学硕士
  • 法学硕士提供者
  • 矢量数据库
  • 嵌入模型
  • 编排
  • 品质调整
  • 基础设施
  • 数据工具

1.1. LLM

大型语言模型在人工智能领域风靡一时。它们使我们能够通过自然语言与人工智能合作,这是世界各地的研究人员和从业者几十年来一直在努力实现的目标。2014 年生成对抗网络的兴起,加上 2018 年 Transformer 的出现,以及多年来计算能力的提高,都促成了这一技术的出现。

说法学硕士将改变世界既不准确也不公平。法学硕士已经改变了世界。

  • OpenAI(GPT)
  • 驼羊
  • 谷歌(双子座)
  • 米斯特拉尔
  • 决策人工智能

DeciLM-7B 是 Deci AI 的 LLM 系列中的最新产品。凭借其 70.4 亿个参数和针对高吞吐量进行优化的架构,它在 Open LLM 排行榜上取得了最高性能。它通过结合开源和专有数据集以及分组查询注意等创新技术来确保训练的多样性和效率。Deci 7B 支持 8192 个 token,并遵循 Apache 2.0 许可证。— Harpreet Sahota

  • 符号人工智能

我们(创始人)来自电信行业,他们看到了对延迟敏感、低内存语言模型的需求。Symbl AI 具有独特的 AI 模型,专注于从端到端理解语音。它包括将语音转换为文本以及分析和理解所说的内容的能力。—— Surbhi Rathore

  • 克劳德(Claude)
  • 人工智能块

我们构建了 AI Bloks 来解决在私有云中实现企业 LLM 工作流自动化的问题。我们的产品生态系统拥有针对企业 LLM 工作流的最全面的开源开发框架和模型之一。我们有一个集成的 RAG 框架,其中包含 40 多个经过微调且对 CPU 友好的小型语言模型,旨在堆叠在一起以提供全面的解决方案。— Namee Oberst

  • 阿尔西·艾
  • 算盘人工智能
  • 我们研究
  • Upstage 的太阳能

法学硕士学费昂贵。发展中国家的情况更是如此。我们需要找到解决方案。这就是我们开发 Solar 的原因。Solar 足够小,可以装在芯片上,而且任何人都可以使用。— Sung Kim

1.2. 法学硕士提供者

  • 亚马逊 (基岩)
  • OctoAI

“当我们创办 OctoAI 时,我们知道模型只会越来越大,从而使 GPU 资源变得稀缺。这促使我们将系统专业知识集中在大规模高效地处理 AI 工作负载上。如今,OctoAI 通过与 OpenAI 兼容的 API 提供最新的文本生成和媒体生成基础模型,因此开发人员可以以经济高效的方案充分利用开源创新。” — Thierry Moreau

  • 烟花人工智能
  • 火星人

1.3. 矢量数据库

向量数据库是 LLM 堆栈的关键部分。它们提供了处理非结构化数据的能力。非结构化数据原本无法处理,但可以通过机器学习模型运行以生成向量嵌入。向量数据库使用这些向量嵌入来查找相似的向量。

  • Milvus(这是我的项目!给它一个 GitHub 星星!)

Milvus 是一个开源向量数据库,旨在实现处理数十亿个向量。Milvus 面向企业级,还包含许多企业功能,如多租户、基于角色的访问控制和数据复制。—— Yujian Tang

  • 威维特
  • 色度
  • 卡德兰特
  • 阿斯特拉DB
  • 孔径数据

“我们创建 Aperture Data 的目的是简化 DS/ML 团队与多模态数据类型的交互。我们最大的价值主张是,我们可以合并矢量数据、智能图表和多模态数据,通过一个 API 进行查询。” — Vishakha Gupta

  • 松果
  • 数据库

LanceDB 在您的应用中运行,无需管理任何服务器。零供应商锁定。LanceDB 是一款面向开发人员的 AI 开源数据库。它基于 DuckDB 和 Lance 数据格式。— Jasmine Wang

  • ElasticSearch
  • 齐利兹

Zilliz Cloud旨在解决非结构化数据问题。Zilliz Cloud 建立在高度可扩展、可靠且流行的开源矢量数据库 Milvus 之上,它使开发人员能够自定义矢量搜索,无缝扩展到数十亿个矢量,并且无需管理复杂的基础设施即可完成所有操作。— Charles Xie

1.4. 嵌入模型

嵌入模型是创建向量嵌入的模型。这些是 LLM 堆栈的关键部分,经常与 LLM 混淆。我认为这是 OpenAI 的命名约定 + 人们对学习这项新技术的强烈热情。LLM 可以用作嵌入模型,但嵌入模型早在 LLM 兴起之前就已经存在了。

  • 拥抱脸
  • 航行人工智能

“Voyage AI 提供通用、特定领域和微调的嵌入模型,具有最佳的检索质量和效率。”——马腾宇

  • 混合面包

MixedBread 希望改变人工智能和人类与数据交互的方式。它拥有一支强大的研究和软件工程团队。—— Aamir Shakir

  • 艾吉娜

1.5. 编排工具

围绕 LLM 出现了一整套全新的编排工具。主要原因是什么?LLM 应用程序的编排包括提示,这是一个全新的类别。这些工具是由“提示工程”和机器学习领域的前沿人士开发的。

  • 骆驼指数

“我们在 ChatGPT 热潮的巅峰时期构建了 LlamaIndex 的第一个版本,以解决 LLM 工具最紧迫的问题之一——如何利用这种推理能力并将其应用于用户数据。如今,我们是一个成熟的 Python 和 TypeScript 数据框架,提供全面的工具/集成(150 多个数据加载器、50 多个模板、50 多个向量存储),可用于在您的数据上构建任何 LLM 应用程序,从 RAG 到代理。”—— Jerry Liu

  • 朗链
  • 草垛
  • 语义核心
  • 自动生成
  • 飞特

“Flyte 正在利用容器化和 Kubernetes 来协调复杂、可扩展且可靠的工作流程,从而重新定义机器学习和数据工程工作流程的格局。Flyte 专注于可重复性和效率,为运行计算任务提供了一个统一的平台,使 ML 工程师和数据科学家能够轻松地跨团队和跨资源简化工作。您可以通过 Union.ai 在云端完全管理 Flyte,从而充分利用 Flyte 的强大功能”——Ketan Umare

  • Flowise人工智能

Flowise 是一款基于 Langchain 和 LlamaIndex 构建的流程管理工具。开发 LLM 应用程序需要一整套全新的开发工具,这就是我们创建 Flowise 的原因:让开发人员能够在一个平台上构建、评估和观察他们的 LLM 应用程序。我们是第一个开辟低代码 LLM 应用程序构建器新领域的公司,也是第一个集成不同 LLM 框架的开源平台,允许开发人员根据自己的用例进行自定义。— Henry Heng

  • 边界机器学习

我们创建了一种新的配置语言 BAML,它针对表达 AI 功能进行了优化。BAML 提供内置类型安全、原生 VSCode 游乐场、任意模型支持、可观察性以及对 Python 和 Typescript 的支持。最重要的是,它是开源的!— Vaibhav Gupta

1.6. 质量调整工具

先构建应用程序,然后再考虑质量。但质量真的很重要。这些工具存在的原因在于:a) 许多基于 LLM 的结果都是主观的,但需要一种衡量方法;b) 如果您在生产中使用某些东西,您需要确保它是好的;c) 了解不同参数如何影响您的应用程序意味着您可以了解如何改进它。

  • 阿里兹人工智能

“我的联合创始人 Aparna Dhinakaran 来自 Uber 的 ML 团队,我来自 TubeMogul,我们都意识到我们面临的最困难的问题是解决现实世界的 AI 问题并理解 AI 性能。Arize 拥有一群独特的人才,他们数十年来一直致力于 AI 系统性能评估、高度可用的可观察性工具和大数据系统。我们以开源为基础,并支持我们软件的社区版本Phoenix。”—— Arize AI首席执行官兼联合创始人Jason Lopatecki

  • WhyLabs

“WhyLabs 帮助 AI 从业者构建可靠且值得信赖的 AI 系统。随着我们的客户从预测用例扩展到 GenAI 用例,安全性和控制成为他们投入生产的最大障碍。为了解决这个问题,我们开源了 LangKit,这是一种使团队能够防止 LLM 应用程序中的滥用、错误信息和数据泄露的工具。对于企业团队,WhyLabs 平台位于 LangKit 之上,提供协作控制和根本原因分析中心 — Alessya Vijnic

  • 深度检查

“我们创办 Deepchecks 是为了应对构建、调整和观察人工智能的巨大成本。我们的特色是为用户提供自动评分机制。这使我们能够结合质量和合规性等多种考虑因素来对 LLM 响应进行评分。” — Philip Tannor

  • 困境
  • 创世纪

TruEra 的 AI 质量解决方案可评估、调试和监控机器学习模型和大型语言模型应用程序,以实现更高的质量、可信度和更快的部署。对于大型语言模型应用程序,TruEra 使用反馈功能来评估没有标签的 LLM 应用程序的性能。结合深度可追溯性,这为任何 AI 应用程序带来了无与伦比的可观察性。TruEra 可在整个模型生命周期内工作,独立于模型开发平台,并可轻松嵌入到您现有的 AI 堆栈中。— Josh Reini

  • 蜂蜜蜂巢
  • 护栏 AI
  • 梯度爆炸(RAGAS
  • BrainTrust 数据

BrainTrust Data 是一款强大的解决方案,用于评估以软件工程为中心的 LLM 应用程序。它允许快速迭代。与其他 MLOps 工具不同的是,它的评估集侧重于使用情况,并允许用户定义功能。— Albert Zhang

  • 守护神人工智能
  • 吉斯卡德

Quotient 提供了一个端到端平台,可以定量测试 LLM 应用程序中的变化。在 GitHub 上进行了多次讨论后,我们认为定量测试 LLM 应用程序是一个大问题。我们的特色是,我们为业务用例提供特定领域的评估。— Julia Neagu

  • 伽利略

1.7. 数据工具

2012 年,数据是任何 AI/ML 应用中最好的朋友。2024 年,情况略有不同,但差别不大。数据质量仍然至关重要。这些工具可帮助您确保数据标记正确、使用正确的数据集,并轻松移动数据。

  • 体素51

“模型的好坏取决于训练模型所用的数据,那么你的数据集里有什么呢?我们构建了 Voxel51,将您的非结构化数据组织到一个集中、可搜索且可可视化的位置,让您能够构建自动化程序,从而提高您提供给模型的训练数据的质量。” — Brian Moore

  • 分布式虚拟控制器
  • 閣下

在构建 Apple 的 ML 数据平台并看到 ML 团队因工具和流程无法扩展且与软件团队不一致而苦苦挣扎之后,我们创建了 XetHub。XetHub 将 Git 扩展到 100TB(每个存储库),并提供类似 GitHub 的体验,具有针对 ML 量身定制的功能(自定义视图、模型差异、自动摘要、基于块的重复数据删除、流式挂载、仪表板等)。— Rajat Arya

  • 卡夫卡
  • 艾尔字节
  • 字节蜡

“Bytewax 首先填补了 Python 生态系统中 Python 原生流处理器的空白,该处理器已准备好投入生产。其次,它旨在通过易于使用且直观的 API 和简单的部署方式解决现有流处理工具的开发人员体验问题:`pip install bytewax && python -m bytewax.run my_dataflow.py`” — Zander Matheson

  • 非结构化IO

在 Unstructured,我们正在构建数据工程工具,以便轻松地将非结构化数据从原始数据转换为可用于 ML 的数据。如今,开发人员和数据科学家将 80% 以上的时间花在数据准备上;我们的使命是让他们有时间专注于模型训练和应用程序开发。— Brian Raymond

  • 火花
  • 脉冲星
  • 弗卢姆
  • Flink
  • Timeplus 的 Proton
  • Apache NiFi
  • 主动循环
  • HumanLoop
  • 超级链接
  • Skyflow(隐私)

Skyflow 是一项数据隐私保险库服务,其灵感来自 Apple 和 Netflix 等公司使用的零信任方法。它隔离并保护敏感的客户数据,将其转换为非敏感引用以降低安全风险。Skyflow 的 API 通过排除敏感数据来确保隐私安全的模型训练,防止从提示或用户提供的文件中推断 RAG 等操作。— Sean Falconer

  • 矢量流
  • 戴奥斯
  • 途径
  • 法师人工智能
  • 屈肌

1.8. 基础设施

2024 年 3 月,基础架构工具成为该堆栈的新增内容和革新,它们对于构建 LLM 应用至关重要。这些工具可让您先构建应用,然后将生产工作抽象到稍后。它们可让您提供、训练和评估 LLM 以及基于 LLM 的应用程序。

  • 本托ML

我创办 BentoML 是因为我看到高效运行和提供 AI 模型是多么困难。使用传统的云基础设施,处理繁重的 GPU 工作负载和处理大型模型可能是一件非常令人头疼的事情。简而言之,我们让 AI 开发人员能够非常轻松地启动和运行他们的 AI 推理服务。我们完全是开源的,并得到了一个始终做出贡献的优秀社区的支持。— Chaoyu Yang

  • 数据块
  • LastMile AI
  • 泰坦机器学习

许多企业希望自行托管语言模型,但没有做好这项工作的基础设施。TitanML 提供了这种基础设施,让开发人员可以构建应用程序。它的特别之处在于,它专注于优化企业工作负载,如批量推理、多模式和嵌入模型。— Meryem Arik

  • 确定性人工智能(被HPE收购)
  • Pachyderm(被HPE收购)
  • 保密思想

ConfidentialMind 正在为企业构建可部署的 API 堆栈。它的独特之处是什么?能够在本地部署所有内容,并利用开源工具即插即用。— Markku Räsänen

  • 雪花
  • Upstash

需要有一种方法来跟踪无状态工具的状态,并且需要在这个领域为开发人员提供服务。—— Enes Akar

  • 解体

我们让非 AI 开发人员能够使用 AI,并为 AI 功能创建私有数据管道。 — Amir Houieh

  • NVIDIA 的 NIM
  • 帕雷亚

Parea 为 LLM 引入了不可知框架和模型,让构建和评估 LLM 应用程序变得更加容易。— Joel Alexander

以下是 RAG 应用程序的非常合适的架构:

来源