从头开始​​在 JAX 中构建 Transformer:如何编写和训练自己的模型

如何使用 JAX、Haiku 和 Optax 开发和训练 Transformer。通过示例学习如何在 JAX 中编写深度学习模型

来源:AI夏令营

在本教程中,我们将探索如何使用 JAX 开发神经网络 (NN)。还有什么比 Transformer 更好的模型可供选择呢?随着 JAX 越来越受欢迎,越来越多的开发团队开始尝试使用它并将其纳入他们的项目中。尽管它缺乏 Tensorflow 或 Pytorch 的成熟度,但它提供了一些用于构建和训练深度学习模型的出色功能。

Transformer

为了深入了解 JAX 基础知识,请查看我之前的文章(如果您还没有看过)。您也可以在我们的 Github 存储库中找到完整的代码。

上一篇文章 Github 存储库

人们在开始使用 JAX 时遇到的常见问题之一是框架的选择。Deepmind 的人似乎很忙,已经在 J​​AX 之上发布了大量框架。以下是最著名的框架列表:

  • Haiku:Haiku 是深度学习的首选框架,被许多 Google 和 Deepmind 内部团队使用。它为机器学习研究提供了一些简单、可组合的抽象,以及随时可用的模块和层。
  • Haiku:Haiku 是深度学习的首选框架,被许多 Google 和 Deepmind 内部团队使用。它为机器学习研究提供了一些简单、可组合的抽象,以及随时可用的模块和层。

    Haiku
  • Optax:Optax 是一个梯度处理和优化库,包含开箱即用的优化器和相关数学运算。
  • Optax:Optax 是一个梯度处理和优化库,包含开箱即用的优化器和相关数学运算。

    Optax
  • RLax:RLax 是一个具有许多 RL 子组件和操作的强化学习框架。
  • RLax:RLax 是一个具有许多 RL 子组件和操作的强化学习框架。

    RLax
  • Chex:Chex 是一个用于测试和调试 JAX 代码的实用程序库。
  • Chex:Chex 是一个用于测试和调试 JAX 代码的实用程序库。

    Chex Jraph Flax Objax 预训练模型 Trax JAXline ACME jax (