Давай деплой ML!
356 subscribers
45 photos
1 video
1 file
55 links
Пишу об ML инфраструктуре и алгоритмах, позволяющих ML системам работать эффективнее

Занимаюсь исследованиями по ML инфре, аспирант сколтеха
Download Telegram
Channel photo updated
Я - разработчик и создаю инфраструктуру для рекомендательных систем в одной из самых крупных ИТ-компаний, раньше делал платформу для MLOps и обучал AI-модели в других компаниях. Закончил ВМК МГУ, учусь в ШАДе и на ФКН в ВШЭ.

🔴Этот канал - для моих мыслей о технологиях и о том, как они развиваются и меняют бизнес. Буду писать о том, с чем работаю каждый день :

- Инфраструктура, облака и сервисы для разработки, обучения и инференса моделей
- AI-модели и их архитектура, кейсы в разработке и внедрении
- Проекты, задачи, команда, обучение, развитие и другие мысли и инсайты из моих будней

💬Комменты и реакции открыты, заходите с любыми идеями и обратной связью)
Please open Telegram to view this post
VIEW IN TELEGRAM
Цена хайпа инференса

OpenAI тратит на инференс по разным оценкам 100-700k USD в день. А ещё такие нейронки нужно учить - и это тоже огромные затраты (которые кратно больше затрат на инференс)

Большие ИИ-модели требовательны к ресурсам.
Например, для инференса одной GPT2/3/3.5/4 - нужно 4 или 8 высокопроизводительных карт с быстрым соединением между ними. Реальное использование в проде LLM требует ~40-100 видеокарт под постоянную утилизацию. Подходят сервера dgx/hgx от nvidia по 8 карт с nvlink. Сейчас в России такие в достаточном количестве есть только у Сбера и Яндекса.

💰 Один сервер на 8 карт А100 стоит 200-300k USD (примерные оценки, без установки и поддержки), в итоге получается стоимость проекта только по железу от 200k USD и других вариантов при желании все разворачивать на своей инфре нет. Аренда тоже дорога - от 16k USD в месяц. Вывод понятен - GPT (и другие большие модели) отлично себя показывают, но для использования нужно учится резать косты

⚡️Я вижу две развилки:
Первый вариант - сжатие сети под конкретные задачи (с потерей качества).
Второй - появление отдельных компаний, которые будут инференсить тяжелые модели и давать их рынку по Pay as you go

В развитие обоих направлений верю, хотя в прод сейчас идут сильно сжатые модели (дообучение под задачу + квантизация в int4)
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Очень производительный брокер сообщений

Почти любой продакшен обрабатывает часть данных через брокеров сообщений. На слуху есть 3 фреймворка: Apache Kafka, Rabbit MQ, Apache Flink
Причем Kafka чаще всего используют в больших проектах

Недавно увидел Redpanda
Ребята написали хороший стриминг на c++, получив значительный буст в производительности
▶️ API взято из Kafka - что очень круто. То есть вы можете не переписывая свой код начать их использовать (в идеале)
▶️ Сборка в один бинарь (single binary). Полагается для отказоустойчивости на свою реализацию рафта и не зависит от, например, zookeeper как в Kafka
▶️ Архитектура - по треду на каждое cpu. Должны выжимать все с низлежащей машины. Попозже внимательно посмотрю в код
▶️ Есть UI. Очень похож на Kowl для Кафки. Даже свежее выглядит
▶️ Их уже используют стриминговые, трейдинговые и другие нагруженные кампаний, так что гарантии и цифры не только на бумаге

🛞 Здесь можно посмотреть бенчмарки
Крутое и наглядное сравнение. Обычно таких бенчмарков у проектов нет
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем намеренно снижать скорость ответа ML сервиса?
🤔 Многие хотят, чтобы ML работал в режиме реального времени.
Это круто для MVP или тестов, но приводит к проблемам при выходе в продакшен:
необработанным запросам и доступностью на уровне 95-98%

Альтернативы:

Пересчет по таймеру
Скапливаем данные и иногда (раз в час/день/неделю) обрабатываем. Если что-то пойдет не так, вы сможете починить систему и обработать накопившиеся данные.
Самый простой и правильный способ для первой версии продукта

