Antfly 使用純 Zig 語言開發,無需另外建構資料分析與 AI 功能,實現了在單一引擎中同時處理搜尋與推論的目標。
想像一下,當我們在購物網站搜尋商品時,人工智慧 (AI) 能同時即時推論該商品是否符合我的品味並進行推薦。在當前一般的技術環境下,為了實現這一點,我們必須分別架設「搜尋引擎」、一個「推薦 AI 服務」,以及存放資料的「資料庫」。更嚴重的問題是,這其中必然伴隨著複雜的過程,以確保這些系統之間的資料狀態即時同步 (synchronization) 出處:Building a Distributed Search Engine in Pure Go — Antfly Research。
然而最近,一個野心勃勃的專案正受到技術界的矚目,旨在單一引擎內乾淨俐落地解決所有步驟。這就是 Antfly,一個使用現代化系統程式語言 Zig 從零開始設計的資料庫。
為什麼這很重要?
以一般使用者的角度來看,或許會想:「開發者真的有必要從頭製作引擎嗎?」但這個改變直接關係到我們感受到的服務速度與成本,是一個重要的議題。
按照傳統方式將 AI 功能加入服務,必須引入太多的外部函式庫(借用功能的外部程式碼包)。這就像用樂高蓋城堡,卻為了硬湊別人做的零件,反而失去了我們自己城堡原本的設計圖。Antfly 選擇了剔除所有外部依賴,從零開始自己堆疊城堡 出處:GitHub - antflydb/antfly · GitHub。如此一來,服務會變得輕量許多,因外部程式碼衝突導致的預期外錯誤 (bug) 也會減少,最重要的是,即便沒有複雜的高規格硬體,也能高效運行 AI 功能 出處:GitHub - Andrew-Velox/awesome-zig-llm: A curated list of awesome…。
簡單來說:Antfly 為什麼選擇「Zig」?
我們用個比喻來解釋吧。現有的許多資料庫,就像是拿了一堆用 C 或 C++ 製作的外部零件組合而成的「組合式家具」。如果這些零件的規格稍有不同,日後就很難維護,也很難修改。
相反地,以「純 Zig (Pure Zig)」製作,就像是親自砍木頭,從頭到尾打造出一套最適合自己的家具。由於不向外部借用零件 (zero dependencies),因此可以實現將程式執行所需的所有檔案合而為一的「靜態連結 (static linking)」,產出的成品本身既堅固又輕量 出處:A pure Zig 2D graphics library - z2d - Showcase - Ziggit。
Antfly 團隊為了處理搜尋與推論這些高難度任務,從根本上思考了什麼才是真正需要的,而答案就是用 Zig 重新設計 出處:Search-and-Inference, From First Principles — Antfly Research。團隊擺脫了過去那種「希望外部 AI 函式庫能自行通過測試」的被動方式,轉而採取主動 (hands-on) 的方法,自行制定設計規範,並將測試拆解為子系統進行驗證 出處:A search-and-inference database from scratch in pure Zig。
目前進度:進行到哪了?
目前 Antfly 正持續開發中,目標是使用 Zig 語言在單一資料庫環境下處理搜尋與 AI 推論 出處:GitHub - antflydb/antfly · GitHub。當然,這並非已經全部完成。相反地,團隊正透過這次的重新設計過程,專注於將原始設計文件化,並仔細補齊遺漏的測試項目等基礎工程 出處:A search-and-inference database from scratch in pure Zig。
Zig 社群正為了這股「從零開始打造」的風潮而沸騰。不僅是資料庫,就連圖形函式庫或 MIDI(音樂資料標準)函式庫,都不斷出現完全移除 C 語言依賴的「純 Zig」專案 出處:A community for anyone interested in the Zig Programming Language.。
未來的可能性
這個專案的核心價值在於「效率」。像 Antfly 這樣的專案,目標是讓 AI 運算即便在一般硬體 (modest hardware) 上也能順暢運作 出處:GitHub - Andrew-Velox/awesome-zig-llm: A curated list of awesome…。
如果這項嘗試成功,未來我們將能在無需龐大雲端伺服器的情況下,在個人電腦或小型裝置上,看到更多能即時搜尋並進行智慧推論的 AI 應用程式。「將複雜的事物整合為一,並移除不必要的依賴。」這個簡單的原則,或許會成為將 AI 技術帶入平凡日常的強大關鍵。
MindTickleBytes 的 AI 記者觀點
系統越是複雜,越需要重新審視「底部」的勇氣。Antfly 的案例不僅是技術上的挑戰,更顯露了整合支離破碎的 AI 生態系的意志。與其為了追求效率而無條件引用龐大的函式庫,相信深入探討什麼才是本質的需求,最終將創造出更好的使用者體驗。
參考資料
- A search-and-inference database from scratch in pure Zig
- Building a Distributed Search Engine in Pure Go — Antfly Research
- Search-and-Inference, From First Principles — Antfly Research
- A pure Zig 2D graphics library - z2d - Showcase - Ziggit
- GitHub - antflydb/antfly · GitHub
- GitHub - Andrew-Velox/awesome-zig-llm: A curated list of awesome…
- A community for anyone interested in the Zig Programming Language.
- 基於 Python 函式庫開發
- 在單一引擎中同時處理搜尋與 AI 推論
- 利用包含外部 C 依賴的高性能函式庫
- 僅使用 Zig 語言並消除 C 語言依賴
- 無需連網即可運作
- 將所有程式碼寫成一行
- 支援最著名的 AI 函式庫
- 為了滿足搜尋與推論引擎所需的需求
- 擁有最多的 YouTube 觀眾