Navigazzjoni prinċipali

Postgres jista’ jimmaniġġja l-pipeline RAG tiegħek?

Ittestjajna l-approċċ ta’ pgai bbażat fuq il-bażi tad-data biex naraw fejn jissimplifika l-operazzjonijiet RAG u fejn xogħlijiet kumplessi għadhom jeħtieġu aktar flessibbiltà.

Sommarju eżekuttiv

  • L-LLMs jistgħu “jaraw” biss ammont limitat ta’ test f’daqqa (it-tieqa tal-kuntest). Dan jaħdem għal kompiti żgħar, iżda ma jibqax effettiv meta bażi tal-għarfien tkun mifruxa fuq eluf ta’ paġni. Anke meta t-tieqa tal-kuntest tkun biżżejjed, il-prestazzjoni xorta tista’ tonqos minħabba l-problema tal-“labra f’munzell tiben”.

  • RAG (“ġenerazzjoni msaħħa bl-irkupru”) sar mudell komuni ħafna fejn iżżomm bażi tal-għarfien (dokumenti, wikis, politiki, traskrizzjonijiet, eċċ.), twettaq tfittxija semantika fuq il-mistoqsija tal-utent biex, permezz tal-embeddings, tirkupra l-aktar siltiet rilevanti, u mbagħad tgħaddi dawk il-biċċiet lill-LLM flimkien mal-mistoqsija. Dan jillimita l-kuntest tal-mudell u, meta jsir sew, jista’ jtejjeb il-kwalità tat-tweġibiet u jnaqqas l-alluċinazzjonijiet.

  • pgai hija estensjoni open source għal Postgres (flimkien ma’ għodod oħra) li tgħinek tibni flussi tax-xogħol ta’ “rkupru bl-IA” fuq PostgreSQL, il-bażi tad-data open source affidabbli.

  • L-idea ewlenija hi li aktar mill-pipeline standard ta’ RAG jitmexxa fis-saff tal-bażi tad-data (daħħal → aqsam → oħloq embeddings → żomm l-embeddings sinkronizzati), minflok il-bażi tad-data titqies bħala “sempliċement ħażna” għall-embeddings.

  • L-ewwel impressjonijiet huma li hija promettenti, iżda malli l-pipeline ta’ RAG isir imqar kemxejn ikkumplikat (b’mod partikolari fl-approċċi għat-tqassim f’biċċiet), ma tibqax adattata. Madankollu, se nibqgħu nsegwu dan il-proġett mill-qrib.

Il-mudell RAG

