LeapfrogAI 是一个自托管人工智能平台,旨在部署在隔离环境中。该项目旨在通过托管人工智能堆栈的所有必需组件,将复杂的人工智能解决方案引入气隙资源有限的环境。
我们的服务包括矢量数据库、模型后端、API 和 UI。这些功能可以轻松访问并与您现有的基础设施集成,确保无论您的环境有何限制,都可以利用人工智能的力量。
大型语言模型 (LLM) 是人工智能驱动的决策、内容生成等方面的强大资源。 LeapfrogAI 如何将人工智能带入您的使命?
数据独立性:将敏感信息发送到第三方服务可能并不适合或不允许所有类型的数据或组织。通过托管自己的法学硕士,您可以完全控制自己的数据。
可扩展性:即用即付的人工智能服务可能会变得昂贵,特别是当涉及大量数据并且需要持续连接时。对于各种规模的任务来说,运行自己的法学硕士通常是一种更具成本效益的解决方案。
任务集成:通过托管您自己的法学硕士,您可以自定义模型的参数、训练数据等,根据您的特定需求定制人工智能。
LeapfrogAI 构建在 Defense Unicorns 的安全运行环境 Unicorn Delivery Service (UDS) 之上,并包含多项功能,例如:
LeapfrogAI 存储库遵循基于 API 的 monorepo 结构,每个组件都包含在专用的packages
目录中。处理 LeapfrogAI 的开发和最新部署的 UDS 捆绑包位于bundles
目录中。结构如下:
leapfrogai/
├── src/
│ ├── leapfrogai_api/ # source code for the API
│ ├── leapfrogai_evals/ # source code for the LeapfrogAI evaluation framework
│ ├── leapfrogai_sdk/ # source code for the SDK
│ └── leapfrogai_ui/ # source code for the UI
├── packages/
│ ├── api/ # deployment infrastructure for the API
│ ├── llama-cpp-python/ # source code & deployment infrastructure for the llama-cpp-python backend
│ ├── repeater/ # source code & deployment infrastructure for the repeater model backend
│ ├── supabase/ # deployment infrastructure for the Supabase backend and postgres database
│ ├── text-embeddings/ # source code & deployment infrastructure for the text-embeddings backend
│ ├── ui/ # deployment infrastructure for the UI
│ ├── vllm/ # source code & deployment infrastructure for the vllm backend
│ └── whisper/ # source code & deployment infrastructure for the whisper backend
├── bundles/
│ ├── dev/ # uds bundles for local uds dev deployments
│ └── latest/ # uds bundles for the most current uds deployments
├── Makefile
├── pyproject.toml
├── README.md
└── ...
运行 LeapfrogAI 的首选方法是使用 UDS 进行本地 Kubernetes 部署。
请参阅 LeapfrogAI 文档网站的快速入门部分,了解系统要求和说明。
LeapfrogAI 提供的 API 与 OpenAI 的 API 非常匹配。此功能允许使用 OpenAI/ChatGPT 构建的工具与 LeapfrogAI 后端无缝运行。
LeapfrogAI SDK 提供了一组标准的 protobuf 和 Python 实用程序,用于使用 gRPC 实现后端。
LeapfrogAI 提供了一个支持常见用例的 UI,例如一般聊天和“文档问答”。
LeapfrogAI 为各种用例提供了多个后端。以下是后端支持和兼容性矩阵:
后端 | AMD64 | ARM64 | CUDA | 码头工人 | 库伯内斯 | 统一数据系统 |
---|---|---|---|---|---|---|
骆驼-cpp-python | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
耳语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
文本嵌入 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
弗洛姆 | ✅ | ❌1 | ✅ | ✅ | ✅ | ✅ |
转发器“模型”是一个基本的“后端”,它将接收到的所有输入重复返回给用户。它的构建方式与所有实际后端相同,主要用于测试 API。
LeapfrogAI 附带了一个与 DeepEval 集成的评估框架。有关在 LeapfrogAI 中运行和利用评估的更多信息,请参阅 Evals 自述文件。
每个组件都有不同的映像和值,它们引用特定的映像注册表和/或强化源。这些图像是使用 Zarf Flavors 打包的:
upstream
:使用来自开源容器注册表和存储库的上游供应商映像registry1
:使用来自 Repo1 港口注册表的 IronBank 强化映像以下是当前的组件口味列表:
成分 | upstream | registry1 |
---|---|---|
应用程序编程接口 | ✅ | ✅ |
用户界面 | ✅ | ? |
苏帕贝斯 | ✅ | ? |
迁移 | ✅ | ? |
骆驼-cpp-python | ✅ | ? |
耳语 | ✅ | ? |
文本嵌入 | ✅ | ? |
弗洛姆 | ✅ | ? |
弗洛姆 | ✅ | ? |
含有任何标记为 ? 的成分的风味剂尚不能作为快速启动捆绑包部署。请参阅 DEVELOPMENT.md 以获取有关如何构建组件的 Zarf 包以进行本地测试的说明。
要构建 LeapfrogAI UDS 捆绑包并进行部署,请参阅 LeapfrogAI 文档网站。在文档网站中,您将找到与本地开发和贡献无关的所有 LeapfrogAI 事物的系统要求和说明。
要在本地 Python 或 Node.js 环境中为每个组件提供本地部署和开发,请继续阅读下一部分。
笔记
在尝试本地开发之前,请先访问 LeapfrogAI 文档网站
每个 LeapfrogAI 组件也可以在 Kubernetes 或容器化环境之外单独运行。这在测试特定组件的更改时很有用,但无助于 LeapfrogAI 的完整部署。请参阅上面的部署说明部分。请参阅下一节了解向 LeapfrogAI 贡献的规则。
首先参考DEVELOPMENT.md文档了解一般开发细节。
然后参考每个子目录的本地开发说明的链接自述文件。
所有潜在和当前的贡献者必须确保他们在向此存储库提出问题或拉取请求之前已阅读贡献文档、安全政策和行为准则。
提交问题或打开 PR 时,请首先确保您已根据现有或已关闭的问题和 PR 搜索潜在问题或 PR。认为重复的问题将被关闭,因此请参考并区分您的贡献与无关或类似的问题和 PR。
LeapfrogAI 得到了用户和贡献者社区的支持,包括:
想要将您的组织或徽标添加到此列表中吗?打开公关!
vLLM 需要为 ARM64 构建的支持 CUDA 的 PyTorch,但无法通过 pip 或 conda ↩
SDK并不是一个功能上独立的单元,只有与API和Backends作为依赖组合封装后才成为一个功能单元。 ↩
请注意,API 和 UI 在 2 个子目录下有工件。与packages/
相关的子目录专注于Zarf打包和Helm图表,而与src/
相关的子目录包含实际的源代码和开发说明。 ↩ ↩ 2