Príomhloingseoireacht

Samplaí praiticiúla de réitigh shaincheaptha RAG

Léiríonn samplaí ón saol mór conas a réitíonn córais shaincheaptha giniúna breisithe le haisghabháil fadhbanna casta eolais fiontair.

Sa lá atá inniu ann, bíonn droch-cháil ar RAG uaireanta, bíodh sé mar go gceapann daoine anois go bhfuil sé ríshimplí (tá sé simplí le tosú, ach ní chomh simplí céanna le fairsingiú) nó go gceapann siad gur tháinig ‘córais ghníomhacha’ ina áit (ach má scrúdaítear cuid mhór díobh, is gearr go mbíonn cuma an-chosúil le RAG orthu…)

Tugtar sampla praiticiúil nó dhó sa bhlag seo chun a léiriú conas a théimid i ngleic le roinnt dúshlán coitianta, mar atá:

  • Sonraí measctha téacsúla agus uimhriúla a láimhseáil agus an fáth a dteipeann ar RAG saonta dá mbarr: tagann eochairfhocail salach ar a chéile agus níl brí shéimeantach ag uimhreacha.

  • An fáth a gcabhraíonn leabuithe atá bunaithe ar achoimre ar dtús: gin achoimre ghearr thuairisciúil do gach mír, ansin déan an achoimre sin a leabú agus a chuardach.

  • Conas achoimrí comhthéacsúla a ghiniúint: cuir comhthéacs na máthaircháipéise san áireamh ionas gur féidir idirdhealú a dhéanamh idir staitisticí atá cosúil lena chéile.

  • Cathain is ceart brath ar chód agus ar shamhlacha Pydantic: nuair a bhíonn ábhar focal ar fhocal tábhachtach, comhcheangail cód saincheaptha agus/nó samhail Pydantic le glaonna LLM ar mhaithe le hiontaofacht.

Réitigh shaincheaptha RAG a fhorbairt

Na bunrudaí

Tá córais RAG mar bhonn le gach rud ó róbónna tacaíochta go cúntóirí inmheánacha eolais.

Taobh thiar de na cúrsaí, is iondúil go ndéantar na céimeanna seo:

  1. Roinn na cáipéisí foinse ina míreanna

  2. Leabaigh gach mír i spás veicteora

  3. Aisghabh na K mír is fearr tráth an iarratais

  4. Gin freagra bunaithe ar na míreanna sin

Fágann tacair uirlisí choitianta—LangChain, LlamaIndex agus Filestore OpenAI—go mbíonn na céimeanna sin beagnach ríshimplí. Ach i bpíblínte sa saol mór, tiocfaidh tú ar shonraí nach téacs dlúth amháin iad, agus d’fhéadfadh RAG bunúsach a bheith thíos leis sin. Sna rannáin seo a leanas, taispeánfaimid samplaí nithiúla de dhúshláin sonraí agus tógfaimid an réiteach de réir a chéile de réir mar a chuirtear castacht leis.

Nuair a éiríonn cúrsaí níos casta

  1. Nuair nach téacs amháin iad do chuid sonraí (rud atá coitianta go leor)

Samhlaigh an mhír sonraí seo a leanas i gcomhthéacs cluiche:

JSON

{ "Attack": { "Range": { "default": 5, "with_Draconic_Ascension": 5.5, }, "Speed": { "default": "2 seconds", "with_Draconic_Ascension": "2.2 seconds", }, "Damage": { "default": 10, "with_Draconic_Ascension": 12, } }} 

Oibríonn leabuithe mar gheall ar na naisc fhoghlamtha idir focail, trí bhrí shéimeantach agus gramadach. Sna sonraí thuas, tá meascán téacs agus uimhreacha againn agus, lasmuigh den chomhthéacs beacht seo, níl aon bhaint ag na huimhreacha leis na focail. D’fhéadfaimis a rá mar sin nach bhfuil sa mhír sonraí seo ach meascán d’fhocail a thugann beagán tuairisce agus roinnt uimhreacha randamacha ina ndiaidh.

Ní bheadh sé sin ina fhadhb dá mba é seo an t-aon chineál sonraí a bhí againn, mar d’fhéadfaimis aisghabháil a dhéanamh fós bunaithe ar leabuithe an bheagáin focal tuairisciúil atá ar fáil (nó text-to-sql a úsáid). Ach cad a tharlódh dá mbeadh an mhír seo curtha i bhfolach i measc go leor míreanna dlúth-théacs ina bhfuil na focail chéanna? Mar shampla:

JSON

{"Draconic_Ascension": { "description": "Transform into dragon form. Attack range and speed are increased by 10%, damage is boosted by 20%.", "details": { "activation_conditions": "Can only be activated when HP is below 50%or Fury meter is full.", "visual_effects": "Wings unfurl, scales shimmer with embers, voice lines change to echoing growls.", "lore": "An ancient bloodline awakens. The bearer of the mark channels the soul of the last Flamewing Wyrm, becoming a living storm of fire and fury." } }}

