? ♀runhouse?
? Добро пожаловать домой!
Runhouse обеспечивает быстрое, экономически эффективное развитие машинного обучения в исследованиях и производстве. Это позволяет вам отправлять функции и классы Python на любую из ваших собственных облачных вычислительных инфраструктур и называть их с нетерпением, как будто они были локальными. Это означает:
- Вы можете изначально запустить и отлаживать свой код на удаленных графических процессорах или других мощных инфра, таких как Ray, Spark или Kubernetes, от вашего ноутбука. Затем ваш код приложения работает как в CI/CD или производстве, все еще отправляя работы на удаленную инфраю.
- Ваше приложение, включая этапы инфраструктуры, захватывается в коде таким образом, чтобы исключить ручную грубую работу и точно воспроизводим в вашей команде, а также в исследованиях и производстве.
- Ваша гибкость в масштабе и оптимизирование затрат не имеет себе равных, и команды часто наблюдают экономию средств в размере ~ 50%.
Орхестрирование между кластерами, регионами или облаками тривиально, как и сложная логика, такая как масштабирование, толерантность к разлому или многоэтапные рабочие процессы.
Для чего подлежит runhouse?
- Когда исследование к производству является медленным и болезненным, как из-за несоответствующих данных/среды для исследований и производства, так и из-за отсутствия неэффективности оркестраторов.
- Если командам нужен инфрагностический способ выполнить Python, чтобы гибко запустить один рабочий процесс в гетерогенном вычислителе, даже работая на нескольких облачных провайдерах.
- Окончание разочарования на платформах в коробке, таких как SageMaker или Vertex, и переход к более гибкому решению для разработки и развертывания кода ML.
- Растущая зрелость ML, когда организации переходят от одноразовых проектов ML к масштабному маховику ML.
Основные моменты:
- Отправьте функции, классы и данные в отдаленную инфраю с питоном и с нетерпением ждут их, как будто они были локальными. Развертывание/перераспределение почти мгновенное, и журналы передаются назад, что делает итерацию чрезвычайно быстрым.
- ? Нет DSL, декораторов, YAML, CLI заклинаний или шаблона. Просто ваш собственный обычный Python, развернутый в любом месте, где вы запускаете Python.
- ? ? Не требуется специальная упаковка или обработка развертывания; Исследовательский и производственный код идентичен. Вызовите функции, развернутые в Runhouse, от CI/CD, оркестраторов или приложений, таких как микро-сервис.
- ? ? BYO-Infra с обширной и растущей поддержкой-Ray, Kubernetes, AWS, GCP, Azure, Local, In-Prem и многое другое.
- Чрезвычайная воспроизводимость и переносимость. Там нет блокировки, потому что, когда вы хотите сдвинуть, масштабировать или выбрать самую дешевую цену, изменение инфра так же просто, как изменение 1 строки, указав другой кластер.
- ?
- ? ? Поддержите сложные рабочие процессы или услуги и передовую логику, поскольку ваши компоненты не связаны, а инфра/модули взаимодействуют с кодом.
API Runhouse прост. Отправляйте свои модули (функции и классы) в среды (рабочие процессы) на вычислительную инфра , например:
import runhouse as rh
from diffusers import StableDiffusionPipeline
def sd_generate ( prompt , ** inference_kwargs ):
model = StableDiffusionPipeline . from_pretrained ( "stabilityai/stable-diffusion-2-base" ). to ( "cuda" )
return model ( prompt , ** inference_kwargs ). images
if __name__ == "__main__" :
img = rh . Image ( "sd_image" ). install_packages ([ "torch" , "transformers" , "diffusers" ])
gpu = rh . cluster ( name = "rh-a10x" , instance_type = "A10G:1" , provider = "aws" , image = img ). up_if_not ()
# Deploy the function and environment (syncing over local code changes and installing dependencies)
remote_sd_generate = rh . function ( sd_generate ). to ( gpu )
# This call is actually an HTTP request to the app running on the remote server
imgs = remote_sd_generate ( "A hot dog made out of matcha." )
imgs [ 0 ]. show ()
# You can also call it over HTTP directly, e.g. from other machines or languages
print ( remote_sd_generate . endpoint ()) При вышеуказанной простой структуре вы можете построить, звонить и поделиться:
- Примитивы ИИ : предварительная обработка, обучение, тонкая настройка, оценка, вывод
- Услуги высшего порядка : многоэтапный вывод, рабочие процессы E2E, Gauntlets, HPO
- ? Конечные точки UAT : мгновенные конечные точки для команд клиентов для тестирования и интеграции
- ? Утилиты с наилучшей практикой : запутывание PII, модерация контента, увеличение данных
️ инфрационное мониторинг, обмен ресурсами и управление версиями с Runhouse Den
Вы можете разблокировать уникальную наблюдательную и общую функции с помощью Denhouse Den, дополнительного продукта для этого репо.
После того, как вы отправили функцию или класс для удаленного вычисления, Runhouse позволяет вам сохранять и делиться ею в качестве услуги, превращая иначе избыточные действия ИИ в общие модульные компоненты в вашей команде или компании.
- Это делает общий ресурс наблюдаемым. С DEN вы можете увидеть, как часто назывался ресурс (и кем), и каково использование графического процессора в коробке.
- Это улучшает затраты - подумайте о трубопроводах 10 мл и исследователях, называющих одну и ту же общую предварительную обработку, обучение, оценку или пакетный вывод, а не каждый выделяющий свои собственные вычислительные ресурсы
- Это улучшает скорость и воспроизводимость. Избегайте развертывания слегка отличающегося кода на конвейер и разверните результаты улучшенного метода для всех после публикации.
Войдите из любого места, чтобы сохранить, обмениваться и загружать ресурсы и наблюдать использование, журналы и вычислять использование на одной панели стекла:
или с Python:
import runhouse as rh
rh . login ()
Расширение приведенного выше примера для обмена и загрузки наше приложение через DEN:
remote_sd_generate . share ([ "[email protected]" ])
# The service stub can now be reloaded from anywhere, always at yours and your collaborators' fingertips
# Notice this code doesn't need to change if you update, move, or scale the service
remote_sd_generate = rh . function ( "/your_username/sd_generate" )
imgs = remote_sd_generate ( "More matcha hotdogs." )
imgs [ 0 ]. show ()
Поддержал вычислительную инфра
Пожалуйста, обратитесь (имя на run.house), если вы не видите свой любимый вычисление здесь.
- Местный - поддерживается
- Одиночная коробка - поддерживается
- Ray Cluster - поддерживается
- Kubernetes - поддерживается
- Amazon Web Services (AWS)
- EC2 - поддерживается
- EKS - поддерживается
- Lambda - Альфа
- Google Cloud Platform (GCP)
- GCE - поддерживается
- GKE - поддерживается
- Microsoft Azure
- VMS - поддерживается
- AKS - поддерживается
- Lambda Labs - поддерживается
- Модальные лаборатории - запланировано
- Slurm - исследовательский
? ? Узнать больше
? Начало работы : установка, настройка и быстрое прохождение.
Документы : подробные ссылки API, базовые примеры API и пошаговые руководства, сквозные учебники и обзор архитектуры высокого уровня.
? Блог : глубокие погружения в функции Runhouse, варианты использования и будущее AI Infra.
? Discord : Присоединяйтесь к нашему сообществу, чтобы задать вопросы, поделиться идеями и получить помощь.
? Twitter : Следуйте за нами за обновлениями и объявлениями.
? Чего Получите помощь
Сообщите нам о Discord, напишите нам (имя на run.house) или создайте проблему.
? ♀ Вклад
Мы приветствуем вклад! Пожалуйста, проверьте вклад.