apple/embedding-atlas
Embedding Atlas
Embedding Atlas is a tool that provides interactive visualizations for large embeddings. It allows you to visualize, cross-filter, and search embeddings and metadata.
Features
-
🏷️ Automatic data clustering & labeling: Interactively visualize and navigate overall data structure.
-
🫧 Kernel density estimation & density contours: Easily explore and distinguish between dense regions of data and outliers.
-
🧊 Order-independent transparency: Ensure clear, accurate rendering of overlapping points.
-
🔍 Real-time search & nearest neighbors: Find similar data to a given query or existing data point.
-
🚀 WebGPU implementation (with WebGL 2 fallback): Fast, smooth performance (up to few million points) with modern rendering stack.
-
📊 Multi-coordinated views for metadata exploration: Interactively link and filter data across metadata columns.
Please visit https://apple.github.io/embedding-atlas for a demo and documentation.
Get started
To use Embedding Atlas with Python:
|
|
In addition to the command line tool, Embedding Atlas is also available as a Jupyter widget:
|
|
Finally, components from Embedding Atlas are also available in an npm package:
|
|
|
|
For more information, please visit https://apple.github.io/embedding-atlas/overview.html.
BibTeX
For the Embedding Atlas tool:
|
|
For the algorithm that automatically produces clusters and labels in the embedding view:
|
|
Development
This repo contains multiple sub-packages:
Frontend:
-
packages/component: TheEmbeddingViewandEmbeddingViewMosaiccomponents. -
packages/table: TheTablecomponent. -
packages/viewer: The frontend application for visualizing embedding and other columns. It also provides theEmbeddingAtlascomponent that can be embedded in other applications. -
packages/density-clustering: The density clustering algorithm, written in Rust. -
packages/umap-wasm: An implementation of UMAP algorithm in WebAssembly (with the umappp C++ library). -
packages/embedding-atlas: Theembedding-atlaspackage that get published. It imports all of the above and exposes their API in a single package.
Python:
packages/backend: A Python package namedembedding-atlasthat provides theembedding-atlascommand line tool.
Documentation:
packages/docs: The documentation website.
For more information, please visit https://apple.github.io/embedding-atlas/develop.html.
License
This code is released under the MIT license.