explaingit

ludwig-ai/ludwig

11,696PythonAudience · dataComplexity · 4/5LicenseSetup · moderate

TLDR

Ludwig is a Python framework that trains and fine-tunes AI models from a YAML config file, no training code required, covering language model fine-tuning, classifiers, time-series forecasting, and image tasks.

Mindmap

mindmap
  root((ludwig))
    What it does
      YAML-driven AI training
      No code required
      Fine-tuning
    Tasks
      Language models
      Classification
      Time-series
      Image segmentation
    Techniques
      LoRA fine-tuning
      Quantization
      Distributed training
    Output
      Trained models
      REST API
      Batch predictions
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Fine-tune a large language model like Llama on your own dataset by writing a YAML config, no Python code required.

USE CASE 2

Train a classifier that combines text, numbers, and images using a single Ludwig configuration file.

USE CASE 3

Deploy a trained Ludwig model as a REST API so other apps can send data and receive predictions.

USE CASE 4

Run distributed model training across multiple machines using Ludwig's built-in Ray integration.

Tech stack

PythonPyTorchRayYAML

Getting it running

Difficulty · moderate Time to first run · 30min

Fine-tuning large language models requires a GPU, LoRA and quantization reduce memory needs but hardware is still required.

Apache 2.0, free to use, modify, and distribute for any purpose including commercial use, with attribution.

In plain English

Ludwig is a Python framework for training and fine-tuning AI models without writing a lot of code. Instead of programming a model from scratch, you describe what you want in a YAML configuration file, which is a plain text file of settings, and Ludwig handles the rest. This approach is aimed at teams and individuals who want to build AI models but do not want to write and debug the underlying training machinery. The framework covers a wide range of tasks: fine-tuning large language models like Llama on custom datasets, training classifiers that combine text with numbers and images, forecasting time-series data, and image segmentation. For each task, you list your input data columns and what you want to predict, set training options, and run a command. Ludwig reads your data file, trains the model, and saves the result. For language model fine-tuning specifically, Ludwig supports techniques like LoRA, which is a method of updating only a small part of a large model rather than the whole thing, making training feasible on hardware that could not handle full retraining. It also supports running fine-tuning with reduced memory usage through quantization, where model weights are stored in a compressed format. These options are all configured through the same YAML file rather than requiring custom Python code. Once a model is trained, Ludwig provides commands for making predictions on new data and for launching a REST API so other applications can send requests to the model and receive predictions back. Distributed training across multiple machines is supported through integration with Ray. Ludwig is hosted by the Linux Foundation AI and Data organization and is available under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
I have a CSV dataset and want to fine-tune Llama using Ludwig. Show me the YAML config I need and the command to start training.
Prompt 2
How do I configure Ludwig to use LoRA so I can fine-tune a large language model on a GPU with limited memory?
Prompt 3
I trained a Ludwig model and want to serve predictions via a REST API. What command do I run and how do I send a request to it?
Prompt 4
How do I write a Ludwig YAML config to train a classifier that uses both a text column and a numeric column as inputs?
Prompt 5
How do I set up Ludwig to run distributed training across multiple machines using Ray?
Open on GitHub → Explain another repo

← ludwig-ai on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.