Обработка около реального времени. Брокеры сообщений
Пользуемся брокерами сообщений и поточными протоколами. Ускоряем предыдущий способ, делаем надежнее, добавляем больше железа.
Показываете MVP, и потом, когда бизнес часть проекта подтверждена, занимаетесь его улучшением
Самый использующийся подход

🛠 Если все таки надо реальное время - ограничивайте масштабы теста, чтобы нагрузка повышалась плавно, делайте нагрузочное тестирование и подключайте мониторинг с уведомлениями
💡 Какие Deep Learning инженеры интересны Карпатому?

Наткнулся на пост Андрея Карпатого (сооснователь OpenAI и уже бывший директор по AI в Tesla). В Deep Learning он хочет прежде всего инженеров-разработчиков, а уже потом умеющих учить нейронки

🤔 Почему так?
Потому что нейронка - это малая часть успеха. Что-то вроде доказательство теоремы существования продукта/функционала.

🛠 В больших компаниях сложный продакшен - написано и внедрено много инструментов
Поэтому, чтобы свой код туда внедрить, нужно еще в 3-4 раза больше времени вложить в разработку
И в большинстве случаев придется писать не только на python, но и на C++, Go и других языках
Please open Telegram to view this post
VIEW IN TELEGRAM
А Вы слышали о таком звере?
💸 Переупаковка видеокарты. Или что делать, если нельзя, но очень хочется

Случайно наткнулся на карту Nvidia A800. Подумал, что это неизвестная мне абревиатура для сервера с восемью картами А100
Оказалось, что такая видеокарта существует, и я проспал все веселье (и Вы скорее всего тоже)

🚫Недавно был запрет на ввоз карт Nvidia A100 и H100 (самых мощных датацентровых карт Nvidia) в Китай со стороны регулятора США (в рамках торговых санкций)
И Nvidia публично возмущались, мол, "вы у нас рынок отбираете"
Вот так и родилась на свет, без особого шума, Nvidia A800

💯 Эта та же самая карта А100, судя по открытым спецификациям
Только пропускную способность NVLink уменьшили на треть (600GB/s -> 400GB/s)
Это снизит эффективность распределенного обучения, а значит эффективность обучения больших нейронок, под предлогом которых вводили ограничения

Видимо, американский регулятор остался доволен, либо сделал вид, что не заметил (регуляторы не очень любят отменять свои решения)
💡 А мы можем понаблюдать за умением договариваться и переупаковывать продукт
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Построение ML пайплайнов инференса на Ray

При инференсе ML моделей могут возникнуть несколько вычислительных сложностей
1. Модель не влезает на одну GPU
2. Модель содержит несколько тяжелых слоев, из-за которых приходиться масштабировать модель целиком
3. Инференс одного батча очень длинный, из-за чего пропускная способность мала

🛠 Одно из решений - пайплайнинг:
Разпиливаем граф модели на несколько и коннектим выходы и входы кусочков друг к другу через транспорт (infiniband, cuda_ipc, RoCE, tcp - тут кто чем богат). И вместо одного большого графа нейросети получаем несколько отдельных моделей, которые можно масштабировать по-отдельности или даже запускать на разных физических девайсах

Обычно речь в таком случае идет о написании транспорта руками: либо пишем микросервисы и соединяем, либо используем MPI для запуска и контроля процессов
Все это не для простых смертных и потребует хорошей квалификации

💡 А можно использовать для этой цели Ray
Ray - это мультиакторный фремворк с хорошими абстракциями, кодом и даже кластером для запуска на железе или кубернетесе. В одном из следующих постов пройдусь по нему

🤔 Однако на момент моего последнего копания Ray поддержка Gpu там была плохой
Один процесс монопольно занимал одну Gpu на время исполнения - а значит могут быть проблемы с утилизацией
А местный Object Storage (с ассинхронным обменом данных) не умел в Gpu память - а это вообще-то чуть ли не самое крутое, что в Ray есть

🌟 Пост по мотиву статьи от ByteDance
Есть в английском варианте от Ray
Не понятно, что они делали с пересылкой между серверами
Похоже, там обычный tcp: Gpu транспорт - сложная штука, а упоминаний о нем я не вижу
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Мысли про вред легаси

