ludwig-ai/ludwig

★ 11,757⑂ 0

Low-code framework for building custom LLMs, neural networks, and other AI models

About ludwig-ai/ludwig

ludwig-ai/ludwig is an open-source project on GitHub, mainly written in Python. Low-code framework for building custom LLMs, neural networks, and other AI models It currently holds 11,757 stars and 0 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Image Projects board and on the AI AI Image Projects list.

GitHub Repository Details

Repository ludwig-ai/ludwig · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

Declarative deep learning framework for LLMs, multimodal models, and tabular AI.

PyPI version Discord DockerHub Downloads License X

Docs · Getting Started · Examples · Discord

______________________________________________________________________

What is Ludwig?

Ludwig is a declarative deep learning framework that lets you train, fine-tune, and deploy AI models — from LLM fine-tuning to tabular classification — using a YAML config file and zero boilerplate Python.

# Fine-tune Llama-3.1 with LoRA in one config file
model_type: llm
base_model: meta-llama/Llama-3.1-8B
adapter:
  type: lora
trainer:
  type: finetune
  epochs: 3
input_features:
  • name: instruction
type: text output_features:
  • name: response
type: text
ludwig train --config model.yaml --dataset my_data.csv

Tech stack: Python 3.12 · PyTorch 2.7+ · Pydantic 2 · Transformers 5 · Ray 2.54

Ludwig is hosted by the Linux Foundation AI & Data.

______________________________________________________________________

What's New in Ludwig 0.16

| Feature | Description | | ------------------------------- | ------------------------------------------------------------------------------------------------------ | | PatchTST & N-BEATS encoders | State-of-the-art timeseries forecasting encoders with MASE/sMAPE metrics | | Advanced PEFT adapters | PiSSA, EVA, CorDA/LoftQ initializers; TinyLoRA, OFT, HRA, WaveFT, LN-Tuning, VBLoRA, C3A adapter types | | VLM fine-tuning | Train LLaVA, Qwen2-VL, InternVL via is_multimodal: true with gated cross-attention | | HyperNetwork combiner | Conditioning-based feature fusion — one feature generates weights for others | | Nash-MTL & Pareto-MTL | Game-theoretic and preference-based multi-task loss balancing | | LLM config generation | ludwig generate_config "describe your task" — LLM writes the YAML for you | | ModelInspector | Architecture analysis, weight collection, feature importance proxy | | Ray Serve & KServe | Distributed and Kubernetes-native model deployment shims | | GRPO alignment | Reward-model-free RLHF via Group Relative Policy Optimization | | torchao quantization + QAT | PyTorch-native int4/int8/float8 with Quantization-Aware Training | | Multi-adapter PEFT | Multiple named LoRA adapters with weighted merging (TIES, DARE, SVD) | | Native Optuna executor | GPT/TPE/CMA-ES samplers, pruning, resumable SQLite/PostgreSQL storage | | Timeseries forecasting | model.forecast(dataset, horizon=N) API with TimeseriesOutputFeature | | Muon & ScheduleFreeAdamW | New optimizers for large-scale pretraining and fine-tuning | | Image segmentation decoders | UNet, SegFormer, FPN decoders for semantic segmentation |

______________________________________________________________________

Installation

pip install ludwig           # core
pip install ludwig[full]     # all optional dependencies
pip install ludwig[llm]      # LLM fine-tuning only

Requires Python 3.12+. See contributing for a full dependency matrix.

______________________________________________________________________

Quick Start

Fine-tune an LLM (instruction tuning)

Open In Colab

Ludwig supports the full LLM fine-tuning spectrum:

| Technique | Config key | | --------------------------------- | ------------------------------------------------------------------------ | | Supervised fine-tuning (SFT) | trainer.type: finetune | | DPO / KTO / ORPO / GRPO alignment | trainer.type: dpo (or kto, orpo, grpo) | | LoRA / DoRA / VeRA / PiSSA | adapter.type: lora (or dora, vera, lora + init_weights: pissa) | | 4-bit QLoRA (bitsandbytes) | quantization.bits: 4 | | torchao + QAT | quantization.backend: torchao | | Multi-adapter with merging | adapters: dict + merge: block | | VLM (vision-language) | is_multimodal: true |

