Aquila DB 是一个神经搜索引擎。换句话说,它是一个用于索引由机器学习模型生成的潜在向量以及JSON元数据的数据库,用于执行k-最近邻检索。它设置简单、与语言无关,可以轻松添加到您的机器学习应用程序中。就目前的功能而言,Aquila DB 是一个现成的解决方案,可供机器学习工程师和数据科学家开箱即用地构建**神经信息检索**应用,且依赖最小。
该项目仍处于 alpha 版本,我们已经在生产环境中使用它来支持 https://aquila.network 的语义搜索。
想支持这个项目吗?是的,我们喜欢收到星标⭐和大声呼喊🗣️ 🤗
适用对象
- 如果您正在进行数据科学项目,需要存储大量数据并根据某些特征向量检索相似数据,这将是一个有用的工具,具有真实世界 Web 应用程序所需的额外优势。
- 您是否在处理大量图像和相关元数据?想要找到相似的图像?您来对地方了。
- 如果您正在寻找文档数据库,这里不适合您。
技术
Aquila DB 为 Aquila Network 的搜索功能提供支持。以下是 Aquila DB 在整个生态系统中的位置:
如果您认真想深入了解,请阅读我们的**白皮书和技术规范**(正在积极开发中)。
顺便说一下,Aquila Network 中的一切都由规范定义,我们大部分工作都投入其中。我们还维护着这些规范的高质量实现,并考虑到非技术用户。这是为了确保 Aquila Network 完全开放、设计上去中心化且公平。您可以遵循这些规范实现您的替代软件,并且仍然可以不受限制地与网络交互。
安装
Debian
运行 curl -s -L https://raw.githubusercontent.com/Aquila-Network/AquilaDB/master/install.sh | /bin/bash -s -- -d 1
。
Docker
您需要在系统中安装 Docker
构建镜像(轻量版):docker build https://raw.githubusercontent.com/Aquila-Network/AquilaDB/master/Dockerfile -t aquiladb:local
构建镜像(大数据版):docker build https://raw.githubusercontent.com/Aquila-Network/AquilaDB/master/DockerfileBig -t aquiladb:localbg
运行镜像(部署 Aquila DB 轻量版):docker run -p 5001:5001 -d aquiladb:local
运行镜像(部署 Aquila DB 大数据版):docker run -p 5001:5001 -d aquiladb:localbg
客户端 SDK
我们目前正在开发多个客户端库,以抽象部署的 Aquila DB 与您的应用程序之间的通信。
如何获取客户端身份验证的私钥(钱包密钥)
当您使用客户端库与 AquilaDB 进行身份验证时,您可能需要访问 AquilaDB 使用的相同私钥(钱包密钥)。该密钥位于 AquilaDB Docker 容器内的 /ossl/
目录中(如果您直接安装 AquilaDB 而不使用 Docker,则位于您的计算机中)。要访问 AquilaDB 容器内的密钥,请按照以下步骤操作:
- 识别已运行的
aquiladb
Docker 实例的CONTAINER ID
:docker ps
- 将 Docker 容器中的私钥复制到主机:
docker cp CONTAINER_ID:/ossl/ ./
- 现在您将在当前位置看到一个名为
ossl
的新目录。使用其中的密钥。
高级用户提示
如果您的流程需要提前生成私钥,您可以在主机上生成私钥,然后将其挂载到容器的 /ossl/
目录。
运行:
mkdir -p <host>/ossl/
openssl genrsa -passout pass:1234 -des3 -out <host>/ossl/private.pem 2048
openssl rsa -passin pass:1234 -in <host>/ossl/private.pem -outform PEM -pubout -out <host>/ossl/public.pem
openssl rsa -passin pass:1234 -in <host>/ossl/private.pem -out <host>/ossl/private_unencrypted.pem -outform PEM
进展
该项目仍在并将继续积极开发,同时进行中间生产版本发布。它可以作为独立数据库使用,也可以作为 Aquila Network 中的参与节点使用。请注意,Aquila Port(Aquila DB 节点的点对点网络层)也正在开发中。目前,在 Aquila Hub 开发启动之前,您需要部署自定义模型来为 Aquila DB 提供向量嵌入。
贡献
我们已经准备了一份文档,以帮助任何有兴趣贡献的人立即开始使用 Aquila DB。 这是我们的高级发布路线图。
学习
我们已经开始与开发者会面并进行关于 Aquila DB 的小型讨论。以下是我们在这些场合使用的幻灯片:http://bit.ly/AquilaDB-slides
视频:
就当前 AquilaDB 发布的功能而言,您可以开箱即用地构建**神经信息检索**应用程序,无需任何外部依赖。以下是一些有用的链接,可以帮助您了解更多并开始构建:
- 微软发布了一篇论文和 YouTube 视频,以帮助任何感兴趣的人入门:
- 万物嵌入:神经网络时代的搜索:https://www.youtube.com/watch?v=JGHVJXP9NHw
- 自动编码器是一种深度学习算法,可以帮助您构建语义向量 - 神经信息检索的基础。以下是一些关于基于自动编码器的信息检索的链接:
- 请注意,信息检索的概念不仅适用于文本数据,还适用于任何数据。您只需要使用深度神经网络将任何源数据类型编码为密集向量即可。
我们的赞助商
发送电子邮件赞助此项目 adbadmin@protonmail.ch。
引用 Aquila DB
如果您在学术论文中使用 Aquila DB,我们将😍被引用。以下是引用 Aquila DB 的两种方式:
\footnote{https://github.com/Aquila-Network/AquilaDB}
@misc{AquilaNetwork2019AquilaDB,
title={AquilaDB: 神经搜索引擎},
author={Jubin Jose, Nibin Peter},
howpublished={\url{https://github.com/Aquila-Network/AquilaDB}},
year={2019}
}
许可证
Apache 许可证 2.0 许可证文件
由 ❤️ 与 a-mma (a_മ്മ) 创建