🔎 Сейчас я с командой в командировке в Сербии. Кроме жары и больших порций блюд из мяса, тут есть много разработчиков из РФ. Встретились с одним таким, перешедшим от нас в одного из зарубежных ИТ-гигантов.
Он охарактеризовал свое место так: "много легаси и по технологиям сильно хуже"

Как появляется легаси вы и без меня знаете. Даже стараться не нужно 😉
Но вот что подмечаю о вреде легаси, общаясь с разработчиками из других команд/компаний:
1. Найм сложнее - крутые разрабы не любят ковыряться в непонятном и устаревшем коде
2. Зарплатный фонд выше - чем больше легаси, тем больше нужна квалификация разработчиков
3. Долгие релизы - если сервис никто не поддерживает, то любая зависящая от него выкатка будет долгой
4. Выгорание разрабов - кажется, что реальной работы на 5 минут, но приходится 2 дня искать ошибки в чужом коде. Долго работать в таком режиме - так себе удовольствие. Да еще и менеджеры думают, что вы там чем попало занимаетесь

💡 Мое мнение, что важно периодически переписывать инструменты, которые часто требуют внимания.
Разработчики будут счастливее и эффективнее
Да и вообще будут лучше понимать, что там в этом древнем проде происходит
Please open Telegram to view this post
VIEW IN TELEGRAM
🏛 Ломоносов-270

Недавно Виктор Садовничий рассказал, что к 1 сентября готовят новый суперкомпьютер
Речь шла о 400 PFlops и топ 4 мира

🧐 Я так подумал, подумал и пошел смотреть, сколько там карт у Теслы в суперкомпьютерах
И кстати нашел вот эту новость - говорят примерно 340 PFlops кластер вводят
А это примерно 10 тысяч карт H100!

Мне конечно друзья говорили, что видели на ВМК коробки с А100 картами, но незаметно перетаскать больше 10 тыщ выдеокарт (или около тысячи коробок с DGX A100) - задача уровня фантастики

📊 Оказалось проще. Вот тут пишут, что в кластере 100 карт
С таким объемом войти в топ100 будет сложно
Да и там вон Яндекс и Сбер компы делали на 1000+ GPU и почему-то занимают 19+ места (Червоненкис)
Подвох оказался в том, что мерили не те флопсы, вместо 64 битных операций брали судя по всему 8 или 16 бит

Но я на самом деле рад за МГУ. Когда я учился, у нас не было доступа к видеокартам, что очень грусно для профильного университета. Одна из причин, почему мы все так рано ушли работать вместо учебы
100 карт тоже не очень много, но, надеюсь, у ребят получится что-то поделать на них

💡 Перед тем как предоставлять результаты бенчмарков - перепроверьте цифры и попробуйте сравнить их с существующими замерами. От человеческого фактора не уйти и иногда из-за ошибок на порядок нарушается здравый смысл 🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
Про Сербию

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

❗️ Текущий курс зеленого добавляет минусов. Сейчас в Сербии дороговато. +20-30% относительно наших цен на мой взгляд. Если вы зарабатываете в рублях или сопоставимо российским зарплатам, то, скорее всего, ваш реальный уровень жизни там будет хуже

🛣 Теплый климат, снег выпадет максимум несколько раз в заморозки. Не сильно высокий уровень жизни, низкие дома
Такси - хорошо работает Яндекс GO, хотя и только в рамках городов
Темп жизни относительно медленный, как мне показалось. Хотя в целом похоже на Россию за пределами Москвы. Только граффити там не чистят, оно повсюду

🤔 Я бы сам туда не поехал жить. Мне очень нравится Москва и ее высокий темп. Да и пересечся за кофе в Москве сильно проще с любым человеком
Хотя я уже встретил несколько ребят, которые всерьез думают переезжать туда. Да и те кто переехал в целом довольны. Так что тут скорее индивидуально. Если задумаетесь - поедте посмотрите сначала. Вдруг передумаете
Please open Telegram to view this post
VIEW IN TELEGRAM
NVLink C2C - адаптация технологий Nvidia для CPU

