openlake-project/openlake

OpenLake — высокопроизводительное хранилище для эффективного вывода LLM и обучения на GPU

Инференс⭐ 2 662Rustпоследний релиз: 0.9.0
Открыть на GitHub ↗Сайт проекта ↗

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

OpenLake — это высокопроизводительное распределенное объектное хранилище, оптимизированное для прямой передачи данных с NVMe в память GPU без участия CPU.

Зачем нужен

Инструмент решает проблему узкого горлышка при перемещении больших объемов данных (чекпоинтов, весов моделей) из хранилища в GPU VRAM во время обучения и инференса LLM. Он устраняет накладные расходы на копирование в память хоста и использование кэша страниц ядра, обеспечивая пропускную способность в миллионы IOPS с задержкой менее 1 мс.

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

  • Ускорение загрузки весов моделей (safetensors, ckpt) в GPU-кластеры для инференса LLM
  • Оптимизация сохранения и восстановления чекпоинтов при распределенном обучении больших моделей
  • Создание высокопроизводительного S3-совместимого хранилища для AI-инфраструктуры с поддержкой GPUDirect Storage
  • Снижение времени простоя GPU за счет минимизации задержек при чтении данных с NVMe

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

  • Прямая передача данных (zerocopy) из NIC в GPU VRAM через GPUDirect Storage и RDMA, минуя память хоста
  • Архитектура на базе io_uring и Rust с привязкой потоков к ядрам (thread-per-core) для исключения миграций задач между ядрами
  • Использование кодов коррекции ошибок (Erasure Coding) с SIMD-оптимизацией для снижения затрат на хранение без потери пропускной способности
  • Протокол PacedRDMA с управлением перегрузками для стабилизации задержек при пиковых нагрузках
  • Полная совместимость с S3-клиентами (например, AWS CLI) для простоты интеграции в существующие пайплайны

👤 Кому подойдёт: Инженеры по машинному обучению (MLE), DevOps-инженеры, работающие с GPU-инфраструктурой, и архитекторы систем для обучения и инференса LLM.

Релизы

0.9.0minor
🕐 16 дн назад · релиз на GitHub ↗

Версия 0.9.0: добавлена оркестрация OpenLake KV через Helm, улучшена совместимость S3 и валидация RPC-адресов.

  • Added: Добавлена поддержка оркестрации OpenLake KV с помощью Helm для Kubernetes.
  • Added: Интеграция варианта NVIDIA nvcomp с фиксированным блоком для vLLM.
  • Fixed: Исправлено копирование объектов с процентными разделителями запросов.
  • Fixed: Улучшена совместимость S3: idempotent-удаления отсутствующих ключей, проверка заголовка Range в HeadObject и отклонение имён бакетов с пробелами.
  • Fixed: Добавлена валидация уникальности RPC-адресов узлов хранения и заголовка x-amz-checksum-sha256 при удалении объектов.
v0.8.1minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз v0.8.1 включает обновления пакетов до 0.8.0, параллельную обработку в KV-коннекторе и улучшенную диагностику топологии UCX.

  • Added: Обновлены версии пакетов OpenLake до 0.8.0.
  • Added: Коннектор KV-хранилища стал aware к параллельным вычислениям.
  • Added: Добавлено обнаружение и отчетность о возможностях UCX и топологии L0.
  • Added: Улучшена отчетность о топологии флота и возможностях пиров в реальном времени.
v0.8.0minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз v0.8.0: добавлена консоль операций, улучшена телеметрия узлов, поддержка UCX для Mellanox и оптимизация планировщика KVE.

  • Added: Добавлена OpenLake Operations Console для управления системой.
  • Added: Реализована телеметрия узлов и метрики обслуживания KV-кэша.
  • Added: Добавлена поддержка UCX для сетевых карт Mellanox, не использующих DCT.
  • Added: В UI агента узла добавлен сбор топологии и историческая телеметрия.
  • Fixed: Планировщик вывода KVE оптимизирован: короткие запросы обрабатываются с сокращением задержек.
  • Fixed: Заменен busy poll на пробуждение файловых дескрипторов по колбэкам для повышения эффективности.
v0.7.0minor
🕐 1 мес назад · релиз на GitHub ↗

v0.7.0: добавлена поддержка безпотерьной KV-компрессии в vLLM, улучшено управление памятью и конфигурацией Flink.

  • Added: Добавлена поддержка ядра безпотерьной компрессии KV-буфера GPU для vLLM.
  • Added: Размер KV-слэба теперь настраивается как доля от системной оперативной памяти.
  • Added: В CLI добавлена команда clusterinfo для получения информации о кластере.
  • Added: Очищена конфигурация Flink и добавлены параметры для настройки оператора.
  • Fixed: Исправлена проблема с повторным использованием слотов приема RDMA до копирования полезной нагрузки.
  • Added: Добавлено руководство по выгрузке KV-памяти для движков вывода и начальная конфигурация Mintlify.
v0.4.0minor
🕐 2 мес назад · релиз на GitHub ↗

Релиз v0.4.0: добавлена поддержка RDMA для KV-кэша, команда node info и исправления багов S3/SDK.

  • Added: Добавлена возможность выгрузки KV-кэша через RDMA.
  • Added: В CLI добавлена команда node info с отчетами о здоровье и задержках.
  • Fixed: Исправлено удаление вложенных объектов с общим префиксом в S3.
  • Fixed: Устранена утечка памяти в FIFO и исправлено владение слотами.
  • Fixed: Исправлена верификация SigV4 для клиентов AWS SDK v1.
  • Fixed: Миграция с blake3 на MD5 для валидации ETag.