Illum il-ġurnata, ir-RAG kultant għandu reputazzjoni ħażina, jew għax in-nies issa jaħsbu li huwa għalkollox trivjali (faċli biex tibda, iżda mhux daqshekk faċli biex tespandih) jew għax jaħsbu li qabżuh is-“sistemi aġentiċi” (li f’ħafna każijiet, jekk tħares ftit taħt il-wiċċ, malajr jibdew jixbhu ħafna lir-RAG…).
Dan il-blog jippreżenta eżempju prattiku jew tnejn biex juri kif nindirizzaw xi sfidi komuni, jiġifieri:
L-immaniġġjar ta’ data mħallta ta’ test u numri u għaliex dan ifixkel RAG sempliċi: il-kliem ewlieni jaħbat u n-numri m’għandhomx tifsira semantika.
Għaliex jgħin li l-embeddings jitfasslu abbażi tas-sommarju: iġġenera sommarju deskrittiv qasir għal kull biċċa, imbagħad oħloq l-embedding u fittex permezz tiegħu.
Kif tiġġenera sommarji kuntestwali: inkludi l-kuntest tad-dokument ewlieni biex statistika b’għamla simili tibqa’ distinta.
Meta għandek tiddependi fuq il-kodiċi u l-mudelli Pydantic: fejn il-kontenut kelma b’kelma huwa importanti, għaqqad kodiċi apposta u/jew mudell Pydantic ma’ sejħiet lil LLM biex tiżgura l-affidabbiltà.
Il-prinċipji bażiċi
Is-sistemi RAG iħaddmu kollox minn bots tal-appoġġ sa assistenti interni tal-għarfien.
Minn wara l-kwinti, normalment:
Aqsam f’biċċiet id-dokumenti tas-sors tiegħek
Ikkonverti kull biċċa f’embedding fi spazju vettorjali
Irkupra l-aqwa K biċċiet meta ssir il-mistoqsija
Iġġenera tweġiba bbażata fuq dawk il-biċċiet
Settijiet ta’ għodod popolari—LangChain, LlamaIndex u l-Filestore ta’ OpenAI—jagħmlu dawn il-passi kważi trivjali. Iżda f’pipelines reali se tiltaqa’ ma’ data li mhijiex biss test dens, u RAG bażiku jista’ jsibha diffiċli. Fit-taqsimiet li ġejjin se nuru eżempji konkreti ta’ sfidi marbuta mad-data u nibnu s-soluzzjoni gradwalment hekk kif tiżdied il-kumplessità.
Meta d-data tiegħek mhijiex biss test (ħaġa pjuttost komuni)
Ikkunsidra l-biċċa data li ġejja f’kuntest ta’ logħob:
JSON
L-embeddings jaħdmu bis-saħħa tar-relazzjonijiet li tgħallmu bejn il-kliem permezz tat-tifsira semantika u l-grammatika. Fid-data ta’ hawn fuq għandna taħlita ta’ test u numri li, barra minn dan il-kuntest preċiż, ma għandhom l-ebda rabta mal-kliem. Għalhekk nistgħu ngħidu li din il-biċċa data hija essenzjalment taħlita ta’ kliem kemxejn deskrittiv segwit minn numri każwali.
Dan ma jkunx problema kieku din kienet l-unika tip ta’ data li għandna, għax xorta nistgħu nirkuprawha permezz tal-embeddings tal-ftit kliem deskrittiv disponibbli (jew sempliċement nużaw text-to-SQL). Iżda x’jiġri jekk din il-biċċa tkun midfuna fost ħafna biċċiet mimlijin test fejn jidher ukoll l-istess kliem? Pereżempju:
JSON
Issa immaġina li rridu nirkupraw “What is the attack range with Draconic Ascension?” Wisq probabbli ma nkunux nistgħu nirkupraw il-biċċa rilevanti li rridu, għax tintilef fost l-istorbju ta’ biċċiet oħra li fihom l-istess kliem ewlieni.
Il-problema ewlenija hija li ma nistgħux niddistingwu sew bejn dawn il-biċċiet ta’ data, minkejja li fihom tipi differenti ta’ informazzjoni dwar l-istess suġġett. Nistgħu b’xi mod narrikkixxu jew intejbu dan? Dażgur li nistgħu:smile:
Arrikkixxi d-data tiegħek billi tiġborha fil-qosor—iva, qrajt sew
Minflok noħolqu embedding direttament mill-biċċa, l-ewwel nistgħu niġġeneraw sommarju li jiddeskrivi d-data, imbagħad noħolqu embedding u nirkupraw abbażi tas-sommarju. Fl-istadju tal-ġenerazzjoni xorta nużaw id-data oriġinali marbuta mas-sommarju.
Għalhekk, għaż-żewġ eżempji ta’ biċċiet murija hawn fuq, niġġeneraw sommarji bħal dawn:
Statistika dwar il-firxa, il-veloċità u l-ħsara tal-attakk (awtomatikament u b’Draconic Ascension).
Deskrizzjoni u dettalji ta’ Draconic Ascension, inklużi l-kundizzjonijiet tal-attivazzjoni, l-effetti viżivi u l-ġrajja fl-isfond.
Imbagħad intejbu wkoll il-mistoqsija biex tkun “allinjata” mas-sommarju. Pereżempju, nibdlu “What is the attack range with Draconic Ascension?” għal “What is the statistics of attack range with Draconic Ascension?” Dan huwa partikolarment importanti meta l-mistoqsija għall-irkupru tiġi minn utenti barra mill-oqsma tekniċi li jistaqsu bi ~~“stil liberu”~~ lingwaġġ uman normali, għax fl-aħħar mill-aħħar la jafu u lanqas jimpurtahom kif jaħdem RAG biex jimmassimizza l-preċiżjoni u r-recall.


