Low-code framework for building custom AI Ludwig, a declarative deep learning framework hosted by the Linux Foundation AI & Data, announced support for Python 3.12, PyTorch 2.7+, Pydantic 2, Transformers 5, and Ray 2.54, enabling users to train, fine-tune, and deploy AI models using a YAML config file with zero boilerplate Python. The framework now includes advanced features such as PatchTST and N-BEATS encoders for time-series forecasting, VLM fine-tuning for models like LLaVA and Qwen2-VL, and GRPO alignment, among others. Declarative deep learning framework for LLMs, multimodal models, and tabular AI. Docs https://ludwig.ai · Getting Started https://ludwig.ai/latest/getting started/ · Examples https://ludwig.ai/latest/examples · Discord 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 https://lfaidata.foundation/ . | 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 | 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 https://github.com/ludwig-ai/ludwig/blob/main/CONTRIBUTING.md for a full dependency matrix. 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="