🍀 У Nvidia появился новый интересный продукт
Внезапно, Grace Hopper CPU!
Как так вышло? Помните, Nvidia пыталась купить Arm, а ей не дали?
Хотя купить компанию не вышло, смогли сделать коллаборацию. В случае с Arm это значит, что Nvidia взяла лицензию на производство процессоров Arm у одноименной компании

И они не просто купили лицензию, но и адаптировали Nvlink, чтобы на него можно было посадить CPU
Еще и память проапгрейдили
Итого на выходе
1. Два места на плате - Arm cpu + GPU или Arm cpu + Arm cpu
2. 900! GB/s пропускная спомобность между слотами
3. LPDDR5X - 500 GB/s память для cpu

💡 Этот чип должен очень хорошо подойти для задач, где существенная часть алгоритма работает на CPU.

Например, для рекомендательных систем. Эмбеддинги можно будет считать на CPU с хорошим параллелизмом и грузить на GPU, что позволить значительно ускорить алгоритм в целом

Еще пишут, что LLM сильно ускоряют в сценарии ZeRO (это когда на GPU держат только использующиеся в моменте тензора). Однако не понятно, как быстро будет изнашиваться система, если так гонять постоянно

🚀 Вот тут очень много сравнений
Возможно в следующих постах более конкретно разберу какую-то из частей
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Проекты инвестфондов

Начну новую ветку с разбором проектов
Буду проходиться по интересным проектам инвестфондов и рассматривать их бизнес модели, успехи и техническую часть

Чем это может быть полезно?
Первое что приходит в голову - инвестиции. Если вы хотите идти через инвест капитал, стоит анализировать компании портфеля. Они, как правило, имеют масштабируемость, рискованность и другие похожие черты

💡 Но даже если вы как я с настороженностью относитесь к "стартапному капиталу" (это когда еще никто ничего не покупает, но деньги осваиваются), то есть еще и другие причины:
1. Маркетинг. Компании портфеля делают его очень хорошо
Технари его недооценивают (я вижу по себе и моему окружению). Можно быть дофига технологичным, но важно уметь рассказывать об этом и показывать, какую пользу это несет
В B2B решения принимает менеджмент, а не те, кто напрямую получает пользу с ваших разработок
2. Ценность. Она проста и понятна
3. Технологии и точки развития (или тренды). Инвестфонды видят, а иногда даже задают направления для развития технологий. Это стоит иметь ввиду или даже приобщаться
4. Реальное применение технологий и вид со стороны бизнеса. Можно смотреть и на код в GitHub, однако большинство такого кода в реальности не используется

А если учесть, что инвестфонды на главные страницы размещают свои самые успешные проекты - у них точно можно учится

🤔 Какие фонды пока приходят на ум:
1. YC
2. Andreessen Horowitz (aka a16z)
3. SoftBank Vision fund
4. Sequoia Capital
5. Tiger Global
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как окупить купленное для ИИ железо? Или 50 млрд $ выручки Nvidia

Партнер sequoia David Cahn недавно опубликовал статью о текущем буме ИИ
Nvidia по скромным оценкам продаст железа на 50 млрд $ в этом году. Давайте посчитаем, а какая выручка должна быть сгенерирована теми, кто это железо будет использовать, чтобы вложения были успешными?

🤯 Если коротко, то сейчас там очень сильная финансовая дыра.
По оценкам Давида - если сложить:
1. Стоимость железа - 50
2. Lifetime потребление электричества - 50
3. Маржа облаков (они сейчас больше всего строят ИИ датацентров) - 50
4. Маржа компаний, создающих прикладной ИИ - 50

Выходит, что стартапам и компаниям прикладного ИИ нужно сгенерировать 200 млрд $
Да, расчеты вызывают вопросы - прогноз пальцем по воде. Тем не менее, порядок оценки имеет место быть

🥹 Теперь вопрос - а как на железе столько заработать? И вот тут то все грустно
Лидер - ChatGPT - прогнозирует выручку 1 млрд $. А это на минутку лидер существенно опережающий всех
Даже если сложить ожидания всех игроков о их заработках (а ожидания вообще говоря не всегда выполняются) - получится 125 млрд $ (это тоже пальцем по воде)

Итого имеет место явный разрыв, который пока закрывать нечем:
1. Железа закуплено ооочень много
2. Текущая выручка - крохотная по сравнению с CapEx
3. Обещания игроков в сумме сильно меньше текущих трат на железо

