stub Cumhachd Rerankers agus Ath-lorg Dà-ìre airson Ginealach Meudaichte Ath-lorg - Unite.AI
Ceangal leinn

Artificial Intelligence

Cumhachd Rerankers agus Ath-lorg Dà-ìre airson Ginealach Meudaichte Ath-lorg

mm
Ùraichte on
Ginealach Meudaichte Ath-ghairm

Nuair a thig e gu giollachd cànain nàdarra (NLP) agus lorg fiosrachaidh, tha comas air fiosrachadh buntainneach fhaighinn air ais gu h-èifeachdach agus gu ceart air leth cudromach. Mar a tha an raon a’ leantainn air adhart a’ tighinn air adhart, thathas a’ leasachadh dhòighean agus dhòighean-obrach ùra gus coileanadh shiostaman lorg àrdachadh, gu sònraichte ann an co-theacsa Ginealach Meudaichte Ath-ghairm (RAG). Tha aon innleachd den leithid, ris an canar ath-lorg dà-ìre le ath-rangaichean, air nochdadh mar fhuasgladh cumhachdach gus dèiligeadh ri crìochan gnèitheach dòighean trusaidh traidiseanta.

San artaigil seo bruidhnidh sinn mu cho iom-fhillte ‘s a tha ath-ghairm dà-ìre agus ath-rangachadh, a’ sgrùdadh am prionnsapalan bunaiteach, ro-innleachdan buileachaidh, agus na buannachdan a tha iad a’ tabhann ann a bhith ag àrdachadh cruinneas agus èifeachdas siostaman RAG. Bheir sinn cuideachd seachad eisimpleirean practaigeach agus criomagan còd gus na bun-bheachdan a nochdadh agus gus tuigse nas doimhne fhaighinn air an dòigh ùr-nodha seo.

A’ tuigsinn Ginealach Meudaichte Ath-ghairm (RAG)

riochdaire swe LLM

Mus tèid sinn a-steach do na mion-fhiosrachadh mu ath-lorg dà-ìre agus ath-rangachadh, leig dhuinn sùil a thoirt a-rithist air bun-bheachd Ginealach Meudaichte Ath-lorg (RAG). Is e dòigh-obrach a th’ ann an RAG a leudaicheas eòlas agus comasan mhodalan cànain mòra (LLMn) le bhith a’ toirt dhaibh cothrom air tobraichean fiosrachaidh bhon taobh a-muigh, leithid stòran-dàta no cruinneachaidhean sgrìobhainnean. Thoir barrachd iomradh bhon artaigil “Dàibheadh ​​​​domhainn a-steach do ghinealach nas motha fhaighinn air ais ann an LLM".

Tha am pròiseas RAG àbhaisteach a’ toirt a-steach na ceumannan a leanas:

  1. Ceist: Bidh cleachdaiche a’ togail ceist no a’ toirt stiùireadh don t-siostam.
  2. Togail: Bidh an siostam a’ ceasnachadh stòr-dàta vector no cruinneachadh sgrìobhainnean gus fiosrachadh a lorg a bhuineas do cheist an neach-cleachdaidh.
  3. meudachadh: Tha am fiosrachadh a chaidh fhaighinn air ais air a chur còmhla ri ceist no stiùireadh tùsail a’ chleachdaiche.
  4. Ginealach: Bidh am modail cànain a’ pròiseasadh an in-chur leasaichte agus a’ gineadh freagairt, a’ cleachdadh an fhiosrachaidh bhon taobh a-muigh gus cruinneas agus coileantachd an toraidh aige a neartachadh.

Ged a tha RAG air a bhith na dhòigh cumhachdach, chan ann às aonais na dùbhlain a tha ann. Tha aon de na prìomh chùisean na laighe aig ìre ath-lorg, far am faodadh dòighean trusaidh traidiseanta fàiligeadh air na sgrìobhainnean as iomchaidh a chomharrachadh, a’ leantainn gu freagairtean neo-iomchaidh no mearachdach bhon mhodail cànain.

An Fheum air Ath-lorg Dà-ìre agus Ath-chlàran