Tiżolax l-affarijiet mill-kuntest tagħhom (prinċipju li jgħodd għall-ħajja b’mod ġenerali)
Xenarju ieħor huwa meta jkollna ħafna biċċiet ta’ data li jidhru l-istess, bħal dawn:
Plain Text
Jekk inżommu l-istess approċċ, immaġina li nistaqsu “what is character X’s attack range?” Inkunu qed nilagħbu logħba ta’ raden ibbażata fuq ix-xorti b’dawn is-sommarji li għadna kemm iġġenerajna, għax anki huma jkunu jixbhu ħafna lil xulxin. Allura kif nistgħu niddistingwu bejniethom?
It-tweġiba sempliċi hi li nipprovdu l-kuntest. Nistgħu sempliċement ninkludu fil-biċċa data referenza għad-dokument ewlieni tagħha, pereżempju {”character”: “X”} f’dan il-każ. B’hekk inkunu nistgħu nirkupraw b’mod preċiż id-data t-tajba għall-karattru X, anki meta jkollna l-istess data għall-karattri Y u Z.
Madankollu, approċċ aħjar u aktar ġeneralizzabbli jkun li niġġeneraw sommarju kuntestwali tal-biċċa. Jiġifieri, minflok niġġeneraw sommarju tal-biċċa data biss, nistgħu ngħaddu kemm id-dokument ewlieni kif ukoll il-biċċa biex tiġi ġġenerata ġabra kuntestwali ġenerali. Fis-sommarju nispjegaw kif din il-biċċa tidħol fid-dokument ewlieni tagħha, pereżempju:
Din il-biċċa tipprovdi statistika dettaljata dwar … għall-karattru X. Il-biċċa tidħol fid-dokument sħiħ billi turi s-saħħa ta’ X fil-veloċità tal-attakk…
Din il-biċċa tipprovdi statistika dettaljata dwar … għall-karattru Y. Il-biċċa tidħol fid-dokument sħiħ billi turi l-istatistika msaħħa ta’ Y bl-abbiltà speċjali tagħha…
Din il-biċċa tipprovdi statistika dettaljata dwar … għall-karattru Z. Il-biċċa tidħol fid-dokument sħiħ billi turi l-istatistika ta’ Z, li tagħmlu adattat sew bħala tank fil-logħbiet tat-tim…
Dan il-metodu (li huwa parzjalment ispirat minn Anthropic) jista’ jidher esaġerat għall-eżempju ta’ hawn fuq. Madankollu, huwa effettiv ħafna għal biċċiet li jistgħu jiġu interpretati ħażin “barra mill-kuntest”, u jipprovdi approċċ wieħed li jaħdem għall-biċċiet kollha filwaqt li jżomm pipeline tal-inġinerija pulita.


