SuperDuperDB: 给数据库插上AI的翅膀

导读

入选Intel Ignite 项目的德国初创公司SuperDuperDB 开源的AI开发与部署框架SuperDuperDB在12月5日发布了首个重要版本v0.1这个框架的设计初衷是为了无缝集成AI模型和API到用户现有的数据库中

SuperDuperDB是一个通用的人工智能开发和部署框架,用于将任何人工智能模型(包括对PyTorchScikit-LearnHugging Face的增强支持)和人工智能API(包括对OpenAIAnthrophicCohere的增强支持)直接与现有数据库集成,包括流式推理、模型训练和向量搜索。SuperDuperDB并不是一个数据库,它使您现有的数据库变得"超级棒(super-duper) "。

项目地址 : github.com/SuperDuperD...

文章接下来会探讨当前AI与数据整合方法及工具所面临的挑战,以及这些挑战如何驱使团队开发出SuperDuperDB。随后,文章将提供对SuperDuperDB的全面概览,重点介绍其核心原则、特色功能和已经实现的集成。

AI的应用迫在眉睫,但充满挑战

人工智能正在改变每一个行业,并将很快在软件产品和服务中扮演核心角色。

当今的开发者可以从越来越多强大的开源AI模型和API中进行选择。尽管如此,在将AI与数据集成以及将机器学习模型投入生产时,开发者面临着诸多挑战。

人工智能与数据存在孤立的"信息孤岛"

数据对于人工智能至关重要,尤其是将人工智能与数据相连,对于无论是在训练模型还是将模型应用于相关数据的过程中,提供价值都是不可或缺的。一个关键问题在于数据所在的位置(数据库中)与人工智能模型缺乏一个标准接口方法之间存在脱节。这导致了复杂的机器学习运维(MLOps)流程,涉及到繁琐的步骤、众多工具和专用的向量数据库,进而加剧了数据与人工智能各自独立的"信息孤岛"现状。

将人工智能与数据结合,构建定制化AI的巨大挑战

目前的解决方案需要从数据库中提取数据,并将其导入AI模型中。更具体地说,提取的数据被输入到复杂的"机器学习运维(MLOps)"和"抽取-转换-加载(ETL)"流程中,这些流程涉及多个步骤、工具,甚至包括专门的"向量数据库"和"特征存储"。这些复杂的流程涉及数据的来回传输,从一个环境、格式、位置或编程语言转移到另一个。

在设置这些流程时,开发人员不得不每次想要将AI模型投入生产时都实现同一任务的不同版本。在这一过程中,每个环节都可能涉及多种安装配置、云服务部署、Docker容器的使用以及不同的计算环境设置。由于每个模型都有其特定的接口和要求,这导致了巨大的运营和基础设施负担,并随着模型数量、数据类型、数据库和硬件要求的增加而倍增。

当出现以下情况时,这种困难会进一步加剧:

  • 数据不断更新和变化
  • 数据存储在多个位置
  • 数据安全限制禁止使用AI API,并要求端到端自托管

由于这种复杂性,无论是个人开发者还是团队,经常都难以将AI驱动的应用程序投入生产,因为他们缺乏在各个领域的专家知识,并且无法承担部署和维护此类流程的高昂成本。

当低代码遇上AI:潜力与局限同行

在这个快速发展的人工智能时代,一些前沿的AI企业和服务如雨后春笋般涌现,它们带来了充满未来感的"几步完成"界面和"低代码操作",试图在AI数据融合的海洋中为我们架起一座简便之桥。这些创新听起来充满诱惑,但当我们深入探究时,会发现它们的适用性有其天花板。这些用户界面,尽管外表光鲜,却与AI模型的深层次机制相去甚远,这种距离让它们在广泛的应用场景中显得力不从心;低代码标记语言虽然简洁易懂,却隐藏了AI实施的精华,使得用户在面对个性化需求时束手无策。

而在另一端,大型云服务提供商们也在竭尽全力推广他们的"简化AI与数据整合"的承诺。然而,这背后却隐藏着两大挑战:一是它们可能悄悄牵引开发者步入技术栈的"专属领地",一旦陷入,便可能面临高昂的供应商依赖成本;二是这些服务在很大程度上仅是对传统机器学习运维(MLOps)和数据处理流程(ETL)的一次新包装,但这层光鲜的外衣下,开发者仍需耗费大量精力去应对。