model_type: llm
base_model: meta-llama/Llama-3.1-8B

quantization: bits: 4

adapter: type: lora

prompt: template: | ### Instruction: {instruction} ### Input: {input} ### Response:

input_features:

  • name: prompt
type: text

output_features:

  • name: output
type: text

trainer: type: finetune learning_rate: 0.0001 batch_size: 1 gradient_accumulation_steps: 16 epochs: 3 learning_rate_scheduler: decay: cosine warmup_fraction: 0.01

backend: type: local

export HUGGING_FACE_HUB_TOKEN="<your_token>"
ludwig train --config model.yaml --dataset "ludwig://alpaca"

Train a multimodal classifier

input_features:
  • name: review_text
type: text encoder: type: bert
  • name: star_rating
type: number
  • name: product_image
type: image encoder: type: dinov2

output_features:

  • name: recommended
type: binary

ludwig train --config model.yaml --dataset reviews.csv

Generate a config from natural language

ludwig generate_config "I have a CSV with age, income, education level, and I want to predict loan default"

Make predictions

ludwig predict --model_path results/experiment_run/model --dataset new_data.csv

Launch a REST API

ludwig serve --model_path results/experiment_run/model

POST http://localhost:8000/predict

______________________________________________________________________

Capabilities

LLM Fine-Tuning
  • Supervised fine-tuning (SFT) on instruction/response pairs
  • Alignment training: DPO, KTO, ORPO, GRPO (reward-model-free RLHF)
  • PEFT adapters: LoRA, DoRA, VeRA, LoRA+, TinyLoRA, OFT, HRA, WaveFT, LN-Tuning, VBLoRA, C3A
  • LoRA initializers: PiSSA, EVA, CorDA, LoftQ for improved convergence
  • Multi-adapter PEFT: multiple named adapters on one base model, switchable at runtime; merge with TIES, DARE, SVD, magnitude pruning
  • Quantization: 4-bit/8-bit QLoRA (bitsandbytes), torchao int4/int8/float8 with QAT
  • VLM fine-tuning: LLaVA, Qwen2-VL, InternVL via is_multimodal: true
  • Sequence packing for efficient training on variable-length inputs
  • Paged and 8-bit optimizers for memory-efficient training
Multimodal & Tabular Models
  • Input modalities: text, numbers, categories, binary, sets, bags, sequences, images, audio, timeseries, vectors, dates
  • Text encoders: any HuggingFace Transformer (BERT, RoBERTa, ModernBERT, Qwen3, Llama-3.1, etc.), plus Mamba-2, Jamba
  • Image encoders: DINOv2, ConvNeXt, EfficientNet, ViT, CAFormer, ConvFormer, PoolFormer, TIMM (1000+ models)
  • Timeseries encoders: PatchTST, N-BEATS, CNN, RNN, Transformer; MASE and sMAPE metrics; model.forecast() API
  • Combiners: concat, transformer, tab_transformer, FT-Transformer, TabNet, TabPFN v2, HyperNetwork, ProjectAggregate, GatedFusion, Perceiver
  • Multi-task learning: multiple output features in a single model; Nash-MTL, Pareto-MTL, FAMO, GradNorm, uncertainty loss balancing
  • Image segmentation: UNet, SegFormer, FPN decoders
Training Infrastructure
  • Distributed training: HuggingFace Accelerate with DDP, FSDP, DeepSpeed (zero-code changes)
  • Ray backend: training across a Ray cluster, larger-than-memory datasets via Ray Data
  • Automatic batch size selection and learning rate range test
  • Mixed precision (fp16/bf16), gradient checkpointing, gradient accumulation
  • Optimizers: AdamW, Adafactor, SGD, Muon, ScheduleFreeAdamW, Lion, paged/8-bit variants
  • Learning rate schedulers: cosine, linear, polynomial, reduce-on-plateau, OneCycleLR
  • Model Soup: uniform and greedy checkpoint averaging for better generalization at zero inference cost
  • Modality dropout for robust multimodal models
