v0.9.0

tracel-ai/burnv0.9.0Sep 6, 2023by nathanielsimard

AI Summary

Launch of the Burn Book and Model repository, introduction of three new optimizers, and numerous new tensor operations and training metrics.

Key Highlights

  • Launch of Burn Book and Model repository.
  • Three new optimizers: AdamW, AdaGrad, RMSProp.
  • New tensor operations including conv_transpose and adaptive pooling.
  • New training metrics (CPU/GPU temperature, memory use).

New Features

  • Burn Book documentation.
  • Model repository (SqueezeNet, Llama 2, Whisper, Stable Diffusion).
  • Optimizers: AdamW, AdaGrad, RMSProp.
  • Tensor ops: cast, clamp, abs, max_pool, adaptive_avg_pool, conv_transpose, not, dim iterator.
  • Training metrics (temperature, memory).
  • WGPU Autotune and Matmul optimization.
  • ONNX support (reshape, transpose, binary, concat, dropout, avg pool, softmax, conv1d/2d, tanh, clip).

Full Release Notes

Burn v0.9.0 sees the addition of the Burn Book, a new model repository, and many new operations and optimizations.

# Burn Book

The Burn Book is available at https://burn-rs.github.io/book/

- Burn Book setup and plan @nathanielsimard @wdoppenberg @antimora
- Motivation & Getting started @louisfd @nathanielsimard
- Basic Workflow: from training to inference @nathanielsimard @louisfd
- Building blocks @nathanielsimard
- ONNX models @antimora
- Advanced sections @nathanielsimard

# Model repository

The Model repository is available at https://github.com/burn-rs/models

- Setup @nathanielsimard
- Add SqueezeNet @antimora
- Multiple models made with Burn @gadersd
  - Llama 2
  - Whisper
  - Stable Diffusion v1.4

# Changes to Burn

## Neural networks

- Three new optimizers
  - AdamW @wdoppenberg
  - AdaGrad @CohenAriel
  - RMSProp @AuruTus
- Custom initializer for transformer-related modules @wbrickner
- Cross Entropy with label smoothing and weights @ArvidHammarlund

## Tensors

- Many new operators
  - cast @trfdeer @nathanielsimard
  - clamp, clamp_min, clamp_max @antimora
  - abs @mmalczak
  - max_pool1d, max_pool with dilation @caiopiccirillo
  - adaptive_avg_pool 1d and 2d @nathanielsimard
  - conv_transpose 1d and 2d, with backward @nathanielsimard
  - Not operator @louisfd
  - Dim iterator @ArvidHammarlund
- More tests for basic tensor ops @louisfd


## Training

- New training metrics @Elazrod56
  - CPU temperature and use
  - GPU temperature
  - Memory use
- Custom training and validation metric loggers @nathanielsimard
- Migration from log4rs to tracing, better integration in a GUI app @dae
- Training interruption @dae
- New custom optimize method @nathanielsimard

## Backends

- WGPU backend
  - Autotune @louisfd @nathanielsimard
    - Cache optimization @agelas
  - Pseudo-random number generator @louisfd
  - Fix configs @nathanielsimard
  - Matmul optimization @louisfd
- ndarray backend
  - Optimization of argmin/argmax @DrChat
  - Optimization of conv2d @DrChat
- Candle backend @louisfd
  - Support for all basic operations
  - Work in progress

## Dataset

- Option for with or without replacement in dataset sampler @nathanielsimard

## Import & ONNX

- Refactor, performance, tests and fixes @antimora @Luni-4 @nathanielsimard, @gadersd
- New operators @Luni-4 @antimora @AuruTus
  - Reshape
  - Transpose
  - Binary operators
  - Concat
  - Dropout
  - Avg pool
  - Softmax
  - Conv1d, Conv2d
  - Scalar and constants
  - tanh
  - clip

## Fix

- Hugging Face downloader Windows support @Macil
- Fix grad replace and autodiff backward broadcast @nathanielsimard
- Fix processed count at learning completion @dae
- Adjust some flaky tests @dae
- Ability to disable experiment logging @dae

## Configuration

- Rewrite publish and checks scripts in Rust, with cargo-xtask @luni-4 @DrChat
- Add Typos verification to checks @caiopiccirillo @antimora
- Checks for Python and venv environment @mashirooooo
- Feature flags for crates in different scenarios @dae

## Documentation

- Configuration doc for vscode environment setup @caiopiccirillo
- Jupyter notebook examples @antimora
- Readme updated @louisfd

# Thanks

Thanks to all aforemetioned contributors and to our sponsors @smallstepman and @premAI-io.