
JAX — это библиотека Python с функциями NumPy, используемая для вырезания тривиальных операций в моделировании машинного обучения.
Автоматическое дифференцирование может иметь огромное значение для успеха модели глубокого обучения, сокращая время разработки для повторения моделей и экспериментов. Раньше программистам приходилось разрабатывать свои собственные градиенты, которые делали модель уязвимой для ошибок, кроме того, что они отнимали много времени, что со временем оказалось катастрофическим. Для отслеживания градиентов по нейронной сети используются такие библиотеки, как TensorFlow и PyTorch. Эти библиотеки помогают разрабатывать обычные функциональные возможности, но для разработки модели, выходящей за рамки их компетенции, их недостаточно. Autograd — это одна библиотека, предназначенная для автоматического различения собственного кода Python и NumPy. JAX, импровизированная версия Autograd, может сочетать аппаратное ускорение и автоматическое дифференцирование с XLA (ускоренная линейная алгебра), специализированным компилятором для линейной алгебры, который может ускорять модели тензорных потоков. Короче говоря, JAX — это библиотека Python с функциями NumPy, используемыми для вырезания тривиальных операций машинного обучения.
Почему вы должны использовать JAX?
Помимо поддержки автоматической дифференциации, которая в первую очередь имеет сильную сторону для глубокого обучения, JAX может значительно повысить скорость — единственная функциональность, почему JAX так дорог многим разработчикам.
Поскольку операции JAX основаны на XLA, компилировать можно быстрее, чем обычно, т. е. примерно в 7,3 раза быстрее при обычном обучении и в 12 раз быстрее в долгосрочной перспективе. Функция компиляции JIT (Just In Time) JAX дополнительно помогает повысить его скорость за счет добавления простого декоратора функций. JAX очень помогает разработчикам уменьшить избыточность за счет векторизации. Процесс машинного обучения состоит из нескольких итераций, при этом одна функция используется для моделирования большого количества наборов данных. Автоматическая векторизация, которую JAX предлагает через преобразование vmap, обеспечивает параллелизм данных с помощью преобразования pmap. Обычно JAX считается альтернативной средой глубокого обучения, однако его приложения выходят за рамки функциональности библиотеки. Flax, haiku и elegy — это библиотеки, созданные на основе JAX для процессов глубокого обучения. В частности, гессианы выполняют оптимизацию более высокого порядка, которую JAX хорошо вычисляет, и все из-за XLA.
JXA против Numpy:
Поскольку JXA хорошо совместим с графическими процессорами, ему присуща совместимость с ЦП, в отличие от Numpy, который совместим только с ЦП. JAX имеет API, аналогичный Numpy, поэтому он может автоматически компилировать код непосредственно на ускорителях, таких как GPU и TPU, что упрощает процесс. Это означает, что код, написанный с использованием синтаксиса Numpy, может работать без сбоев как на процессорах, так и на графических процессорах. Несмотря на наличие специализированных конструкций, JAX находится на более низком уровне с более низким уровнем контроля, чем глубокое обучение, что делает его идеальной заменой NumPy, а благодаря своей структуре «голого железа» его можно использовать для всех видов разработки, помимо глубокого обучения. . В целом, JAX можно рассматривать как расширенную версию Numpy для выполнения вышеупомянутых функций, при этом версия JAX numpy адресуется как Jax.numPy, а JAX почти пуст, за исключением того, что JAX может запускать код на ускорителях.
Больше популярных историй
- 10 000 долларов США идут на биткойны! Но что ждет после этого?
- Куда направляется Андрей Карпаты после ухода из «Автопилота» Теслы?
- ИИ Google не является профессионалом в маркировке данных! Но комп этого не признает
- Как закон раскроет преступления метавселенной? Кто будет свидетелем?
- Генераторы изображений с искусственным интеллектом, такие как Dall.E и Imagen, крадут идеи у людей
- От модели, ориентированной на данные, как движется экосистема ИИ?
- 10 лучших мини-этичных хакерских проектов, которые соискатели должны добавить в резюме
Сообщение Google JAX может превзойти Numpy в исследованиях машинного обучения впервые появилось на .