- New runs are tagged on dispatch with dataset:<id> / algorithm:<short> /
N:<n> / T:<t> / J:<j> (single value per axis).
- /runs accepts ?dataset=&algorithm=&N=&T=&J= and applies Prefect's
tags: {all_: [...]} server-side. Without filter, fetch cap is 10; with
filter, 50 so narrow results aren't truncated. Prefect's own 200-limit
on filter queries is clamped inside recent_runs.
- New /runs/axes.json returns the universe of chip values across the last
200 deployment runs so the chip bar shows history even when the current
slice is narrow.
- runs-filter.js rewritten to cassette-style single-select: clicking the
selected chip releases it. No 'all'/'none' meta chips. Chip state feeds
#runs-slot via hx-vals; a filter-changed custom event triggers an
immediate refetch on change, in addition to the 3s poll.
- Prefect client gets an update_tags(run_id, tags) helper.
- scripts/backfill_tags.py PATCHes tags onto every existing deployment
run (dry-run by default, --apply to commit).
|
||
|---|---|---|
| app | ||
| flows | ||
| scripts | ||
| .gitignore | ||
| clean.sh | ||
| makefile | ||
| pyproject.toml | ||
| README.md | ||
| requirements-frozen.txt | ||
| uv.lock | ||
Dimension Reduction Lab
A Python project exploring various dimension reduction techniques using Prefect for workflow orchestration.
Overview
This project serves as an experimental sandbox for studying dimensionality reduction and embedding algorithms within a reproducible environment. The primary goal is to evaluate and compare different techniques (like UMAP, t-SNE, PaCMAP, and TriMap) while focusing on their stability characteristics, particularly in the context of changing or drifting data distributions. By leveraging Prefect's workflow management capabilities, we can systematically analyze how these algorithms perform across arbitrary datasets, track their behavior over time, and measure their sensitivity to various hyperparameters and data perturbations.
Requirements
The project uses several key dependencies (as seen in requirements.frozen.txt):
Package Management
This project uses UV (μv) as its package manager, a fast Python package installer and resolver written in Rust. The requirements.frozen.txt file was generated using UV to ensure reproducible dependencies.
To update dependencies:
uv pip compile pyproject.toml (--all-extras) -o requirements.frozen.txt
Modifying --all-extras to include either an individual optional dependency group or all of them. See the pyproject.toml file for more information.
This project uses Prefect for workflow orchestration, for it's lightweight approach to running experiments from a UI and compatibility with single-node deployments.