Comments 14
Сделаете terraform для этого и цены не будет вашему решению)
Тут баланс: красота vs массовость.
Terraform и провизионер для установки всего - красиво и правильно. Но "порог вхождения" в решение увеличивается.
Через Azure CLI - проще для массовости, как мне кажется.
Хотя да, вы правы, на майские постараюсь перенести маскимально на Terraform. Заодно разберусь, как пошерстить по регионам в поисках минимальной спотовой цены. Никогда такого не делал.
А, еще забыл - из России ведь Terraform сейчас без VPN не работает? Тупо провайдера не скачает, насколько я помню.
Причем предпочтительно (хотя и не обязательно) – Windows [10], ибо меньше заморочек с драйверами …
Вы уверены, что выбор инстанса с Windows для целей обучения это нормальная идея?
У меня тоже была проблемы с драйверами при подключением внешней видекарты к ноутбуку под Linux, но она успешно решилась после обновления БИОС и после этого больше никаких проблем не замечал.
И хотя обновить БИОС видеокарты можно было только под Виндой, но в облаках, как правило, проблем с драйверами к предлагаемому железу не бывает. Просто под Windows могут встретиться более серьеные ограничения в работе, но уже у самих проектов, которые планируются для последующей тренировки.
Я исходил из того, что это проще. Запустить Portable под Win 10 сможет каждый. А вот с линукс условному дизайнеру будет посложнее. Да и с драйверами NVIDIA, CUDA, вот это вот все, раньше под винду было с ними проще, чем даже под Ubuntu. Может сейчас исправилось, конечно.
И я данную идею предложил для облегчения "попробовать". Думаете, для продуктива тоже может быть кому-то интересно?
Возможно, со всяким LLama/Alpaca/Vicuna действительно поразбираюсь на линуксе...
Для генерации достаточно и десктопной карты (или даже обычного RAM и CPU) и для этого отдельный инстанс покупать смысла не имеет, так как он будет большую часть времени простаивать (конечно, если это не для корпоративного использования).
Хотя хозяин-барин, даже поиграться можно в облаках. Опыт он все равно в прок пойдет.
Верно. Большую часть времени виртуалка выключена, стартует только когда нужна. Поэтому и обращаю внимание на выбор динамического публичного IP, не требующего денег, когда виртуалка остановлена, предлагаю выбрать HDD, чтобы минимально платить за место.
А в отсутствие графической карты - ну не знаю. Моя первая попытка была - на рабочем ESXi в Ubuntu вируталку кучу Xeon ядер выделить. И каждая картинка генерировалась по пол минуты. Как это на ноуте без графического ускорителя будет - боюсь представить.
Так то, что вы описали в статье, это же только генерация, а не тренировка?
Ну как сказать. Если говорить про Stable Diffusion, то в нем уже встроен режим тренировки. Hypernet вполне можно через Train сделать даже безо всяких Dreambooth. Позволю себе опять сослаться на этот канал.
LoRA на той же машинке установить и запустить тоже получится.
Насколько я понял в момент загрузки модель парсится, конвертируется (в зависимости от формата) и грузится в видео память (а это не моментальная операция на размерах в десятки гигабайт) и потом используется во время запросов. При параллельном запуске видятся два сценария либо вторая модель частично или полностью вытесняет первую, либо загрузка завершается с OOM.
Хотя эксперименты показывают что text-generation-webui занимает видео память сразу и не освобождает, а stable-diffusion-webui занимает видеопамять на момент генерации и потом освобождает, всю или частично сказать сложно.
Насколько я понял в момент загрузки модель парсится, конвертируется (в зависимости от формата) и грузится в видео память (а это не моментальная операция на размерах в десятки гигабайт) и потом используется во время запросов.
Очень похоже на то. Первая генерация всегда идет долго. "Прогревается" :)
В принципе если иметь условно SD и LLaMA одновременно запущенные, меня вполне устроило бы, если бы SD работало быстро, потом "отдыхает без запросов". Запрос к LLaMA убирает из видеопамяти модель и грузит свою... Через какое-то время, когда придет запрос на генерацию картинки (от меня же, переключившегося на другой вид деятельности), она загрузит модель в видеопамять заново.
Эдакий "автоматический стоп неиспользуемого, когда видеокарта понадобилась другому" - лучше, чем "завершил работу с SD - останови, даже если через час он опять понадобится".
Ну это я так. Пока не созревшие мысли вслух. Не бизнес-задача.
Первая генерация всегда идет долго. "Прогревается" :)
Я сужу по stable-diffusion-webui и заметил следующее: Если поглядывать в консоль то можно заметить как при первой генерации догружаются из интернета необходимые библиотеки, дополнительные модели и всякое разное непонятное, но видимо необходимое, что влияет на время первой генерации.
При этом модель грузится с диска (или интернета у кого как) в оперативку (или даже в видеопамять так как там можно заметить небольшой скачок) на момент старта или выбора модели. А в момент генерации видеопамять скорее всего забивается промежуточными результатами так как объём явно зависит от заданного размера картинки.
Для запуска сетей в облаке есть SkyPilot, возможно получится немного переработать ваше исполнение для еще более экономичного использования.
Он-же вероятно сможет решить ваш вопрос с переключением между SD / GPT
Windows 10 с Tesla T4 в Azure на примере Stable Diffusion и Automatic1111. Недорого