Introduction to Aquila DB
Overview
Aquila DB is a neural search engine designed for efficient information retrieval. By indexing latent vectors created by machine learning models alongside JSON metadata, Aquila DB provides a robust k-nearest neighbors (k-NN) retrieval system. This tool is not only easy to set up but also language-agnostic, allowing seamless integration into machine learning applications. Although still in its alpha phase, Aquila DB is already utilized in production to enhance semantic search capabilities.
Intended Users
Aquila DB is especially useful for data scientists and machine learning engineers handling large amounts of data. It is ideal for projects needing to store data and retrieve similar items based on feature vectors. While it excels in managing images and related metadata, it is crucial to note that it is not designed as a document database.
Technological Integration
At the heart of the Aquila Network, Aquila DB is pivotal in powering search functionalities. The system is built to facilitate neural information retrieval applications with minimal additional dependencies. Users interested in the technical workings can explore the corresponding whitepapers and technical specifications, which outline the open, decentralized, and fair design principles of the Aquila Network.
Installation
Aquila DB can be conveniently installed on Debian systems or using Docker. For Debian, a simple script from the repository is available, while Docker users can build and run images designed for either lite deployment or handling big data. The Docker installation requires Docker to be pre-installed.
Client SDKs
To further simplify communication between Aquila DB and user applications, several client libraries are in development. These libraries, available for Python and Node.js, provide a layer of abstraction, enabling easier integration into various projects.
Setting Up Client Authentication
To authenticate clients, users might need access to a private key used by Aquila DB. This key is stored in the /ossl/
directory within the Aquila DB Docker container. Users can copy keys from a running Docker instance to the host machine or generate keys and mount them into the container if necessary.
Project Progress and Contributions
Aquila DB is under continuous development with frequent production releases. It can be deployed as a standalone database or as part of the Aquila Network peer-to-peer layer, which is still evolving. Users need to deploy their custom models for vector embeddings until further developments are completed. Anyone interested in supporting and contributing to the project can find detailed documentation to get started immediately.
Learning Resources
To facilitate learning, Aquila DB offers various learning resources, including slides and a video introduction to neural information retrieval. These resources aim to onboard users into the world of neural search and help them start building applications around it. Key topics include embeddings and autoencoders, fundamental to creating semantic vectors used in neural information retrieval.
Sponsorship and Citation
The project is open to sponsors, with contact details provided for interested parties. Additionally, users who apply Aquila DB in academic works are encouraged to cite it, with citation formats available for reference.
License
Aquila DB is released under the Apache License 2.0, ensuring that it remains free to use, modify, and distribute.
Aquila DB stands out by its simplicity, flexibility, and focus on enabling advanced search capabilities within machine learning spaces.