Как NVIDIA теряет монополию в машинном обучении и почему Google проиграл PyTorch
За последнее десятилетие ландшафт разработки ПО для машинного обучения претерпел большие изменения. Многие фреймворки в значительной степени полагались на CUDA от Nvidia и лучше работали на их графических процессорах.
Однако с появлением PyTorch 2.0 и Triton от OpenAI доминирующее положение Nvidia в этой области начало подрывается.
В связи с этим возникают вопросы: почему TensorFlow от Google проиграл PyTorch, почему Google не смог извлечь выгоду из своего лидерства в области ИИ, почему другие компании, занимающиеся аппаратным обеспечением ИИ, до сих пор не смогли повлиять на доминирование Nvidia, почему аппаратное обеспечение будет иметь большее значение, как стирается конкурентное преимущество Nvidia в CUDA?
TensorFlow против PyTorch
Несколько лет назад экосистема фреймворков была довольно фрагментирована, где TensorFlow был лидером. Google был готов контролировать индустрию машинного обучения. У них было преимущество как первопроходцев с TensorFlow, а также с разработкой и развертыванием единственного успешного ускорителя приложений ИИ, TPU.
Но победил PyTorch. Google не смог превратить своё преимущество первопроходца в доминирование в зарождающейся индустрии машинного обучения.
Сегодня Google несколько изолирован в сообществе машинного обучения из-за того, что он не использует PyTorch и графические процессоры в пользу собственного программного стека и оборудования.
У Google даже есть второй фреймворк под названием Jax, который напрямую конкурирует с TensorFlow.
Несмотря на эти проблемы, Google по-прежнему находится в авангарде самых передовых моделей машинного обучения.
Они создали PaLM, LaMBDA, Chinchilla, MUM, TPU.
Но почему PyTorch победил?
PyTorch отличался от TensorFlow тем, что использовал Eager mode, а не Graph Mode.
Режим Eager можно рассматривать как стандартный метод выполнения сценариев. Фреймворк глубокого обучения выполняет каждую операцию немедленно, как и любой другой фрагмент кода Python. Это делает отладку и понимание вашего кода более доступными, так как вы можете видеть результаты промежуточных операций и видеть, как ведет себя ваша модель.
Напротив, режим Graph Mode состоит из двух фаз. Первый этап — это определение графа вычислений, представляющего операции, которые необходимо выполнить. Второй этап — отложенное выполнение оптимизированной версии графа вычислений.
Этот двухэтапный подход усложняет понимание и отладку кода, поскольку вы не можете видеть, что происходит до конца выполнения графа.
Хотя TensorFlow теперь имеет режим Eager по умолчанию, исследовательское сообщество и большинство крупных технологических компаний остановились на PyTorch. Тут писали об этом https://t.me/blockchainRF/6723
Компоненты обучения машинному обучению
Если мы сведём обучение модели машинного обучения к его самой упрощенной форме, то увидим 2 основных временных компонента.
1. Вычисление (FLOPS).
2. Память (пропускная способность).
FLOPS Nvidia увеличился на несколько порядков за счет использования закона Мура.
Поскольку большие языковые модели продолжают расти и занимают терабайты, сети производственных рекомендаций, развернутые Baidu и Meta(запрещённая в РФ организация), требуют десятков терабайт памяти. Очевидный вопрос: почему архитекторы не размещают больше памяти ближе к вычислительным ресурсам? Ответ - деньги.
Продолжение тут.
За последнее десятилетие ландшафт разработки ПО для машинного обучения претерпел большие изменения. Многие фреймворки в значительной степени полагались на CUDA от Nvidia и лучше работали на их графических процессорах.
Однако с появлением PyTorch 2.0 и Triton от OpenAI доминирующее положение Nvidia в этой области начало подрывается.
В связи с этим возникают вопросы: почему TensorFlow от Google проиграл PyTorch, почему Google не смог извлечь выгоду из своего лидерства в области ИИ, почему другие компании, занимающиеся аппаратным обеспечением ИИ, до сих пор не смогли повлиять на доминирование Nvidia, почему аппаратное обеспечение будет иметь большее значение, как стирается конкурентное преимущество Nvidia в CUDA?
TensorFlow против PyTorch
Несколько лет назад экосистема фреймворков была довольно фрагментирована, где TensorFlow был лидером. Google был готов контролировать индустрию машинного обучения. У них было преимущество как первопроходцев с TensorFlow, а также с разработкой и развертыванием единственного успешного ускорителя приложений ИИ, TPU.
Но победил PyTorch. Google не смог превратить своё преимущество первопроходца в доминирование в зарождающейся индустрии машинного обучения.
Сегодня Google несколько изолирован в сообществе машинного обучения из-за того, что он не использует PyTorch и графические процессоры в пользу собственного программного стека и оборудования.
У Google даже есть второй фреймворк под названием Jax, который напрямую конкурирует с TensorFlow.
Несмотря на эти проблемы, Google по-прежнему находится в авангарде самых передовых моделей машинного обучения.
Они создали PaLM, LaMBDA, Chinchilla, MUM, TPU.
Но почему PyTorch победил?
PyTorch отличался от TensorFlow тем, что использовал Eager mode, а не Graph Mode.
Режим Eager можно рассматривать как стандартный метод выполнения сценариев. Фреймворк глубокого обучения выполняет каждую операцию немедленно, как и любой другой фрагмент кода Python. Это делает отладку и понимание вашего кода более доступными, так как вы можете видеть результаты промежуточных операций и видеть, как ведет себя ваша модель.
Напротив, режим Graph Mode состоит из двух фаз. Первый этап — это определение графа вычислений, представляющего операции, которые необходимо выполнить. Второй этап — отложенное выполнение оптимизированной версии графа вычислений.
Этот двухэтапный подход усложняет понимание и отладку кода, поскольку вы не можете видеть, что происходит до конца выполнения графа.
Хотя TensorFlow теперь имеет режим Eager по умолчанию, исследовательское сообщество и большинство крупных технологических компаний остановились на PyTorch. Тут писали об этом https://t.me/blockchainRF/6723
Компоненты обучения машинному обучению
Если мы сведём обучение модели машинного обучения к его самой упрощенной форме, то увидим 2 основных временных компонента.
1. Вычисление (FLOPS).
2. Память (пропускная способность).
FLOPS Nvidia увеличился на несколько порядков за счет использования закона Мура.
Поскольку большие языковые модели продолжают расти и занимают терабайты, сети производственных рекомендаций, развернутые Baidu и Meta(запрещённая в РФ организация), требуют десятков терабайт памяти. Очевидный вопрос: почему архитекторы не размещают больше памяти ближе к вычислительным ресурсам? Ответ - деньги.
Продолжение тут.