Партнер 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
🔥2👍1
🚀 Построение большого стораджа на примере S3
Рекомендую к прочтению в оригинале, если интересна инфраструктура, хранилища и SaaS (есть в переводе)
У меня за последние два месяца началось переосмысление восприятия хранилищ и СУБД. Раньше я на них не заострялся, и выглядели они больше как черные ящики. На самом деле такое же програмное обеспечение, состоящее из компонент. А сложным и большим оно становится спустя годы инвестиций в разработку
Идеи из статьи:
Для инженеров - в статье интересно рассказано про большие SaaS системы на примере s3 и опыта автора:
- Все начинается с простого. Изначально S3 - стандартное микросервисное приложение, выросшее в большую систему
- S3 огромна. За каждую компоненту отвечает отдельная команда
- Эффект масштаба. Имея общие диски для данных, S3 балансирует между ними нагрузку. В итоге каждый клиент получает меньше хвостовых задержек, а S3 эффективно справляется с нагрузкой
- Нивелирование человеческого фактора - ревью тесты на надежность и сравнение с работающие системой при рефакторинге
Для менеджеров - автор делится идеями про лидерство.
- Каждый функционал выделен в отдельный микросервис. У него есть конкретный владелец - человек и его команда
- Важно работать над инициативой. Важно чтобы люди сами приходили к идеям (Вам же тоже так интереснее, не правда ли?). Так они будут брать ответственность за свои идеи и реализовывать их на порядок лучше
Рекомендую к прочтению в оригинале, если интересна инфраструктура, хранилища и SaaS (есть в переводе)
У меня за последние два месяца началось переосмысление восприятия хранилищ и СУБД. Раньше я на них не заострялся, и выглядели они больше как черные ящики. На самом деле такое же програмное обеспечение, состоящее из компонент. А сложным и большим оно становится спустя годы инвестиций в разработку
Идеи из статьи:
Для инженеров - в статье интересно рассказано про большие SaaS системы на примере s3 и опыта автора:
- Все начинается с простого. Изначально S3 - стандартное микросервисное приложение, выросшее в большую систему
- S3 огромна. За каждую компоненту отвечает отдельная команда
- Эффект масштаба. Имея общие диски для данных, S3 балансирует между ними нагрузку. В итоге каждый клиент получает меньше хвостовых задержек, а S3 эффективно справляется с нагрузкой
- Нивелирование человеческого фактора - ревью тесты на надежность и сравнение с работающие системой при рефакторинге
Для менеджеров - автор делится идеями про лидерство.
- Каждый функционал выделен в отдельный микросервис. У него есть конкретный владелец - человек и его команда
- Важно работать над инициативой. Важно чтобы люди сами приходили к идеям (Вам же тоже так интереснее, не правда ли?). Так они будут брать ответственность за свои идеи и реализовывать их на порядок лучше
All Things Distributed
Building and operating a pretty big storage system called S3
Three distinct perspectives on scale that come along with building and operating a storage system the size of S3.
⚡2🔥1
🤔 Какие вычислители будут дальше? После CPU и GPU?
Большой сдвиг в качестве алгоритмов происходит по двум причинам:
1. Изобретают более быстрые вычислители
2. Придумывают новые алгоритмы, которые могут максимально использовать особенности нового железа
Сейчас мы начали упиратся в существующие вычислители. Яркая иллюстрация - обучение LLM на тысячах видеокарт в дорогущих датацентрах.
Все чаще слышу мнение от классных специалистов, что следующий прорыв будет не за счет программистов, а за счет железа. При этом я пока не видел реальных кандидатов на эту роль.
Есть точечные асики под конкретные узкоспециализированные задачи. В них я очень верю
При этом точно не стоит пытаться обгонять Nvidia, ARM, AMD и других гигантов на их поле. Почти все, что стартап может предложить, они могут повторить лучше. Возможно только развитие в нише, которая слишком мала и не рентабельна для них. При этом стартап берет на себя риск, выбирая нишу, ведь она может и не вырасти
Пару примеров оптимизаций под нишу:
Cerebras
1. Большая поверхность кристала. Мини кластер на чипе. Интересно даже, какой объем брака при литографии
2. Водяное охлаждение. У обычных GPU даже с небольшой плотностью тут проблемы. А как охлаждать такую большую плату - не очевидно
При этом позиционируются на имитационное моделирование и задачи фармы. Там нужна большая параллельность, а большой кластер избыточен
Мне они писали, что в 100 раз быстрее GPU. Звучит странно, но, может, в каких-то отдельных задачах
Lemurian Labs
Про них недавно увидел колонку
Тут пока реального чипа нет, только прототип и симуляции
1. Более равномерный формат данных для вычислений. Не совсем очевидно, почему его не могут сделать другие. Да и на програмном уровне для квантизованного инференса это уже есть
2. Более богатый менеджмент памяти - отдельный блок на reshape и кеши. Тоже, что и с пунктом 1
В данном случае перспективы больше сделать и продать технологию и команду
Стартапов, конечно, гораздо больше. Большинство пока либо без явных преимуществ, либо нишевые, и мы вряд ли о них часто слышим
Большой сдвиг в качестве алгоритмов происходит по двум причинам:
1. Изобретают более быстрые вычислители
2. Придумывают новые алгоритмы, которые могут максимально использовать особенности нового железа
Сейчас мы начали упиратся в существующие вычислители. Яркая иллюстрация - обучение LLM на тысячах видеокарт в дорогущих датацентрах.
Все чаще слышу мнение от классных специалистов, что следующий прорыв будет не за счет программистов, а за счет железа. При этом я пока не видел реальных кандидатов на эту роль.
Есть точечные асики под конкретные узкоспециализированные задачи. В них я очень верю
При этом точно не стоит пытаться обгонять Nvidia, ARM, AMD и других гигантов на их поле. Почти все, что стартап может предложить, они могут повторить лучше. Возможно только развитие в нише, которая слишком мала и не рентабельна для них. При этом стартап берет на себя риск, выбирая нишу, ведь она может и не вырасти
Пару примеров оптимизаций под нишу:
Cerebras
1. Большая поверхность кристала. Мини кластер на чипе. Интересно даже, какой объем брака при литографии
2. Водяное охлаждение. У обычных GPU даже с небольшой плотностью тут проблемы. А как охлаждать такую большую плату - не очевидно
При этом позиционируются на имитационное моделирование и задачи фармы. Там нужна большая параллельность, а большой кластер избыточен
Мне они писали, что в 100 раз быстрее GPU. Звучит странно, но, может, в каких-то отдельных задачах
Lemurian Labs
Про них недавно увидел колонку
Тут пока реального чипа нет, только прототип и симуляции
1. Более равномерный формат данных для вычислений. Не совсем очевидно, почему его не могут сделать другие. Да и на програмном уровне для квантизованного инференса это уже есть
2. Более богатый менеджмент памяти - отдельный блок на reshape и кеши. Тоже, что и с пунктом 1
В данном случае перспективы больше сделать и продать технологию и команду
Стартапов, конечно, гораздо больше. Большинство пока либо без явных преимуществ, либо нишевые, и мы вряд ли о них часто слышим
👍4🔥1
Почему мы все используем карты Nvidia для ИИ?
1. Они в большинстве кейсов №1 по производительности
2. Существует множество форм-факторов карт, код под которые пишется на одном и том же CUDA Toolkit
3. Nvidia выкладывает высокопроизводительный софт (часто лучший для своей ниши) с поддержкой CUDA
Все это она делает более 15 лет (если считать точкой отсчета релиз CUDA в 2008)
Больше - здесь
1. Они в большинстве кейсов №1 по производительности
2. Существует множество форм-факторов карт, код под которые пишется на одном и том же CUDA Toolkit
3. Nvidia выкладывает высокопроизводительный софт (часто лучший для своей ниши) с поддержкой CUDA
Все это она делает более 15 лет (если считать точкой отсчета релиз CUDA в 2008)
Больше - здесь
vc.ru
Почему все используют видеокарты Nvidia — Разработка на vc.ru
Сейчас ИИ переживает большой хайп.
👍2🔥1
Как устроен антифрод в Stripe? И что мы можем подметить?
Увидел статью по Radar - антифрод системе Stripe
Заменили ансамбль бустинга и линейной модели на ResNeXt like нейросеть, состоящую из блоков с разными ветвями
И вот какую дельту получили:
+ Проще модель и система в целом
+ Быстрее обучение
+ Быстрее инференс
+ Лучше качество модели (если много качественных данных)
- Меньше интерпретируемость
Не смотря на потерю в интерпретируемости решили внедрить. А потерю восполнить за счет более качественного анализа фичей и их влияния на оценку подозрительность транзакций
Автоматизация и понятная визуализация результатов Radar приводит к более быстрым разборам блокировок транзакций клиентов
Подметил несколько тенденций:
1. Бустинг меняют на нейросети для табличных данных. С оговоркой, что во всех таких кейсах размеченных данных терабайты. В случае Stripe транзакции размечает поддержка. Вот вам и задел на онлайн обучение или хотябы частое переобучение
2. ResNext like модели хороши на данных больших размерностей (фичей что численных, что категориальных там куча). Я вообще больше модели компьютерного зрения учил, и для меня было забавно слышать от коллег на работе, что resnext - это про задачи оптимизации, и в них идеи бранчинга блоков тоже прижились
3. Интерпретируемость. Ее хотят и пытаются достичь. В случае с нейронками это тяжелая и последовательная работа по анализу работы алгоритма и значимости фичей. А потом обдумывание, как бы их понятно показывать и доводить до поддержки и клиентов
4. Все больше закапываемся в оптимизации обучения и инференса. Нейросети хочется глубже, размеченных данных все больше, а ускорители растут по производительности медленнее аппетитов. В оптимизационных задачах с большим объемом разметки задача все чаще пропихнуть в обучение как можно больше данных. В связи с этим начинают появляться кастомные обучалки и инференсы
Увидел статью по Radar - антифрод системе Stripe
Заменили ансамбль бустинга и линейной модели на ResNeXt like нейросеть, состоящую из блоков с разными ветвями
И вот какую дельту получили:
+ Проще модель и система в целом
+ Быстрее обучение
+ Быстрее инференс
+ Лучше качество модели (если много качественных данных)
- Меньше интерпретируемость
Не смотря на потерю в интерпретируемости решили внедрить. А потерю восполнить за счет более качественного анализа фичей и их влияния на оценку подозрительность транзакций
Автоматизация и понятная визуализация результатов Radar приводит к более быстрым разборам блокировок транзакций клиентов
Подметил несколько тенденций:
1. Бустинг меняют на нейросети для табличных данных. С оговоркой, что во всех таких кейсах размеченных данных терабайты. В случае Stripe транзакции размечает поддержка. Вот вам и задел на онлайн обучение или хотябы частое переобучение
2. ResNext like модели хороши на данных больших размерностей (фичей что численных, что категориальных там куча). Я вообще больше модели компьютерного зрения учил, и для меня было забавно слышать от коллег на работе, что resnext - это про задачи оптимизации, и в них идеи бранчинга блоков тоже прижились
3. Интерпретируемость. Ее хотят и пытаются достичь. В случае с нейронками это тяжелая и последовательная работа по анализу работы алгоритма и значимости фичей. А потом обдумывание, как бы их понятно показывать и доводить до поддержки и клиентов
4. Все больше закапываемся в оптимизации обучения и инференса. Нейросети хочется глубже, размеченных данных все больше, а ускорители растут по производительности медленнее аппетитов. В оптимизационных задачах с большим объемом разметки задача все чаще пропихнуть в обучение как можно больше данных. В связи с этим начинают появляться кастомные обучалки и инференсы
Stripe
How we built it: Stripe Radar
What makes Radar, Stripe’s fraud prevention solution, so powerful? Here are some of the key decisions made—and lessons learned—in the years it has taken to build it.
🔥1
Meta вчера представила базовую модель Emu для генерации видео и редактирования изображений
На мой взгляд она одна из самых качественных, что я видел. Выглядит так, что возможности движения на генерациях ограничены, но такого достаточно для большого количества приложений
Meta на самом деле ориентируется на использование в своей экосистеме и видит модель как генератор GIF, скетчей и набросков (мне кажется это пока вообще основное применение таким моделям), а также как редактор изображений для социальных сетей
Статья
На мой взгляд она одна из самых качественных, что я видел. Выглядит так, что возможности движения на генерациях ограничены, но такого достаточно для большого количества приложений
Meta на самом деле ориентируется на использование в своей экосистеме и видит модель как генератор GIF, скетчей и набросков (мне кажется это пока вообще основное применение таким моделям), а также как редактор изображений для социальных сетей
Статья
Meta AI
Emu Video and Emu Edit: Our latest generative AI research milestones
Today, we’re announcing new research into controlled image editing based solely on text instructions and a method for text-to-video generation based on diffusion models.
А вот и релиз видеогенерации, которую можно потрогать и использовать
Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
Модель
Статья
Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
Модель
Статья
GitHub
GitHub - Stability-AI/generative-models: Generative Models by Stability AI
Generative Models by Stability AI. Contribute to Stability-AI/generative-models development by creating an account on GitHub.
🔥3
Позвали на хакатон техэкспертом
У меня CV/ML кейс от сколтеха
На самом деле хороший способ вырваться и чуть сменить картинку перед глазами
В основном тут школьники и студенты 1-2х курсов, но я поймал себя на мысли, что было бы круто и мне поучаствовать
Хакатон очень хорошее место, чтобы получить себе проект в портфолио - нужно всего два-три дня, а условия создаются около идеальные: все данные собраны, почищены и размечены, а заказчик уже зафиксировал конечную цель и не нужно итерироваться
У меня CV/ML кейс от сколтеха
На самом деле хороший способ вырваться и чуть сменить картинку перед глазами
В основном тут школьники и студенты 1-2х курсов, но я поймал себя на мысли, что было бы круто и мне поучаствовать
Хакатон очень хорошее место, чтобы получить себе проект в портфолио - нужно всего два-три дня, а условия создаются около идеальные: все данные собраны, почищены и размечены, а заказчик уже зафиксировал конечную цель и не нужно итерироваться
👍3🤔1💯1
Про оптимизации кода
За последние 3 месяца пришлось поускорять код под x86 и arm
Принято считать, что современные компиляторы и так хорошо оптимизируют. И это правда, когда дело касается простых вещей в духе копирования массива
Но компилятор не может оптимизировать неизвестное на момент компиляции:
1. Если в цикле есть if, он может разломать векторизацию или добавить миспредикт бранча
2. Что в GPU, что в CPU недоутилизация вычислителя часто упирается в пропускную способность памяти и ее размеры (для GPU - память девайса. Для CPU - L1-L3 кэши). Так вот компилятор не может заранее понять, какие данные переиспользуются и от того будет постоянно перевытеснять их в кэшах.
3. Выравнивание по кэш линии
Если у вас есть межядерное взаимодействие, то, если два значения будут расположены в одной кэш линии, протокол синхронизации будет замедлять работу на обращении к каждой ячейке в кэш линии
Самый простой способ и самый стреляющий - объявить в классе
atomic<int> first;
atomic<int> second;
И вот уже два кажется независимых атомика сидят в одной кэшлинии и живут как один. А вы не понимаете, где этот ваш lock-free и почему такой маленький (в 2-4 раза меньше) bandwidth
4. Если вычислитель имеет несколько физических вычислительных блоков, то компилятор может недоутилизировать данный параллелизм. Например, автоматический unroll циклов затруднен при зависимостях между итерациями
5. Функции стандартной библиотеки должны быть универсальны, надежны и поддерживаемы. От сюда даже такие вещи как сортировка и бинарный поиск могут быть ускоренны в разы, не меняя алгоритм. Даже в с++. Хотя для этого вам нужно будет использовать simd инструкции под определенный тип данных
6. Numa ноды.
Если память выделится на одной ноде, поток вытеснится и перешедулится на ядро другой ноды - получите задержку на копирования между нумами (шаг протокола синхронизации)
Хотя, честно, Numa ноды сильно чаще упоминают, чем они реально улучшают производительность - в большинстве приложений микросекундные задержки не видны
Материалов на эту тему много. Мне очень понравилась книга от Сергея Слотина. Многое из того, что приходилось выискивать, там есть в хорошем качестве
Но опять же, пока сами не уткнетесь, в важность не поверите)
За последние 3 месяца пришлось поускорять код под x86 и arm
Принято считать, что современные компиляторы и так хорошо оптимизируют. И это правда, когда дело касается простых вещей в духе копирования массива
Но компилятор не может оптимизировать неизвестное на момент компиляции:
1. Если в цикле есть if, он может разломать векторизацию или добавить миспредикт бранча
2. Что в GPU, что в CPU недоутилизация вычислителя часто упирается в пропускную способность памяти и ее размеры (для GPU - память девайса. Для CPU - L1-L3 кэши). Так вот компилятор не может заранее понять, какие данные переиспользуются и от того будет постоянно перевытеснять их в кэшах.
3. Выравнивание по кэш линии
Если у вас есть межядерное взаимодействие, то, если два значения будут расположены в одной кэш линии, протокол синхронизации будет замедлять работу на обращении к каждой ячейке в кэш линии
Самый простой способ и самый стреляющий - объявить в классе
atomic<int> first;
atomic<int> second;
И вот уже два кажется независимых атомика сидят в одной кэшлинии и живут как один. А вы не понимаете, где этот ваш lock-free и почему такой маленький (в 2-4 раза меньше) bandwidth
4. Если вычислитель имеет несколько физических вычислительных блоков, то компилятор может недоутилизировать данный параллелизм. Например, автоматический unroll циклов затруднен при зависимостях между итерациями
5. Функции стандартной библиотеки должны быть универсальны, надежны и поддерживаемы. От сюда даже такие вещи как сортировка и бинарный поиск могут быть ускоренны в разы, не меняя алгоритм. Даже в с++. Хотя для этого вам нужно будет использовать simd инструкции под определенный тип данных
6. Numa ноды.
Если память выделится на одной ноде, поток вытеснится и перешедулится на ядро другой ноды - получите задержку на копирования между нумами (шаг протокола синхронизации)
Хотя, честно, Numa ноды сильно чаще упоминают, чем они реально улучшают производительность - в большинстве приложений микросекундные задержки не видны
Материалов на эту тему много. Мне очень понравилась книга от Сергея Слотина. Многое из того, что приходилось выискивать, там есть в хорошем качестве
Но опять же, пока сами не уткнетесь, в важность не поверите)
🔥4
С началом нового года вас!
Опубликовал перевод статьи с dev блога
В таких статьях иногда много воды, но они полезны для расширения кругозора
Опубликовал перевод статьи с dev блога
В таких статьях иногда много воды, но они полезны для расширения кругозора
Хабр
Выборочное удаление столбцов для повышения эффективности хранения в озерах данных
Введение По мере роста Uber объем обрабатываемых данных и количество обращений к ним многократно возросли. Такое быстрое увеличение объема привело к росту затрат на хранение и вычислительные ресурсы....
❤2
Selective Column Reduction for DataLake Storage Cost Efficiency
Хотим научиться удалять столбцы в таблицах не делая дорогостоящие чтения и записи
Для этого залезем внутрь формата данных Apache Parquet, руками скопируем чанки данных с нужными нам колонками, а чанки с ненужными - просто пропустим
После запишем новые смещения начала чанков в метаданные
Если необходимо - в конце операции можно потереть исходный файл с чанками (в партиционированных таблицах копирование не страшно, т.к. чанки не сильно большие)
И, конечно, заметим, что это по сути Map операция, поэтому можно эффективно делать ее распределенно: запускаем несколько задач - по одной для каждого физического файла под абстракцией таблицы
Что мне нравится в этой статье
- Базово про Parquet и вообще затрагивается тема layout таблицы на диске
- Не боимся лезть внутрь движков и на масштабе получать экономию (кластера обычно общие, поэтому сэкономленное железо пойдет под утилизацию другими задачами)
- Натягиваем алгоритм на использующийся движок (у Uber это Spark, но это не принципиально)
оригинал
Хотим научиться удалять столбцы в таблицах не делая дорогостоящие чтения и записи
Для этого залезем внутрь формата данных Apache Parquet, руками скопируем чанки данных с нужными нам колонками, а чанки с ненужными - просто пропустим
После запишем новые смещения начала чанков в метаданные
Если необходимо - в конце операции можно потереть исходный файл с чанками (в партиционированных таблицах копирование не страшно, т.к. чанки не сильно большие)
И, конечно, заметим, что это по сути Map операция, поэтому можно эффективно делать ее распределенно: запускаем несколько задач - по одной для каждого физического файла под абстракцией таблицы
Что мне нравится в этой статье
- Базово про Parquet и вообще затрагивается тема layout таблицы на диске
- Не боимся лезть внутрь движков и на масштабе получать экономию (кластера обычно общие, поэтому сэкономленное железо пойдет под утилизацию другими задачами)
- Натягиваем алгоритм на использующийся движок (у Uber это Spark, но это не принципиально)
оригинал
🔥3
R&D в Google
Как правило, компании по-разному понимают функционал отделов и команд в структуре компании. Глобально можно сказать, что в разработке есть R = “Research” и D = “Development”.
С Development понятно - это команды, обычно ориентированные на выполнение плана и выгоду на горизонте до 6-12 месяцев
С R&D, если смотреть по рынку в целом, в основном компании чуть сваливаются в одну из сторон:
1. В Research:
задача улучшить алгоритм и оформить результат в виде презентаций и статей. О таком формате я часто слышу от ребят из Huawei/Samsung (справедливости ради, часто они себя явно Research называют, а не R&D)
2. В Development:
Задача - зарабатывать деньги, метрики вовлеченности и тд
У меня в отделе так - нет заработанных денег => нет больших премий
Наши команды явно позиционируются как продуктовые
И очень сложно сказать, что вот этот человек исследователь, а этот - копатель. Исследователь может под себя полезть переписывать часть движка инференса, потому что никто другой это делать не пойдет
Наткнулся на статью 2012 года от Гугла. Еще есть хороший обзор с инфографикой на медиуме
Они про второй тип - командам необходимо дать конкретную пользу на горизонте максимум нескольких лет.
Нет явного разделения. Людей переводят между ролями для разнообразия задач и опыта. Это позволяет нанимать реально крутых ребят и закрывать дыру непонимания между исследованиями и продуктом
И это в целом соответствует желаниям большей части хороших разработчиков - хочется держать баланс между исследованием и практикой внедрения
Как правило, компании по-разному понимают функционал отделов и команд в структуре компании. Глобально можно сказать, что в разработке есть R = “Research” и D = “Development”.
С Development понятно - это команды, обычно ориентированные на выполнение плана и выгоду на горизонте до 6-12 месяцев
С R&D, если смотреть по рынку в целом, в основном компании чуть сваливаются в одну из сторон:
1. В Research:
задача улучшить алгоритм и оформить результат в виде презентаций и статей. О таком формате я часто слышу от ребят из Huawei/Samsung (справедливости ради, часто они себя явно Research называют, а не R&D)
2. В Development:
Задача - зарабатывать деньги, метрики вовлеченности и тд
У меня в отделе так - нет заработанных денег => нет больших премий
Наши команды явно позиционируются как продуктовые
И очень сложно сказать, что вот этот человек исследователь, а этот - копатель. Исследователь может под себя полезть переписывать часть движка инференса, потому что никто другой это делать не пойдет
Наткнулся на статью 2012 года от Гугла. Еще есть хороший обзор с инфографикой на медиуме
Они про второй тип - командам необходимо дать конкретную пользу на горизонте максимум нескольких лет.
Нет явного разделения. Людей переводят между ролями для разнообразия задач и опыта. Это позволяет нанимать реально крутых ребят и закрывать дыру непонимания между исследованиями и продуктом
И это в целом соответствует желаниям большей части хороших разработчиков - хочется держать баланс между исследованием и практикой внедрения
🔥4❤1🤔1
Обзор баз данных за 2023
В Carnegie Mellon University (CMU) есть очень сильная группа по базам данных. Во многом благодаря Andy Pavlo - очень крутому профессору с отличной подачей материала на лекциях
Еще у него есть стартап Ottertune, который с помощью ML настраивает параметры для баз данных для лучшей производительности
Он делает ежегодные обзоры индустрии. Поверьте, там есть что разбирать. Потому что стартапы по базам данных открываются и закрываются огромными объемами 😁
Что произошло в прошлом году?
1. Подъем популярности векторных баз данных. Во многом благодаря LLM и возможности по эмбедингам искать приближенно документы в “базе знаний”. И вот компании, типа Qdrant, Pinecone и Weaviate подняли существенные раунды
Но вот основная проблема в том, что функционал поиска по вектору - это по сути просто KNN индекс, которую может реализовать почти дюбая СУБД. Например просто интегрировав к себе faiss. Потому конкуренция и давление будут усиливаться
И, по большому счету, у векторных баз есть два пути
а. Превращаться в подобие MongoDB и служить базой записей. И заниматься реализацией SQL, распределенности и тд
б. Становиться вторичным специализированным движком (как Elasticsearch для логов)
2. Улучшения SQL стандарта
а. Поддержка графовых запросов. Пока в стандарте и реализовано только у Oracle. Должно стать меньше извращений с обходом графа
б. Поддержка многомерных массивов. С одной стороны это то же извращение, что и хранить json вместо создания нормальной таблицы и SQL база не очень про такую логику. С другой стороны, такое нововведение точно улучшит жизнь аналитикам, которые не будут вынуждены все сначала выгружать в python, а потом руками обрабатывать
*Наличие стандарта не означает наличие стабильной реализации (применимо вообще ко всему в ИТ)
3. Драмма MariaDB
Если коротко, то пахнет жареным. Перед IPO в тихую вывели 99% фандинга с профитной части компании. Акции упали на 90% от стоимости на IPO. Непрофитная часть, которая занимается поддержкой opensourse, говорит, что люди из профитной части не очень компетентны
Основатель обругал CEO при всех и ушел с командой
В общем то грусть и печаль. Пострадают те, кто поверили в проект и могут остаться без поддержки
Тут же Andy подмечает, что смерть профитной части компании почти всегда приводит к смерти проекта, каким бы опенсурсным он не был (за очень редкими исключениями). Мало кто готов заниматься благотворительностью. Доработка и поддержка любой софтины - тяжелая работа
4. Как в январе 2023 крашнулась система NOTAM, предупреждающая пилотов об опасности.
Было нарушено расписание примерно 11000 рейсов (задержка/экстренная посадка)
Судя по всему, система не менялась с момента закупки в 80х годах. И скорее всего, держала не больше 50 RPS (что забавно в сравнении с текущими производительностями систем)
Причина ошибки - покоррапченные файлы. И на последок: бекап, из которого попытались восстановить систему, оказался тоже нарушенным. Вообще восстановление из бекапа - это очень важный сценарий, который стоит регулярно прогонять на своих бекапах, иначе защита от ваших бекапов на уровне иконок в машине, приклеенных на место разрыва подушки безопасности
И в целом - стоит меньше доверять надежности систем. Кто бы что не говорил - они падают. Даже у гигантов индустрии.
А гарантии отказоустойчивости - не всегда выполнимы (маркетологи баз данных Вам поклянутся об обратном 😊)
5. Венчур в стартапах по базам данных
Много денег поднято. Но учитывая ситуацию в мире, вполне возможны дальнейшие сокращения персонала
TileDB - 34m$ series B
SQreamDB - 45m$ Series C
Neon - 46m$ series B
MotherDuck - 52.5m$ series B
DBeaver - 5m$ seed round (вот этой штукой я пользуюсь, но пока не понятно, почему я должен захотеть заплатить)
В Carnegie Mellon University (CMU) есть очень сильная группа по базам данных. Во многом благодаря Andy Pavlo - очень крутому профессору с отличной подачей материала на лекциях
Еще у него есть стартап Ottertune, который с помощью ML настраивает параметры для баз данных для лучшей производительности
Он делает ежегодные обзоры индустрии. Поверьте, там есть что разбирать. Потому что стартапы по базам данных открываются и закрываются огромными объемами 😁
Что произошло в прошлом году?
1. Подъем популярности векторных баз данных. Во многом благодаря LLM и возможности по эмбедингам искать приближенно документы в “базе знаний”. И вот компании, типа Qdrant, Pinecone и Weaviate подняли существенные раунды
Но вот основная проблема в том, что функционал поиска по вектору - это по сути просто KNN индекс, которую может реализовать почти дюбая СУБД. Например просто интегрировав к себе faiss. Потому конкуренция и давление будут усиливаться
И, по большому счету, у векторных баз есть два пути
а. Превращаться в подобие MongoDB и служить базой записей. И заниматься реализацией SQL, распределенности и тд
б. Становиться вторичным специализированным движком (как Elasticsearch для логов)
2. Улучшения SQL стандарта
а. Поддержка графовых запросов. Пока в стандарте и реализовано только у Oracle. Должно стать меньше извращений с обходом графа
б. Поддержка многомерных массивов. С одной стороны это то же извращение, что и хранить json вместо создания нормальной таблицы и SQL база не очень про такую логику. С другой стороны, такое нововведение точно улучшит жизнь аналитикам, которые не будут вынуждены все сначала выгружать в python, а потом руками обрабатывать
*Наличие стандарта не означает наличие стабильной реализации (применимо вообще ко всему в ИТ)
3. Драмма MariaDB
Если коротко, то пахнет жареным. Перед IPO в тихую вывели 99% фандинга с профитной части компании. Акции упали на 90% от стоимости на IPO. Непрофитная часть, которая занимается поддержкой opensourse, говорит, что люди из профитной части не очень компетентны
Основатель обругал CEO при всех и ушел с командой
В общем то грусть и печаль. Пострадают те, кто поверили в проект и могут остаться без поддержки
Тут же Andy подмечает, что смерть профитной части компании почти всегда приводит к смерти проекта, каким бы опенсурсным он не был (за очень редкими исключениями). Мало кто готов заниматься благотворительностью. Доработка и поддержка любой софтины - тяжелая работа
4. Как в январе 2023 крашнулась система NOTAM, предупреждающая пилотов об опасности.
Было нарушено расписание примерно 11000 рейсов (задержка/экстренная посадка)
Судя по всему, система не менялась с момента закупки в 80х годах. И скорее всего, держала не больше 50 RPS (что забавно в сравнении с текущими производительностями систем)
Причина ошибки - покоррапченные файлы. И на последок: бекап, из которого попытались восстановить систему, оказался тоже нарушенным. Вообще восстановление из бекапа - это очень важный сценарий, который стоит регулярно прогонять на своих бекапах, иначе защита от ваших бекапов на уровне иконок в машине, приклеенных на место разрыва подушки безопасности
И в целом - стоит меньше доверять надежности систем. Кто бы что не говорил - они падают. Даже у гигантов индустрии.
А гарантии отказоустойчивости - не всегда выполнимы (маркетологи баз данных Вам поклянутся об обратном 😊)
5. Венчур в стартапах по базам данных
Много денег поднято. Но учитывая ситуацию в мире, вполне возможны дальнейшие сокращения персонала
TileDB - 34m$ series B
SQreamDB - 45m$ Series C
Neon - 46m$ series B
MotherDuck - 52.5m$ series B
DBeaver - 5m$ seed round (вот этой штукой я пользуюсь, но пока не понятно, почему я должен захотеть заплатить)
🔥4👏1
Выглядит это все конечно немного сюрреалистично. Как и венчур в целом. Большинство этих компаний просто не имеют ничего кроме софтины за спиной и около нуля платящих клиентов. Потому большинство из них просто живет, пока есть фандинг.
А потом напишут:
“Мы не смогли поднять раунд, извините, мы закрываемся. И да, ваши инстансы с данными будут удалены через 2 недели. Хорошего вам дня! С любовью, команда ХХХ“
А потом напишут:
“Мы не смогли поднять раунд, извините, мы закрываемся. И да, ваши инстансы с данными будут удалены через 2 недели. Хорошего вам дня! С любовью, команда ХХХ“
😁2
Про обучение больших трансформеров
В основном в проде все используют LLM размера не больше 35B. А на деле даже чаще 7B или 15B
Связано это в первую очередь с эффективностью и расходимостью юнит экономики (ее бы с маленькими моделями свести для начала. GPU дороги)
Но параллельно есть товарищи, которые учат максимально большие сети. Прямого коммерческого смысла в этом сейчас нет - слишком дорогие косты инференса - сложно придумать маржинальное использование. А капекс на обучение самой сети очень велик
Зачем же тогда учат? Чтобы:
- Дистилировать в маленькую модель
- Новые идеи
- Перестраховаться на случай прорыва в вычислительных технологиях
Увидел статью Nvidia, как учить большие сети, когда под один эксперимент используется 1000+ GPU
Я выше писал, что мне очень нравится концепция Ray, однако самая большая его проблема - невозможность хорошо делить память девайса. И таким образом в любой момент времени только 1 операция может занимать GPU. Так вот для LLM это не большая проблема - нейронки большие, можно пофьюзить слои, да и воообще только Вы на кластере
Частичное решение данной проблемы - виртуальный сплит GPU, например MIG
При параллелизме вычисления нейросети (forward pass) есть 3 техники - параллелизм данных, тензоров и графа модели
В статье немного другая терминология - intra (== data + tensor. Параллелизм данных это по сути параллелизм тензора по внешней батч размерности) и inter (граф модели)
В такой терминологии удобнее мыслить блоками и связями между ними
Теперь к тому, как собственно устроено обучение:
1. Есть код в Jax
2. Далее alpa (сейчас функционал auto_sharding в рамках XLA) оптимальную модель intra вычислений (например матричных умножений)
3. alpa рассчитывает inter план вычислений
4. Компилируем каждый блок графа в IR представление (ака JIT)
5. Шедулим исполнение “бинарей” поверх акторной модели Ray
При всех доделках получаем утилизацию 57.5%, так что еще есть куда копать
В основном в проде все используют LLM размера не больше 35B. А на деле даже чаще 7B или 15B
Связано это в первую очередь с эффективностью и расходимостью юнит экономики (ее бы с маленькими моделями свести для начала. GPU дороги)
Но параллельно есть товарищи, которые учат максимально большие сети. Прямого коммерческого смысла в этом сейчас нет - слишком дорогие косты инференса - сложно придумать маржинальное использование. А капекс на обучение самой сети очень велик
Зачем же тогда учат? Чтобы:
- Дистилировать в маленькую модель
- Новые идеи
- Перестраховаться на случай прорыва в вычислительных технологиях
Увидел статью Nvidia, как учить большие сети, когда под один эксперимент используется 1000+ GPU
Я выше писал, что мне очень нравится концепция Ray, однако самая большая его проблема - невозможность хорошо делить память девайса. И таким образом в любой момент времени только 1 операция может занимать GPU. Так вот для LLM это не большая проблема - нейронки большие, можно пофьюзить слои, да и воообще только Вы на кластере
Частичное решение данной проблемы - виртуальный сплит GPU, например MIG
При параллелизме вычисления нейросети (forward pass) есть 3 техники - параллелизм данных, тензоров и графа модели
В статье немного другая терминология - intra (== data + tensor. Параллелизм данных это по сути параллелизм тензора по внешней батч размерности) и inter (граф модели)
В такой терминологии удобнее мыслить блоками и связями между ними
Теперь к тому, как собственно устроено обучение:
1. Есть код в Jax
2. Далее alpa (сейчас функционал auto_sharding в рамках XLA) оптимальную модель intra вычислений (например матричных умножений)
3. alpa рассчитывает inter план вычислений
4. Компилируем каждый блок графа в IR представление (ака JIT)
5. Шедулим исполнение “бинарей” поверх акторной модели Ray
При всех доделках получаем утилизацию 57.5%, так что еще есть куда копать
NVIDIA Technical Blog
Efficiently Scale LLM Training Across a Large GPU Cluster with Alpa and Ray
When used together, Alpa and Ray offer a scalable and efficient solution to train LLMs across large GPU clusters.
🔥5
2 рупора относительно того, как надо деплоить нейросети
1. Построим большие датацентры за ооочень много денег. Будем инференсить централизованно все там. На масштабе точно окупится. Ну сейчас не окупается, да. Но мы что-нибудь придумаем
Это приходит в голову в перую очередь и на самом деле почти все стартапы и рнд отделы именно так деплоят (отсюда и заказы на тысячи видеокарт)
2. А почему мы? У пользователей смартфоны, планшеты, умные колонки, часы и вообще много всего умного
Пусть их устройства и считают все эти нейронки. Железо существенно спрогрессировало на мобильных устройствах
И это более разумный рупор. Так делают примерно все производители мобильных (как минимум в камерах +- каждая уважающая себя компания использует или пыталется использовать не одну нейронку)
Получается две крайности, хотя определяющее - за что пользователь не готов или готов платить. Врятли многие готовы платить за обработку каждой фотографии в датацентре или покупать новомодное AI-only устройство за сотни долларов ради чатбота
При этом выглядит все органично. Команды с разным фокусом естественно пытаются перетянуть одеяло на себя
Но глобально одни пытаются обучить большую и умную базовую модель (однако “как есть” не особо пригодную из-за высокой стоимости инференса), а другие танцами с бубном пытаются сделать из базовых сетей прикладной алгоритм
1. Построим большие датацентры за ооочень много денег. Будем инференсить централизованно все там. На масштабе точно окупится. Ну сейчас не окупается, да. Но мы что-нибудь придумаем
Это приходит в голову в перую очередь и на самом деле почти все стартапы и рнд отделы именно так деплоят (отсюда и заказы на тысячи видеокарт)
2. А почему мы? У пользователей смартфоны, планшеты, умные колонки, часы и вообще много всего умного
Пусть их устройства и считают все эти нейронки. Железо существенно спрогрессировало на мобильных устройствах
И это более разумный рупор. Так делают примерно все производители мобильных (как минимум в камерах +- каждая уважающая себя компания использует или пыталется использовать не одну нейронку)
Получается две крайности, хотя определяющее - за что пользователь не готов или готов платить. Врятли многие готовы платить за обработку каждой фотографии в датацентре или покупать новомодное AI-only устройство за сотни долларов ради чатбота
При этом выглядит все органично. Команды с разным фокусом естественно пытаются перетянуть одеяло на себя
Но глобально одни пытаются обучить большую и умную базовую модель (однако “как есть” не особо пригодную из-за высокой стоимости инференса), а другие танцами с бубном пытаются сделать из базовых сетей прикладной алгоритм
❤3👍1🔥1