在 2023 年 Stack Overflow 開發者調查中,Postgres 頂替了 MySQL 被評為最受歡迎的數據庫。一個重要因素應該是 Postgres 支持擴展:可擴展的架構+ Postgres 仍然由社區擁有,Postgres 生態近年來蓬勃發展。
擴展可以看作是內置功能,能給數據庫增加額外功能。在本文中,我們分享五個可以給你 Postgres 帶來 AI 功能的擴展。
pgvector
pgvector 是一個向量相似性搜索工具,專為 Postgres (支持 Postgres 11+) 設計,還可以用於存儲嵌入向量。
它在 2021 年就開源了,不過熱度在 2023 年開始增加。如果你想用向量數據庫,那麼其實 Postgres 就可以滿足需求了,pgvector 支持:
- 向量與你的其他數據一起存儲
- 支持精確和近似最近鄰搜索
- L2 距離、內積和餘弦距離
- 任何有 Postgres 客户端的語言
如果你用的就是 Postgres,可以直接安裝 pgvector,如果你用的是 Postgres 服務或應用程序,其中有些已經內置了pgvector,例如 Aiven, Neon, Supabase, Postgres.app 等。
PostgresML
PostgresML 是個支持將機器學習 (Machine Learning) 模型集成到 Postgres 中的擴展,並在今年 5 月獲得了 470 萬美元的種子輪。它通過使用 SQL 查詢來進行文本和數據的訓練和推斷,極大地降低了應用程序開發的複雜性。
如果貴司沒有複雜的機器學習工作負載(畢竟不是所有人都是人工智能巨頭),但還是想構建自己的機器學習模型,可以從新鮮數據中進行學習,這是一個很好的入門方式。
有意思的是,他們組織下還有另一個開源項目:PgCat,是個 PostgreSQL 連接池/代理,於 2022 年 2 月開源,或許 PgCat 不夠性感,PostgresML 整體轉向了 AI,向量數據庫?
MADlib
Apache MADlib 是一個用於 SQL 的大數據機器學習工具。它的代碼庫最早在 2016 年左右發佈到 GitHub,但最初的版本早在 2011 年就已經發布(直至今年還在迭代更新)。
SQL 在處理較大或非結構化數據集上無法很好推理、預測或因果分析的觀念已經是過去式了。MADlib 是一個數據庫內機器學習庫,你可以在存儲你數據的數據庫 (Postgres) 中進行高級機器學習,包括各種數據分析任務,包括迴歸和分類。
冷知識:MADlib 的 MAD 代表 Magnetic (磁性), Agile (敏捷) 和 Deep (深度)。
接下來的幾個項目還挺有趣的,不過要用的話自擔風險😅
pg_embedding
pg_embedding 是 Neon 今年 7 月發佈的一個產品,發佈的時候稱比 pgvector 快 20 倍。不過它使用了 HNSW 索引進行高維相似性搜索,比 pgvector 添加 HNSW 支持要早。
但是幾個月後的九月份,他們就加了一條註釋,表示不再維護 pg_embedding。看起來是真的沒有「購買還是構建」的糾結:使用已有的是顯而易見的選擇。
pg_gpt
pg_gpt 是個實驗性的 Postgres 擴展,它在 Postgres 內部使用 OpenAI 的 GPT API,你可以用自然語言向數據庫提問。pg_gpt 背後的組織是 CloudQuery,主業是開源的 ELT 平台。
該插件通過傳輸部分數據庫 schema(不包含數據)的部分發送到 OpenAI GPT API,因此不建議在生產數據庫中使用,但如果比如公開的 schema,那可以試試這個工具。例如,如果想查找過去一個月在 Hacker News 上提到 Sam Altman 的熱門提交,這是一種方法(當然也可以直接用 Search Hacker News 🤣)。
總結
今年我們見證了科技界擁抱人工智能,並在 AI 領域裏找到自己的立足之地。幸好 Postgres 足夠開放,支持擴展,我們有幸得以享用想這些擴展,可以為我們的 Postgres 添加 AI 功能,而無需遷移到新的數據庫。
💡 更多資訊,請關注 Bytebase 公號:Bytebase