AGI και το μέλλον της AI

Η Δύναμη των Rerankers και της Δύο-Βαθμίδας Αναζήτησης για Αναζήτηση Αυξημένη με Γεννήτρια

mm
Retrieval Augmented Generation

Όταν πρόκειται για επεξεργασία φυσικής γλώσσας (NLP) και ανάκτηση πληροφοριών, η ικανότητα να ανακτήσετε αποτελεσματικά και ακριβώς τις σχετικές πληροφορίες είναι परमόρφωτη. Καθώς το πεδίο συνεχίζει να εξελίσσεται, αναπτύσσονται νέες τεχνικές και μεθοδολογίες για να βελτιώσουν την απόδοση των συστημάτων ανάκτησης, ιδιαίτερα στο πλαίσιο της Αναζήτησης Αυξημένης με Γεννήτρια (RAG). Μια τέτοια τεχνική, γνωστή ως δύο-βαθμίδας ανάκτησης με rerankers, έχει αναδυθεί ως μια ισχυρή λύση για να αντιμετωπίσουν τις εγγενείς περιορισμούς των παραδοσιακών μεθόδων ανάκτησης.

Σε αυτό το άρθρο συζητάμε τις ιδιαιτερότητες της δύο-βαθμίδας ανάκτησης και των rerankers, εξερευνώντας τις υποκείμενες αρχές, τις στρατηγικές υλοποίησης και τα οφέλη που προσφέρουν για την ενίσχυση της ακρίβειας και της αποδοτικότητας των συστημάτων RAG. Θα παρέχουμε επίσης πρακτικά παραδείγματα και κώδικες για να εικονογραφήσουμε τις έννοιες και να διευκολύνουμε μια βαθύτερη κατανόηση αυτής της τεχνικής.

Κατανόηση της Αναζήτησης Αυξημένης με Γεννήτρια (RAG)

swe agent LLM

Πριν να εμβαθύνουμε στις λεπτομέρειες της δύο-βαθμίδας ανάκτησης και των rerankers, ας επαναφέρουμε τη концепτούμενη της Αναζήτησης Αυξημένης με Γεννήτρια (RAG). Η RAG είναι μια τεχνική που επεκτείνει τις γνώσεις και τις ικανότητες των μεγάλων μοντέλων γλώσσας (LLM) παρέχοντας τους πρόσβαση σε εξωτερικές πηγές πληροφοριών, όπως βάσεις δεδομένων ή συλλογές εγγράφων. Αναφερθείτε περισσότερο από το άρθρο “Ένα Βαθύ Βούτι στη Αναζήτηση Αυξημένη με Γεννήτρια σε LLM“.

Η τυπική διαδικασία RAG περιλαμβάνει τα ακόλουθα βήματα:

  1. Ερώτηση: Ο χρήστης θέτει μια ερώτηση ή παρέχει μια οδηγία στο σύστημα.
  2. Ανάκτηση: Το σύστημα ερωτά μια βάση δεδομένων ή συλλογή εγγράφων για να βρει πληροφορίες που σχετίζονται με την ερώτηση του χρήστη.
  3. Αύξηση: Οι ανακτημένες πληροφορίες συνδυάζονται με την αρχική ερώτηση ή οδηγία του χρήστη.
  4. Γεννήτρια: Το μοντέλο γλώσσας επεξεργάζεται την αυξημένη είσοδο και παράγει μια απάντηση, αξιοποιώντας τις εξωτερικές πληροφορίες για να βελτιώσει την ακρίβεια και την πληρότητα της εξόδου.

Ενώ η RAG έχει αποδειχθεί μια ισχυρή τεχνική, δεν είναι χωρίς προκλήσεις. Ένα από τα βασικά προβλήματα βρίσκεται στο στάδιο ανάκτησης, όπου οι παραδοσιακές μεθόδους ανάκτησης μπορεί να αποτύχουν να ανακαλύψουν τα πιο σχετικά έγγραφα, οδηγώντας σε υποβελτιστοποιημένες ή ανακριβείς απαντήσεις από το μοντέλο γλώσσας.

