Skip to main content

Data Lake for Multi-Modal AI Search

Project description


Deep Lake: Database for AI

PyPI version PyPI version

DocsGet StartedAPI ReferenceLangChain & VectorDBs CourseBlogWhitepaperSlackTwitter

What is Deep Lake?

Deep Lake is a Database for AI powered by a storage format optimized for deep-learning applications. Deep Lake can be used for:

  1. Storing and searching data plus vectors while building LLM applications
  2. Managing datasets while training deep learning models

Deep Lake simplifies the deployment of enterprise-grade LLM-based products by offering storage for all data types (embeddings, audio, text, videos, images, dicom, pdfs, annotations, and more), querying and vector search, data streaming while training models at scale, data versioning and lineage, and integrations with popular tools such as LangChain, LlamaIndex, Weights & Biases, and many more. Deep Lake works with data of any size, it is serverless, and it enables you to store all of your data in your own cloud and in one place. Deep Lake is used by Intel, Bayer Radiology, Matterport, ZERO Systems, Red Cross, Yale, & Oxford.

Deep Lake includes the following features:

Multi-Cloud Support (S3, GCP, Azure) Use one API to upload, download, and stream datasets to/from S3, Azure, GCP, Activeloop cloud, local storage, or in-memory storage. Compatible with any S3-compatible storage such as MinIO.
Native Compression with Lazy NumPy-like Indexing Store images, audio, and videos in their native compression. Slice, index, iterate, and interact with your data like a collection of NumPy arrays in your system's memory. Deep Lake lazily loads data only when needed, e.g., when training a model or running queries.
Dataloaders for Popular Deep Learning Frameworks Deep Lake comes with built-in dataloaders for Pytorch and TensorFlow. Train your model with a few lines of code - we even take care of dataset shuffling. :)
Integrations with Powerful Tools Deep Lake has integrations with Langchain and LLamaIndex as a vector store for LLM apps, Weights & Biases for data lineage during model training, MMDetection for training object detection models, and MMSegmentation for training semantic segmentation models.
100+ most-popular image, video, and audio datasets available in seconds Deep Lake community has uploaded 100+ image, video and audio datasets like MNIST, COCO, ImageNet, CIFAR, GTZAN and others.
Instant Visualization Support in the Deep Lake App Deep Lake datasets are instantly visualized with bounding boxes, masks, annotations, etc. in Deep Lake Visualizer (see below).

Visualizer

🚀 How to install Deep Lake

Deep Lake can be installed using pip:

pip install deeplake

To access all of Deep Lake's features, please register in the Deep Lake App.

🧠 Deep Lake Code Examples by Application

Vector Store Applications

Using Deep Lake as a Vector Store for building LLM applications:

- Vector Store Quickstart

- Vector Store Tutorials

- LangChain Integration

- LlamaIndex Integration

- Image Similarity Search with Deep Lake

Deep Learning Applications

Using Deep Lake for managing data while training Deep Learning models:

- Deep Learning Quickstart

- Tutorials for Training Models

⚙️ Integrations

Deep Lake offers integrations with other tools in order to streamline your deep learning workflows. Current integrations include:

📚 Documentation

Getting started guides, examples, tutorials, API reference, and other useful information can be found on our documentation page.

🎓 For Students and Educators

Deep Lake users can access and visualize a variety of popular datasets through a free integration with Deep Lake's App. Universities can get up to 1TB of data storage and 100,000 monthly queries on the Tensor Database for free per month. Chat in on our website: to claim the access!

👩‍💻 Comparisons to Familiar Tools

Deep Lake vs Chroma

Both Deep Lake & ChromaDB enable users to store and search vectors (embeddings) and offer integrations with LangChain and LlamaIndex. However, they are architecturally very different. ChromaDB is a Vector Database that can be deployed locally or on a server using Docker and will offer a hosted solution shortly. Deep Lake is a serverless Vector Store deployed on the user’s own cloud, locally, or in-memory. All computations run client-side, which enables users to support lightweight production apps in seconds. Unlike ChromaDB, Deep Lake’s data format can store raw data such as images, videos, and text, in addition to embeddings. ChromaDB is limited to light metadata on top of the embeddings and has no visualization. Deep Lake datasets can be visualized and version controlled. Deep Lake also has a performant dataloader for fine-tuning your Large Language Models.

Deep Lake vs Pinecone