Bidh dòighean trusaidh traidiseanta, leithid an fheadhainn a tha stèidhichte air maids prìomh fhaclan no modalan fànais feòir, gu tric a’ strì gus na dàimhean semantach adhartach eadar ceistean agus sgrìobhainnean a ghlacadh. Faodaidh an cuingeachadh seo leantainn gu bhith a’ faighinn air ais sgrìobhainnean nach eil ach buntainneach air uachdar no ag ionndrainn fiosrachadh deatamach a dh’ fhaodadh càileachd an fhreagairt a chaidh a chruthachadh a leasachadh gu mòr.

Gus dèiligeadh ris an dùbhlan seo, tha luchd-rannsachaidh agus cleachdaichean air tionndadh gu ath-lorg dà-ìre le ath-rangaichean. Tha an dòigh-obrach seo a 'gabhail a-steach pròiseas dà-cheum:

  1. Ath-ghairm tùsail: Anns a’ chiad ìre, gheibhear seata coimeasach mòr de sgrìobhainnean a dh’ fhaodadh a bhith buntainneach le bhith a’ cleachdadh dòigh lorgaidh luath is èifeachdach, leithid modal fànais vectar no rannsachadh stèidhichte air prìomh fhacal.
  2. Ath-rangachadh: Anns an dàrna ìre, thathas a’ cleachdadh modal ath-rangachaidh nas ionnsaichte gus na sgrìobhainnean a chaidh fhaighinn air ais an toiseach ath-òrdachadh a rèir am buntainneachd don cheist, gu h-èifeachdach a’ toirt na sgrìobhainnean as iomchaidh gu mullach na liosta.

Tha am modail ath-rangachaidh, gu tric lìonra neural no ailtireachd stèidhichte air cruth-atharrachaidh, air a thrèanadh gu sònraichte gus iomchaidheachd sgrìobhainn do cheist shònraichte a mheasadh. Le bhith a’ faighinn buannachd bho chomasan tuigse cànain nàdarra adhartach, faodaidh an t-ath-rangaiche na nuances semantach agus na dàimhean co-theacsail eadar a’ cheist agus na sgrìobhainnean a ghlacadh, a’ leantainn gu rangachadh nas cruinne agus nas iomchaidh.

Buannachdan Ath-ghairm Dà-ìre agus Ath-chlàran

Tha gabhail ri ath-lorg dà-ìre le ath-rangaichean a’ tabhann grunn bhuannachdan cudromach ann an co-theacs siostaman RAG:

  1. Cruinneas nas fheàrr: Le bhith ag ath-rangachadh nan sgrìobhainnean a chaidh fhaighinn air ais an toiseach agus ag adhartachadh an fheadhainn as buntainniche chun mhullach, faodaidh an siostam fiosrachadh nas cruinne agus nas mionaidiche a thoirt don mhodail cànain, a’ leantainn gu freagairtean de chàileachd nas àirde.
  2. Cùisean Taobh a-muigh an Fhearainn air an lasachadh: Gu tric bidh modalan in-ghabhail a thathas a’ cleachdadh airson lorg traidiseanta air an trèanadh air corpora teacsa coitcheann, a dh’ fhaodadh nach eil iad a’ glacadh cànan agus semantics a tha sònraichte don àrainn. Air an làimh eile, faodar modalan ath-rangachadh a thrèanadh air dàta a tha sònraichte don raon, a’ lughdachadh na duilgheadas “taobh a-muigh an àrainn” agus a’ leasachadh iomchaidheachd sgrìobhainnean a chaidh fhaighinn air ais taobh a-staigh raointean sònraichte.
  3. Neo-eisimeileachd: Tha an dòigh-obrach dà-ìre a’ ceadachadh sgèileadh èifeachdach le bhith a’ cleachdadh dhòighean trusaidh luath is aotrom aig a’ chiad ìre, agus aig an aon àm a’ gleidheadh ​​a’ phròiseas ath-rangachaidh nas dian a thaobh àireamhachd airson fo-sheata de sgrìobhainnean.
  4. sùbailteachd: Faodar modalan ath-rangachadh a bhith air an atharrachadh no air an ùrachadh gu neo-eisimeileach bhon chiad dhòigh trusaidh, a’ toirt sùbailteachd agus sùbailteachd a rèir feumalachdan mean-fhàs an t-siostaim.

ColBERT: Eadar-obrachadh fadalach èifeachdach agus èifeachdach

