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 模型所需的预处理步骤。
入门指南
- 安装 Livebook v0.8 并使用 “+ Smart” 单元格菜单生成神经网络任务模板。
- 运行 Bumblebee 仓库中的示例 Phoenix 应用,在带 LiveView 的 Web 服务器中查看推理效果。
- 探索 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