向量数据库存在的问题

2023年,向量数据库及其相关工具,如LangChain和LlamaIndex,的流行度激增。这一热潮得益于结合向量搜索与大型语言模型(LLMs)的前景,同时,标准数据库缺乏必要的向量搜索功能、模型支持以及对灵活数据类型的支持。

虽然这些工具允许开发人员快速开始使用向量搜索,但现实是,在生产环境中,主要数据仍然存储在已有的数据库中,并且很可能会继续如此。这意味着开发者需要在他们的技术栈中引入一个额外的专用数据库,仅用于此一目的,导致数据重复、迁移和管理开销的增加。如果数据已经存储在现有的、首选的、经过实战考验的数据库中,那么为什么不简单地让数据留在那里呢?

数据与人工智能的融合

将数据与人工智能融合于同一环境中,是促进人工智能采用的关键。通过这种方式,可以完全避免在机器学习运维(MLOps)、数据提取转换加载(ETL)和向量数据库中遇到的困难。

具体来说,开发者需要一个能够直接与数据库中的数据工作的环境,这个环境能够灵活集成人工智能模型和向量搜索,而且几乎不需要繁琐的预备工作。理想情况下,这种环境应该允许开发者将模型连接到数据库,使其能够自动处理进入的数据,从而经济高效地使用资源。

SuperDuperDB 的登场

SuperDuperDB的使命是将人工智能带入数据库,使数据迁移、数据复制、MLOps和ETL流程成为过去式。

SuperDuperDB是一个通用的人工智能开发和部署框架,用于将任何人工智能模型(包括对PyTorch、Scikit-Learn、Hugging Face的增强支持)和人工智能API(包括对OpenAI、Anthrophic、Cohere的增强支持)直接与现有数据库集成,包括流式推理、模型训练和向量搜索。SuperDuperDB并不是一个数据库,它使您现有的数据库变得"超级棒(super-duper) "。

python 复制代码
from superduperdb import superduper

# Make your database super-duper!
db = superduper('mongodb|postgres|duckdb|snowflake|://<connection-uri>')

通过将人工智能直接引入数据库,个人开发者和组织可以避免构建和集成MLOps和ETL流程的复杂性,以及在多个环境(包括专业的向量数据库)之间迁移和复制数据。SuperDuperDB实现了人工智能与数据库中数据的集成,将人工智能模型输出与源数据存储在一起。这些洞察力和人工智能输出随后可以立即在下游应用中部署。

SuperDuperDB为构建、发布和管理人工智能应用提供了一个统一的环境,包括对以下方面的一流支持:

  • 生成型人工智能和LLM聊天应用
  • 向量搜索
  • 标准机器学习用例(分类、分割、推荐等)
  • 高度定制的人工智能用例,涉及特定应用的自制模型

SuperDuperDB的魅力:探索其创新原则与独特特性

开源

AI软件应该向社区开放源代码。真正的开源工具是开发者保护自己的技术栈免受脆弱依赖影响的唯一可靠途径。

SuperDuperDB是开源AI生态系统的一部分。目前已有丰富的开源AI软件和模型可供使用,包括Hugging Face的**transformers llama-2.0**以及其他能与OpenAI的闭源模型竞争的大型语言模型(LLMs)、PyTorch中的计算机视觉模型,以及GitHub上源源不断涌现的新开源工具和模型。

SuperDuperDB使用Apache-2.0 license 开源协议,旨在成为采用和从这个生态系统中提取价值的领先标准。

Python优先

在AI界,很多工具倾向于让开发者远离Python,转而采用特定的用户界面或只适用于那些工具的标记语言。这样的趋势虽然看似简化了过程,却可能忽视了Python在AI研究、开发及工具领域中的核心地位。同时,这种追求操作简易性的做法,可能会在一定程度上限制技术的灵活性和创新空间,从而影响其更广泛的应用潜力。

SuperDuperDB作为一个开源的Python包,不仅为渴望迅速上手AI模型的用户提供了一个直观易用的界面,还为专业人士提供了深入探索每一个实现细节的可能性。