Both Deep Lake and Pinecone enable users to store and search vectors (embeddings) and offer integrations with LangChain and LlamaIndex. However, they are architecturally very different. Pinecone is a fully-managed Vector Database that is optimized for highly demanding applications requiring a search for billions of vectors. Deep Lake is serverless. All computations run client-side, which enables users to get started in seconds. Unlike Pinecone, Deep Lake’s data format can store raw data such as images, videos, and text, in addition to embeddings. Deep Lake datasets can be visualized and version controlled. Pinecone is limited to light metadata on top of the embeddings and has no visualization. Deep Lake also has a performant dataloader for fine-tuning your Large Language Models.

Deep Lake vs Weaviate

Both Deep Lake and Weaviate enable users to store and search vectors (embeddings) and offer integrations with LangChain and LlamaIndex. However, they are architecturally very different. Weaviate is a Vector Database that can be deployed in a managed service or by the user via Kubernetes or Docker. Deep Lake is serverless. All computations run client-side, which enables users to support lightweight production apps in seconds. Unlike Weaviate, Deep Lake’s data format can store raw data such as images, videos, and text, in addition to embeddings. Deep Lake datasets can be visualized and version controlled. Weaviate is limited to light metadata on top of the embeddings and has no visualization. Deep Lake also has a performant dataloader for fine-tuning your Large Language Models.

Deep Lake vs DVC

Deep Lake and DVC offer dataset version control similar to git for data, but their methods for storing data differ significantly. Deep Lake converts and stores data as chunked compressed arrays, which enables rapid streaming to ML models, whereas DVC operates on top of data stored in less efficient traditional file structures. The Deep Lake format makes dataset versioning significantly easier compared to traditional file structures by DVC when datasets are composed of many files (i.e., many images). An additional distinction is that DVC primarily uses a command-line interface, whereas Deep Lake is a Python package. Lastly, Deep Lake offers an API to easily connect datasets to ML frameworks and other common ML tools and enables instant dataset visualization through Activeloop's visualization tool.

Deep Lake vs MosaicML MDS format
  • Data Storage Format: Deep Lake operates on a columnar storage format, whereas MDS utilizes a row-wise storage approach. This fundamentally impacts how data is read, written, and organized in each system.
  • Compression: Deep Lake offers a more flexible compression scheme, allowing control over both chunk-level and sample-level compression for each column or tensor. This feature eliminates the need for additional compressions like zstd, which would otherwise demand more CPU cycles for decompressing on top of formats like jpeg.
  • Shuffling: MDS currently offers more advanced shuffling strategies.
  • Version Control & Visualization Support: A notable feature of Deep Lake is its native version control and in-browser data visualization, a feature not present for MosaicML data format. This can provide significant advantages in managing, understanding, and tracking different versions of the data.
Deep Lake vs TensorFlow Datasets (TFDS)

Deep Lake and TFDS seamlessly connect popular datasets to ML frameworks. Deep Lake datasets are compatible with both PyTorch and TensorFlow, whereas TFDS are only compatible with TensorFlow. A key difference between Deep Lake and TFDS is that Deep Lake datasets are designed for streaming from the cloud, whereas TFDS must be downloaded locally prior to use. As a result, with Deep Lake, one can import datasets directly from TensorFlow Datasets and stream them either to PyTorch or TensorFlow. In addition to providing access to popular publicly available datasets, Deep Lake also offers powerful tools for creating custom datasets, storing them on a variety of cloud storage providers, and collaborating with others via simple API. TFDS is primarily focused on giving the public easy access to commonly available datasets, and management of custom datasets is not the primary focus. A full comparison article can be found here.

