OptimalScale / OptimalScale/LMFlow

[Roadmap] LMFlow Roadmap

Open
#862 2 comments 2 reactions 0 assignees View on GitHub

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
  • 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.py upgrade #917
Usability
  • Make some packages/functions (gradio, vllm, ray, etc.) optional, add conditional import. #905
  • Inference method auto-downgrading (vllm>ds, etc.), and make vllm package optional. #905
  • Merging similar model methods into hf_model_mixin
  • Set torch_dtype='bfloat16' when bf16 is specified, etc. (bf16 is in FinetunerArguments but torch_dtype is in ModelArguments, thus cannot handle in __post_init__(). )
Bug fixes
  • model.generate() with dsz3 #861
  • merge_lora lora with abs path merging
  • load_dataset long data fix #878
  • src/lmflow/utils/common.py create_copied_dataclass compatibility when python version >= 3.10 (kw_only issue) #903 #905
Issues left over from history
  • use_accelerator -> use_accelerate typo fix (with Accelerate support PR) #936
  • model_args.use_lora leads 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.