saev is research code.
PRs that fix bugs, add datasets, or improve docs are welcome.
Large architectural rewrites: please open a discussion first.
Install uv. Clone this repository, then from the root directory:
uv run python -m saev --helpYou also need yek and lychee for generating docs.
If you want to do any of the web interface work, you need elm, elm-format and tailwindcss.
justfile contains commands for testing and linting.
just lint will format and lint.
just test will format, lint and test, then report coverage.
To run just one test, run uv run python -m pytest src/saev -k TESTNAME.
- Run
just test. - Check that there are no regressions. Unless you are certain tests are not needed, the coverage % should either stay the same or increase.
- Run
just docs. - Fix any missing doc links.
If you add a new neural network or other hard-to-unit-test bit of code, it should either be a trivial change or it should come with an experiment demonstrating that it works.
This means some links to WandB, or a small report in markdown in the repo itself.
For example, if you wanted to add a new activation function from a recent paper, you should train a small sweep using the current baseline, demonstrate some qualitative or quantitative results, and then run the same sweep with your minimal change, and demonstrate some improvement (speed, quality, loss, etc).
Document this in a markdown report (in src/saev/nn for a new activation function) and include it in the docs.
Neural networks are hard. It's okay.
Be polite, kind and assume good intent.