Deep Lake vs HuggingFace Deep Lake and HuggingFace offer access to popular datasets, but Deep Lake primarily focuses on computer vision, whereas HuggingFace focuses on natural language processing. HuggingFace Transforms and other computational tools for NLP are not analogous to features offered by Deep Lake.
Deep Lake vs WebDatasets Deep Lake and WebDatasets both offer rapid data streaming across networks. They have nearly identical steaming speeds because the underlying network requests and data structures are very similar. However, Deep Lake offers superior random access and shuffling, its simple API is in python instead of command-line, and Deep Lake enables simple indexing and modification of the dataset without having to recreate it.
Deep Lake vs Zarr Deep Lake and Zarr both offer storage of data as chunked arrays. However, Deep Lake is primarily designed for returning data as arrays using a simple API, rather than actually storing raw arrays (even though that's also possible). Deep Lake stores data in use-case-optimized formats, such as jpeg or png for images, or mp4 for video, and the user treats the data as if it's an array, because Deep Lake handles all the data processing in between. Deep Lake offers more flexibility for storing arrays with dynamic shape (ragged tensors), and it provides several features that are not naively available in Zarr such as version control, data streaming, and connecting data to ML Frameworks.

Community

Join our Slack community to learn more about unstructured dataset management using Deep Lake and to get help from the Activeloop team and other users.

We'd love your feedback by completing our 3-minute survey.

As always, thanks to our amazing contributors!

Made with contributors-img.

Please read CONTRIBUTING.md to get started with making contributions to Deep Lake.

README Badge

Using Deep Lake? Add a README badge to let everyone know:

deeplake

[![deeplake](https://img.shields.io/badge/powered%20by-Deep%20Lake%20-ff5a1f.svg)](https://github.com/activeloopai/deeplake)

Disclaimers

Dataset Licenses

Deep Lake users may have access to a variety of publicly available datasets. We do not host or distribute these datasets, vouch for their quality or fairness, or claim that you have a license to use the datasets. It is your responsibility to determine whether you have permission to use the datasets under their license.

If you're a dataset owner and do not want your dataset to be included in this library, please get in touch through a GitHub issue. Thank you for your contribution to the ML community!

Citation

If you use Deep Lake in your research, please cite Activeloop using:

@article{deeplake,
  title = {Deep Lake: a Lakehouse for Deep Learning},
  author = {Hambardzumyan, Sasun and Tuli, Abhinav and Ghukasyan, Levon and Rahman, Fariz and Topchyan, Hrant and Isayan, David and Harutyunyan, Mikayel and Hakobyan, Tatevik and Stranic, Ivo and Buniatyan, Davit},
  url = {https://www.cidrdb.org/cidr2023/papers/p69-buniatyan.pdf},
  booktitle={Proceedings of CIDR},
  year = {2023},
}

Acknowledgment

This technology was inspired by our research work at Princeton University. We would like to thank William Silversmith @SeungLab for his awesome cloud-volume tool.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

deeplake-4.7.0-cp313-cp313-manylinux2014_x86_64.whl (45.9 MB view details)

Uploaded CPython 3.13

deeplake-4.7.0-cp313-cp313-manylinux2014_aarch64.whl (42.1 MB view details)

Uploaded CPython 3.13

deeplake-4.7.0-cp313-cp313-macosx_11_0_arm64.whl (33.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

deeplake-4.7.0-cp312-cp312-manylinux2014_x86_64.whl (45.9 MB view details)

Uploaded CPython 3.12

deeplake-4.7.0-cp312-cp312-manylinux2014_aarch64.whl (42.1 MB view details)

Uploaded CPython 3.12

deeplake-4.7.0-cp312-cp312-macosx_11_0_arm64.whl (33.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

deeplake-4.7.0-cp311-cp311-manylinux2014_x86_64.whl (45.9 MB view details)

Uploaded CPython 3.11

deeplake-4.7.0-cp311-cp311-manylinux2014_aarch64.whl (42.1 MB view details)

Uploaded CPython 3.11

deeplake-4.7.0-cp311-cp311-macosx_11_0_arm64.whl (33.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

deeplake-4.7.0-cp310-cp310-manylinux2014_x86_64.whl (45.9 MB view details)

Uploaded CPython 3.10

deeplake-4.7.0-cp310-cp310-manylinux2014_aarch64.whl (42.1 MB view details)

Uploaded CPython 3.10

deeplake-4.7.0-cp310-cp310-macosx_11_0_arm64.whl (33.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

deeplake-4.7.0-cp39-cp39-manylinux2014_x86_64.whl (45.9 MB view details)

Uploaded CPython 3.9

deeplake-4.7.0-cp39-cp39-manylinux2014_aarch64.whl (42.1 MB view details)

Uploaded CPython 3.9

deeplake-4.7.0-cp39-cp39-macosx_11_0_arm64.whl (33.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file deeplake-4.7.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82d8731b8f531faf709a89ca43f3c63d7395d9ccab1d3d51e8e47a47627288ba
MD5 55653b0d3f97bed16c4c4cc27a642314
BLAKE2b-256 1055f3d80748ab81da5e4917273d87ab4c681abd94f30c8242543b7cd6d5f703

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp313-cp313-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb899de3f04b4eb5b002a840ad7ca6ebc82db698f264cd83fe448bf38cb046a3
MD5 bfcb0f8bd0a3043e9ba35a6cf6172fa4
BLAKE2b-256 d2c3ff84b86b003da07614789aa0810b2fc5dafb193f86a8fb4598a6bb2514b2

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 550daaeda2032d2ff1cc7b5d0e6b7cb7c0aa7cb6b108eb36969141b3bbe1f2b6
MD5 b4a438551b6552a29a30a84b9af80ebf
BLAKE2b-256 477d3aa729398e416c94d8181f59cae86e0fad0cfd974e9435d35dedc1e0248f

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51c06f8648c90cc1559bc06d1f04687f7b72e68b994c1a3581b18dff9358431d
MD5 15a5351953dcbf69d793533fbf2de314
BLAKE2b-256 a47a640e192b9589502f6337d6dfef27a922c5895c42d32c0beb1f3dc93a20d3

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp312-cp312-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0a8fed55e3a8c16893cd516162da5710b2b73370495fb05a75c34f3482595337
MD5 d37f07e2b8c1669d615e02310073e4e1
BLAKE2b-256 96df7fd9ad348adfb285c7fa128be019709781d1b70c2c56df9dccc6a05a0dec

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4febbb5451f2aaca534b7bfd6c54b57bb8691c3e9141fe8c880d9aa256e0060
MD5 cd9efa512655c27e11f1ebc09387af1e
BLAKE2b-256 56c82066c2077b65c95bd362aeb0d6dc41fb9f1f801fa64a15bb5bdc1cc6f236

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 078c812621e4e11ce290713368fee0b01bfea206b320e1006ca08139b0be3e7b
MD5 b788f0a076dedd60ec479869e5429d9b
BLAKE2b-256 6bffd3398739b630532810137900dd1c7de624770faae5382f1bde8aad763edf

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp311-cp311-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3ed3344c9d0cccd30810b337418375d0da7111cc7300eb0be114c0b719986d3
MD5 b9908284df08b79f7b627535b3e727f3
BLAKE2b-256 bfa51238a84eebc96c344778fd13b24adca2dcbfb06be97201465dfa5e368a95

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6f320381cb8d42fa3d221f23d0768f50acfdd8875f935572a2d943f4b473b85
MD5 9f41b56eee94f7596e0d737db3cbbafc
BLAKE2b-256 af44b872d02f9b53be5ec06d353dd83eccb2192f3e8cb1bb5788754cbbdbc32b

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7249110f1f6e4c24490ec15cbdfde14a74e9b624fb33b2edd9f2a648ebf7757e
MD5 157a2aeafe1687c36409fcbbbb6dbfd2
BLAKE2b-256 df738ca51d53e4565ddbf9d5aeff1d37fdbf3839232158bf0105e43fecc81372

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp310-cp310-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp310-cp310-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b25b8677d00279bd18e1b628e594f5018d7e74ea1ce4f0c63092d84f6f04ebac
MD5 8d61d911da981e4181221601f3a0db4a
BLAKE2b-256 e052e1f8b97c0806b7238d1d8a530d9332d890bfb1f6caba7d88fb26eb6e38a8

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96c9df3e95c2390b566f8b986e1364027ee5f26fa5d9c8f9b305628cc59d9a69
MD5 91a1faf07ae916eb4d39d23472174760
BLAKE2b-256 f95ba05f626d5928ef0c57c79051d9eea7144857646726cf8be6ac8028c4fc81

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c3cff5cb8a351a4a3432ce9cf81b305183599141d6598e71d50ea7c5f093061
MD5 c38cafcf97695d2e30776a37bd03d660
BLAKE2b-256 312c5a9fa690276bc91e173f77b3f90118ad1872ce62dc0d99f2448c020d83d6

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp39-cp39-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d8d5fc3e9407c143b4488abc50792f367733132d359053f76d2b41394ad7526
MD5 8ed45a05a26a5c580b9dd5e968605c82
BLAKE2b-256 515cd43f0ce72314d784fa7a7ab5cd0500aa6c80911ac9e51cdedbd571d54348

See more details on using hashes here.

File details

Details for the file deeplake-4.7.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deeplake-4.7.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33e3fe60c0d5f147443604b17d5470abd6bd41619c52684e7df538abe7716de2
MD5 6eaa05b938296ef7bfe7dc8a1e504b21
BLAKE2b-256 86fb95071380cf334536ae13cb862b92ae3b0f520d242023ff79a059129d7aff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page