Anton Alekseev | Инфраструктура для AI и ML
1.09K subscribers
44 photos
3 videos
4 files
88 links
Привет, я Антон @antonaleks
Пишу здесь про инфраструктуру для AI/ML
https://ml-infra.pro/
Download Telegram
Хей всем привет!👋
Уже завтра в Selectel будет проходить Admin митап! В этот раз я буду в роли ведущего-тамады) Будем смотреть как появляются в облаке образы виртуальных машин, как применять IaC для автоматизации тестирования инфры и подискутируем на тему развития devops/системных администраторов) Так что ждем вас онлайн и оффлайн!

А пока наши докладчики готовятся я тут решил рассказать про свой опыт выступлений, поделится наблюдениями и изученными источниками) возможно вы что то вам будет полезно)

1. Самое главное это рассказ как не странно. Слайды вторичны, они лишь визуализируют ваши слова. Начинайте всегда с того, что готовите рассказ про свою тему. Я обычно либо записываю его на вебку распределив на блоки (но это муторно). Либо беру стикеры и пишу темы. Разбиваю по блокам. Далее прогонять рассказ
2. И после можно уже садится за слайды. Я всегда сначала их набрасываю пустыми, типа только заглавие. Сортирую по главам (обычно 3-4 главы в докладе)
3. Ну и приступаю к мясу - наполняю слайды визуалом. Это может быть просто поинты списком, типа что говорю. Либо схемы какие то либо код. Но это все дополняет рассказ, поэтому нет смысла читать слайды, челики сами все прочитают. Вы лишь говорите свои мысли
4. Старайтесь на каждом слайде пройтись и понять что вы хотите донести. Буквально в 3-4 предложениях. Цель каждого слайда. Озвучьте её себе. Так вы поймёте как сократить рассказ. Ещё лучше если кто то ещё вас будет просто спрашивать че вы хотите сказать здесь? Мама/коллега/кошка - рассказывайте кому то только основную мысль и цель
5. Следите за связками- ваш рассказ должен быть последовательным, слайды должны быть как то связаны друг с другом. Чтобы сохранялась последовательность рассказа
6. Используйте аналогии. Аналогии всегда помогают понять сложные вещи простыми словами. Ваша цель донести свои мысли простыми словами. Хорош тот, кто сложное может объяснить простым языком
7. Сторитейлинг и ваш личный опыт. Всегда круто слушать именно про вас, про ваш опыт. Потому что только вы лучше всего знаете что было с вами и какие проблемы вы решили. Если под этим есть живая история то это всегда слушается интересно

Также книжки, которые я читал последнее время

- Ted Talks - Все знаю формат Ted. Книжка повествует о различных перфомансах этого формата, кейсы реальных людей. Про приемы как сделать ваш доклад интересным. Например, история как Бил Гейтс рассказывал про малярию и выпустил в аудиторию обычных комаров из банки. И этот перфоманс как раз и помог запомнить его основную мысль
- Хорошая, плохая, продающая - Достаточно простая, но интересная книга про базу. Какая аудитория существует (к примеру хоббиты, гоблины, волшебники и эльфы - как во властелине колец прям), как готовить рассказ для каждой аудитории и стоит ли пить алкоголь перед выступлением)
- Лаборатория презентаций - Книжка с базой посложнее, но с интересным дизайном. Как делать презентации, как придумывать рассказ. Правда мне дизайн не очень зашел, сильно отвлекал от сути)

