Close-up van code op een computerscherm
Nieuws28 oktober · 03:025 min leestijd

Pinecone brengt pg_pinecone uit voor PostgreSQL

pg_pinecone brengt Pinecone-vectorzoekwerk naar PostgreSQL. De standaardengine draait in de database, terwijl een remote-engine zoekopdrachten naar Pinecone kan sturen. De gemelde winst op geheugen en filters komt uit Pinecone’s eigen benchmark.

Pinecone brengt pg_pinecone als Apache 2.0-extensie uit voor vectorzoekwerk op bestaande pgvector-kolommen in PostgreSQL, zo kondigde het bedrijf op 27 oktober aan.

Teams die RAG op PostgreSQL bouwen kunnen de vectorindex hiermee in dezelfde database houden. De dataroute hangt af van de enginekeuze. De standaard zoekt binnen PostgreSQL zonder netwerkverbinding. De externe engine synchroniseert embeddings naar Pinecone en voert zoekwerk daar uit.

De extensie kiest waar zoeken draait

pg_pinecone werkt met vector-kolommen die al via pgvector in PostgreSQL staan. De toepassing blijft dezelfde SQL-query sturen. Per tabel kan de beheerder kiezen uit drie engines. De projectdocumentatie beschrijft de drie engines achter dezelfde kolommen en query's. Installatie vraagt PostgreSQL 17 of 18, superuserrechten en pgvector.

De standaardengine, native, bouwt en doorzoekt de index volledig in PostgreSQL. Daarvoor zijn geen Pinecone-account, API-sleutel of netwerkoproepen nodig. De tabellen en volledige vectoren blijven in de database. De pgvector-engine gebruikt een bestaande HNSW- of IVFFlat-index. De remote-engine stuurt zoekopdrachten naar een serverless index van Pinecone en synchroniseert embeddings op de achtergrond. Tot de kopie klaar is, blijven zoekopdrachten via PostgreSQL lopen. PostgreSQL blijft de bron van waarheid. Wisselen kan met één SQL-aanroep, zonder de query van de toepassing te veranderen.

Met een Pinecone API-sleutel zijn ook extra functies beschikbaar. embed() maakt vectoren vanuit tekst via Pinecone's inference-service. BM25 zoekt op exacte woorden naast zoeken op betekenis. rerank() herschikt gevonden passages met een Pinecone-model. Zo brengt de extensie meer onderdelen van een RAG-keten naar SQL. Elk onderdeel heeft wel een eigen datastroom. Alleen native zoeken blijft binnen PostgreSQL; embed() en rerank() voegen externe Pinecone-verzoeken toe.

Schema toont de drie pg_pinecone-engines in PostgreSQL en de remote-koppeling naar Pinecone. Bron: Pinecone
Schema toont de drie pg_pinecone-engines in PostgreSQL en de remote-koppeling naar Pinecone. Bron: Pinecone

Pinecone rapporteert kleinere index en hogere filterrecall

Voor een miljoen vectoren van 768 dimensies rapporteert Pinecone een native index van 136 MB. HNSW op halfvec nam in dezelfde test 2,0 GB in; op vectoren met volledige precisie was dat 4,1 GB. De native index werd gebouwd in 45 seconden, tegenover 62 seconden voor HNSW op halfvec en 79 seconden voor volledige vectoren. Bij een zoekopdracht zonder filter noteerde Pinecone 1,3 milliseconde bij 0,95 recall. Recall meet hoeveel van de dichtstbijzijnde resultaten worden teruggevonden. HNSW op halfvec kwam op 1,7 milliseconde en HNSW op volledige vectoren op 2,7 milliseconde. Bij 0,99 recall waren de tijden respectievelijk 2,3, 4,7 en 6,7 milliseconde.

Het verschil wordt concreet bij een filter op klant of tenant. Als 1 procent van de regels aan het filter voldoet, rapporteert Pinecone voor native 0,981 recall in 8,3 milliseconde. HNSW op halfvec kwam op 0,924 in 56 milliseconde. Bij een filter dat 10 procent van de regels overlaat, haalde native 1,000 recall in 12,3 milliseconde. HNSW met iteratieve scans haalde in die meting maximaal 0,920 recall in 5,9 milliseconde. In die test vond native meer relevante resultaten; HNSW werkte sneller.

De index vormt één laag van een RAG-keten

Een RAG-keten kan PostgreSQL met pgvector als vectordatabase combineren met embeddings, hybride zoeken, reranking en een eigen vragenset. pg_pinecone verandert de zoekindex. De toepassingslaag bepaalt welke documenten worden geïndexeerd, welke passages een medewerker mag zien en hoe vaak bronnen worden bijgewerkt.

De embeddingkeuze staat los van de index. Google bracht EmbeddingGemma 2 uit, dat tekst, code, beeld, video en audio omzet naar vectoren in één ruimte van 768 dimensies. Dat model maakt vectoren; pg_pinecone slaat ze op en doorzoekt ze. De RAG-opzet bestaat dus uit losse onderdelen: model, index, toegangscontrole, zoekfilter en antwoordmodel. De keuze voor native houdt volledige records binnen PostgreSQL. Embeddings en reranking kunnen via aparte Pinecone-functies lopen.