Hyperparameter Optimization
  • Executors: Ray Tune (ASHA, PBT, Bayesian) and native Optuna (auto/GP/TPE/CMA-ES)
  • Optuna persistence: SQLite or PostgreSQL for resumable HPO runs
  • Pruning with Optuna's MedianPruner and HyperbandPruner
  • Search spaces: uniform, log-uniform, choice, randint, quantized
  • Full Ludwig config is searchable — any nested parameter can be a hyperparameter
Production & Deployment
  • REST API: FastAPI server with Prometheus metrics and structured logging (ludwig serve)
  • vLLM serving: OpenAI-compatible API with PagedAttention and continuous batching
  • Ray Serve: distributed deployment with auto-scaling and traffic splitting
  • KServe: Kubernetes-native deployment with Open Inference Protocol v2
  • Model export: SafeTensors (default), torch.export .pt2 bundles, ONNX
  • HuggingFace Hub: ludwig upload hf_hub — push model + auto-generated model card
  • Docker: prebuilt containers at ludwigai/ludwig
Tooling & Integrations
  • Experiment tracking: TensorBoard, Weights & Biases, Comet ML, MLflow, Aim Stack
  • Model inspection: ModelInspector — weight enumeration, architecture summary, feature importance proxy
  • Visualizations: learning curves, confusion matrices, calibration plots, ROC curves, hyperopt analysis
  • AutoML: ludwig.automl.auto_train() — give it a dataset and a time budget; the YAML-driven search space samples encoder/combiner/decoder combinations and validates them before training
  • Dataset quality checks: from ludwig.utils.dataset_quality import check_dataset_quality — validates a DataFrame before training (missing values, class imbalance, near-duplicate columns, ID leakage, …)
  • OpenML integration: load any OpenML task directly — OpenMLLoader fetches by task ID and caches locally as Parquet
  • LLM config generation: ludwig generate_config "describe your task" — LLM writes the YAML
  • K-fold cross-validation: ludwig experiment --k_fold N
  • Dataset Zoo: 70+ built-in benchmark datasets (ludwig://mnist, ludwig://alpaca, …)

______________________________________________________________________

Examples

LLM & Alignment

| Use Case | Link | | ------------------------------------- | ----------------------------------------------------------------------------------- | | LLM instruction tuning (LoRA + QLoRA) | examples/llm | | DPO / GRPO alignment | examples/llm/alignment | | Advanced PEFT (PiSSA, OFT, VBLoRA, …) | examples/llms/peft_advanced | | VLM fine-tuning (LLaVA, Qwen2-VL) | examples/vlm |

Tabular & Multimodal

| Use Case | Link | | -------------------------------------- | ------------------------------------------------------------------------------------------------- | | Binary classification (Titanic) | examples/titanic | | Tabular classification (census income) | examples/adult_census_income | | Multimodal classification | examples/multimodal_classification | | Multi-task learning | examples/multi_task |

Timeseries & Vision

| Use Case | Link | | ------------------------------------------ | ----------------------------------------------------------------------------------------- | | Timeseries forecasting (PatchTST, N-BEATS) | examples/forecasting | | Weather forecasting | examples/weather | | Image classification (MNIST) | examples/mnist | | Semantic segmentation | examples/semantic_segmentation |

NLP & Audio

| Use Case | Link | | ------------------------ | --------------------------------------------------------------------------------------- | | Text classification | examples/text_classification | | Named entity recognition | examples/ner_tagging | | Machine translation | examples/machine_translation | | Speech recognition | examples/speech_recognition | | Speaker verification | examples/speaker_verification |

______________________________________________________________________

Why Ludwig?

______________________________________________________________________

Publications

______________________________________________________________________

Community

Discord

GitHub Stars & Activity

11,757Stars
0Forks
0Open issues
PythonLanguage

GitHub Popularity

GitHub stars11,757
Forks0
Open issues0
Primary languagePython
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

d2l-ai / d2l-zh

Python★ 80,716⑂ 0
2

ultralytics / ultralytics

Python★ 61,651⑂ 0
3

ultralytics / yolov5

Python★ 58,015⑂ 0
4
5

roboflow / supervision

Python★ 50,364⑂ 0
6

d2l-ai / d2l-en

Python★ 29,615⑂ 0
7

lucidrains / vit-pytorch

Python★ 25,506⑂ 0
8

More AI Rankings