Полезные упражнения, которые помогли мне натренировать навыки выступлений (хуже чем на упражнениях уже не будет, поэтому они и нужны до выступлений)
- Расскажи за 10 минут о том, что хорошо знаешь. При этом собеседник если потеряет мысль будет в тебя кидать бумажки. Таким образом ты поймешь есть ли у тебя контакт с аудиторией и привыкнешь к "отвлечениям"
- Расскажи ребенку о своей профессии. Аналогии наше все - вспоминаем, что хорош тот, кто простыми словами объясняет сложные вещи
- Печа куча - 20 слайдов, 20 рандомных картинок, 20 секунд на каждый слайд. Тренируемся говорить импровизируя, да еще и объединяя случайны картинки одной темой) Особенно полезно для продажников
🔥11❤2👍1
Всем привет!
Давно не было постов и сейчас хотел бы поделиться с вами одним из своих исследований)
Столкнулся со следующей проблемой - в мире ML докер образы делают с жирком, все библиотеки весят много, плюс CUDA 5-6гигов минимум. Итого получается овер 10-15 гигов одного только образа😱 Представьте - вы делаете автомасштабируемую систему, например, в том же кубернетесе. При автоскейлинге поднимается новая нода (она голая, образов, которые вы используете там нет). В итоге в одном из моих кейсов деплой новой реплики занимал порядка 10 минут (2 минуты поднимается нода, 8 минут пуллится и сетапится образ контейнера). Достаточно долго, особенно если вам хотелось бы иметь систему без задержек (чтобы не терять трафик клиентов)

Я начал исследовать в сторону кеширование образов (где нибудь рядом с нодами), здесь можно посмотреть различные решения (но на medium возможно придется заходить через впн). Развернул кеширующий реджестри в кластере, но выиграл только в скорости скачивание слоев (они скачиваются параллельно, из 8 минут удалось сократить до 6). Проблема же оказалась в экстрактинге (он однопоточный, если слой 5+гигов то разархивируется достаточно долго). На графике как раз видно, как происходит пуллинг слоев и их экстрактинг
И тут я начал копать глубже. Нашел интересную статью, где раскрывается как вообще работает пуллинг и экстрактинг образов и как можно сделать lazy loading слоев.
Например можно использовать снапшоттеры! Один из таких Stargz Snapshotter, с поддержкой в containerd из коробки. А здесь можно почитать подробнее про использование.
Суть в следующем
1. ставим снепшотер на ноду
2. билдим образ с помощью buildx/kaniko, указываем в опциях compression=estargz
3. деплоим под в кубер и вуаля (в моем случае образ спулился за 8.6 секунд, сам сервис поднялся за 1.5 минуты в отличие от 6 минут, полученные стандартным способом)
Также прикладываю бенчмарки относительно базового варианта пуллинга образа. Сокращение времени пуллинга в несколько раз! Для работы с большими образами вещь классная, но нужно раскуривать дальше)
👍4❤3😎1👾1
Привет, привееет, привеет!
Сегодня опубликовали шорт-лист технотекста 2023 и... барабанная дробь 🥁🥁🥁

Моя статья про шеринг gpu в kubernetes вошла в финалисты🥳👍🥳

Самое время вспомнить что там было и может даже перечитать)

В самой статье рассматривал
1. Как можно запустить несколько подов в кубере на ноде с одной видеокартой
2. Как построить автомасштабированную инференс систему с помощью автоскелера, MIG и prometheus adapter

И спешу обрадовать - в этом году обязательно хочется выступить с докладом на эту тему) Так что следите за обновлениями😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5😎3👍2
Всем привет! Наконец-то пришло лето и все больше хочется проводить время на природе вдали от ноутбука) Поэтому сейчас посты в канале происходят не часто, но я уже ищу способы это исправить😅

А сейчас хотелось бы с вами поделиться моим небольшим исследованием на тему оптимизации пуллинга и развертывания образов) Как вы помните, ранее я наткнулся на eStargz, где приводились очень классные бенчмарки. И я немного капнул глубже что там вообще есть интересного в containerd.

На самом деле эта тема действительно достойна статьи на тот же хабр, а то и доклада, но пока просто поделюсь полезными ссылками что я обнаружил) В целом все сводится к использованию containerd с разными дополнениями)

Nerdctl (специально для истинных нердов) - аналог докер клиента, который расширяет его функциональность. Как раз этот клиент я использовал для исследования технологий, которые описаны ниже. Ставится не очень сложно, нужно скачать бинарники и положить в /usr/bin.

