Awesome
<!-- 配图 --> <h2 align="center">LiBai</h2> <p align="center"> <a href="https://libai.readthedocs.io/en/latest/index.html"> <img alt="docs" src="https://img.shields.io/badge/docs-latest-blue"> </a> <a href="https://github.com/Oneflow-Inc/libai/blob/master/LICENSE"> <img alt="GitHub" src="https://img.shields.io/github/license/Oneflow-Inc/libai.svg?color=blue"> </a> <a href="https://github.com/Oneflow-Inc/libai/releases"> <img alt="GitHub release" src="https://img.shields.io/github/release/Oneflow-Inc/libai.svg"> </a> <a href="https://github.com/Oneflow-Inc/libai/issues"> <img alt="PRs Welcome" src="https://img.shields.io/badge/PRs-welcome-pink.svg"> </a> <a href="https://github.com/Oneflow-Inc/libai/issues"> <img alt="Python Checks" src="https://github.com/Oneflow-Inc/libai/workflows/Python checks/badge.svg"> </a> <a href="https://github.com/Oneflow-Inc/libai/issues"> <img alt="Docs Release Status" src="https://github.com/Oneflow-Inc/libai/workflows/Document Release/badge.svg"> </a> </p>Introduction
English | 简体中文
LiBai is a large-scale open-source model training toolbox based on OneFlow. The main branch works with OneFlow 0.7.0.
<details open> <summary> <b> Highlights </b> </summary>-
Support a collection of parallel training components
LiBai provides multiple parallelisms such as Data Parallelism, Tensor Parallelism, and Pipeline Parallelism. It's also extensible for other new parallelisms.
-
Varied training techniques
LiBai provides many out-of-the-box training techniques such as Distributed Training, Mixed Precision Training, Activation Checkpointing, Recomputation, Gradient Accumulation, and Zero Redundancy Optimizer(ZeRO).
-
Support for both CV and NLP tasks
LiBai has predefined data process for both CV and NLP datasets such as CIFAR, ImageNet, and BERT Dataset.
-
Easy to use
LiBai's components are designed to be modular for easier usage as follows:
- LazyConfig system for more flexible syntax and no predefined structures
- Friendly trainer and engine
- Used as a library to support building research projects on it. See projects/ for some projects that are built based on LiBai
-
High Efficiency
Installation
See Installation instructions.
Getting Started
See Quick Run for the basic usage of LiBai.
Documentation
See LiBai's documentation for full API documentation and tutorials.
ChangeLog
Beta 0.3.0 was released in 03/11/2024, the general changes in 0.3.0 version are as follows:
Features:
- Support mock transformers, see Mock transformers
- Support lm-evaluation-harness for model evaluation
- User Experience Optimization
New Supported Models:
- These models are natively supported by libai
New Mock Models:
- These models are extended and implemented by libai through mocking transformers.
See changelog for details and release history.
Contributing
We appreciate all contributions to improve LiBai. See CONTRIBUTING for the contributing guideline.
License
This project is released under the Apache 2.0 license.
Citation
If you find this project useful for your research, consider cite:
@misc{of2021libai,
author = {Xingyu Liao and Peng Cheng and Tianhe Ren and Depeng Liang and
Kai Dang and Yi Wang and Xiaoyu Xu},
title = {LiBai},
howpublished = {\url{https://github.com/Oneflow-Inc/libai}},
year = {2021}
}