从 GPT2 到 Stable Diffusion:Hugging Face 进驻 Elixir 社区

发布于 2022 年 12 月 9 日
在 GitHub 上更新

Elixir 社区很高兴地宣布,从 GPT2 到 Stable Diffusion 的多个神经网络模型已引入 Elixir。这得益于刚刚发布的 Bumblebee 库,该库是 Hugging Face Transformers 的纯 Elixir 实现。

为了帮助大家开始使用这些模型,Livebook(一个用于 Elixir 的计算型记事本平台)背后的团队创建了一系列“智能单元”,让开发者仅需 3 次点击即可构建不同的神经网络任务。您可以观看我的视频公告以了解更多信息。

得益于 Elixir 运行所在的 Erlang 虚拟机对并发和分布式的支持,开发者可以将这些模型嵌入并作为其现有 Phoenix Web 应用程序的一部分来提供服务,集成到其 Broadway 数据处理管道中,并将其与 Nerves 嵌入式系统一同部署——而无需依赖第三方库。在所有这些场景中,Bumblebee 模型都可以编译到 CPU 和 GPU。

背景

将机器学习引入 Elixir 的努力始于近两年前的 Numerical Elixir (Nx) 项目。Nx 项目实现了多维张量以及“数值定义”(Elixir 的一个子集,可编译到 CPU/GPU)。Nx 并未重复造轮子,而是使用 Google XLA (EXLA) 和 Libtorch (Torchx) 的绑定进行 CPU/GPU 编译。

Nx 项目还催生了其他几个项目。Axon 为 Elixir 带来了函数式可组合的神经网络,其灵感来源于 FlaxPyTorch Ignite 等项目。Explorer 项目借鉴了 dplyrRust 的 Polars,为 Elixir 社区提供了富有表现力且性能卓越的数据帧。

BumblebeeTokenizers 是我们最新发布的项目。我们感谢 Hugging Face 促进了跨社区和工具的协作式机器学习,这在推动 Elixir 生态系统的快速发展中发挥了至关重要的作用。

接下来,我们计划专注于 Elixir 中神经网络的训练和迁移学习,让开发者能够根据其业务和应用的需求来增强和定制预训练模型。我们还希望发布更多关于我们传统机器学习算法开发的内容。

到你了

如果你想试用 Bumblebee,你可以

  • 下载 Livebook v0.8,然后在你的记事本中通过 "+ Smart" 单元格菜单自动生成“神经网络任务”。我们目前正在努力让 Livebook 在更多平台和 Spaces 上运行(敬请期待!😉)。

  • 我们还编写了单文件 Phoenix 应用程序,作为在你的 Phoenix (+ LiveView) 应用中使用 Bumblebee 模型的示例。这些示例应能提供必要的构建模块,以便将其集成到你的生产应用中。

  • 如果想更深入地动手实践,请阅读我们的记事本

如果你想帮助我们为 Elixir 构建机器学习生态系统,请查看上述项目并尝试使用它们。这里有许多有趣的领域,从编译器开发到模型构建。例如,我们非常欢迎为 Bumblebee 带来更多模型和架构的拉取请求。未来是并发的、分布式的,并且充满乐趣!

社区

注册登录 发表评论