ludwig-ai/ludwig

Low-code framework для создания пользовательских LLM, нейронных сетей и других AI-моделей

Обучение⭐ 11 760Pythonпоследний релиз: v0.17.9
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Ludwig — это декларативный фреймворк для глубокого обучения, позволяющий обучать, дообучать и развертывать модели (LLM, мультимодальные, табличные) через YAML-конфигурацию без написания шаблонного кода на Python.

Зачем нужен

Инструмент решает задачу упрощения жизненного цикла ML-моделей: от подготовки данных до деплоя. Он полезен тем, кто хочет быстро прототипировать и внедрять AI-решения, избегая сложной настройки инфраструктуры и boilerplate-кода, характерного для чистого PyTorch.

Что можно реализовать

  • Быстрое дообучение LLM (например, Llama-3.1) с использованием LoRA и других PEFT-адаптеров через один YAML-файл.
  • Обучение мультимодальных моделей (VLM), таких как LLaVA или Qwen2-VL, для работы с текстом и изображениями.
  • Прогнозирование временных рядов (timeseries forecasting) с использованием современных энкодеров PatchTST и N-BEATS.
  • Сегментация изображений с помощью декодеров UNet, SegFormer и FPN.
  • Автоматический подбор гиперпараметров с помощью встроенного исполнителя Optuna.

Ключевые возможности

  • Декларативный подход: полная конфигурация модели и обучения в YAML, запуск через одну команду CLI.
  • Поддержка передовых методов оптимизации: GRPO, DPO, KTO, ORPO, а также квантование torchao (int4/int8/float8) и QAT.
  • Встроенная поддержка Ray Serve и KServe для распределенного развертывания моделей в Kubernetes.
  • Генерация конфигураций с помощью LLM: команда `ludwig generate_config` создает YAML на основе описания задачи.
  • Множественные адаптеры PEFT с возможностью взвешенного слияния (TIES, DARE, SVD).

👤 Кому подойдёт: Data Scientists, ML-инженеры и разработчики, которым нужен быстрый и структурированный способ внедрения нейросетей без глубокого погружения в низкоуровневую настройку PyTorch.

Релизы

v0.17.9patch
🕐 1 мес назад · релиз на GitHub ↗

Критическое исправление уязвимости RCE при загрузке чекпоинтов и исправление работы Ray Data с относительными путями.

  • Fixed: Исправлена критическая уязвимость RCE (GHSA-q85h-wmmp-59p8) при загрузке чекпоинтов: теперь используется безопасный режим weights_only=True, предотвращающий выполнение произвольного кода.
  • Fixed: Устранена ошибка Ray Data при чтении относительных локальных путей: теперь они автоматически преобразуются в абсолютные для корректной работы на удаленных воркерах.
  • Fixed: Исправлены ошибки линтера ruff 0.16.2 (RUF036): None перемещен в конец объединений типов в схемах и утилитах.
  • Удалена неработающая встраиваемая диаграмма истории звезд из README из-за ограничений API GitHub.
v0.17.8major
🕐 1 мес назад · релиз на GitHub ↗

Исправлена критическая уязвимость path traversal при извлечении архивов; рекомендуется срочное обновление.

  • Fixed: Устранена уязвимость path traversal в `ludwig/datasets/archives.py`, позволяющая записывать файлы за пределы целевой директории через символические ссылки.
  • Fixed: Исправлена ошибка проверки containment: заменено `os.path.commonprefix` на `os.path.commonpath` для корректного сравнения компонентов пути.
  • Fixed: Добавлена валидация целей ссылок (symlink и hard link) и вызов `extractall()` с параметром `filter="data"` для блокировки опасных архивов.
  • Fixed: Ошибки извлечения теперь вызывают типизированное исключение `UnsafeArchiveError` вместо общего `Exception`.
v0.17.7patch
🕐 2 мес назад · релиз на GitHub ↗

Исправлены ошибки сравнения и сортировки данных в распределённых тестах Ray, добавлен регрессионный тест.

  • Fixed: Исправлена TypeError при сравнении значений столбцов в Ray 2.56.0: теперь используется .to_numpy() вместо .values.
  • Fixed: Устранено рассинхронизирование порядка строк между локальными и Ray-предобработанными DataFrames из-за различий в хешировании pyarrow и numpy.
  • Fixed: Добавлен регрессионный тест для функции on_preprocess_progress, проверяющий корректную работу add_feature_data без map_partitions.
v0.17.6minor
🕐 2 мес назад · релиз на GitHub ↗

Версия v0.17.6 добавляет колбэк прогресса предобработки данных и исправляет совместимость с MLflow 3.x и CUDA-сборками Docker.

  • Added: Добавлен колбэк on_preprocess_progress для отслеживания прогресса предобработки данных в реальном времени.
  • Fixed: Исправлена совместимость с файловым хранилищем MLflow 3.x в CI.
  • Fixed: Docker-образы для GPU теперь корректно включают сборки PyTorch с поддержкой CUDA (cu126).