Hugging Face 宣布 Bumblebee:在纯 Elixir 中实现 Transformers 与 Stable Diffusion

TL;DR

Hugging Face 推出了 Bumblebee,这是一款纯 Elixir 库,将 Hugging Face Transformers(包括 GPT‑2 和 Stable Diffusion)移植到 Elixir 运行时,使开发者能够在 CPU 或 GPU 上进行推理,而无需第三方二进制文件。

Bumblebee 提供的功能

  • Model coverage:提供从文本生成(GPT‑2)到图像合成(Stable Diffusion)的预训练模型,均以 Elixir 模块形式提供。
  • Zero external dependencies:模型使用 Erlang VM 的并发和分布特性编译为本机 CPU/GPU 代码;无需 Python 或 C 库。
  • Livebook integration:Livebook 的 “Smart cells” 让用户只需三次点击即可搭建神经网络任务,将笔记本转变为交互式机器学习环境。
  • Phoenix、Broadway、Nerves 支持:Bumblebee 模型可嵌入 Phoenix Web 应用、通过 Broadway 流水线进行流式处理,或部署在 Nerves 嵌入式设备上。

技术基础

  • Nx tensors:Bumblebee 基于 Nx 库,提供多维张量以及一套可编译至 XLA(通过 EXLA)或 Libtorch(通过 Torchx)的 Elixir 子集,以实现硬件加速。
  • Axon:提供函数式、可组合的神经网络定义,灵感来源于 Flax 和 PyTorch Ignite。
  • Explorer:数据帧操作使用 Explorer,借鉴了 dplyr 和 Polars 的概念,实现高效的数据处理。
  • Tokenizers:原生 Elixir 分词库处理 Transformer 模型所需的预处理步骤。

入门指南

  1. 安装 Livebook v0.8 并使用 “+ Smart” 单元格菜单生成神经网络任务模板。
  2. 运行 Bumblebee 仓库中的示例 Phoenix 应用,在带 LiveView 的 Web 服务器中查看推理效果。
  3. 探索 Bumblebee notebooks/ 目录下的笔记本,获取动手教程。

未来路线图

  • Training & transfer learning:团队计划在 Elixir 中直接实现预训练模型的微调,使企业能够将模型适配到特定领域数据。
  • Traditional ML algorithms:将在后续版本中加入对传统机器学习算法的支持。
  • Expanded platform support:Livebook 正在移植到更多环境,包括 Hugging Face Spaces。

社区参与

  • 欢迎为 Bumblebee 添加新模型架构的贡献。
  • 在编译器工作、模型构建以及与 Elixir 并发生态系统的集成方面都有机会。
  • 项目强调在 Elixir 中实现“并发、分布式且有趣”的机器学习未来。

该公告于 2022 年 12 月 9 日发布在 Hugging Face 博客上。

SUMMARY: Hugging Face 发布了 Bumblebee,这是一款纯 Elixir 实现的 Transformers,实现了从 GPT‑2 到 Stable Diffusion 的模型在 Elixir 生态系统中的运行,支持本地 CPU/GPU 推理,无需外部依赖。

TITLE: Hugging Face 宣布 Bumblebee:在纯 Elixir 中实现 Transformers 与 Stable Diffusion

Sources