OpenLake: высокопроизводительный движок хранения для LLM на GPU
OpenLake — это высокопроизводительный движок хранения для эффективного вывода LLM и обучения с использованием GPU. Он нацелен на решение задач с высокими требованиями к вводам-выводам, предоставляя миллионы операций в секунду с латентностью менее 1 мс.
Проект написан на Rust с использованием io_uring, что позволяет ему достигать значительно больших показателей, чем многие традиционные системы хранения. OpenLake подойдет разработчикам, работающим с большими языковыми моделями и требующим мощной инфраструктуры для обработки данных. Если ты ищешь решение для оптимизации производительности своих GPU-ворклоадов, это может быть твой выбор.
Обрати внимание, что проект находится на ранней стадии разработки, и могут быть ограничения по совместимости или функциональности. Информации о том, как запустить OpenLake, в README нет, так что стоит заглянуть в документацию для получения более детальной информации.
Проект OpenLake предлагает решение для распределенного хранения данных, специально разработанное для работы с высокопроизводительными вычислительными задачами на графических процессорах (GPU). Он построен на языке Rust и использует `io_uring`, что позволяет ему достигать миллионов операций ввода-вывода в секунду с задержкой менее 1 мс. Этот проект подходит для поддержки задач в области искусственного интеллекта и машинного обучения, предлагая такие функции, как кэширование, индексация и высокоскоростное восстановление данных.
Зачем нужен OpenLake?
OpenLake предназначен для оптимизации работы с ИИ-инфраструктурами, обеспечивая высокую пропускную способность и удобство работы с небольшими вводами/выводами. Он помогает минимизировать время простоя GPU во время обучения и вывода, что позволяет максимально эффективно использовать вычислительные ресурсы. Основные возможности OpenLake включают:
- Кэширование ключей и значений (KV Cache Offload)
- Индексация и обслуживание векторных данных (VectorDB)
- Ультрабыстрое хранение и восстановление контрольных точек (Checkpointing)
- Оптимизация обучения моделей с высокой скоростью чтения
- Хранение контекста для быстрой работы с большими объемами данных
Как установить и запустить?
Установка OpenLake довольно проста и не требует изменения существующего кода. Вот шаги, которые необходимо выполнить:
1) Настройка кэша KV на узлах GPU:
- Установи необходимый пакет:
pip install openlake-vllm
openlaked
export PYTHONHASHSEED=0
vllm serve --kv-transfer-config '{"kv_connector":"OpenLakeConnector","kv_connector_module_path":"openlake_client.openlake_connector","kv_role":"kv_both","kv_connector_extra_config":{"openlake_nodes":["127.0.0.1:9400"],"openlake_device":"local"}}'
2) Объектное хранилище масштаба PB для GPU
Чтобы создать S3-совместимое хранилище, следуй этим шагам:
- Склонируй репозиторий и собери его:
git clone https://github.com/openlake-project/openlake.git && cd openlake
cargo build --release --bin openlaked
mkdir -p data/d0 data/d1 data/d2 data/d3
./target/release/openlaked --config crates/openlake_server/configs/storage-tcp-local.toml
export AWS_ACCESS_KEY_ID=openlakeadmin
export AWS_SECRET_ACCESS_KEY=openlakeadmin
export AWS_DEFAULT_REGION=us-east-1
aws --endpoint-url http://127.0.0.1:9000 s3 mb s3://demo
aws --endpoint-url http://127.0.0.1:9000 s3 cp ./checkpoint.safetensors s3://demo/
aws --endpoint-url http://127.0.0.1:9000 s3 ls s3://demo/
Архитектура
OpenLake минимизирует путь от хранения до памяти GPU, обеспечивает низкую задержку и предсказуемость работы:
- Поддержка Zero Copy: данные передаются напрямую между NVMe или RDMA NIC и памятью GPU без промежуточного хранения в памяти хоста.
- Локальный асинхронный ввод-вывод: используется одна runtime на физический ядро, что повышает производительность и снижает конфликт.
- Эффективное управление долговечностью хранит данные с меньшими затратами на емкость.
Получение поддержки
Если у тебя возникли технические вопросы, ты можешь обратиться за помощью в [Discord-сообщество](https://discord.gg/TNXqVSnP6x) или создать issue на GitHub.
Проект лицензирован под Apache 2.0.
Открыть на GitHub: openlake-project/openlake →
RepoRadar