Η Ανάγκη για Δύο-Βαθμίδας Ανάκτησης και Rerankers

Οι παραδοσιακές μεθόδους ανάκτησης, όπως αυτές που βασίζονται σε αντιστοιχία λέξεων ή μοντέλα διανυσμάτων, συχνά αγωνίζονται να καταγράψουν τις νюανσες σημασιολογικές σχέσεις μεταξύ ερωτήσεων και εγγράφων. Αυτό το όριο μπορεί να οδηγήσει στην ανάκτηση εγγράφων που είναι μόνο επιφανειακά σχετικά ή να λείπουν κρίσιμες πληροφορίες που θα μπορούσαν να βελτιώσουν σημαντικά την ποιότητα της παραγόμενης απάντησης.

Για να αντιμετωπίσουν αυτή την πρόκληση, ερευνητές και πρακτικοί έχουν στρέψει την προσοχή τους στη δύο-βαθμίδας ανάκτησης με rerankers. Αυτή η προσέγγιση περιλαμβάνει μια διπλή διαδικασία:

  1. Αρχική Ανάκτηση: Στο πρώτο στάδιο, μια σχετικά μεγάλη συλλογή πιθανώς σχετικών εγγράφων ανακτάται χρησιμοποιώντας μια γρήγορη και αποτελεσματική μέθοδο ανάκτησης, όπως ένα μοντέλο διανυσμάτων ή μια αναζήτηση με βάση λέξεις-κλειδιά.
  2. Επανταξινόμηση: Στο δεύτερο στάδιο, ένα πιο εξελιγμένο μοντέλο επανταξινόμησης χρησιμοποιείται για να αναταξινομήσει τα αρχικά ανακτημένα έγγραφα με βάση τη σχετικότητά τους με την ερώτηση, φέρνοντας τα πιο σχετικά έγγραφα στο επάνω μέρος της λίστας.

Το μοντέλο επανταξινόμησης, συχνά ένα νευρωνικό δίκτυο ή μια αρχιτεκτονική μεταφόρμα, εκπαιδεύεται ειδικά για να αξιολογήσει τη σχετικότητα ενός εγγράφου με μια δεδομένη ερώτηση. Αξιοποιώντας προηγμένες ικανότητες κατανόησης φυσικής γλώσσας, το μοντέλο επανταξινόμησης μπορεί να καταγράψει τις σημασιολογικές νυάνσεις και τις контекστοποιημένες σχέσεις μεταξύ της ερώτησης και των εγγράφων, οδηγώντας σε μια πιο ακριβή και σχετική κατάταξη.

Πλεονεκτήματα της Δύο-Βαθμίδας Ανάκτησης και Rerankers

Η υιοθέτηση της δύο-βαθμίδας ανάκτησης με rerankers προσφέρει plusieurs σημαντικά πλεονεκτήματα στο πλαίσιο των συστημάτων RAG:

  1. Βελτιωμένη Ακρίβεια: Αναταξινομώντας τα αρχικά ανακτημένα έγγραφα και προωθώντας τα πιο σχετικά στο επάνω μέρος της λίστας, το σύστημα μπορεί να παρέχει πιο ακριβείς και 精确ές πληροφορίες στο μοντέλο γλώσσας, οδηγώντας σε απαντήσεις υψηλότερης ποιότητας.
  2. Μειωμένα Προβλήματα Εκτός Τομέα: Τα μοντέλα που χρησιμοποιούνται για παραδοσιακές μεθόδους ανάκτησης εκπαιδεύονται συχνά σε γενικούς συνόλους δεδομένων, τα οποία μπορεί να μην καταγράψουν επαρκώς τη γλώσσα και τη σημασιολογία του τομέα. Τα μοντέλα επανταξινόμησης, από την άλλη πλευρά, μπορούν να εκπαιδευτούν σε δεδομένα του τομέα, μειώνοντας το πρόβλημα “εκτός τομέα” και βελτιώνοντας τη σχετικότητα των ανακτημένων εγγράφων μέσα σε εξειδικευμένους τομείς.
  3. Κλιμακωσιμότητα: Η δύο-βαθμίδας προσέγγιση επιτρέπει την αποτελεσματική κλιμάκωση αξιοποιώντας γρήγορες και ελαφριές μεθόδους ανάκτησης στο αρχικό στάδιο, ενώ αποθηκεύει τη πιο υπολογιστικά απαιτητική διαδικασία επανταξινόμησης για ένα μικρότερο υποσύνολο εγγράφων.
  4. Ελαστικότητα: Τα μοντέλα επανταξινόμησης μπορούν να ανταλλαχθούν ή να ενημερωθούν ανεξάρτητα από τη μέθοδο αρχικής ανάκτησης, παρέχοντας ελαστικότητα και προσαρμοστικότητα στις εξελισσόμενες ανάγκες του συστήματος.

