偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

把AI裝進(jìn)數(shù)據(jù)庫(kù):PostgresML和Korvus的新思路

發(fā)布于 2025-9-23 07:03
瀏覽
0收藏

當(dāng)下機(jī)器學(xué)習(xí)應(yīng)用開(kāi)發(fā)就像是接力賽:從數(shù)據(jù)庫(kù)取數(shù)據(jù),傳到應(yīng)用服務(wù)器,再送到 ML 服務(wù),處理完原路返回。每一棒都是延遲。更別提,開(kāi)發(fā)者還需在SQL和應(yīng)用代碼之間不斷“翻譯”,這無(wú)形中增加了認(rèn)知負(fù)荷和工程的復(fù)雜度。

這時(shí)候,生態(tài)無(wú)比繁榮的開(kāi)源數(shù)據(jù)庫(kù) Postgres 再次帶來(lái)了驚喜,PostgresML 團(tuán)隊(duì)直接讓 AI 模型跑在數(shù)據(jù)庫(kù)中。

把AI裝進(jìn)數(shù)據(jù)庫(kù):PostgresML和Korvus的新思路-AI.x社區(qū)

今天我們就介紹這個(gè)體系的兩個(gè)關(guān)鍵項(xiàng)目:PostgresML和Korvus。這兩個(gè)項(xiàng)目的關(guān)系很清晰,PostgresML作為底層,用 Rust 編寫(xiě),提供 pgml schema 下的各種函數(shù),能夠處理模型加載、GPU 調(diào)度、向量運(yùn)算等任務(wù)。而Korvus基于此對(duì)外提供各種語(yǔ)言( Python、JavaScript、Rust、C等)的SDK封裝。這樣的組合,顯而易見(jiàn)降低了復(fù)雜度。

傳統(tǒng) RAG 架構(gòu):

用戶(hù)請(qǐng)求 → API服務(wù)器 → 向量數(shù)據(jù)庫(kù) → API服務(wù)器 → LLM服務(wù) → API服務(wù)器 → 用戶(hù)

PostgresML + Korvus:

用戶(hù)請(qǐng)求 → Postgres(包含所有處理) → 用戶(hù)

PostgresML:數(shù)據(jù)庫(kù)即 AI 運(yùn)行時(shí)

PostgresML 是一個(gè) Postgres 擴(kuò)展,讓數(shù)據(jù)庫(kù)具備了完整的機(jī)器學(xué)習(xí)能力。

安裝后,你可以在 SQL 里直接訓(xùn)練模型:

-- 訓(xùn)練分類(lèi)模型
SELECT * FROM pgml.train(
    'Handwritten Digit Image Classifier',
    algorithm => 'xgboost',
    'classification',
    'pgml.digits',
    'target'
);

-- 預(yù)測(cè)
SELECT pgml.predict(
    'My Classification Project',
    ARRAY[0.1, 2.0, 5.0]
) AS prediction;

更強(qiáng)大的是深度學(xué)習(xí)支持。PostgresML 集成了 Hugging Face 模型庫(kù),可以直接在數(shù)據(jù)庫(kù)內(nèi)運(yùn)行大語(yǔ)言模型:

-- 生成文本
SELECT pgml.transform(
    task => 'text-generation',
    inputs => ARRAY['Once upon a time'],
    args => '{"model": "gpt2"}'
);

-- 文本嵌入
SELECT pgml.embed(
    'sentence-transformers/all-MiniLM-L6-v2',
    'PostgresML is bringing AI to the database'
);

關(guān)鍵特性:

  • 47 種機(jī)器學(xué)習(xí)算法
  • GPU 加速推理
  • 支持 Hugging Face 上的預(yù)訓(xùn)練模型
  • 內(nèi)置向量數(shù)據(jù)庫(kù)功能(基于 pgvector)
  • 推理速度比 HTTP 服務(wù)快 8-40 倍

這個(gè)性能提升來(lái)自幾個(gè)方面:沒(méi)有網(wǎng)絡(luò)開(kāi)銷(xiāo)、沒(méi)有序列化成本、數(shù)據(jù)和計(jì)算在同一進(jìn)程。