eStargz - ранее мы с ним уже знакомились - модифицированный формат сжатия gzip, где в качестве архива используется не tar.gz, а star.gz (что означает seeckable). Плюс ленивая загрузка - тянем слои по требованию. Я смог потестировать эту технологию и вот что вышло
- Python3.7 стандартного формата - с момента начала пуллинга до вывода print('hi') прошло 50 секунд
- Python3.7 estargz - тот же эксперимент - прошло 11 секунд. Получается быстрее обычного формата в 5 раз. Но я пробовал на пребилженных общедоступных образах
- Попробовал на своем образе 15+ GB, в итоге спулился он быстро, логи увидел уже спустя 1.5 минуты (в отличие от 6 минут базового образа), но так как слои большие контейнер тормозил и полная инициализация вышла примерно за такое же время как и обычный образ

Nydus (всегда мечтал вам скинуть нюдсы💪) - еще один формат, на официальном сайте можно глянуть бенчи - какая то сказка если честно. Я попробовал Zran формат, по бенчам вышло для образа Node18 27 секунд против 12. Но самое интересное это размер образа. 1GB против 15MB. Пока не нашел причину, нужно смотреть дальше. Свой ML образ не получилось сконвертировать

SOCI 😂😂😂- наверное самое угарное название, но при этом так же хорош как и остальные. Это форк от estargz от Amazon. Проверял на tensorlow gpu образе - 3м 39с против 1м 45с - это конечно блеск, около 2 раз разница. Но также столкнулся с проблемой билда своих образов - нужен специальный реджестри с поддержкой СОСИ индекса.

ZSTD - мой краш💋, потому что это просто новый формат сжатия. Gzip старый формат и Facebook придумали алгоритмы, как все это дело оптимизировать. Билдим образ через buildx с форматом сжатия zstd и вуаля - образ весит в два раза меньше, а экстрактится в два раза быстрее. На моем МЛ образе вышло 2м 30с против 6м. Вот он мой любимчик!

Дальше конечно можно смотреть на шеринговые файловые системы, такие как dragonfly и бороться за секунды аплоудинга, или глянуть снепшотер от aliexpress. Но на данный момент пока не ясно, насколько это нужно. Таким гигантам как фейсбук, алибаба и амазон понятное дело - в их нагрузках это все играет роль. Но на небольших пока такой необходимости нет. Но если понадобится - обязательно вернусь к этому вопросу и опишу вам результаты)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Всем доброе утро! Я тут в небольшой отпуск уезжаю и чтобы вы не скучали решил скинуть пару полезных источников, которые мы нагенерировалт для Opsов в нашем сообществе. Набрасывайте в комментариях ссылочки на то, что вам когда то помогало прокачаться😉

Структуру сгенерировал кстати чатжпт (сами источники мы формировали с коллегами), оказалось удобно закинуть ему несколько неструктурированных сообщений с ссылками, где он потом по шаблону и промту сам категоризовал источники и подогнал под сообщение в телеге. Сократилось много времени и ручного труда.

🔗Полезные ресурсы для Opsов:

📚 Сборники ресурсов:
- awesome-devops: Коллекция ссылок на полезные инструменты, статьи и другие ресурсы по DevOps.

🗺 RoadMaps:
- DevOps Roadmap: Карта навыков и технологий, необходимых для DevOps инженера.
- DevOps-Roadmap: Альтернативная карта навыков для DevOps инженеров с ссылками на обучающие материалы.

📖 Руководства:
- Kubernetes the Hard Way: Подробное руководство по установке Kubernetes вручную, без использования автоматизированных инструментов.
- SRE Interview Prep Guide: Руководство по подготовке к интервью на позицию SRE (Site Reliability Engineer).
- Интервью: Материалы для подготовки к собесам от желтых коллег.

🎥 Видео-курсы:
- Terraform - клевый плейлист по терраформу (в основном про AWS).
- Ansible плейлист про ansible от того же автора.

📺 Видео-каналы:
- Pavlenko: Канал, посвященный DevOps, программированию и IT-индустрии.
- Linux канал: Канал, посвященный обучению и новостям в мире Linux.
- Видео о Make: Видео, где рассказывается о недостатках Make.

📘 Книги:
- System Design: Руководство по подготовке к собеседованию по системному дизайну.
- Компьютерные сети. Принципы, технологии, протоколы: Подробное руководство по компьютерным сетям.
- Компьютерные сети на Лабиринте: Дополнительное издание по компьютерным сетям.