Meta jkollok tkun ~~ossessjonat bil-kontroll~~ rigoruż
Normalment nirċievu d-data f’partijiet sħaħ u naqsmuha f’biċċiet għal sistema RAG. F’dan l-eżempju nuru xi ħaġa kemxejn differenti—data li nqasmet f’biċċiet ħżiena: taqsimiet każwali minn biċċa loġika li fil-fatt jeħtieġ li jerġgħu jinġabru flimkien. Biċċa loġika hija kontenut li naturalment għandu jibqa’ flimkien, bħal sottotaqsima ta’ dokument jew paragrafu koerenti.


Fl-ewwel tentattiv tagħna b’din id-data, nagħtu kollox lil sejħa LLM u nitolbuha tiġbor il-biċċiet kif jidhrilha xieraq, imbagħad tirritorna l-kontenut miġbur. LLM għandu jkun kapaċi jagħmel dan sew, hux? Sewwa, iva u le.
Sibna, anki f’diversi okkażjonijiet oħra, li l-LLMs għandhom it-tendenza li jieħdu l-eħfef triq u ma jkunux affidabbli meta teħtieġ il-kontenut sħiħ u preċiż, speċjalment meta l-kuntest ikun twil. U dan jinftiehem perfettament. Iżda għal dan il-każ speċifiku din kienet problema deċiżiva, għax għandna bżonn il-kontenut eżatt kelma b’kelma—mingħajr sommarji u mingħajr ma tinqabeż ebda parti mill-kontenut oriġinali. Ma nistgħu nitilfu l-ebda dettall.
U naturalment il-parti tal-“iva” kienet li fehem tajjeb ħafna s-semantika u l-istrutturi tal-biċċiet maqsumin. Sakemm ma jirrifjutax li jirrepeti l-kontenut eżatt. X’dwejjaq:/
Allura kif nistgħu nużaw dak li LLM jagħmel tajjeb, filwaqt li nevitaw dak li fih mhuwiex affidabbli? Erġajna dorna lejn il-ħabib antik u fidil tagħna, il-kodiċi (jiġifieri funzjoni Python apposta). U mudell Pydantic “li ma jistax ikun aktar sempliċi”. Din hija s-soluzzjoni:
Għaddi mit-taqsimiet waħda waħda filwaqt li żżomm biċċa loġika kurrenti
Għal kull taqsima, staqsi lil LLM: din it-taqsima tagħmel parti mill-biċċa loġika kurrenti? Wieġeb iva jew le (skont il-mudell Pydantic).
Jekk iva, żid it-taqsima mal-biċċa; jekk le, oħroġ il-biċċa loġika kurrenti għax tkun kompluta, imbagħad ibda waħda ġdida bit-taqsima.


Naturalment qed nużaw ftit aktar tokens minn pass wieħed fuq il-kontenut sħiħ, iżda għall-każ speċifiku fejn il-prijorità ewlenija hija li jinżamm il-kontenut eżatt, l-ispiża addizzjonali żgħira kienet tiswa ferm.
Din hija soluzzjoni sempliċi ħafna, iżda ssegwi prinċipju importanti: meta tkun meħtieġa r-rigorożità, ma rridux niddependu biss fuq l-LLMs, għax fl-aħħar mill-aħħar huma probabilistiċi.
Kodiċi u funzjonijiet apposta flimkien ma’ mudelli Pydantic jistgħu jintużaw biex jinkiseb riżultat prevedibbli u affidabbli, filwaqt li xorta nisfruttaw il-kapaċitajiet tal-LLMs.
Il-bini ta’ soluzzjoni tal-IA ġenerattiva huwa sfida tal-inġinerija daqskemm huwa sfida tal-IA. Nittamaw li dawn l-eżempji ispirawk biex tindirizza l-isfidi uniċi tiegħek. Biex taqra aktar dwar soluzzjonijiet tal-IA ġenerattiva li jagħtu prijorità lill-inġinerija, ara l-artiklu tagħna dwar it-tfassil ta’ sistemi aġentiċi bbażati fuq router.