Samhlaigh anois gur mian linn “What is the attack range with Draconic Ascension?” a aisghabháil. Is beag seans go n-aimseoimid an mhír ábhartha atá uainn, mar tá sí báite i bhfothram míreanna eile ina bhfuil na heochairfhocail chéanna.

Is í bun na faidhbe nach féidir linn idirdhealú maith a dhéanamh idir na míreanna sonraí seo, cé go bhfuil cineálacha éagsúla faisnéise iontu faoin ábhar céanna. An bhféadfaimis é sin a shaibhriú nó a fheabhsú ar bhealach éigin? D’fhéadfaimis, ar ndóigh:smile:

  1. Saibhrigh do chuid sonraí trí achoimre a dhéanamh orthu—sea, léigh tú i gceart é

In ionad an mhír féin a leabú láithreach, is féidir linn achoimre ar ábhar na sonraí a ghiniúint ar dtús, agus ansin an achoimre a leabú agus a aisghabháil. Ag céim an ghiniúna, d’úsáidfimis fós na sonraí bunaidh atá nasctha leis an achoimre.

Mar sin, do na samplaí den dá mhír thuas, ghinfimis achoimrí mar seo:

  1. Staitisticí raoin, luais agus damáiste ionsaithe (de réir réamhshocraithe agus le Draconic Ascension).

  2. Cur síos agus sonraí ar Draconic Ascension, lena n-áirítear coinníollacha gníomhachtaithe, maisíochtaí físiúla agus seanchas.

Ansin cuirimid leis an iarratas freisin chun é a “ailíniú” leis an achoimre. Mar shampla, d’athróimis “What is the attack range with Draconic Ascension?” go “What is the statistics of attack range with Draconic Ascension?” Tá sé seo thar a bheith tábhachtach nuair a thagann an t-iarratas aisghabhála ó úsáideoirí nach bhfuil i réimsí teicniúla agus a chuireann ceisteanna i dteanga ~~“shaorstíle”~~ nádúrtha an duine, mar ní gá dóibh eolas ná suim a bheith acu sa chaoi a n-oibríonn RAG chun beachtas agus aisghlaoch a uasmhéadú.

Léaráid a thaispeánann cás ina n-éiríonn cúrsaí níos casta.

  1. Ná bain rudaí as a gcomhthéacs (comhairle úsáideach don saol go ginearálta)

Sa chéad chás eile, caithfimid déileáil le líon mór míreanna sonraí atá cosúil lena chéile, mar atá thíos:

Plain Text

# Chunk one{ "Attack": { "Range": { "default": 9, }, ... }}# Chunk two{ "Attack": { "Range": { "default": 6, }, ... }}# Chunk three{ "Attack": { "Range": { "default": 7, }, ... }}

Má chloímid leis an gcur chuige céanna, samhlaigh go gcuirtear an cheist “what is character X’s attack range?” Bheimis ag imirt cluiche tomhais a bheadh ag brath ar an ádh leis na hachoimrí atá díreach ginte againn, mar bheidís an-chosúil lena chéile freisin. Conas a d’fhéadfaimis idirdhealú a dhéanamh eatarthu, mar sin?

Is simplí an freagra: cuir comhthéacs ar fáil. D’fhéadfaimis tagairt do mháthaircháipéis na míre a chur sa mhír sonraí, e.g. {”character”: “X”} sa chás seo. Ansin bheimis in ann na sonraí cearta do charachtar X a aisghabháil go cruinn, fiú agus na sonraí céanna againn do charachtair Y agus Z.

Cur chuige níos fearr agus níos ginearálta, áfach, ná achoimre chomhthéacsúil ar an mír a ghiniúint. Is é sin, in ionad achoimre ar an mír sonraí amháin a ghiniúint, d’fhéadfaimis an mháthaircháipéis agus an mhír araon a thabhairt isteach chun achoimre ghinearálta chomhthéacsúil a ghiniúint. Mhíneofaí san achoimre an bhaint atá ag an mír lena máthaircháipéis, mar shampla:

  1. Tugtar staitisticí mionsonraithe sa mhír seo ar … do charachtar X. Tá an mhír bainteach leis an gcáipéis iomlán mar go léiríonn sí láidreacht X ó thaobh luas ionsaithe de…

  2. Tugtar staitisticí mionsonraithe sa mhír seo ar … do charachtar Y. Tá an mhír bainteach leis an gcáipéis iomlán mar go léiríonn sí staitisticí feabhsaithe Y nuair a úsáideann sí a cumas speisialta…

  3. Tugtar staitisticí mionsonraithe sa mhír seo ar … do charachtar Z. Tá an mhír bainteach leis an gcáipéis iomlán mar go léiríonn sí go n-oireann staitisticí Z go maith do ról tanc i gcluichí foirne…