Главный выгодополучатель тут Nvidia, о чем я уже писал
А Sequoia активно ищет тех, кто найдет применение такому объему железа и сможет создать добавленную ценность на основе прикладного ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Построение большого стораджа на примере S3

Рекомендую к прочтению в оригинале, если интересна инфраструктура, хранилища и SaaS (есть в переводе)
У меня за последние два месяца началось переосмысление восприятия хранилищ и СУБД. Раньше я на них не заострялся, и выглядели они больше как черные ящики. На самом деле такое же програмное обеспечение, состоящее из компонент. А сложным и большим оно становится спустя годы инвестиций в разработку

Идеи из статьи:

Для инженеров - в статье интересно рассказано про большие SaaS системы на примере s3 и опыта автора:
- Все начинается с простого. Изначально S3 - стандартное микросервисное приложение, выросшее в большую систему
- S3 огромна. За каждую компоненту отвечает отдельная команда
- Эффект масштаба. Имея общие диски для данных, S3 балансирует между ними нагрузку. В итоге каждый клиент получает меньше хвостовых задержек, а S3 эффективно справляется с нагрузкой
- Нивелирование человеческого фактора - ревью тесты на надежность и сравнение с работающие системой при рефакторинге

Для менеджеров - автор делится идеями про лидерство.
- Каждый функционал выделен в отдельный микросервис. У него есть конкретный владелец - человек и его команда
- Важно работать над инициативой. Важно чтобы люди сами приходили к идеям (Вам же тоже так интереснее, не правда ли?). Так они будут брать ответственность за свои идеи и реализовывать их на порядок лучше
🤔 Какие вычислители будут дальше? После CPU и GPU?

Большой сдвиг в качестве алгоритмов происходит по двум причинам:
1. Изобретают более быстрые вычислители
2. Придумывают новые алгоритмы, которые могут максимально использовать особенности нового железа

Сейчас мы начали упиратся в существующие вычислители. Яркая иллюстрация - обучение LLM на тысячах видеокарт в дорогущих датацентрах.
Все чаще слышу мнение от классных специалистов, что следующий прорыв будет не за счет программистов, а за счет железа. При этом я пока не видел реальных кандидатов на эту роль.

Есть точечные асики под конкретные узкоспециализированные задачи. В них я очень верю
При этом точно не стоит пытаться обгонять Nvidia, ARM, AMD и других гигантов на их поле. Почти все, что стартап может предложить, они могут повторить лучше. Возможно только развитие в нише, которая слишком мала и не рентабельна для них. При этом стартап берет на себя риск, выбирая нишу, ведь она может и не вырасти

Пару примеров оптимизаций под нишу:
Cerebras
1. Большая поверхность кристала. Мини кластер на чипе. Интересно даже, какой объем брака при литографии
2. Водяное охлаждение. У обычных GPU даже с небольшой плотностью тут проблемы. А как охлаждать такую большую плату - не очевидно

При этом позиционируются на имитационное моделирование и задачи фармы. Там нужна большая параллельность, а большой кластер избыточен
Мне они писали, что в 100 раз быстрее GPU. Звучит странно, но, может, в каких-то отдельных задачах

Lemurian Labs
Про них недавно увидел колонку
Тут пока реального чипа нет, только прототип и симуляции
1. Более равномерный формат данных для вычислений. Не совсем очевидно, почему его не могут сделать другие. Да и на програмном уровне для квантизованного инференса это уже есть
2. Более богатый менеджмент памяти - отдельный блок на reshape и кеши. Тоже, что и с пунктом 1

В данном случае перспективы больше сделать и продать технологию и команду

Стартапов, конечно, гораздо больше. Большинство пока либо без явных преимуществ, либо нишевые, и мы вряд ли о них часто слышим
Почему мы все используем карты Nvidia для ИИ?
1. Они в большинстве кейсов №1 по производительности
2. Существует множество форм-факторов карт, код под которые пишется на одном и том же CUDA Toolkit
3. Nvidia выкладывает высокопроизводительный софт (часто лучший для своей ниши) с поддержкой CUDA

Все это она делает более 15 лет (если считать точкой отсчета релиз CUDA в 2008)
Больше - здесь