Is e aon de na modalan seasamh a-mach ann an raon ath-rangachadh ColBERT (Eadar-obrachadh fadalach co-theacsail thairis air BERT). Tha ColBERT na mhodail ath-chlàradh sgrìobhainnean a bhios a’ cleachdadh comasan tuigse cànain domhainn BERT fhad ‘s a tha e a’ toirt a-steach inneal eadar-obrachaidh ùr-nodha ris an canar “eadar-obrachadh fadalach.”

ColBERT: Rannsachadh Slighe Èifeachdach is Èifeachdach tro eadar-obrachadh fadalach le co-theacsa thairis air BERT

ColBERT: Rannsachadh Slighe Èifeachdach is Èifeachdach tro eadar-obrachadh fadalach le co-theacsa thairis air BERT

Tha an uidheamachd eadar-obrachaidh fadalach ann an ColBERT a’ ceadachadh lorg èifeachdach agus mionaideach le bhith a’ giullachd cheistean agus sgrìobhainnean fa leth gu na h-ìrean deireannach den phròiseas trusaidh. Gu sònraichte, bidh ColBERT gu neo-eisimeileach a’ còdachadh na ceiste agus an sgrìobhainn a’ cleachdadh BERT, agus an uairsin a’ cleachdadh ceum eadar-obrachaidh aotrom ach cumhachdach a bhios a’ modaladh an coltas grinn. Le bhith a’ cur dàil air ach a’ cumail an eadar-obrachaidh ghrinn seo, faodaidh ColBERT luathsachadh a dhèanamh air faireachdainneachd mhodalan cànain domhainn agus aig an aon àm a’ faighinn comas air riochdachaidhean sgrìobhainnean ro-làimh far-loidhne, a’ luathachadh giullachd cheistean gu mòr.

Tha ailtireachd eadar-obrachaidh fadalach ColBERT a’ tabhann grunn bhuannachdan, a ’toirt a-steach èifeachdas coimpiutaireachd nas fheàrr, scalability le meud cruinneachadh sgrìobhainnean, agus iomchaidheachd practaigeach airson suidheachaidhean fìor. A bharrachd air an sin, chaidh ColBERT a leasachadh nas motha le dòighean-obrach leithid stiùireadh diùltadh agus teannachadh fuigheall (ann an ColBERTv2), a bhios ag ùrachadh a’ phròiseas trèanaidh agus a lughdaicheas lorg-fànais a’ mhodail agus aig an aon àm a’ cumail suas èifeachdas trusaidh àrd.

Tha an criomag còd seo a’ sealltainn mar a rèiticheas agus a chleachdas tu am modal jina-colbert-v1-en airson cruinneachadh de sgrìobhainnean a chlàradh, a’ faighinn buannachd às a chomas air co-theacsan fada a làimhseachadh gu h-èifeachdach.

A’ buileachadh Dà Ìre Ath-lorg le Rerankers

A-nis gu bheil tuigse againn air na prionnsapalan air cùl ath-ghairm dà-ìre agus ath-rangachadh, leig dhuinn sgrùdadh a dhèanamh air an cur an gnìomh practaigeach taobh a-staigh co-theacsa siostam RAG. Luasaichidh sinn leabharlannan agus frèaman mòr-chòrdte gus amalachadh nan dòighean sin a nochdadh.

Àrainneachd a stèidheachadh

Mus tèid sinn a-steach don chòd, leig dhuinn ar n-àrainneachd leasachaidh a stèidheachadh. Bidh sinn a’ cleachdadh Python agus grunn leabharlannan NLP mòr-chòrdte, nam measg Hugging Face Transformers, Sentence Transformers, agus LanceDB.

# Install required libraries
!pip install datasets huggingface_hub sentence_transformers lancedb

Ullachadh dàta

Airson adhbharan taisbeanaidh, cleachdaidh sinn an dàta “ai-arxiv-chunked” bho Hugging Face Datasets, anns a bheil còrr air 400 pàipear ArXiv air ionnsachadh innealan, giollachd cànain nàdarra, agus modalan cànain mòra.

from datasets import load_dataset
dataset = load_dataset("jamescalam/ai-arxiv-chunked", split="train")
<pre>