De benchmarks hebben een smalle meetbasis

De vergelijkingen komen van Pinecone zelf. Het openbare benchmarkharnas beschrijft configuraties en commando's om vectorzoektests opnieuw uit te voeren. De test gebruikt één miljoen wiki_dpr-vectoren van 768 dimensies. Pinecone noemt een AWS r6id.4xlarge met 16 vCPU's en 128 GB geheugen. De latentie is de mediaan (p50) bij k=10 met één client. De metingen zijn verdeeld over PostgreSQL 17 en 18. De resultaten tonen niet hoe de index presteert op Nederlandse bedrijfsdata of bij veel gelijktijdige gebruikers.

HNSW-filtering is instelbaar. De pgvector-documentatie beschrijft iteratieve scans die vanaf versie 0.8.0 verder zoeken wanneer een filter te weinig resultaten overlaat. Instellingen voor het aantal te doorzoeken regels en het geheugengebruik begrenzen die scan. In een eigen dataset kunnen querymix, tenantverdeling, indexgrootte en gelijktijdige gebruikers de uitkomst veranderen. Na grote wijzigingen adviseert Pinecone REINDEX of automatisch onderhoud. Voorbeelden zijn een bulktoevoeging die de tabel verdubbelt of sterk veranderde gegevens.

Voor teams die PostgreSQL al gebruiken, maakt pg_pinecone de enginekeuze verwisselbaar zonder de SQL-query te herschrijven. Per tabel kan zoeken binnen PostgreSQL blijven of naar de beheerde Pinecone-dienst verhuizen. De keuze hangt af van wat de databasehost toestaat, hoe eigen filters presteren en welke delen van de RAG-keten Pinecone mogen aanroepen.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Van Postgres naar bruikbare kennis

Ik denk mee over de zoek- en dataroute, ontwerp de RAG-keten en bouw en automatiseer die end-to-end, self-hosted waar dat kan.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Verken verder

Gerelateerde artikelen

Google voltooit Coral NPU-architectuur en Synaptics lanceert SR200
Nieuws
5 min

20 okt 16:45

Google voltooit Coral NPU-architectuur en Synaptics lanceert SR200

Google maakt de Coral NPU-architectuur compleet, brengt compiler v1.0 uit en koppelt die aan drie Synaptics-chips. De Coralboard SL is te bestellen, terwijl de SR200-serie nog wordt bemonsterd.

Amazon opent TorchNeuron-bèta voor PyTorch op Trainium
Nieuws
4 minBijgewerkt om 15:31

20 okt 06:11

Amazon opent TorchNeuron-bèta voor PyTorch op Trainium

Amazon opent de openbare bèta van TorchNeuron voor Trainium2 en Trainium3. Nederlandse AWS-teams kunnen bestaande PyTorch-modellen testen, maar beschikbare regio's, operatorsteun en de eigen kosten bepalen of de route past.

Amazon laat bestaande PyTorch-code op Trainium draaien met TorchNeuron
Nieuws
5 min

19 okt 16:09

Amazon laat bestaande PyTorch-code op Trainium draaien met TorchNeuron

Amazon opent TorchNeuron voor PyTorch-teams die Trainium willen testen. De software verlaagt de codebarrière, maar de eigen testcijfers tonen dat operatorondersteuning en modelspecifieke beperkingen aandacht vragen.

Google brengt EmbeddingGemma 2 uit voor lokaal zoeken
Nieuws
5 min

6 okt 22:28

Google brengt EmbeddingGemma 2 uit voor lokaal zoeken

EmbeddingGemma 2 zet tekst, code, beeld, video en audio in één lokale zoekruimte. Google deelt cijfers over geheugen en prestaties, maar de benchmarks zeggen nog niet hoe goed het model zoekt in de eigen bedrijfscollectie.

AI-kennisbank bouwen: zonder bron-eigenaar is je kennisbank slechts een snellere gedeelde map
Gids
Uitgebreide gids17 min

13 sep 09:00

AI-kennisbank bouwen: zonder bron-eigenaar is je kennisbank slechts een snellere gedeelde map

Een AI-kennisbank zonder bron-eigenaar is slechts een snellere gedeelde map. Leer hoe je twintig echte vragen koppelt aan vrijgegeven bronnen, eigenaars, rechtenfilters, uitzonderingen en een meetbare vrijgavepoort.

Roblox geeft drie moderatiemodellen vrij die elk chatplatform zelf kan draaien
Nieuws
5 min

21 aug 14:26

Roblox geeft drie moderatiemodellen vrij die elk chatplatform zelf kan draaien

Roblox publiceert een PII-detector, een spraakclassifier en Sentinel onder Apache 2.0. Voor elk Nederlands platform met gebruikerschat liggen er nu productiemodellen die direct raken aan AVG- en DSA-verplichtingen, inclusief cijfers per taal.