Ludwig logo

Ludwig

认领

Ludwig 是一款开源声明式深度学习框架,支持用单个 YAML 配置训练、微调和部署模型,覆盖表格、文本、图像、音频、时间序列和 LLM 工作流,并支持分布式训练与模型服务。

Ludwig preview

概述

Ludwig 是一个开源声明式深度学习框架,用于通过单个 YAML 配置文件构建、微调和部署自定义模型。它面向那些希望避免手写训练循环,同时在需要时仍能保留高级控制能力的用户。

网站说明 Ludwig 支持表格、文本、图像、音频、时间序列和 LLM 工作流,并且无需更改模型定义即可在本地运行或扩展到 Ray 集群。产品文档还强调了内置预处理、实验跟踪、服务和导出工作流。

功能

声明式 YAML 配置

在一个经过验证的 YAML 文件中定义预处理、编码器、架构、训练和超参数优化,而无需手动编写训练循环。

多模态、多任务建模

构建可结合表格、文本、图像、音频、时间序列及其他特征类型的模型,并在一次运行中训练多个输出。

LLM 微调栈

使用监督式指令微调和对齐方法来微调 LLM,包括 DPO、KTO、ORPO 和 GRPO,以及 LoRA、QLoRA、DoRA 和 VeRA。

分布式训练后端

通过添加 Ray 的后端配置,将本地任务切换为分布式执行,并展示了对 DDP、FSDP、DeepSpeed 和 KubeRay 的支持。

超参数优化

使用 Ray Tune 或 Optuna 运行内置 HPO,并支持 Auto、TPE、GP 和 CMA-ES 等采样器,以及通过 SQLite 或 PostgreSQL 持久化。

服务与导出工作流

一条命令即可提供模型服务,并导出为 SafeTensors、ONNX 或 `torch.export`,还可选择 Docker 镜像和上传到 Hugging Face Hub。

使用场景

  • 根据配置训练自定义模型

    当你想基于 YAML 文件构建监督式模型,并在不从头编写预处理和循环逻辑的情况下保持训练流程清晰明确时,可使用 Ludwig。

  • 多模态与多任务建模

    适用于结合不同输入类型的项目,例如文本与表格特征,或图像与元数据,并在一个模型中训练多个输出。

  • LLM 微调与服务

    使用 LLM 工具链,通过 4-bit QLoRA 或相关对齐方法对开源模型进行指令微调,然后用 Ludwig 的服务命令提供结果。

  • 在 Ray 上进行分布式训练

    当本地实验需要在集群上扩展到分布式执行且不更改底层模型定义时,可使用 Ray 后端。

  • 模型导出与部署

    当你需要 REST API、Docker 镜像或 ONNX、SafeTensors 等模型产物用于部署时,可使用内置的导出与服务工作流。

Pros and Cons

Pros

  • 使用单个 YAML 文件定义模型流水线。
  • 支持多种数据模态和多任务设置。
  • 包含 LoRA、QLoRA、DPO 和 GRPO 等 LLM 微调方法。
  • 可在不重写模型定义的情况下,从本地训练扩展到基于 Ray 的分布式任务。
  • 在训练之外还提供模型服务和导出路径。

Cons

  • 在收集到的来源中,`ludwig.ai/pricing` 的定价页面不可用,因此基于这组证据无法明确商业条款。
  • 来源覆盖并不完整,某些实际细节如集成、团队部署模式和定价的信息有限。
  • 一些高级能力在首页和文档中只是高层次说明,但提取到的来源并未完整深入覆盖每一个工作流。

FAQ

Ludwig 有什么用途?

Ludwig 是一个基于 YAML 的框架,用于在一个配置文件中定义预处理、模型架构、训练、超参数优化和服务。网站将其描述为一个开源声明式深度学习框架。

如何使用 Ludwig?

入门和首页页面展示了命令行工作流:安装 Ludwig,准备数据集,然后运行 `ludwig train --config ...`。该产品还记录了预测、评估、超参数优化、服务、分布式训练和 LLM 微调。

Ludwig 支持哪些类型的模型和数据?

网站说明 Ludwig 支持表格数据、文本、图像、音频、时间序列和 LLM 工作流。它还列出了多模态和多任务建模。

Ludwig 可用于部署吗?

首页和文档表明 Ludwig 可以将模型作为 REST API 提供服务,并导出为 SafeTensors、ONNX 和 `torch.export` 等格式。它还提到了 Docker 镜像以及上传到 Hugging Face Hub。

Quick Facts

类别
开发者工具
主要用户
机器学习和人工智能从业者
平台
开源框架
源域名
ludwig.ai
许可证
Apache 2 许可证
部署
本地、Ray 集群、Kubernetes