Skip to content

the-tuning-machine/SteLA_Project

Repository files navigation

Open in Dev Containers Open in GitHub Codespaces Documentation

stellatscale

MVA course project: experimental validation of key claims in StelLA: Subspace Learning in Low-Rank Adaptation using Stiefel Manifold, with controlled small-scale experiments.

Installing

To install this package, run:

pip install stellatscale

Using

Example usage:

import stellatscale

...

Repository Layout

  • src/stellatscale: installable package code
  • tests: test suite
  • scripts: runnable research and benchmarking scripts
  • notebooks: exploratory notebooks
  • deliverables: paper, poster, and report sources
  • docs: MkDocs content

Research Scripts

Run the comparison and benchmark scripts from the repository root:

uv run poe bench
uv run python -m scripts.bench_efficiency
uv run python -m scripts.bench_expressivity

The notebook used for exploration lives at notebooks/notebook.ipynb.

Attribution

The minimal transformer backbone used by the research models is adapted from nanoGPT by Andrej Karpathy under the MIT License. The project keeps the full license text and attribution in THIRD_PARTY_NOTICES.md.

Contributing

Prerequisites
  1. Generate an SSH key and add the SSH key to your GitHub account.

  2. Configure SSH to automatically load your SSH keys:

    cat << EOF >> ~/.ssh/config
    
    Host *
      AddKeysToAgent yes
      IgnoreUnknown UseKeychain
      UseKeychain yes
      ForwardAgent yes
    EOF
  3. Install Docker Desktop.

  4. Install VS Code and VS Code's Dev Containers extension. Alternatively, install PyCharm.

  5. Optional: install a Nerd Font such as FiraCode Nerd Font and configure VS Code or PyCharm to use it.

Development environments

The following development environments are supported:

  1. ⭐️ GitHub Codespaces: click on Open in GitHub Codespaces to start developing in your browser.

  2. ⭐️ VS Code Dev Container (with container volume): click on Open in Dev Containers to clone this repository in a container volume and create a Dev Container with VS Code.

  3. ⭐️ uv: clone this repository and run the following from root of the repository:

    git clone git@github.com:the-tuning-machine/SteLA_Project.git
    cd SteLA_Project
    
    # Create and install a virtual environment
    uv sync --python 3.12 --all-extras
    
    # Activate the virtual environment
    source .venv/bin/activate
    
    # Install the pre-commit hooks
    pre-commit install --install-hooks
  4. VS Code Dev Container: clone this repository, open it with VS Code, and run Ctrl/⌘ + + PDev Containers: Reopen in Container.

  5. PyCharm Dev Container: clone this repository, open it with PyCharm, create a Dev Container with Mount Sources, and configure an existing Python interpreter at /opt/venv/bin/python.

Developing
  • This project follows the Conventional Commits standard to automate Semantic Versioning and Keep A Changelog with Commitizen.
  • Run poe from within the development environment to print a list of Poe the Poet tasks available to run on this project.
  • Run uv add {package} from within the development environment to install a run time dependency and add it to pyproject.toml and uv.lock. Add --dev to install a development dependency.
  • Run uv sync --upgrade from within the development environment to upgrade all dependencies to the latest versions allowed by pyproject.toml. Add --only-dev to upgrade the development dependencies only.
  • Run cz bump to bump the package's version, update the CHANGELOG.md, and create a git tag. Then push the changes and the git tag with git push origin main --tags.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors