Skip to content

Commit

Permalink
Update README.md (#87)
Browse files Browse the repository at this point in the history
* Update README.md

* Fix pre-commit issues in README

Signed-off-by: Fabrice Normandin <normandf@mila.quebec>

* Fix broken link to examples in README, add table

- Fixes #88
- Adds a table to the examples landing page

Signed-off-by: Fabrice Normandin <normandf@mila.quebec>

* Fix links in the table, rename example file

Signed-off-by: Fabrice Normandin <normandf@mila.quebec>

---------

Signed-off-by: Fabrice Normandin <normandf@mila.quebec>
  • Loading branch information
lebrice authored Nov 7, 2024
1 parent dbec84e commit b7b52f5
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 25 deletions.
36 changes: 21 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
<div align="center">

# Research Project Template

[![Build](https://github.com/mila-iqia/ResearchTemplate/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/mila-iqia/ResearchTemplate/actions/workflows/build.yml)
[![codecov](https://codecov.io/gh/mila-iqia/ResearchTemplate/graph/badge.svg?token=I2DYLK8NTD)](https://codecov.io/gh/mila-iqia/ResearchTemplate)
[![hydra](https://img.shields.io/badge/Config-Hydra_1.3-89b8cd)](https://hydra.cc/)
[![license](https://img.shields.io/badge/License-MIT-green.svg?labelColor=gray)](https://github.com/mila-iqia/ResearchTemplate#license)

Please note: This is a Work-in-Progress. The goal is to make a first release by the end of summer 2024.
🚀 Get started on a new research project with a clean, robust and well-tested base that you can count on! 🚀

This is a template repository for a research project in machine learning. It is meant to be a starting point for new ML researchers that run jobs on SLURM clusters.
The main target audience is [Mila](https://mila.quebec/en) researchers and students, but this should still be useful to anyone that uses PyTorch-Lightning with Hydra.
</div>

For more context, see [this introduction to the project.](https://mila-iqia.github.io/ResearchTemplate/intro).
This is a project template for ML researchers developed at [Mila](https://www.mila.quebec). Our goal with this is to help you get started with a new research project.

See [this introduction to the project](https://mila-iqia.github.io/ResearchTemplate/intro) for a detailed description of the context and motivations behind this project.

Please note: This is a Work-in-Progress. The goal is to make a first release by the end of summer 2024.

## Installation

Expand All @@ -32,19 +37,20 @@ This project makes use of the following libraries:
- [Weights & Biases](https://wandb.ai) is used to log metrics and visualize results.
- [pytest](https://docs.pytest.org/en/stable/) is used for testing.

## Why use this template?
## Who is this for? Why should you use this template?

This template comes with [some unique features that can *only* be found here (for now)!](https://mila-iqia.github.io/ResearchTemplate/features/index.md)

- [Torch and Jax support](https://mila-iqia.github.io/ResearchTemplate/features/jax/)
- [Rich IDE support for Hydra config files](https://mila-iqia.github.io/ResearchTemplate/features/auto_schema/)
- [Built-in automated tests (including reproducibility tests), including testing on SLURM clusters!](https://mila-iqia.github.io/ResearchTemplate/features/testing/)
- And more! (see [this page](https://mila-iqia.github.io/ResearchTemplate/features/))

Why should you use this template (instead of another)?
To make the best use of this template, you should ideally already have a good understanding of Python, some experience with PyTorch, and some basic experience with SLURM.

Here are some of the advantages to using this template compared to [some of the other templates out there](https://mila-iqia.github.io/ResearchTemplate/related):
See [this page](https://mila-iqia.github.io/ResearchTemplate/related) for a list of other templates to choose from if this isn't for you.

- ❗Can use both PyTorch and Jax with PyTorch-Lightning ❗
- Neat Configs thanks to [Auto-Generated YAML schemas](https://mila-iqia.github.io/ResearchTemplate/features/auto_schema)
- Easy development inside a [Development Container](https://code.visualstudio.com/docs/remote/containers) with [VsCode](https://code.visualstudio.com/)
- Tailor-made for ML researchers that run their jobs on SLURM clusters (with default configurations for the [Mila](https://docs.mila.quebec) and [DRAC](https://docs.alliancecan.ca) clusters.)
- Rich typing and documentation of all parts of the source code using Python 3.12's new type annotation syntax
- A comprehensive suite of automated tests for all algorithms, datasets and networks that are easy to reuse and extend
- Automatically creates Yaml Schemas for your Hydra config files (as soon as #7 is merged)
Please consider making an issue on this repo if you feel like this could be improved, or something is confusing to you. We very much need and appreciate your feedback! 😊

## Usage

Expand All @@ -54,7 +60,7 @@ To see all available options:
python project/main.py --help
```

For a detailed list of examples, see the [examples page](https://mila-iqia.github.io/ResearchTemplate/examples/examples).
For a detailed list of examples, see the [examples page](https://mila-iqia.github.io/ResearchTemplate/examples).

<!-- * `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
Expand Down
5 changes: 3 additions & 2 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@
* [Launching Jobs on Remote Clusters](features/remote_slurm_launcher.md)
* [Thorough automated testing on SLURM clusters](features/testing.md)
* features/*.md
* Examples 🧪
* [Image Classification (⚡)](examples/supervised_learning.md)
* [Examples 🧪](examples/index.md)
* [Image Classification (⚡)](examples/torch_sl_example.md)
* [Image Classification (jax+⚡)](examples/jax_sl_example.md)
* [NLP (🤗+⚡)](examples/nlp.md)
* [RL (jax)](examples/jax_rl_example.md)
* [Running sweeps](examples/sweeps.md)
* [Profiling your code📎](examples/profiling.md)
* examples/*.md
* Reference 🤓
* reference/*
* [Learning Resources](resources.md)
Expand Down
15 changes: 7 additions & 8 deletions docs/examples/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# Examples

Here are some examples to get started with the template.
<!--
## TODOs:
This template includes examples that use either Jax, PyTorch, or both!

- [ ] Show examples (that are also to be tested with doctest or similar) of how to add a new algo.
- [ ] Show examples of how to add a new datamodule.
- [ ] Add a link to the RL example once [#13](https://github.com/mila-iqia/ResearchTemplate/issues/13) is done.
- [ ] Add a link to the NLP example once [#14](https://github.com/mila-iqia/ResearchTemplate/issues/14) is done.
- [ ] Add an example of how to use Jax for the dataset/dataloading: -->
| Example link | Research Area | Reference link | Frameworks |
| --------------------------------------- | ------------------------------------------ | ------------------ | --------------- |
| [ExampleAlgorithm](torch_sl_example.md) | Supervised Learning (image classification) | `ExampleAlgorithm` | Torch + ⚡ |
| [JaxExample](jax_sl_example.md) | Supervised Learning (image classification) | `JaxExample` | Torch + Jax + ⚡ |
| [HFExample](nlp.md) | NLP (text classification) | `HFExample` | Torch + 🤗 + ⚡ |
| [JaxRLExample](jax_rl_example.md) | RL | `JaxRLExample` | Jax |
File renamed without changes.

0 comments on commit b7b52f5

Please sign in to comment.