VESSL Run делает точную настройку и масштабирование новейших моделей с открытым исходным кодом проще, чем когда-либо.
Сегодня мы выпускаем VESSL Run, самый простой способ обучения, тонкой настройки и масштабирования моделей AI/ML с открытым исходным кодом. VESSL Run упрощает сложные вычислительные серверные части и детали системы, необходимые для запуска готовых моделей в унифицированном интерфейсе YAML. Это означает, что разработчики могут начать обучение, не увязая в специфических для машинного обучения периферийных устройствах, таких как облачные инфраструктуры, конфигурации CUDA и зависимости Python.
Вместе с VESSL Run мы также выпускаем несколько пользовательских образов Docker для последних моделей генеративного ИИ и основные документы с CVPR 2023, такие как DreamBooth Stable Diffusion. Изучите эти модели на bit.ly/cvpr2023 и запустите их прямо из терминала.
pip install --upgrade vessl vessl run hello
Проблема, которую мы решаем
Мы видели взрыв моделей с открытым исходным кодом, которые находятся на одном уровне, если не лучше, чем последние аналоги с закрытым исходным кодом — Stable Diffusion для DALL-E 2 и LLaMa для GPT-3. Каждый день мы видим, как энтузиасты и профессионалы машинного обучения создают свои собственные версии и приложения этих моделей и демонстрируют их на GitHub. Однако у этих моделей с сотнями вилок и звезд есть одна серьезная проблема.
Большинство из них не работают.
Если вы действительно пытались запустить эти модели — следуя инструкциям на карточках моделей или запуская блокноты Colab — вы, вероятно, потратили часы на настройку PyTorch и CUDA. Даже если вы справитесь с этим шагом, тонкая настройка и масштабирование модели в ваших наборах данных и облаке — это совсем другая история. Ценность этих моделей либо теряется из-за ошибок CUDA, либо они остаются игрушечными проектами, не выходя на производственный уровень. Это обычная история, с которой сегодня сталкивается большинство из нас, работающих с ИИ.
Наш подход к VESSL Run
Наш подход к решению этой проблемы заключается в предоставлении простого унифицированного интерфейса YAML, который абстрагирует периферийные устройства, окружающие модели. К ним относятся все, начиная от конфигураций CUDA и зависимостей Python для вашего первого запуска; настраиваемые загрузчики данных и облачные инфраструктуры для тонкой настройки и масштабирования; и, наконец, конечные точки и автоматическое масштабирование для обслуживания и развертывания. С помощью VESSL Run разработчики могут экспериментировать с новейшими моделями с открытым исходным кодом в своих наборах данных и графических процессорах без необходимости выполнять ручную настройку.
Как это работает
Например, следующий фрагмент YAML — это все, что вам нужно для запуска Dreambooth on Stable Diffusion с графическими процессорами A100.
- Смонтируйте общедоступный репозиторий GitHub и набор данных из корзины S3.
- Настройте среду обучения с помощью нашего пользовательского образа Docker.
- Запустите обучающую задачу в локальном кластере DGX с использованием графических процессоров A100.
name: dreamboothstablediffusion image: nvcr.io/nvidia/pytorch:22.10-py3 resources: accelerators: A100:1 volumes: /root/examples: git://github.com/vessl-ai/examples /output: artifact: true run: - workdir: /root/examples/Dreambooth-Stable-Diffusion command: | conda env create -f environment.yaml source activate ldm pip install Omegaconf pip install pytorch-lightning mkdir data/ wget https://github.com/prawnpdf/prawn/raw/master/data/fonts/DejaVuSans.ttf -P data/ wget https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4-full-ema.ckpt python main.py --base configs/stable-diffusion/v1-finetune_unfrozen.yaml -t --actual_resume ./sd-v1-4-full-ema.ckpt -n "generate_pikachu" --no-test --gpus "0," --data_root ./dataset --reg_data_root ./reg --class_word "{$class_word}" rm -rf ./logs/*.ipynb_checkpoints python scripts/stable_txt2img.py --ddim_eta 0.0 --n_samples 2 --n_iter 4 --scale 10.0 --ddim_steps 100 --ckpt ./logs/*/checkpoints/last.ckpt --prompt "{$prompt}" cp -r ./outputs /output env: class_word: "pikachu" prompt: "A photo of sks pikachu playing soccer."
Вы можете увидеть его в действии, выполнив следующую команду и обратившись к файлу YAML.
vessl run -f dreambooth.yaml
По сути, с каждым vessl run
вы запускаете модуль Kubernetes, настроенный специально для машинного обучения. Наши пользовательские образы Docker — это докеризированные версии каждого репозитория GitHub с машинным обучением — /Dreambooth-Stable-Diffusion
, /nanoGPT
, /LangChain
и других — с правильными зависимостями CUDA и приложений.
Это означает, что вы можете запускать не только отдельные учебные задания, но и создавать постоянные рабочие области для задач логического вывода с поддержкой графического процессора с тем же определением YAML — и использовать такие инструменты, как Streamlit, например, для создания приложения, подобного Lensa, — и все это, не беспокоясь о периферийных устройствах. .
interactive: runtime: 24h ports: - 8501
С чего начать
Мы подготовили несколько проверенных моделей для последних моделей генеративного ИИ и основные статьи с CVPR 2023 в нашей галерее VESSL Hub. Все они поставляются с нашими пользовательскими образами Docker и могут быть запущены с помощью одной и той же команды vessl run
.
- DreamBooth
- LangChain
- ВисПрог
- привязка изображения
- Сегментировать что угодно
- МобильныйНерф
Мы также подготовили несколько ресурсов, которые помогут вам начать работу:
- Краткое руководство по nanoGPT
- Обучение Dreambooth стабильной диффузии от Google Research
- Создание собственного приложения Streamlit с помощью Segment Anything by Meta AI
Идти вперед
Наша последняя разработка в VESSL Run расширяет наши усилия по предоставлению самого простого способа обучения и развертывания готовых к производству моделей машинного обучения в масштабе, а также нашего средства запуска задач машинного обучения и диспетчера рабочих процессов.
Появление Stable Diffusion и LLaMa показало, что многие люди хотят создавать инструменты с поддержкой ИИ, будь то побочный проект или полноценный ИИ-продукт. Создавая простой и унифицированный интерфейс, который абстрагирует мельчайшие, но трудоемкие периферийные устройства, мы надеемся сделать последние открытые модели доступными для всех разработчиков и дать возможность большему количеству энтузиастов быстро экспериментировать с последними разработками в области машинного обучения.
—
Йонг Хи, менеджер по развитию
Флойд Рио, менеджер по продукту
Дэвид О, стажер инженера по машинному обучению