EasyLM

EasyLM

โ˜… 3.8 ๐Ÿ”– 1200 saves ๐Ÿ’ฐ Free GitHub

EasyLM is an open-source toolkit that makes large language models easy to pre-train, fine-tune, evaluate and serve, all in JAX and Flax, rather than hiding it behind a hosted API. It has around 2,500 GitHub stars.

Overview

Built by Xinyang Geng and collaborators, EasyLM is a one-stop codebase for the full LLM lifecycle on Google’s JAX stack. It ships training recipes for models such as LLaMA, with support for distributed training across TPU and GPU pods, checkpointing, and serving endpoints once a model is trained. The project keeps dependencies minimal, so the moving parts โ€” data loading, sharding, optimisation, sampling โ€” stay visible instead of being hidden behind a heavy framework; that transparency is the point, and you can read the whole pipeline end to end. It focuses on LLaMA-style architectures and can export trained weights for use elsewhere. Because it sits on JAX/Flax rather than PyTorch, it appeals to teams already invested in that ecosystem who found LLM tooling there comparatively thin. The repository was last updated in 2024 and remains a compact, readable reference for how to structure an LLM training codebase.

Key Features

  • Pre-training and fine-tuning pipelines for LLaMA-class models
  • Evaluation and serving included in the same codebase
  • Distributed training on TPUs and GPUs via JAX
  • Checkpoint save, load and conversion utilities
  • Sampling and generation utilities for quick sanity checks
  • Config-driven recipes that are easy to adapt

๐Ÿ’ณ Pricing

EasyLM is free and open source under the Apache-2.0 license, and there is no commercial edition. You only pay for the accelerator compute you train on.

Who Is It For

JAX and Flax developers, researchers who want a single understandable codebase for training and serving open LLMs, and students learning how LLM training actually works.

๐Ÿš€ Visit EasyLM Official Site

๐Ÿšฉ Report an issue