從 GPT2 到 Stable Diffusion:Hugging Face 進駐 Elixir 社群
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 帶來了函式式可組合的神經網路,其靈感來源於 Flax 和 PyTorch Ignite 等專案。Explorer 專案借鑑了 dplyr 和 Rust 的 Polars,為 Elixir 社群提供了富有表現力且效能卓越的資料幀。
Bumblebee 和 Tokenizers 是我們最新發布的專案。我們感謝 Hugging Face 促進了跨社群和工具的協作式機器學習,這在推動 Elixir 生態系統的快速發展中發揮了至關重要的作用。
接下來,我們計劃專注於 Elixir 中神經網路的訓練和遷移學習,讓開發者能夠根據其業務和應用的需求來增強和定製預訓練模型。我們還希望釋出更多關於我們傳統機器學習演算法開發的內容。
到你了
如果你想試用 Bumblebee,你可以
下載 Livebook v0.8,然後在你的記事本中透過 "+ Smart" 單元格選單自動生成“神經網路任務”。我們目前正在努力讓 Livebook 在更多平臺和 Spaces 上執行(敬請期待!😉)。
我們還編寫了單檔案 Phoenix 應用程式,作為在你的 Phoenix (+ LiveView) 應用中使用 Bumblebee 模型的示例。這些示例應能提供必要的構建模組,以便將其整合到你的生產應用中。
如果想更深入地動手實踐,請閱讀我們的記事本。
如果你想幫助我們為 Elixir 構建機器學習生態系統,請檢視上述專案並嘗試使用它們。這裡有許多有趣的領域,從編譯器開發到模型構建。例如,我們非常歡迎為 Bumblebee 帶來更多模型和架構的拉取請求。未來是併發的、分散式的,並且充滿樂趣!