📝 Статьи:
- Сети для самых маленьких: Введение в компьютерные сети для новичков.
- Что на самом деле происходит, когда пользователь вбивает в браузер адрес google.com.

🕹 Обучающие игры:
- OverTheWire: Онлайн-игра для практики навыков взлома и администрирования.
- Обучение докеру: простое обучение на уровне пользователя на удобной онлайн платформе
🔥11👍1
Всем привет!
Я наконец-то вернулся из отпуска (ездил на очень огненный концерт Rammstein🔥🔥🔥)
Уже скоро появится новый контент и анонсы (вот это даааа)

А пока можете послушать один из подкастов, в котором я записывался. Рассказал про свой опыт в devops, что это вообще такое, нужен ли универ айтишнику и с какими задачами обычно сталкиваюсь)

Надеюсь смогу составить вам интересную компанию в дороге, например, в офис или дома на диванчике под хавчик)
🔥5👍1😎1
Хеллоу!

Сегодня вышла моя статья на хабр по теме весеннего выступления на ML митапе. Там расскрываю, как выглядит ML система по аналогии с промышленным производством, как мы подбираем конфигурацию под ML нагрузки, с помощью чего можно найти узкие горлышки в ML инфраструктуре и как образом максимально эффективно использовать ваши GPU!

Так что запрыгивайте по ссылочке и приятного вам чтения)
🔥9❤2👾1
Anton Alekseev | Инфраструктура для AI и ML pinned «Всем привет!👋 Я создал этот канал совсем недавно и уже решил сделать небольшой ребрендинг😅 А именно хочу уйти от всей шаблонности, которая появилась в названии канала к чему то более настоящему чтоли... Как я вообще его создал и зачем он мне? 1. Я последний…»
Хей всем привет!
Ого как нас много стало🔥🔥, спасибо всем кто присоединился к канальчику, в связи с этим получайте порцию полезного материала))

В эту пятница 26 июля я буду выступать на Pycon с докладом про GPU-оператор и как он нам помогает настраивать ноды в K8S для работы с ML фреймворками. Наверника многие из вас при установке CUDA всегда не могли понять различные зависимости - какой драйвер ставить? какая версия CUDA подходит? Какая версия фреймворка torch, tensorflow нужна для определенной версии cuda и наоборот. А еще оказывается все это дело зависит от ядер, ОС и от архитектуры GPU🤯🤯🤯

На самом докладе я об этом все расскажу подробнее плюс будет конечно и про шеринг GPU. А сейчас хочу с вами поделиться ссылочками на все источники, где как раз эти зависимости можно посмотреть) Так что сохраняйте себе и наслаждайтесь🤝

1️⃣ GPU архитектуры от версии драйверов

2️⃣ Cuda от kernel (в ссылке можно менять версию CUDA)
- Cuda 11.8.0
- Cuda 12.0.1
- Cuda 12.5.0

3️⃣ cudnn от драйвера и cuda

4️⃣ pytorch от версии cuda

5️⃣ tensorflow от версии cuda

6️⃣ драйвер от версии cuda

7️⃣ драйвер от версии cuda на гражданских GPU

8️⃣ драйвер от версии cuda на GPU датацентров

9️⃣ контейнер фреймворков nvidia

