OptimalScale / OptimalScale/LMFlow
[Roadmap] LMFlow Roadmap
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.5k
- Forks
- 822
- PR merge metrics
- No merged PRs in 30d
Description
This document includes the features in LMFlow's roadmap. We welcome any discuss or contribute to the specific features at related Issues/PRs. 🤗
Main Features
- Data
- DPO dataset format #867
- Conversation template in DPO #883
- jinja template #931
- Tools in conversation dataset #884 #892 #931
- Packing with block diagonal attention
- Add a tokenize-only script, allowing tokenization separately without gpu environment. (For those who has large datasets but limited gpu hrs)
- Model
- Backend
- 🏗️ Accelerate support #936
- Tokenization
- Tokenization update, using hf method #931
- Backend
- Pipeline
- Train/Finetune/Align
- DPO (multi-gpu) #867
- Iterative DPO #867 #883
- PPO
- LISA (multi-gpu, qwen2, chatglm)
- Batch size and learning rate recommendation (arxiv)
- No trainer version pipelines, allowing users to customize/modify based on their needs
- Sparse training for moe models #879
- Inference
- vllm inference #860 #863
- Reward model scoring #867
- Multiple instances inference (vllm, rm, others) #883
- Inference checkpointing and resume from checkpoints
- Inference accelerate EAGLE
- Inferencer for chat/instruction models, and
chatbot.pyupgrade #917
- Train/Finetune/Align
Usability
- Make some packages/functions (gradio, vllm, ray, etc.) optional, add conditional import. #905
- Inference method auto-downgrading (vllm>ds, etc.), and make
vllmpackage optional. #905 - Merging similar model methods into
hf_model_mixin - Set
torch_dtype='bfloat16'whenbf16is specified, etc. (bf16is inFinetunerArgumentsbuttorch_dtypeis inModelArguments, thus cannot handle in__post_init__(). )
Bug fixes
-
model.generate()with dsz3 #861 -
merge_loralora with abs path merging -
load_datasetlong data fix #878 - src/lmflow/utils/common.py
create_copied_dataclasscompatibility when python version >= 3.10 (kw_onlyissue) #903 #905
Issues left over from history
-
use_accelerator->use_acceleratetypo fix (with Accelerate support PR) #936 -
model_args.use_loraleads to truncation of the sequence, mentioned in #867 - Make ports, addresses, and all other settings in distributed training tidy and clear (with Accelerate support PR)
Documentation
- Approx GPU memory requirement w.r.t model size & pipeline
- Dev handbook, indicating styles, test list, etc.
- Sphinx warning cleanup and strict warning checking
CI/CD
- 🏗️ CPU-only and offline CI (Ruff, pytest, package build, and documentation build)
- GPU CI for core training, alignment, and inference pipelines
- Online model and dataset tests
- Optional backend integration tests (vllm, sglang, etc.)
- GitHub Release automation
- PyPI publishing with GitHub Actions trusted publishing
- Release workflow, including versioning, approval, and rollback
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This is a broad tracking document rather than a bounded change. Start by reviewing the unchecked entries and their referenced issues, such as #936, #879, and #905, then choose a single item with a defined scope. Done means the selected work is completed in its own issue or PR and this roadmap is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, pytorch
- Domain
- ci-cd, documentation, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100