An ath rud, nì sinn ro-phròiseasadh air an dàta agus roinnidh sinn e ann am pìosan nas lugha gus a bhith comasach air lorg agus giullachd èifeachdach.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors="pt", truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = [tokenizer.decode(chunk) for chunk in chunks]
return texts
chunked_data = []
for doc in dataset:
text = doc["chunk"]
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)
Airson a’ chiad ìre lorgaidh, cleachdaidh sinn modal Sentence Transformer gus na sgrìobhainnean agus na ceistean againn a chòdachadh gu riochdachaidhean dùmhail vectar, agus an uairsin dèan sgrùdadh tuairmseach air na nàbaidhean as fhaisge a’ cleachdadh stòr-dàta vector mar LanceDB.
from sentence_transformers import SentenceTransformer
from lancedb import lancedb
# Load Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Create LanceDB vector store
db = lancedb.lancedb('/path/to/store')
db.create_collection('docs', vector_dimension=model.get_sentence_embedding_dimension())
# Index documents
for text in chunked_data:
vector = model.encode(text).tolist()
db.insert_document('docs', vector, text)
from sentence_transformers import SentenceTransformer
from lancedb import lancedb
# Load Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Create LanceDB vector store
db = lancedb.lancedb('/path/to/store')
db.create_collection('docs', vector_dimension=model.get_sentence_embedding_dimension())
# Index documents
for text in chunked_data:
vector = model.encode(text).tolist()
db.insert_document('docs', vector, text)

Le na sgrìobhainnean againn air an clàradh, is urrainn dhuinn a’ chiad ath-lorg a dhèanamh le bhith a’ lorg nan nàbaidhean as fhaisge air vectar ceist sònraichte.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors="pt", truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = [tokenizer.decode(chunk) for chunk in chunks]
return texts
chunked_data = []
for doc in dataset:
text = doc["chunk"]
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)

Ath-rangachadh

Às deidh an lorg tùsail, cleachdaidh sinn modal ath-rangachaidh gus na sgrìobhainnean a fhuaradh ath-òrdachadh a rèir am buntainneachd don cheist. San eisimpleir seo, cleachdaidh sinn an ColBERT reranker, modal luath agus ceart stèidhichte air cruth-atharrachaidh a chaidh a dhealbhadh gu sònraichte airson rangachadh sgrìobhainnean.

from lancedb.rerankers import ColbertReranker
reranker = ColbertReranker()
# Rerank initial documents
reranked_docs = reranker.rerank(query, initial_docs)

Tha reranked_docs liosta a-nis tha na sgrìobhainnean air an ath-òrdachadh stèidhichte air am buntainneachd don cheist, mar a chaidh a dhearbhadh leis an ath-rangachadh ColBERT.

Meudachadh agus Ginealach

Leis na sgrìobhainnean ath-ainmichte agus buntainneach nar làimh, is urrainn dhuinn a dhol air adhart gu ìrean àrdachadh is ginealach loidhne-phìoban RAG. Cleachdaidh sinn modal cànain bhon leabharlann Hugging Face Transformers gus am freagairt mu dheireadh a ghineadh.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("t5-base")
model = AutoModelForSeq2SeqLM.from_pretrained("t5-base")
# Augment query with reranked documents
augmented_query = query + " " + " ".join(reranked_docs[:3])
# Generate response from language model
input_ids = tokenizer.encode(augmented_query, return_tensors="pt")
output_ids = model.generate(input_ids, max_length=500)
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)

Anns a’ chriomag còd gu h-àrd, bidh sinn a’ cur ris a’ cheist thùsail leis na trì prìomh sgrìobhainnean ath-chlàraichte, a’ cruthachadh augmented_query. Bidh sinn an uairsin a’ cur a’ cheist leasaichte seo gu modal cànain T5, a ghineas freagairt stèidhichte air a’ cho-theacsa a chaidh a sholarachadh.

Tha response bidh an toradh deireannach a’ toirt a-steach caochladair, a’ cleachdadh an fhiosrachaidh bhon taobh a-muigh bho na sgrìobhainnean a chaidh fhaighinn air ais agus ath-chlàradh gus freagairt nas cruinne agus nas coileanta a thoirt don cheist thùsail.

Teicneòlasan adhartach agus beachdachadh