При этом я не нашел зависимость версии драйвера от версии ядра Linux( Если знаете такой источник, кидайте в комменты🙏
🔥12
Всем хеллоу!

Недавно Express42 опубликовали результаты опроса State of Devops 2024, где можно посмотреть различные тренды по развитию DevOps, трансформации специализации и использования практик в облаке. Как раз про облако мне было посмотреть наиболее интересно, так как в рабочем плане активно его использую.

Из интересного
- Рынок облака по-тихоньку растет. Все еще есть консерны использовать облако из-за безопасности и требований регуляторов, но если вам нужна инфра масштабируемая и ресурсы по требованию - облако как раз становится отличным решением
- Около половины респондентов используют в своей работе AI ассистентов (тот же ChatGPT). И действительно сейчас он стал хорош для небольших задачек по типу "напиши гитлаб манифест который делает то-то". Лично я также его используют и для своих исследований, помогает сократить время нахождение чего-либо плюс структурирования информации
- Из менеджед платформ чаще всего используют базы данных. ML платформы и сервисы пока что используют менее 10% в облаке, но надеюсь этот показатель будет расти
- С точки зрения навыков DevOps специалистов растет потребность в знании языков программирования, так как нужно дорабатывать свои решения. Также в основном это остается Gitlab CI CD (или аналоги), Kubernetes, Мониторинг
- В облаке также требуется знание API провайдера, terraform, packer, и что удивило - Crossplane. Как раз хочу поизучать эту штуку как альтернативу terraform, как будет что интересное - отпишу

Мне как девопсу с закосом под mlопс достаточно сложно становиться понимать границы технологий, которые необходимо иметь в арсенале. Очень преобладает t shape концепция сейчас, где ценятся специалисты с достаточно широким кругозором. Например мне для своей работы необходимо владеть и навыками бекендера, датасайнтиста, опс инженера (а еще иногда и продукт менеджера, стендапера и препода). Но с развитием того же искусственного интеллекта доступ к разным сферам спекциализаций становится проще и сейчас чтобы попробовать что то бекендерское необязательно читать 100500 книжек про пайтон/java и понимать как они внутри работают. И вот как раз навыки находить быстро информацию среди всего этого мусора в интернете и правильно ее применять - думаю сейчас очень ценный навык.

Так что заходите смотреть их отчет и делитесь своим мнением, куда будет развиваться devops направление в будущем)
🔥5👾2👍1
В новой 31 версии k8s добавят интересную штуку - Read Only Volumes Based On OCI Artifacts

Можно будет внутри пода монтировать в определенное место другой контейнер, что дает нам возможность (с точки зрения ML)
1. упаковывать и версионировать веса модели в контейнеры и хранить их в container registry
2. тоже самое делать с конфигами (например для того же трайтона)

Сейчас например часто используется s3 для хранение тех же весов моделей (артефакты от обучения), но это дело не очень хорошо версионируется.
Возможно с новым подходом мы станем заливать артефакты обучения в container registry и уже таким образом использовать их в кубе)

И может если прикрутить туда снепшотеры, или хотябы в zstd конвертировать, то скорость скачивания и развертывания весов станет получше...
❤2🔥2
Всем привет!
Уже через час состоится вебинар, где я буду рассказывать как с помощью GPU-оператор настроить кластер k8s для работы с видеокартами.

Все это вы сможете посмотреть по ссылке - необходимо только зарегистрироваться)

Подключайтесь, на практике пройдемся по базовой настройке, попробуем развернуть GPT-2 инференс и настроить автоскейлинг нод по входящему трафику! Также покажу как изи настроить разделение GPU с помощью MIG (все примеры будут доступны в репозитории на github)
🔥6😎2
Хей ребята, всем привет!
На следующей неделе у нас состоится митап по Kubernetes! В этот раз я буду отдыхать и слушать доклады на уютных пуфиках, и приглашаю вас послушать вместе со мной) Как всегда можно будет выиграть тирексика, перекусить пиццей и пивом а также после митапа будет афтепати🍻🍻🍻

🕓 18 сентября, 12:00
📍 Онлайн и офлайн на Цветочной, 19

Будут доклады от
- Selectel про кубер на выделенных серваках (фича топ, такого особо то и не встретишь на рынке)
- Flant про кубер на гибриде облака и on premise
- Магнит Tech про распределенный трейсинг
- Hilbert Team про гитопс и арго CD

И мы с вами подумаем как это переиспользовать все для инфраструктуры в ML)

Чтобы попасть на митапчик нужно зарегистрироваться по ссылке.
🔥10👾1
Привет!

Сегодня вышла моя новая статья по мотивам прошедшего вебинара - про автоскейлинг инференсов в kubernetes 👩‍💻

Там я пошагово расписал как работает в облаке автоскейлинг ресурсов, если у вас используются GPU, а также показал на практике как можно реализовать такую схему у себя с настоящим инференсом (брал за основу фреймворк VLLM и модель chat gpt2)