Korvus:讓 RAG 變成一條 SQL

有了 PostgresML 的基礎(chǔ)能力,團(tuán)隊(duì)進(jìn)一步開(kāi)發(fā)了 Korvus。如果說(shuō) PostgresML 是引擎,Korvus 就是為 RAG 場(chǎng)景優(yōu)化的 SDK。

Korvus 的核心理念:"One query to rule them all"。整個(gè) RAG 流程壓縮成一個(gè)數(shù)據(jù)庫(kù)查詢(xún)。

把AI裝進(jìn)數(shù)據(jù)庫(kù):PostgresML和Korvus的新思路-AI.x社區(qū)

看一個(gè)完整例子:

from korvus import Collection, Pipeline
import asyncio

# 1. 初始化
collection = Collection("korvus-demo-v0")
pipeline = Pipeline(
    "v1",
    {
        "text": {
            "splitter": {"model": "recursive_character"},
            "semantic_search": {"model": "Alibaba-NLP/gte-base-en-v1.5"},
        }
    },
)

# 2. 添加pipeline
await collection.add_pipeline(pipeline)

# 3. 插入文檔
documents = [
    {"id": "1", "text": "Korvus is incredibly fast and easy to use."},
    {"id": "2", "text": "Tomatoes are incredible on burgers."},
]
await collection.upsert_documents(documents)

# 4. RAG查詢(xún) - 這里是關(guān)鍵
results = await collection.rag({
    "CONTEXT": {
        "vector_search": {
            "query": {"fields": {"text": {"query": "Is Korvus fast?"}}},
            "limit": 1
        },
        "aggregate": {"join": "\n"}
    },
    "chat": {
        "model": "meta-llama/Meta-Llama-3-8B-Instruct",
        "messages": [
            {
                "role": "system",
                "content": "You are a friendly assistant"
            },
            {
                "role": "user",
                "content": "Given the context:\n{CONTEXT}\nAnswer the question: Is Korvus fast?"
            }
        ],
        "max_tokens": 100
    }
}, pipeline)

這一個(gè)??rag()??調(diào)用在數(shù)據(jù)庫(kù)內(nèi)完成了:

  1. 將查詢(xún)文本向量化
  2. 在向量索引中搜索相似文檔
  3. 聚合搜索結(jié)果作為上下文
  4. 調(diào)用 LLM 生成回答

沒(méi)有外部 API,沒(méi)有多次往返,就是一個(gè)查詢(xún)。

部署和使用

最簡(jiǎn)單的方式是 Docker:

docker run \
    -it \
    -v postgresml_data:/var/lib/postgresql \
    -p 5433:5432 \
    -p 8000:8000 \
    ghcr.io/postgresml/postgresml:2.10.0 \
    sudo -u postgresml psql -d postgresml

或者使用 PostgresML Cloud,免費(fèi) tier 就提供 GPU 訪問(wèn)。

對(duì)于 Korvus,安裝后只需設(shè)置數(shù)據(jù)庫(kù)連接:

pip install korvus
export KORVUS_DATABASE_URL="postgresql://..."

小結(jié)

PostgresML 提供基礎(chǔ)能力,Korvus 簡(jiǎn)化使用體驗(yàn),兩者結(jié)合讓"在 SQL 里跑 AI"從技術(shù)可能變成了工程現(xiàn)實(shí),大大降低了開(kāi)發(fā)者上手 AI 的門(mén)檻。

“后端即服務(wù)”、“數(shù)據(jù)庫(kù)即服務(wù)”、“表格即服務(wù)”越來(lái)越流行,這背后其實(shí)是一種趨勢(shì),大家越來(lái)越關(guān)注如何用最簡(jiǎn)單的方式解決問(wèn)題,而不是為了技術(shù)而技術(shù)。

github:

??https://github.com/postgresml/postgresml??

??https://github.com/postgresml/korvus??

本文轉(zhuǎn)載自??AI工程化??,作者:ully

已于2025-9-23 07:03:16修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