D’fhéadfadh an modh seo (atá spreagtha i bpáirt ag Anthropic) a bheith iomarcach don sampla thuas. Tá sé an-éifeachtach, áfach, do mhíreanna a bhféadfaí míthuiscint a bhaint astu “lasmuigh dá gcomhthéacs”; anuas air sin, cuireann sé cur chuige aonfhoirmeach ar fáil a oibríonn do gach mír agus a choinníonn an phíblíne innealtóireachta slachtmhar.

Léaráid a thaispeánann cás ina n-éiríonn cúrsaí níos casta.

  1. Nuair is gá a bheith ~~i do smachtóir~~ dianchúiseach

Is iondúil go bhfaighimid sonraí ina n-iomláine agus go roinnimid ina míreanna iad do chóras RAG. Sa sampla seo léirímid rud beagáinín éagsúil—sonraí atá roinnte ina míreanna, ach ina ndroch-mhíreanna: is codanna randamacha iad de mhír loighciúil agus caithfear iad a chur le chéile arís. Is éard is mír loighciúil ann ná píosa ábhair a bhaineann le chéile go nádúrtha, amhail fo-alt de cháipéis nó alt comhleanúnach.

Léaráid a thaispeánann cás ina n-éiríonn cúrsaí níos casta.

Ar dtús, tugaimid na sonraí go léir d’LLM, iarraimid air iad a ghrúpáil mar is cuí leis, agus ansin an t-ábhar grúpáilte a thabhairt ar ais. Ba cheart do LLM a bheith maith go leor air sin, nach ea? Bhuel, ba cheart agus níor cheart.

Fuaireamar amach, ar roinnt ócáidí eile freisin, gur gnách le LLManna a bheith leisciúil agus neamhiontaofa nuair a theastaíonn an t-ábhar iomlán beacht, go háirithe nuair a bhíonn an comhthéacs fada. Rud atá intuigthe go maith. Ach níorbh fhéidir glacadh leis sin sa chás úsáide áirithe seo, mar bhí an t-ábhar beacht focal ar fhocal de dhíth orainn—gan achoimrí agus gan aon chuid den bhunábhar a fhágáil ar lár. Ní féidir linn aon sonra a chailleadh.

Agus, ar ndóigh, ba é an taobh dearfach ná go ndearna sé sárjab de shéimeantaic agus struchtúir na míreanna briste a thuiscint. Ach sin ar choinníoll nach ndiúltódh sé an t-ábhar beacht a lua ar ais. Diabhal é:/

Conas a d’fhéadfaimis leas a bhaint as bua LLM agus na réimsí ina bhfuil sé neamhiontaofa a sheachaint? Chuireamar glaoch ar ár seanchara dílis, an cód (is é sin, feidhm shaincheaptha Python). Agus samhail Pydantic “chomh simplí agus is féidir”. Seo é an réiteach:

  • Téigh trí na rannáin ceann ar cheann agus coinnigh mír loighciúil reatha

  • I gcás gach rannáin, fiafraigh den LLM: an mbaineann an rannán seo leis an mír loighciúil reatha? Freagair tá nó níl (de réir na samhla Pydantic).

  • Má bhaineann, ceangail an rannán leis an mír; mura mbaineann, aschuir an mhír loighciúil reatha mar tá sí críochnaithe, ansin cuir tús le ceann nua leis an rannán.

Léaráid a thaispeánann cás ina n-éiríonn cúrsaí níos casta.

Ar ndóigh, úsáidimid beagán níos mó comharthaí anseo ná mar a d’úsáidfí chun dul tríd an ábhar iomlán aon uair amháin. Ach sa chás úsáide seo, ina raibh caomhnú beacht an ábhair ar an bpríomhthosaíocht, b’fhiú go mór an costas breise (beag).

Réiteach an-simplí é seo, ach leanann sé prionsabal tábhachtach: nuair a bhíonn dianchruinneas de dhíth, níor cheart dúinn brath go hiomlán ar LLManna, mar is dóchúlacha iad i ndeireadh na dála.

Is féidir cód nó feidhmeanna saincheaptha agus samhlacha Pydantic a úsáid chun toradh intuartha iontaofa a bhaint amach agus leas iomlán a bhaint as cumais LLManna ag an am céanna.

Mar fhocal scoir

Is dúshlán innealtóireachta é réiteach IS giniúnach a fhorbairt a oiread is is dúshlán intleachta saorga é. Tá súil againn gur spreag na samplaí seo thú chun dul i ngleic le do dhúshláin uathúla féin. Chun tuilleadh a léamh faoi réitigh IS ghiniúna atá dírithe ar an innealtóireacht, féach ár mblagphost faoi dhearadh córas gníomhach bunaithe ar ródairí.

Údar

Cynthia Yu