Fhad ‘s a tha am buileachadh a tha sinn air a chòmhdach a’ toirt seachad bunait làidir airson ath-lorg dà-ìre agus ath-rangachadh a thoirt a-steach do shiostam RAG, tha grunn dhòighean adhartach agus beachdachaidhean ann a dh’ fhaodadh coileanadh agus neart an dòigh-obrach àrdachadh tuilleadh.

  1. Leudachadh Ceist: Gus a’ chiad ìre lorg a leasachadh, faodaidh tu dòighean leudachaidh ceist a chleachdadh, a’ toirt a-steach cur ris a’ cheist thùsail le teirmean no abairtean co-cheangailte. Faodaidh seo cuideachadh gus seata nas eadar-mheasgte de sgrìobhainnean a dh’ fhaodadh a bhith buntainneach fhaighinn air ais.
  2. Ath-rangachadh Ensemble: An àite a bhith an urra ri aon mhodail ath-rangachaidh, faodaidh tu grunn rerankers a chur còmhla ann an ensemble, a’ faighinn buannachd bho neartan diofar mhodalan gus coileanadh iomlan a leasachadh.
  3. Rerankers gleusta: Ged a dh’ fhaodas modalan ath-rangachaidh ro-thrèanadh a bhith èifeachdach, le bhith gan gleusadh air dàta a tha sònraichte do dh’àrainn faodaidh iad cur ris a’ chomas aca a bhith a’ glacadh semantics agus comharran buntainneachd a tha sònraichte don àrainn.
  4. Ath-ghairm agus ath-rangachadh ath-aithriseach: Ann an cuid de shuidheachaidhean, is dòcha nach bi aon ath-aithris de lorg agus ath-rangachadh gu leòr. Faodaidh tu dòighean-obrach ath-aithriseach a sgrùdadh, far a bheil toradh a’ mhodail cànain air a chleachdadh gus am pròiseas ceasnachaidh agus lorg a leasachadh, a’ leantainn gu siostam nas eadar-ghnìomhach agus nas beothaile.
  5. Cothromachadh iomchaidheachd agus iomadachd: Ged a tha rerankers ag amas air na sgrìobhainnean as iomchaidh a bhrosnachadh, tha e riatanach cothromachadh fhaighinn eadar buntainneachd agus iomadachd. Faodaidh a bhith a’ toirt a-steach dòighean brosnachaidh iomadachd cuideachadh gus casg a chuir air an t-siostam bho bhith ro chumhang no claon anns na stòran fiosrachaidh aige.
  6. Meudan measaidh: Gus measadh a dhèanamh air èifeachd an dòigh-obrach dà-ìre trusaidh is ath-rangachaidh agad, feumaidh tu slatan-tomhais measaidh iomchaidh a mhìneachadh. Dh’ fhaodadh iad sin a bhith a’ toirt a-steach metrics lorg fiosrachaidh traidiseanta leithid cruinneas, ath-ghairm, agus ìre cuibheasach dà-thaobhach (MRR), a bharrachd air meatrach gnìomh sònraichte a tha air a dhealbhadh a rèir do chùis cleachdaidh.

Co-dhùnadh

Tha Retrieval Augmented Generation (RAG) air nochdadh mar dhòigh chumhachdach airson comasan mhodalan cànain mòra àrdachadh le bhith a’ cleachdadh stòran fiosrachaidh bhon taobh a-muigh. Ach, bidh dòighean lorg traidiseanta gu tric a’ strì ri na sgrìobhainnean as iomchaidh a chomharrachadh, a’ leantainn gu coileanadh suboptimal.

Tha lorg dà-ìre le ath-rangaichean a’ tabhann fuasgladh làidir don dùbhlan seo. Le bhith a’ cothlamadh ciad ìre lorg luath le modail ath-rangachaidh nas ionnsaichte, faodaidh an dòigh-obrach seo piseach mòr a thoirt air cruinneas agus iomchaidheachd nan sgrìobhainnean a chaidh fhaighinn air ais, agus aig a’ cheann thall a’ leantainn gu freagairtean de chàileachd nas àirde bhon mhodail cànain.

Tha mi air na còig bliadhna a dh’ fhalbh a’ bogadh fhèin ann an saoghal inntinneach Ionnsachadh Inneal agus Ionnsachadh domhainn. Tha an dìoghras agus an t-eòlas agam air toirt orm cur ri còrr air 50 pròiseact innleadaireachd bathar-bog eadar-mheasgte, le fòcas sònraichte air AI/ML. Tha mo fheòrachas leantainneach cuideachd air mo tharraing a dh’ ionnsaigh Natural Language Processing, raon air a bheil mi airson tuilleadh sgrùdaidh a dhèanamh.