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.

  1. Смонтируйте общедоступный репозиторий GitHub и набор данных из корзины S3.
  2. Настройте среду обучения с помощью нашего пользовательского образа Docker.
  3. Запустите обучающую задачу в локальном кластере 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
  • ВисПрог
  • привязка изображения
  • Сегментировать что угодно
  • МобильныйНерф

Мы также подготовили несколько ресурсов, которые помогут вам начать работу:

Идти вперед

Наша последняя разработка в VESSL Run расширяет наши усилия по предоставлению самого простого способа обучения и развертывания готовых к производству моделей машинного обучения в масштабе, а также нашего средства запуска задач машинного обучения и диспетчера рабочих процессов.

Появление Stable Diffusion и LLaMa показало, что многие люди хотят создавать инструменты с поддержкой ИИ, будь то побочный проект или полноценный ИИ-продукт. Создавая простой и унифицированный интерфейс, который абстрагирует мельчайшие, но трудоемкие периферийные устройства, мы надеемся сделать последние открытые модели доступными для всех разработчиков и дать возможность большему количеству энтузиастов быстро экспериментировать с последними разработками в области машинного обучения.


Йонг Хи, менеджер по развитию
Флойд Рио, менеджер по продукту
Дэвид О, стажер инженера по машинному обучению