Add your description here
Project description
Getting started
This website serves as a living companion to the tutorial manuscript (coming soon!) to be presented at ICML 2025. It dreams of being a one-stop shop for learning all things about Associative Memory. It’s definitely not there yet.
See the tutorials for a brief introduction to the list of example notebooks.
Installation
We have tried to streamline the installation of the repo as much as possible.
Pre-requisites
- Install
uvusingcurl -LsSf https://astral.sh/uv/install.sh | sh - Install
quarto - We use
conda(or better yet,mamba) for managing theffmpegdependency, which only matters ifffmpegis not already installed on your system.
Setting up the environment
From the root of the repo:
uv sync
source .venv/bin/activate
uv run ipython kernel install --user --env VIRTUAL_ENV $(pwd)/.venv --name=amtutorial # Expose venv to ipython
# OPTIONAL: For rendering videos in notebooks
conda install conda-forge::ffmpeg conda-forge::openh264
# OPTIONAL: For developing the interactive frontend
conda install conda-forge::nodejs
npm install --prefix javascript && npm run build --prefix javascript
You can view a local version of the website with
uv run nbdev_preview
Development pipelines
To push a complete update to the website:
git checkout main
# Update the website. Takes a bit even with cached training runs
make deploy && git add . && git commit -m "Update site" && git push
# Push patch version to pypi (preferably, only if `amtutorials/src` was updated)
make pypi && uv run nbdev_pypi
The site will be live after a few minutes on github.
Reference scripts
uv run nbdev_preview # Preview website locally
bash scripts/prep_website_deploy.sh # Sync dependencies, export qmd notebooks to ipynb for colab, and build website
bash scripts/export_qmd_as_ipynb.sh # Export qmd notebooks to ipynb for colab
uv run python scripts/sync_dependencies.py # Sync nbdev and pyproject.toml dependencies
uv run python scripts/prep_pypi.py # Bump patch version and sync dependencies
uv run nbdev_pypi # Push to pypi
Website structure
.ipynb versions of the tutorial notebooks are located in
tutorial_ipynbs. Setup the uv environment above to play with them
locally, or run them in Google Colab.
[!NOTE]
The first time you run the notebooks will be slow. We cache some of the long-running code after the first time, but this will not persist across Colab sessions
- Binary Dense Storage Notebook
- Energy Transformer Notebook
- Diffusion as Memory Notebook
- Distributed Associative Memory Notebook
The website () is built using an in-house fork
of nbdev to allow
developing everything (i.e., the tutorials, corresponding pip package,
and documentation) using plain text representations of jupyter notebooks
in .qmd files. The website preserves the folder-based routing in the
nbs/ folder.
With the right
extensions and
hotkeys,
.qmd files are pleasant to develop inside VSCode and interop
seamlessly with both git and AI tooling.
Deploying
Deploy to tutorial.amemory.net by pushing commits to the main branch
after building the site locally.
uv run nbdev_export && uv run nbdev_docs && git add . && git commit -m "Update site" && git push
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amtutorial-0.0.7.tar.gz.
File metadata
- Download URL: amtutorial-0.0.7.tar.gz
- Upload date:
- Size: 55.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a7007eb12c94f7dfca4ba60448f185e8cee58f5af5c25fcf68b44a66ba7a0aa
|
|
| MD5 |
419f7bf789845fb64b0ee53b340384b4
|
|
| BLAKE2b-256 |
a32890d8e8213e8673eeb41f32f8d50aac76a56bfba98dad81aa9f56fe932f80
|
File details
Details for the file amtutorial-0.0.7-py3-none-any.whl.
File metadata
- Download URL: amtutorial-0.0.7-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c28b17f8b94b1ca65be0ea5f90a08a6a95b78269ae181848cef0388e7c6e0adb
|
|
| MD5 |
ac1dd7055b84f6e00d8b19d6726201b1
|
|
| BLAKE2b-256 |
5b4237c059da09fd0c8df69abec14d95aa695efd96e0704a3da87923c80514d7
|