前言
在当今数字化的世界中,数据库系统扮演着至关重要的角色。而原生系统的功能我们也大都知晓,无非是一些增删改查、数据优化的使用。但有一些开源工具项目可以帮助我们对数据库降本增效。
在本文中,小编将介绍一个名为SuperDuperDB
的开源项目,它是一个用Python编写的AI开发和部署框架,可对接数据库,让数据库具备AI特性。
项目介绍
项目地址:https://github.com/SuperDuperDB/superduperdb
将 AI 引入数据库,直接与您的数据库和数据集成。想想就应该特别有意思。它允许培训和管理任何 AI 模型和 API,为用户提供更强大的数据库功能。支持将人工智能直接整合到数据库操作中。
SuperDuperDB消除了复杂的MLOps管道和专用向量数据库的需求,使我们能够通过简单的Python接口,高效灵活地构建端到端的AI应用!
核心特性
- 将AI与现有数据基础设施集成: 在单一可扩展的系统中将任何AI模型和API与您的数据库集成,无需额外的预处理步骤、ETL或冗余代码。
- 流式推理: 当新数据到达时,让您的模型自动激活且立即计算输出,保持您的系统始终更新。
- 可扩展的模型训练: 通过查询您的训练数据,在大型、多样化的数据集上训练AI模型。通过内置的计算优化确保最佳性能。
- 模型调用链: 通过连接模型和API,轻松设置复杂的工作流程,以相互依赖和顺序的方式协同工作和调用。
- 简单易扩展的接口: 添加并利用Python生态系统中的任何函数、程序、脚本或算法,增强您的工作流和应用。在使用SuperDuperDB时,可以仅通过简单的Python命令即可深入到任何实现层级,包括模型的内部实现。
- 处理复杂数据类型: 在您的数据库中直接处理图像、视频、音频等数据,以及任何可以在Python中编码为bytes的类型的数据。
- 特征存储: 将您的数据库转变为可用于存储和管理AI模型中任意数据类型的数据输入和输出的中心化存储库,使各种数据可以在熟悉的环境中易结构化的格式来使用。
- 向量搜索: 无需将数据复制和迁移到其他专门的向量数据库 - 将您现有的测试和生产的数据库转变为全功能的多模态向量搜索数据库,包括使用强大的模型和API轻松生成数据的向量Embedding和数据的向量索引。
目前支持的数据库
模型部署
直接将任何AI模型(无论是开源、商业模型还是自行开发的)与您的数据库集成、训练和管理,仅需一个Python命令即可自动在数据库上模型进行计算输出:
安装和部署模型
m = db.add( <sklearn_model>|<torch_module>|<transformers_pipeline>|<arbitrary_callable>, preprocess=<your_preprocess_callable>, postprocess=<your_postprocess_callable>, encoder=<your_datatype> )
模型推理
m.predict(X='<input_column>', db=db, select=<mongodb_query>, listen=False|True, create_vector_index=False|True)
模型训练
m.fit(X='<input_column_or_key>', y='<target_column_or_key>', db=db, select=<mongodb_query>|<ibis_query>)
通过一个简单的Python命令,将通过API访问的三方模型和您自己的其他模型集成在一起
m = db.add( OpenAI<Task>|Cohere<Task>|Anthropic<Task>|JinaAI<Task>(*args, **kwargs), # <Task> - Embedding,ChatCompletion,... )
安装使用
通过pip安装SuperDuperDB
pip install superduperdb
通过Docker安装SuperDuperDB
docker run -p 8888:8888 superduperdb/demo:latest
SuperDuperDB与数据库联动做哪些事情?
- 部署 ML/AI 模型到你的数据库
- 直接从您的数据库训练模型
- 基于你的数据进行向量搜索
- 将AI接口集成,与其他模型协同工作
- 将 Llama2 模型加到SuperDuperDB中
- 将模型的输出结果作为下游模型的输入
总结
SuperDuperDB 是一个简单而强大的AI开发和部署框架,它为开发人员提供了一个灵活的数据使用途径。如果你对这款项目感兴趣,不妨去GitHub上查看SuperDuperDB项目的更多信息,并尝试在自己的项目中使用它。