Laya:一個開源的系統 1 決策引擎
Laya 是一個非自回歸的決策引擎,專為取代生成式大語言模型(LLM)來處理簡單且結構化的反射式決策而設計。透過使用雙向編碼器而非自回歸的詞元生成,Laya 在單一 GPU 上可於約 32.8 毫秒內對結構化模式提供校準的機率預測,使其顯著比生成式替代方案更快且更具成本效益。
AI 決策的系統 1 方法
現代 AI 流程經常因大型生成式 LLM(系統 2)被用於僅需反射式回應(系統 1)的任務而產生瓶頸。例如工單路由、垃圾郵件檢測和越獄識別等任務並不需要文字生成,而是需要特定的標籤或機率。
使用生成式 LLM 來處理這些任務會帶來多項效率問題:
- 延遲:需等待詞元串流(500ms 到 2,000ms)。
- 成本:8B+ 參數模型的推論成本高昂。
- 可靠性:需使用正則表達式或 JSON 解析器從自由格式文字中提取標籤。
- 校準性:LLM 常常虛構置信度分數(例如輸出「confidence: 0.95」但缺乏數學依據)。
Laya 透過單次前向傳播提供即時且校準的機率,消除了幻覺或格式錯誤 JSON 輸出的可能性。
決策原語與架構
Laya 使用三種核心原語,對任何狀態(文字、電子郵件或 JSON)評估類型化問題:
- Choice:從字典式標準中選擇一個選項,返回所選鍵、機率分佈以及校準的置信度分數。
- Score:將狀態置於序數量表上(例如 0 到 3),返回預期等級與分佈。
- Noul:回傳布林問題的校準機率 $P(\text{true})$,範圍為 0.0 到 1.0。
模型檢查點
Laya 透過 Hugging Face 上的封裝 Hub 提供,包含三個專用檢查點:
| 檢查點 | 主幹編碼器 | 參數 | 上下文 | 主要優勢 |
|---|---|---|---|---|
laya |
ModernBERT-large | 421M | 512 | 英文分類、防護機制、電子郵件分類 |
laya-multilingual |
mmBERT-base | 322M | 1024 | 支援 100+ 語言、跨語言 NLI |
laya-typed-decisions |
ModernBERT-large | 421M | 1024 | 代理可觀測性、發票處理、安全警報 |
多語言路由與腳本檢測
Laya 開發中的一個關鍵發現是:以英語為中心的模型即使無法讀取輸入腳本(例如在高棉文上報告 95% 置信度,但準確率為 0%),仍會報告高置信度。由於置信度門檻對不支援的腳本不可靠,Laya 實作了亞毫秒級的純 Python Router。
此路由器會檢查 22 種字母系統中的 Unicode 腳本,並分析拉丁語停用詞分佈,於前向傳播前將流量路由至適當模型。檢測開銷可忽略不計,通常介於 0.09ms(英語)至 0.73ms(大型 JSON 文件)之間。
性能比較:Laya 對 TypeSafe Jev
Laya 被定位為 TypeSafe Jev 的開源替代方案。基準測試顯示其在速度與成本上具有顯著優勢,儘管在零樣本能力上存在一些妥協。
| 指標 | TypeSafe Jev 1.13.0 | Laya(已路由) | 差異 |
|---|---|---|---|
| 延遲 P50(1 個問題) | 236–276 ms | 32.8 ms | 快 7.8 倍 |
| 延遲 P50(10 個問題批次) | ~1,500 ms | 72.3 ms | 快 20 倍 |
| 校準誤差(ECE) | 0.246 | 0.081 | 校準性提升 3 倍 |
| 每 100 萬詞元成本 | $0.042 | $0.00 | 免費(Apache 2.0) |
| 權重與程式碼 | 封閉 API | 開源 | 可自托管 |
工程限制與需求
Laya 是專門化用的基礎模型,而非全知的零樣本神諭。使用者應注意以下限制:
- 微調必要性:預設基礎模型在特定基準(如
typed-decisions)上得分可能接近隨機(~0.35)。高準確率(0.766)需透過在訓練集上微調才能達成。 - 選擇預算:當選擇架構超過 20 個選項時,因頭部長度的詞元預算限制,性能會下降。
- 上下文視窗:檢查點限制在 512–1024 詞元,遠小於 Jev 所報告的 32k 上下文視窗。
- 溫度校準:為將預期校準誤差從 0.466 降低至 0.081,應針對每種問題類型擬合一個標量溫度以符合領域分佈。
社群見解與反駁
技術使用者之間的討論凸顯了「模型」與「產品」之間的分歧。雖然 Laya 提供權重與架構,但批評者認為 Jev 的價值在於其零樣本表現以及透過 API 部署的便利性。
「Jev 成功的關鍵在於它無需微調即可運作……能在數分鐘內解決任意分類問題,而非花上一週,這是一個巨大的優勢。」
其他使用者指出,Laya 的方法實質上是回歸「傳統機器學習」,基本上是利用 BERT 模型架構並搭配更新的訓練方法(RLCD)來更高效地解決分類任務,優於生成式 LLM。
快速入門實作
Laya 可透過 pip 安裝(pip install laya>=0.3.3),並搭配 Router 來處理多架構決策:
from laya import Router
router = Router(preload=True)
questions = {
"queue": {
"type": "choice",
"instructions": "哪個工程隊列擁有此工單?",
"criteria": {
"infrastructure": "伺服器中斷、網路停擺",
"billing": "退款、SLA 信用"
}
},
"urgency": {
"type": "score",
"instructions": "此工單有多緊急?",
"criteria": ["低", "中", "高", "緊急"]
}
}
res = router.predict({"body": "API 無法使用!"}, questions)
Sources
相關
- Dispatch
- 專案
- Dispatch
- Dispatch
- Dispatch