通过将模型直接部署在数据库中,并使用Python进行操作,SuperDuperDB避免了切换到其他编程语言或环境所带来的额外开销。使用SuperDuperDB的开发者能够:

  • 融合Python生态系统中任何函数、程序、脚本或算法,以此来增强和优化他们的工作流程及应用程序。
  • 完全掌控模型和训练配置的内部机制,实现精确调优。
  • 与广泛使用的工具如FastAPI无缝对接。(欲了解更多,可参阅基于SuperDuperDB和FastAPI开发的开源聊天机器人,该项目展示了SuperDuperDB与Python生态系统间的高效协作方式。)
  • 直接在Jupyter笔记本环境中与数据库进行交互,这是数据科学家的首选工作平台。

这种方式确保了开发者在使用Python时的高效性和灵活性,同时也使SuperDuperDB成为AI领域的强大工具。

跟复杂的机器学习工作流说再见

在常规的MLOps工具中,我们通常看到包含多轮ETL操作和多种模型的复杂流程构建。但我们基于对AI开发者常用模式的深刻理解,创造了一个框架,这个框架不仅减少了复杂流程的建立,还能最大限度地提升计算效率。

通过SuperDuperDB,开发者可以轻松实现:

  • 摆脱数据重复复制和迁移的困扰
  • 减少额外的预处理步骤,ETL和繁琐不必要代码的编写
  • 随着新数据的到来,自动触发对应模型,进行实时计算输出,确保我们的部署都是最新的
  • 利用SuperDuperDB强大的扩展能力在大规模数据集上高效训练AI模型
  • 通过简化模型和API的整合,轻松构建高效而紧密相连的工作流程

不再需要额外的特定的向量数据库

使用SuperDuperDB,您无需再将数据复制和迁移到其他专业的向量数据库。您现有的数据库就能成为一个全功能的多模态向量搜索数据库。它支持任意数据类型(包括文本搜索,视频搜索),能够利用各种人工智能模型和API生成数据的向量嵌入和向量索引。

支持任意的数据类型

SuperDuperDB 支持图片、视频及由 Python 定义的任意数据类型;这包括高效利用混合数据库-文件系统存储,使开发人员能够最有效地使用存储方式,并实现出色的输入/输出性能。

为生成式人工智能以及传统机器学习提供一流的支持

SuperDuperDB打造了一个公平竞争的舞台,使各种复杂程度的人工智能模型均能发挥其潜能。无论是构建结合生成式AI和向量搜索的检索增强生成(RAG)聊天机器人,还是处理涉及表格数据、时间序列等行业常见应用场景,SuperDuperDB都能让这一切变得轻而易举。它甚至可以优雅地将生成式AI与经典机器学习算法融合,形成一个流畅高效的统一工作流程。

目前集成支持

数据库

AI 框架和APIs

应用场景和用途

SuperDuperDB通过对大量基于Python的人工智能模型的支持,使得众多应用场景成为可能。在官方Github主页文档中可以找到诸多应用和场景,例如基于LLM RAG的聊天机器人、视频搜索、预测分析、推荐系统、情感分析等。

此外,开源社区已经基于SuperDuperDB开发出 SuperDuperDB社区应用

社区参与

读者在了解SuperDuperDB的使用案例后,可利用自己的数据库构建AI应用。如需协助,可参阅官方文档并加入Slack社区。SuperDuperDB团队欢迎用户分享其项目,愿意帮助用户与社区分享进展。

当前路线图专注于使SuperDuperDB完全适用于生产环境,并不断优化部署、计算效率和可扩展性。

译自: docs.superduperdb.com/blog/superd...

相关推荐
火星机器人life1 小时前
基于ceres优化的3d激光雷达开源算法
算法·3d
虽千万人 吾往矣1 小时前
golang LeetCode 热题 100(动态规划)-更新中
算法·leetcode·动态规划
arnold662 小时前
华为OD E卷(100分)34-转盘寿司
算法·华为od
ZZTC2 小时前
Floyd算法及其扩展应用
算法
lshzdq3 小时前
【机器人】机械臂轨迹和转矩控制对比
人工智能·算法·机器人
2401_858286113 小时前
115.【C语言】数据结构之排序(希尔排序)
c语言·开发语言·数据结构·算法·排序算法
猫猫的小茶馆3 小时前
【数据结构】数据结构整体大纲
linux·数据结构·算法·ubuntu·嵌入式软件
u0107735144 小时前
【字符串】-Lc5-最长回文子串(中心扩展法)
java·算法
帅逼码农4 小时前
K-均值聚类算法
算法·均值算法·聚类
姚先生974 小时前
LeetCode 209. 长度最小的子数组 (C++实现)
c++·算法·leetcode