ColBERT: Αποτελεσματική και Αποτελεσματική Ανάκληση με Χρόνο

Ένα από τα εξέχοντα μοντέλα στον χώρο της επανταξινόμησης είναι το ColBERT (Contextualized Late Interaction over BERT). Το ColBERT είναι ένα μοντέλο επανταξινόμησης εγγράφων που αξιοποιεί τις βαθύες ικανότητες κατανόησης γλώσσας του BERT, εισάγοντας μια νέα μηχανισμό αλληλεπίδρασης γνωστή ως “晚ά αλληλεπίδραση.”

ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT

ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT

Η μηχανισμός晚ά αλληλεπίδρασης στο ColBERT επιτρέπει την αποτελεσματική και ακριβή ανάκτηση επεξεργάζοντας ερωτήσεις και έγγραφα ξεχωριστά μέχρι τα τελικά στάδια της διαδικασίας ανάκτησης. Συγκεκριμένα, το ColBERT κωδικοποιεί ανεξάρτητα την ερώτηση και το έγγραφο χρησιμοποιώντας το BERT, και στη συνέχεια χρησιμοποιεί ένα ελαφρύ αλλά ισχυρό βήμα αλληλεπίδρασης που μοντελοποιεί τη λεπτομερή ομοιότητα. Αξιοποιώντας την εκφραστική δύναμη των βαθύων μοντέλων γλώσσας ενώ διατηρεί την ικανότητα να προ-υπολογίσει τις αναπαραστάσεις εγγράφων εκτός σύνδεσης, το ColBERT μπορεί να αξιοποιήσει την εκφραστική δύναμη των βαθύων μοντέλων γλώσσας ενώ διατηρεί την ικανότητα να προ-υπολογίσει τις αναπαραστάσεις εγγράφων εκτός σύνδεσης.

Εφαρμογή της Δύο-Βαθμίδας Ανάκτησης με Rerankers

Τώρα που έχουμε μια κατανόηση των αρχών πίσω από τη δύο-βαθμίδας ανάκτησης και τους rerankers, ας εξερευνήσουμε την πρακτική εφαρμογή τους στο πλαίσιο eines συστήματος RAG. Θα αξιοποιήσουμε δημοφιλείς βιβλιοθήκες και πλαίσια για να示άσουμε την ενσωμάτωση αυτών των τεχνικών.

Ρύθμιση του Περιβάλλοντος

Πριν να εμβαθύνουμε στον κώδικα, ας ρυθμίσουμε το περιβάλλον μας. Θα χρησιμοποιήσουμε Python και几 δημοφιλείς βιβλιοθήκες NLP, συμπεριλαμβανομένων Hugging Face Transformers, Sentence Transformers και LanceDB.

# Εγκατάσταση απαιτούμενων βιβλιοθηκών
!pip install datasets huggingface_hub sentence_transformers lancedb

Προετοιμασία Δεδομένων

Για σκοπούς επίδειξης, θα χρησιμοποιήσουμε το σύνολο δεδομένων “ai-arxiv-chunked” από Hugging Face Datasets, το οποίο περιλαμβάνει πάνω από 400 έγγραφα ArXiv για τη μηχανική μάθηση, την επεξεργασία φυσικής γλώσσας και τα μεγάλα μοντέλα γλώσσας.

