Skip to main content

Speech, Language and Multimodal Processing models and utilities in PyTorch

Project description

slp

Build Status Maintainability

Project page: https://github.com/georgepar/slp

slp is a framework for fast and reproducible development of multimodal models, with emphasis on NLP models.

It started as a collection of scripts and code I wrote / collected during my PhD and it evolves accordingly.

As such, the framework is opinionated and it follows a convention over configuration approach.

A heavy emphasis is put on:

  • Enforcing best practices and reproducibility of experiments
  • Making common things fast at the top-level and not having to go through extensive configuration options
  • Remaining extendable. Extensions and modules for more use cases should be easy to add
  • Out of the box extensive logging and experiment management
  • Separating dirty / scratch code (at the script level) for quick changes and clean / polished code at the library level

This is currently in alpha release under active development, so things may break and new features will be added.

Dependencies

We use Pytorch (1.7) and the following libraries

We use poetry for dependency management and dependency freezing.

When you clone the repo run:

pip install poetry
poetry install

and a clean environment with all the dependencies will be created. You can access it with poetry shell.

Note: Wandb logging is enabled by default. You can either

  • Create an account and run wandb login when you clone the repo in a new machine to store the results in the online managed environment
  • Run wandb offline when you clone the repo to disable remote sync
  • Use one of their self-hosted solutions

Documentation

Documentation can be found in https://georgepar.github.io/slp/

Contributions

You are welcome to open issues / PRs with improvements and bug fixes.

Since this is mostly a personal project based around workflows and practices that work for me, I don't guarantee I will accept every change, but I'm always open to discussion.

If you are going to contribute, please use the pre-commit hooks under hooks, otherwise the PR will not go through the CI. And never, ever touch requirements.txt by hand, it will automatically be exported from poetry

cat <<EOT >> .git/hooks/pre-commit
#!/usr/bin/env bash

bash hooks/black-check
bash hooks/export-requirements-txt
bash hooks/checks   
EOT

chmod +x .git/hooks/pre-commit

Cite

If you use this code for your research, please include the following citation

@ONLINE {,
    author = "Georgios Paraskevopoulos",
    title  = "slp",
    year   = "2020",
    url    = "https://github.com/georgepar/slp"
}

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

slp-1.0.1.tar.gz (50.6 kB view hashes)

Uploaded Source

Built Distribution

slp-1.0.1-py3-none-any.whl (59.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page