推荐一款强大的AI开源项目!有了它,将你的数据库秒变AI数据库!
前言
在当今数字化的世界中,数据库系统扮演着至关重要的角色。而原生系统的功能我们也大都知晓,无非是一些增删改查、数据优化的使用。但有一些开源工具项目可以帮助我们对数据库降本增效。
在本文中,小编将介绍一个名为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项目的更多信息,并尝试在自己的项目中使用它。
都创死: 本文教程可以本地训练日语吗
北风之神c: 总结的很全面,写得赞,博主用心了。 celery对目录层级文件名称格式要求太高,只适合规划新的项目,对不规则文件夹套用难度高。 所以新手使用celery很仔细的建立文件夹名字、文件夹层级、python文件名字。 所以网上的celery博客教程虽然很多,但是并不能学会使用,因为要运行起来需要以下6个方面都掌握好,博客文字很难表达清楚或者没有写全面以下6个方面。 celery消费任务不执行或者报错NotRegistered,与很多方面有关系,如果要别人排错,至少要发以下6方面的截图,因为与一下6点关系很大。 1)整个项目目录结构, 2)@task入参 ,3)celery的配置,4)celery的配置 include ,5)cmd命令行启动参数 --queues= 的值,6)用户在启动cmd命令行时候,用户所在的文件夹。 在不规范的文件夹路径下,使用celery难度很高,一般教程都没教。 [项目文件夹目录格式不规范下的celery使用演示](https://github.com/ydf0509/celery_demo) 。 此国产分布式函数调度框架 funboost python万能通用函数加速器 https://funboost.readthedocs.io/zh-cn/latest/articles/c1.html , 从用法调用难度,用户所需代码量,超高并发性能,qps控频精确程度,支持的中间件类型,任务控制方式,稳定程度等20个方面全方位超过celery。发布性能提高1000%,消费性能提高2000%。 python万能分布式函数调度框架funboost支持python所有类型的并发模式和一切知名消息队列中间件,python函数加速器,只需要一行代码调度任意函数,框架包罗万象,万能编程功能宝典,一统编程思维,与业务不绑定,适用范围广。 pip install funboost
写代码真烦: requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='user-images.githubusercontent.com', port=443): Read timed out. (read timeout=5)你好这个问题怎么解决
写代码真烦: requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='user-images.githubusercontent.com', port=443): Read timed out. (read timeout=5)你好这个问题怎么解决
Yuan妙不可言: 博主对这个项目有研究吗