from datasets import load_dataset

<p>dataset = load_dataset(&quot;jamescalam/ai-arxiv-chunked&quot;, split=&quot;train&quot;)</p>

&amp;lt;pre&amp;gt;

Στη συνέχεια, θα προετοιμάσουμε τα δεδομένα και θα τα χωρίσουμε σε μικρότερα τμήματα για να διευκολύνουμε την αποτελεσματική ανάκτηση και επεξεργασία.

from transformers import AutoTokenizer

<p>tokenizer = AutoTokenizer.from_pretrained(&quot;bert-base-uncased&quot;)</p>

<p>def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors=&quot;pt&quot;, truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = [tokenizer.decode(chunk) for chunk in chunks]
return texts</p>

<p>chunked_data = []
for doc in dataset:
text = doc[&quot;chunk&quot;]
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)</p>

Επανταξινόμηση

Μετά την αρχική ανάκτηση, θα χρησιμοποιήσουμε ένα μοντέλο επανταξινόμησης για να αναταξινομήσουμε τα ανακτημένα έγγραφα με βάση τη σχετικότητά τους με την ερώτηση. Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε το μοντέλο ColBERT, ένα γρήγορο και ακριβές μοντέλο μεταφόρμας που έχει σχεδιαστεί ειδικά για την κατάταξη εγγράφων.

from lancedb.rerankers import ColbertReranker

reranker = ColbertReranker()

<p># Επανταξινόμηση αρχικών εγγράφων
reranked_docs = reranker.rerank(query, initial_docs)

Η λίστα reranked_docs περιλαμβάνει τώρα τα έγγραφα αναταξινομημένα με βάση τη σχετικότητά τους με την ερώτηση, όπως καθορίζεται από το μοντέλο ColBERT.

Αύξηση και Γεννήτρια

Με τα επανταξινομημένα και σχετικά έγγραφα στο χέρι, μπορούμε να προχωρήσουμε στα στάδια αύξησης και γεννήτριας του πλήγματος RAG. Θα χρησιμοποιήσουμε ένα μοντέλο γλώσσας από τη βιβλιοθήκη Hugging Face Transformers για να παράγουμε την τελική απάντηση.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

<p>tokenizer = AutoTokenizer.from_pretrained(&quot;t5-base&quot;)
model = AutoModelForSeq2SeqLM.from_pretrained(&quot;t5-base&quot;)</p>

<p># Αύξηση ερώτησης με επανταξινομημένα έγγραφα
augmented_query = query + &quot; &quot; + &quot; &quot;.join(reranked_docs[:3])</p>

<p># Παραγωγή απάντησης από το μοντέλο γλώσσας
input_ids = tokenizer.encode(augmented_query, return_tensors=&quot;pt&quot;)
output_ids = model.generate(input_ids, max_length=500)
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)</p>

print(response)

Προηγμένα Τεχνικές και Σκέψεις