Так что налетайте читать статью 😎😎😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11💅2
Всем привет!
В четверг-пятницу я побывал на AI Conf от Онтико, конференции про прикладной ML. Было круто, площадка топ в центре Мск, доклады тоже были супер! Решил выписать несколько, которые мне запомнились

- За рамками сценария: непрерывное тестирование для адаптивных и безопасных LLM-систем
https://aiconf.ru/2024/abstracts/12981

Evidently AI выкладывают кучу полезной инфы по ML и MLOps у себя на сайте, а здесь даже приехали с докладом. Было интересно послушать как тестировать LLM приложения, когда их пытаются вытащить из контекста корпорации)

- Мастер-класс «Получение высококачественных данных для обучения ИИ-моделей»
https://aiconf.ru/2024/abstracts/id5647224
Сходил на мастер-класс по краудсорсингу. Оказывается у яндекса есть крутой инструмент Яндекс.Задания + toloka, которая позволяет автоматизировать процесс лейблинга данных. Через АПИ создаешь задания на лейблинг, реальные люди видят это и начинают лейблить датасеты, далее его можно взять и дообучить свою модельку. Мы пробовали на YoloV, получились интересные результаты. Больше всего поразило как быстро после публикации задания люди начали их выполнять)

- Разметка будущего: как GPT помогает обучать модели?
https://aiconf.ru/2024/abstracts/id5602978
В продолжении мастер класса интересно показали как использовать GPT для тех же операций лейблинга. В целом результаты гуд

- Как «Писец» на «Тотальный диктант» ходил, или Пара слов о робастном распознавании речи
https://aiconf.ru/2024/abstracts/12975
История про дообучение whisper модели для улучшений транскрибации русского языка. Учили на подкастах) А также выложили ее в опенсорс https://huggingface.co/bond005/whisper-large-v3-ru-podlodka

- Эволюция Transformer: как меняется самая успешная архитектура в DL
https://aiconf.ru/2024/abstracts/id5523026
Большая история архитектуры transformers. Интересно было послушать про ее эволюцию)

Вроде можно даже посмотреть презентацию здесь https://mellain.github.io/data/AI_Conf_Transformer_Arcitecture_Full_Slides_2024.pdf


Возможно через время начнут выкладывать доклады в открытый доступ, тогда можно будет и вам глянуть видео)
👍10🔥5👾1
Всем привет!
Уже в этот четверг я буду выступать с рассказом про наш новый продукт Inference платформа на базе Triton Nvidia Server на конференции TechDay.

Вы можете посмотреть онлайн, если зарегистрируетесь по ссылке

Я расскажу про жизненый цикл модели, как будет не очень хорошо делать свои собственные инференсы, а также как устроена наша платформа

Расскажу про автоскейлинг, как мы избавляемся от даунтайма с помощью canary деплоя и как построить инференс граф с помощью Ray!

Также кто будет оффлайн - покажу демо по платформе, как ей пользоваться)

Еще у нас будет стенд, где расскажем что за дела у AMD и как он конкурирует с NVIDIA в ML части. Регистрируйтесь и присоединяйтесь!
🔥8❤1😎1
Привет, привет, привееет!
Вчера на тех дее мы анонсировали наш новый продукт, разработчиком которой я непосредственно являюсь - Инференс платформа!
Платформа сделана на базе nvidia triton server, который вы часто можете видеть в моих статьях на хабр. А ведь это действительно отличный опенсорс инференс, который закрывает кучу болей связанных с оптимизацией его работы на уровне железа.

Я рассказывал про ее основные фичи в докладе, который уже доступен по ссылке. В этот раз он больше продуктовый - так как конференция про наши продукты, а не про технику. Но при этом он раскрывает причины разработки такой платформы и основную ее функциональность) Так что налетайте смотреть!

Но если вы интересуетесь с какими проблемами мы сталкивались и как их решали при разработки платформы - я рад вам сообщить что в декабре буду рассказывать технические нюансы на HighLoad++
Там я уже расскажу почему мы отказались от Seldon, как реализовывали автоскейлинг, канареечный деплой и инференс граф🔥🔥🔥
🔥9👍4👾1