SuperAPI AI 工具集

ludwig

Ludwig 是一个声明式深度学习框架,由 Linux Foundation AI & Data 托管,旨在让用户通过 YAML 配置文件训练、微调和部署 AI 模型,无需编写样板 Python 代码。它支持从 LLM 微调(含 SFT、DPO、KTO、ORPO、GRPO 等对齐训练和多种 PEFT 适配器)到表格分类、多模态、时间序列与视觉任务,兼容 PyTorch 2.7+ 与 Python 3.12,可通过 Ray、vLLM、KServe 等实现分布式训练与部署。

访问官网

工具介绍

Ludwig 是一个声明式深度学习框架,面向 LLM、多模态模型和表格 AI。它允许用户仅通过 YAML 配置文件完成模型的训练、微调和部署,无需编写训练循环、数据管道或评估代码。该项目由 Linux Foundation AI & Data 托管,技术栈包括 Python 3.12、PyTorch 2.7+、Pydantic 2、Transformers 5 和 Ray 2.54。

用途方面,Ludwig 覆盖 LLM 微调与对齐、表格与多模态建模、时间序列与视觉任务。在 LLM 领域,它支持监督微调(SFT)、对齐训练(DPO、KTO、ORPO、GRPO 等无奖励模型的 RLHF)、多种 PEFT 适配器(LoRA、DoRA、VeRA、LoRA+、TinyLoRA、OFT、HRA、WaveFT、LN-Tuning、VBLoRA、C3A)以及 LoRA 初始化器(PiSSA、EVA、CorDA、LoftQ)。多适配器 PEFT 允许在一个基础模型上挂载多个命名适配器并在运行时切换,支持 TIES、DARE、SVD、幅度剪枝等合并方式。量化支持 4 位/8 位 QLoRA(bitsandbytes)和 torchao 的 int4/int8/float8 及 QAT。视觉语言模型微调支持 LLaVA、Qwen2-VL、InternVL。

主要能力包括:输入模态覆盖文本、数字、类别、二值、集合、包、序列、图像、音频、时间序列、向量和日期;文本编码器支持任意 HuggingFace Transformer(BERT、RoBERTa、ModernBERT、Qwen3、Llama-3.1 等)以及 Mamba-2、Jamba;图像编码器涵盖 DINOv2、ConvNeXt、EfficientNet、ViT、CAFormer、ConvFormer、PoolFormer 和 TIMM(1000+ 模型);时间序列编码器包括 PatchTST、N-BEATS、CNN、RNN、Transformer,并支持 MASE 和 sMAPE 指标及 model.forecast() API;组合器提供 concat、transformer、tab_transformer、FT-Transformer、TabNet、TabPFN v2、HyperNetwork、ProjectAggregate、GatedFusion、Perceiver;多任务学习支持 Nash-MTL、Pareto-MTL、FAMO、GradNorm 和不确定性损失平衡;图像分割支持 UNet、SegFormer、FPN 解码器。分布式训练支持 HuggingFace Accelerate 的 DDP、FSDP、DeepSpeed(无需改代码),并提供 Ray 后端用于集群训练和超内存数据集。自动批大小选择、学习率范围测试、混合精度、梯度检查点与累积均有支持。

使用方式上,用户通过 YAML 配置定义模型、训练与部署。支持的命令包括:ludwig serve 启动 REST API(FastAPI、Prometheus 指标、结构化日志);vLLM 提供 OpenAI 兼容 API;Ray Serve 分布式部署;KServe 的 Kubernetes 原生部署。模型导出支持 SafeTensors、torch.export .pt2 和 ONNX,并可通过 ludwig upload hf_hub 上传至 HuggingFace Hub。实验跟踪集成 TensorBoard、Weights & Biases、Comet ML、MLflow、Aim Stack。超参优化支持 Ray Tune(ASHA、PBT、贝叶斯)和原生 Optuna(auto/GP/TPE/CMA-ES),可持久化至 SQLite 或 PostgreSQL。AutoML 通过 ludwig.automl.auto_train() 提供,给定数据集和时间预算即可搜索编码器/组合器/解码器组合。此外支持 K 折交叉验证(ludwig experiment --k_fold N)、数据集质量检查、OpenML 集成、LLM 配置生成(ludwig generate_config)以及 70+ 内置基准数据集(如 ludwig://mnist、ludwig://alpaca)。

适用场景包括:研究人员进行可复现实验(每次运行都记录并保存完整配置,可用 ludwig visualize 对比);工程师从笔记本到多 GPU 再到 Ray 集群无缝扩展;需要多模态建模的团队通过一个配置变更混合文本、图像、数字、音频和时间序列。

限制方面:Ludwig 0.16 要求 Python 3.12+,具体依赖矩阵见贡献指南。官方未提供收费、价格或平台限制等详细信息,这些事实暂未提供。