Ενώ η εφαρμογή που έχουμε καλύψει παρέχει μια solide βάση για την ενσωμάτωση της δύο-βαθμίδας ανάκτησης και των rerankers σε ένα σύστημα RAG, υπάρχουν plusieurs προηγμένα τεχνικές και σκέψεις που μπορούν να βελτιώσουν την απόδοση και τη σταθερότητα της προσέγγισης.

  1. Επέκταση Ερωτήματος: Για να βελτιώσετε το αρχικό στάδιο ανάκτησης, μπορείτε να χρησιμοποιήσετε τεχνικές επέκτασης ερωτήματος, οι οποίες περιλαμβάνουν την αύξηση της αρχικής ερώτησης με σχετικές λέξεις ή φράσεις. Αυτό μπορεί να βοηθήσει στην ανάκτηση μιας πιο ποικίλης συλλογής πιθανώς σχετικών εγγράφων.
  2. Επανταξινόμηση Ensemble: Αντί να βασίζεστε σε ένα μόνο μοντέλο επανταξινόμησης, μπορείτε να συνδυάσετε πολλά μοντέλα επανταξινόμησης σε ένα ensemble, αξιοποιώντας τις ισχύες των διαφόρων μοντέλων για να βελτιώσετε την συνολική απόδοση.
  3. Επιμερισμός Rerankers: Ενώ τα προ-εκπαιδευμένα μοντέλα επανταξινόμησης μπορούν να είναι αποτελεσματικά, ο επιμερισμός τους σε δεδομένα του τομέα μπορεί να βελτιώσει ακόμη περισσότερο την ικανότητά τους να καταγράψουν τη σημασιολογία και τις σχετικές σήματα του τομέα.
  4. Επανειλημμένη Ανάκτηση και Επανταξινόμηση: Σε ορισμένες περιπτώσεις, μια seule επανάληψη της ανάκτησης και της επανταξινόμησης μπορεί να μην είναι επαρκής. Μπορείτε να εξερευνήσετε επαναλαμβανόμενες προσεγγίσεις, όπου η έξοδος του μοντέλου γλώσσας χρησιμοποιείται για να βελτιώσει την ερώτηση και τη διαδικασία ανάκτησης, οδηγώντας σε ένα πιο αλληλεπιδραστικό και δυναμικό σύστημα.
  5. Ισορροπία Σχετικότητας και Ποικιλίας: Ενώ τα μοντέλα επανταξινόμησης στοχεύουν στην προώθηση των πιο σχετικών εγγράφων, είναι σημαντικό να ισορροπήσετε τη σχετικότητα και την ποικιλία. Η ενσωμάτωση τεχνικών που προάγουν την ποικιλία μπορεί να βοηθήσει να αποτρέψει το σύστημα από το να είναι υπερβολικά στενό ή προκατειλημμένο στις πληροφορίες.
  6. Μέτρα Αξιολόγησης: Για να αξιολογήσετε την αποτελεσματικότητα της δύο-βαθμίδας ανάκτησης και της επανταξινόμησης, θα πρέπει να ορίσετε κατάλληλα μέτρα αξιολόγησης. Αυτά μπορεί να περιλαμβάνουν παραδοσιακά μέτρα ανάκτησης πληροφοριών όπως ακρίβεια, ανακλησιμότητα και μέσο ανακλησιμότητα (MRR), καθώς και μέτρα ειδικά για την εργασία σας.

Συμπέρασμα

Η Αναζήτηση Αυξημένη με Γεννήτρια (RAG) έχει αναδυθεί ως μια ισχυρή τεχνική για την ενίσχυση των ικανοτήτων των μεγάλων μοντέλων γλώσσας αξιοποιώντας εξωτερικές πηγές πληροφοριών. Ωστόσο, οι παραδοσιακές μεθόδους ανάκτησης συχνά αγωνίζονται να ανακαλύψουν τα πιο σχετικά έγγραφα, οδηγώντας σε υποβελτιστοποιημένες απαντήσεις.

Η δύο-βαθμίδας ανάκτησης με rerankers προσφέρει μια πειστική λύση σε αυτή την πρόκληση. Συνδυάζοντας ένα αρχικό γρήγορο στάδιο ανάκτησης με ένα πιο εξελιγμένο μοντέλο επανταξινόμησης, αυτή η προσέγγιση μπορεί να βελτιώσει σημαντικά την ακρίβεια και τη σχετικότητα των ανακτημένων εγγράφων, οδηγώντας σε απαντήσεις υψηλότερης ποιότητας από το μοντέλο γλώσσας.

Έχω περάσει τα τελευταία πέντε χρόνια βυθισμένος στον συναρπαστικό κόσμο της Μηχανικής Μάθησης και του Βαθιάς Μάθησης. Η δέσμευσή μου και η εξειδίκευσή μου με οδήγησαν να συμβάλλω σε πάνω από 50 διαφορετικά projects μηχανικής λογισμικού, με ιδιαίτερη έμφαση στο AI/ML. Η συνεχής περιέργειά μου με έχει οδηγήσει επίσης προς την Επεξεργασία Φυσικής Γλώσσας, ένα πεδίο που είμαι πρόθυμος να εξερευνήσω περαιτέρω.