EnergeticAI

EnergeticAI

EnergeticAI open-source project · 程式設計

EnergeticAI 是為無伺服器函式打造的 TensorFlow.js 開源發行版,讓 Node.js 應用在約 50 毫秒的冷啟動內跑完嵌入模型或文字分類器。

EnergeticAI 的介面預覽

關於 EnergeticAI

What Is EnergeticAI

EnergeticAI 是 TensorFlow.js 的精簡版,針對 AWS Lambda、Vercel Functions、Netlify Functions 這類無伺服器函式重新打包。它解決的是一個很實際的部署問題。原始函式庫未壓縮時佔 146 MB 到 513 MB,常常在程式碼還沒開始執行前就撞上套件大小上限。模型權重還會在第一次呼叫時才下載,冷啟動因此被推到兩秒以上。

專案只留下推論需要的部分。模組大小降到約 3 MB,依團隊自己的測試,冷啟動推論接近 50 毫秒,核心套件則可以直接取代 @tensorflow/tfjs-core。也就是說,你手上既有的程式碼與模型多半不必改寫就能跑。

限制和優點一樣明顯。預訓練模型只涵蓋英文嵌入與文字分類,語意搜尋仍標示為規劃中,全部運算走 WebAssembly,沒有 GPU 加速。npm 上的版本是 2023 年 6 月發布的 0.2.0,請把它當成穩定但沉寂的專案,而不是持續擴張的平台。

Getting Started

  1. 安裝 Node 18 以上版本,然後裝入核心套件與你要用的模型庫:npm install @energetic-ai/core @energetic-ai/embeddings @energetic-ai/model-embeddings-en。
  2. 從模型庫匯入 initModel 與對應的模型來源,每個函式實例載入一次權重。
  3. 對字串陣列呼叫 model.embed() 取得向量,或改用分類器套件,用幾十筆標註樣本訓練。
  4. 用內建的 distance 比較向量,再把分數接進你的排序、過濾或分流邏輯。
  5. 部署到無伺服器平台後檢查套件大小,因為這個上限正是大家改用 EnergeticAI 的原因。

產品資訊

快速了解 EnergeticAI 的定價、支援平台與效能。

免費方案是
付費方案$0
平台Node.js 18+ on serverless hosts (AWS Lambda, Vercel, Netlify Functions)
開發者EnergeticAI open-source project
類別程式設計
發布日期Jun 2023
最近更新Jun 2023
網站訪問量N/A
網站全球排名13.1M
API 提供狀態是

適合對象

這項工具最適合的使用者、任務與情境。

使用者

  • 部署到無伺服器平台的 Node.js 開發者:這個函式庫就是為了撐過 TensorFlow.js 過不去的套件上限,時間該花在功能上,而不是打包技巧。
  • 獨立開發者與小型團隊:沒有推論帳單,也不用申請 API 金鑰,側專案在流量真的進來之前一直是零成本。
  • 資料規範嚴格的團隊:推論在你自己的函式裡完成,文字不離開自家基礎設施,隱私文件也不必多列一家供應商。
  • 要加入第一個 AI 功能的後端工程師:預訓練模型就能處理常見情境,不需要訓練流程、GPU 或隨時待命的機器學習專家。

任務

  • 用嵌入向量做商品推薦:目錄索引一次,每次請求即時算出頁面向量,再依距離排序。
  • 用幾十筆標註樣本訓練文字分類器,替客服工單或表單內容分流。
  • 靠向量距離把重複的評論、回饋或重複刊登的商品歸在一起,不必手寫關鍵字規則。
  • 在幾百份文件上疊一層輕量語意搜尋,前提是你接受專用的語意搜尋模型還在規劃中。

情境

  • 在免費或低價方案上部署,套件上限卡得死,3 MB 的模組決定你能不能上線。
  • 推論的內容不能送到外部 API,例如內部工單、臨床紀錄或受合約保護的客戶資料。
  • 在筆電上先把 AI 功能做出來,同一份程式碼直接推上正式環境,不必為了某家供應商的 SDK 重寫模型層。

主要功能

為無伺服器而生的打包方式

整個專案都繞著函式平台的限制設計。模組縮到約 3 MB,能塞進 Lambda 與邊緣環境常見的上限,而原始 TensorFlow.js 往往直接超出。模型權重跟著套件一起走,不必在第一次呼叫時下載,冷容器因此不用等網路就能回應。

冷啟動速度

官網宣稱在無伺服器函式中的推論速度可達 TensorFlow.js 的 67 倍,測試方式是在 M1 Max 的 MacBook Pro 上初始化模型,並對一段五句文字算出嵌入。實際數字會隨平台與輸入長度變動。方向倒是很清楚:幾十毫秒而不是好幾秒,而這正是請求會不會逾時的關鍵。

預訓練嵌入模型

嵌入套件把字串轉成可以比較、分群或排序的向量。英文模型獨立成一個權重套件,你只裝需要的語言。想做出推薦或文字相似度,這是最快的路徑,完全不用自己訓練。

少量樣本的文字分類器

分類器套件在執行時用一小批標註樣本訓練,適合只有 20 或 50 筆資料、拿不出完整資料集的分流與標記工作。標註留在你的儲存庫裡,每次部署重新訓練,行為就跟著程式碼一起版控。

直接相容 TensorFlow.js

核心模組對應 @tensorflow/tfjs-core 的 API,既有的 import 與模型程式碼通常照樣能跑。你可以先拿一個端點試,確認沒問題再換掉整個服務,嘗試成本因此很低。

WebAssembly 後端

推論走 WebAssembly,處理短輸入夠快,而且任何 Node 主機都能跑,不需要原生編譯。它沒有 GPU 加速,大批次與長文件的速度會比 CUDA 機器慢上一截。

優缺點

優點

  • 套件從幾百 MB 降到約 3 MB,很多時候這是模型能不能放上無伺服器方案的唯一條件。
  • 依專案測試,冷啟動接近 50 毫秒,使用者請求不會卡在模型載入。
  • Apache 2.0 授權,預訓練模型也挑過授權條款,商業使用相對單純。
  • 沒有逐次呼叫費用,資料也不必送出你的函式,這點和託管式嵌入 API 差別很大。
  • 核心套件可以直接放進既有 TensorFlow.js 程式碼,遷移通常只是換一個依賴。

缺點

  • 預訓練模型只有英文,多語產品得自備權重並另外測試。
  • 沒有 GPU 支援,大批次處理偏慢,文件一多,小函式每次請求可能要好幾秒。
  • 模型種類很少:目前只有嵌入與分類器,語意搜尋還在規劃中。
  • npm 上停留在 2023 年 6 月的 0.2.0,等於採用一個更新緩慢的專案,請固定版本,出問題時直接讀原始碼。

常見問題

它讓開源 AI 模型跑在無伺服器函式裡。常見用途包括商品推薦、文字分類、重複內容偵測,以及在不便載入完整機器學習堆疊的 Node.js 後端做語意搜尋。