Hemm ħafna modi kif tibni RAG. Għal analiżi aktar dettaljata tal-approċċi differenti, aqra Eżempji Prattiċi ta’ Soluzzjonijiet RAG Personalizzati. Meta l-kwalità tkun importanti, il-possibbiltajiet tad-disinn isiru kumplessi b’mod sorprendenti, u l-approċċ “standard” komuni ġeneralment ikun hekk:

  1. Ħu ġabra ta’ dokumenti.

  2. Aqsamhom f’biċċiet. Hemm ħafna metodi differenti biex tagħmel dan (eż. paragrafi jew raggruppamenti semantiċi).

  3. Ikkonverti kull biċċa f’embedding.

  4. Aħżen l-embeddings f’bażi tad-data vettorjali (Pinecone, Milvus, eċċ.) jew f’Postgres permezz ta’ pgvector.

  5. Meta ssir mistoqsija, fittex l-eqreb biċċiet `u għaddihom lill-LLM (għal darb’oħra... hemm ħafna modi kif tagħmel dan ukoll).

F’ħafna stacks, il-passi (1)–(3) isiru barra mill-bażi tad-data, fil-kodiċi tal-applikazzjoni jew f’pipeline tad-data, u l-bażi tad-data tintuża l-aktar biex:

  • taħżen l-embeddings

  • tfittex fl-embeddings

L-għan ta’ pgai

pgai hija estensjoni open source għal Postgres, żviluppata minn Timescale), li tipprova tnaqqas din il-firda.

Minflok tittratta l-embeddings bħala xi ħaġa li l-applikazzjoni tiegħek timmaniġġja manwalment, pgai tagħmilhom funzjonalità tal-bażi tad-data:

  • Tiddefinixxi liema tabella jew dokumenti trid tikkonverti f’embeddings.

  • Tispeċifika l-mudell tal-embeddings u strateġija għat-tqassim f’biċċiet.

  • pgai timmaniġġja l-bqija, inkluż li żżomm l-embeddings aġġornati hekk kif tinbidel id-data tas-sors.

Il-wegħda hija attraenti:

  • Inqas kodiċi ta’ konnessjoni apposta li jeħtieġ manutenzjoni.

  • Għandu jkun aktar faċli li l-embeddings jinżammu “friski” hekk kif jinbidlu d-dokumenti tas-sors sottostanti.

  • Postgres/pgai jimmaniġġjaw it-tentattivi mill-ġdid, il-limiti tar-rata, il-kompiti li jfallu, eċċ.

Nota għall-qarrej: pgai tinkludi fiha lil pgvector (estensjoni oħra popolari ħafna ta’ Postgres għal RAG). pgvector iżżid il-ħażna vettorjali u t-tfittxija bix-xebh ma’ Postgres, filwaqt li pgai tibni fuqha biex tawtomatizza passi tal-pipeline ta’ RAG bħat-tqassim f’biċċiet, il-ħolqien tal-embeddings u ż-żamma tagħhom aġġornati.

L-ewwel impressjonijiet dwar pgai

Dak li għoġobna

1) Faċli biex tibda tużaha.

Meta kollox jimxi kif mistenni, il-proċess huwa pjuttost sempliċi:

  • Niżżel l-images ta’ Docker ta’ Timescale (bażi tad-data + worker).

  • Ipprovdi l-API key tal-fornitur tal-embeddings tiegħek.

  • Ħaddem ftit SQL biex tiddefinixxi l-vectoriser (bażikament: x’għandu jinbidel f’embedding, kif jinqasam f’biċċiet u liema mudell jintuża).

Wara dan, pgai tirranġa biex worker tal-vectoriser jaħdem bħala proċess separat u jiġġenera l-embeddings b’mod asinkroniku (eż. kull 5 minuti, jew skont il-frekwenza li trid).

2) Huwa konvenjenti li l-pipeline kollu jitħaddem “qrib” il-bażi tad-data.

pgai tista’ ddaħħal kontenut minn tabelli, kif ukoll ittella’ dokumenti minn postijiet bħal S3, imbagħad tipproċessahom, taqsamhom f’biċċiet u toħloq l-embeddings tagħhom. Tista’ wkoll tipproċessa formati differenti ta’ dokumenti testwali bħal PDFs, Markdown, eċċ.

Dak li deher limitat

1) Titlef ħafna kontroll (u xi drabi RAG jeħtieġ il-kontroll).

Sistemi RAG ta’ prestazzjoni għolja (meta jitkejlu skont il-kwalità tat-tweġibiet) spiss jeħtieġu pipelines personalizzati, bħal:

  • regoli personalizzati għat-tqassim f’biċċiet (skont l-intestaturi, il-paġna, il-bidliet fil-kelliem, eċċ.)

  • tqassim f’biċċiet li jqis il-metadata (iżomm it-titli tat-taqsimiet, il-marki tal-ħin, l-awturi u t-tip ta’ dokument)

  • strateġiji differenti għall-embeddings skont it-tip ta’ dokument

pgai toffri inqas flessibbiltà f’dawn l-oqsma.

Bħalissa hemm żewġ strateġiji ewlenin għat-tqassim: splitter tat-test skont il-karattri u splitter rikursiv skont il-karattri, kif ukoll l-għażla li ma jsir ebda tqassim. Dan jista’ jkun biżżejjed għal ċerti każijiet ta’ użu, iżda ħafna sistemi RAG fil-produzzjoni jeħtieġu aktar personalizzazzjoni.

Ikun eċċellenti jekk Timescale tkun tista’ tinkorpora wħud mill-istrateġiji aktar sofistikati għat-tqassim li nsibu f’libreriji bħal Chonkie, u bl-istess mod tappoġġja disinni avvanzati bħall-irkupru kuntestwali ta’ Anthropic.

2) Iffukata l-ewwel fuq it-test, mhux multimodali.

Ħafna problemi interessanti ta’ RAG m’għadhomx jinvolvu biss test:

  • PDFs b’dijagrammi

  • screenshots / stampi

  • reġistrazzjonijiet tal-awdjo

  • siltiet tal-vidjo

Anke jekk tista’ “tiġbed it-test” minn dawn is-sorsi, dan mhuwiex l-istess bħal pipeline tassew multimodali għall-embeddings.

Jekk eventwalment pgai tappoġġja mudelli multimodali mill-bidu sal-aħħar (tagħbija → tqassim → embeddings għal stampi kbar, awdjo u vidjo maħżuna f’S3, b’sinkronizzazzjoni robusta), din tkun proposta konvinċenti; iżda llum hija fluss tax-xogħol għall-embeddings tat-test.

3) Jekk teħtieġ biss embeddings, jista’ jkun li ma teħtieġx pgai.

Jekk il-pipeline tad-dħul tiegħek diġà huwa personalizzat (jew jeħtieġ li jkun), allura l-“ħolqien ta’ embeddings minn biċċiet ta’ test” mhuwiex l-aktar parti diffiċli ta’ RAG. F’dak il-każ, pgai qed issolvi l-eħfef parti tal-problema.

Barra minn hekk, jekk il-bażi tal-għarfien tiegħek tiġi aġġornata rarament, il-valur tas-sinkronizzazzjoni awtomatika tal-embeddings ikun inqas.

Saff minn test għal SQL

Mod partikolarment tajjeb kif tuża pgai jkun li timplimenta interfaċċa text-to-SQL fuq il-bażijiet tad-data tiegħek. Dan jista’ jsir pjuttost faċilment bil-modulu semantic_catalog offrut minn pgai. Sempliċement ikkonfigurah hekk:

Bash

OPENAI_API_KEY="your-OpenAPI-key-goes-here"TARGET_DB="postgres://user:password@host:port/database"CATALOG_DB="postgres://user:password@host:port/database"

u uża l-katalgu semantiku biex jiġbor id-dizzjunarji tad-data tiegħek bil-kmand pgai semantic-catalog create. Dan jiġġenera kuntest mill-maħżen tad-data tiegħek li jkun bejn wieħed u ieħor hekk:

Plain Text

---schema: postgres_airname: aircrafttype: tabledescription: Lists aircraft models with performance characteristics and unique codes.columns:- name: model  description: Commercial name of the aircraft model.- name: range  description: Maximum flight range in kilometers.- name: class  description: Airframe class category or configuration indicator.- name: velocity  description: Cruising speed of the aircraft.- name: code  description: Three-character aircraft code serving as the primary key....

Dan il-kuntest issa huwa disponibbli għal pgai b’diversi modi;

Permezz ta’ tfittxija semantika:

Din il-query tirritorna t-tabelli, il-funzjonijiet u oġġetti oħra li jistgħu jkunu rilevanti għall-mistoqsija tiegħek bil-lingwa naturali:

Bash

pgai semantic-catalog search -p "Your natural language question goes here!"

Ikseb il-kuntest mhux ipproċessat:

Dan jirrendi l-kuntest YAML mhux ipproċessat relatat mal-mistoqsija tiegħek bil-lingwa naturali:

Bash

pgai semantic-catalog search -p "Your natural language question goes here!" --render

Iġġenera SQL:

Jew tista’ tiġġenera direttament l-SQL mhux ipproċessat meħtieġ biex twieġeb il-mistoqsija tiegħek. Il-kuntest mill-pass preċedenti jintbagħat lil LLM u tiġi ġġenerata tweġiba:

Bash

pgai semantic-catalog generate-sql -p "Your natural language question goes here!"

Kif tista’ tuża pgai bħalissa

Jekk qed tibni sistema RAG relattivament sempliċi, ta’ min tipprova pgai jekk trid:

  • Postgres bħala s-sistema uffiċjali tar-rekords tiegħek,

  • ammont minimu ta’ kodiċi ta’ konnessjoni,

  • embeddings li jibqgħu sinkronizzati awtomatikament,

  • mod veloċi kif tapplika text-to-SQL għall-bażijiet tad-data tiegħek,

  • tesperimenta b’għodod RAG u estensjonijiet ġodda għal Postgres.

Fejn inkunu kawti

Probabbilment ikun aħjar li tistenna qabel tuża pgai jekk il-pipeline RAG tiegħek jeħtieġ xi waħda minn dawn:

  • loġika estensiva u personalizzata għad-dħul jew għat-tqassim f’biċċiet

  • ħafna tipi ta’ dokumenti b’rekwiżiti differenti għall-ipproċessar

  • embeddings multimodali

Fl-aħħar nett, filwaqt li jidher ċar li pgvector kisbet adozzjoni qawwija, mhuwiex ċar jekk pgai hux se tikseb l-istess livell ta’ interess u għalhekk ta’ appoġġ (għalkemm ilha teżisti biss madwar 18-il xahar).

Grafika tal-istorja tal-istilel fuq GitHub li turi l-adozzjoni ta’ pgai ta’ Timescale matul iż-żmien.

Sommarju

pgai hija approċċ interessanti għal RAG li jħalli lill-bażijiet tad-data jwettqu aktar mix-xogħol operattiv ta’ rutina, biex il-kodiċi tal-applikazzjoni tiegħek ikun aktar sempliċi.

Bħalissa hija:

  • użabbli u tassew pjaċevoli għal konfigurazzjonijiet RAG sempliċi

  • mhux flessibbli biżżejjed għal pipelines aktar personalizzati (speċjalment multimodali)

Hija promettenti u żgur ta’ min isegwiha biex naraw kif se tiżviluppa.

Awtur

Andrew Liubinas