Μονάδα 2 / 11

Λογική ενσωμάτωσης και διανυσματικής βάσης δεδομένων

Κέρδη:

  • Κατανοήστε ότι η ενσωμάτωση μετατρέπει το κείμενο σε διάνυσμα στον σημασιολογικό χώρο και παρόμοιες έννοιες είναι στενά διανύσματα
  • Εξηγώντας πώς λειτουργεί η αναζήτηση ANN με μετρήσεις ομοιότητας συνημιτόνου και κουκκίδων
  • Επιλογή κοινών διανυσματικών βάσεων δεδομένων με βάση το κόστος, την κλίμακα και την ανάγκη για φιλτράρισμα μεταδεδομένων

Στην καρδιά του RAG βρίσκεται μια ερώτηση: "Ποιο κομμάτι κειμένου είναι περισσότερο παρόμοιο με την ερώτηση του χρήστη;" Ο υπολογιστής επεξεργάζεται κείμενο με αριθμούς, όχι κυριολεκτικά. Γι' αυτό πρέπει πρώτα να μετατρέψουμε το κείμενο σε αριθμούς που φέρουν το νόημά του. Αυτό είναι η ενσωμάτωση: η διαδικασία μετατροπής ενός κειμένου σε μια ακολουθία αριθμών (διάνυσμα) που αντιπροσωπεύει το νόημα αυτού του κειμένου. Όταν ολοκληρώσετε αυτήν την ενότητα, θα γνωρίζετε πώς λειτουργεί η ενσωμάτωση, πώς μετράται η ομοιότητα και πώς να επιλέξετε τη σωστή διανυσματική βάση δεδομένων.

Ενσωμάτωση: Μετάφραση νοήματος σε συντεταγμένες

Ένα μοντέλο ενσωμάτωσης (μια ειδικά εκπαιδευμένη τεχνητή νοημοσύνη) μετατρέπει το κείμενο που παρέχετε σε διάνυσμα, για παράδειγμα, 1024 αριθμών. Σκεφτείτε αυτό το διάνυσμα ως συντεταγμένη σε έναν πολυδιάστατο χώρο. Η μαγεία είναι η εξής: κείμενα που έχουν παρόμοια σημασία εμπίπτουν σε στενές συντεταγμένες σε αυτόν τον χώρο.

Ένα απλό παράδειγμα: "ετήσια άδεια", "δικαίωμα διακοπών" και "ετήσια άδεια μετ' αποδοχών" χρησιμοποιούν διαφορετικές λέξεις αλλά σημαίνουν το ίδιο πράγμα - οι φορείς τους είναι κοντά ο ένας στον άλλο. Ο "λογαριασμός μισθοδοσίας" είναι διαφορετικό θέμα - το διάνυσμά του είναι μακρινό. Ο χρήστης λοιπόν ρωτά "πόσες μέρες διακοπές έχω;" Όταν ρωτάτε, μπορούμε να βρούμε ακόμη και ένα έγγραφο που δεν περιέχει τη λέξη "διακοπές" αλλά λέει "η ετήσια άδεια είναι 14 ημέρες". Αυτό δεν μπορεί να κάνει η κλασική αναζήτηση λέξεων-κλειδιών (αναζήτηση που ταιριάζει ακριβώς με τη λέξη).

Συμβουλή: Σκεφτείτε την ενσωμάτωση ως «δαχτυλικό αποτύπωμα νοήματος». Τα δακτυλικά αποτυπώματα δύο προτάσεων με την ίδια σημασία φαίνονται παρόμοια. Ακόμα κι αν οι λέξεις είναι διαφορετικές.

Ένας σημαντικός κανόνας: το μοντέλο που χρησιμοποιείτε κατά την ενσωμάτωση της ερώτησης πρέπει να είναι το ίδιο μοντέλο που χρησιμοποιείτε κατά την ενσωμάτωση εγγράφων. Διαφορετικά μοντέλα παράγουν διαφορετικούς χώρους. οι συντεταγμένες γίνονται ασύγκριτες.

Πώς να μετρήσετε την ομοιότητα;

Υπάρχουν πολλές μέθοδοι για να μετρήσετε πόσο όμοια είναι δύο διανύσματα. Η πιο κοινή είναι η ομοιότητα συνημιτόνου: μετρά τη γωνία μεταξύ δύο διανυσμάτων. Εάν η γωνία είναι μικρή (διανύσματα που δείχνουν προς την ίδια κατεύθυνση), η ομοιότητα είναι μεγάλη. Η τιμή είναι μεταξύ −1 και 1. Κοντά στο 1 = πολύ παρόμοια.

κριτήριο

Τι μετράει;

Πότε προτιμάται;

Συνημίτονο

Γωνία (κατεύθυνση) μεταξύ διανυσμάτων

Το πιο κοινό? προεπιλογή στη σημασιολογική ομοιότητα του κειμένου

Προϊόν με τελείες

Κατεύθυνση + μέγεθος μαζί

Εάν τα διανύσματα είναι κανονικοποιημένα, δίνει το ίδιο αποτέλεσμα με το συνημίτονο. είναι γρήγορο

Ευκλείδεια (ευκλείδεια απόσταση)

Ευθεία απόσταση μεταξύ συντεταγμένων

Σε ορισμένα σενάρια ομαδοποίησης. χρησιμοποιείται λιγότερο στο κείμενο

Στην πράξη, τα περισσότερα μοντέλα ενσωμάτωσης παράγουν κανονικοποιημένα διανύσματα (το μέγεθος ορίζεται σε 1). Σε αυτή την περίπτωση, το συνημίτονο και το γινόμενο με τελείες δίνουν την ίδια σειρά. Μην παραλύσετε την απόφαση: ξεκινήστε με συνημίτονο.

Ανάμεσα σε εκατομμύρια διανύσματα, η σύγκριση τους ένα προς ένα κάθε φορά είναι αργή. Γι' αυτό οι διανυσματικές βάσεις δεδομένων χρησιμοποιούν αλγόριθμους ANN (Approximate Nearest Neighbor). Το ANN βρίσκει το "σχεδόν ακριβέστερο" παρά το "ακριβώς πλησιέστερο" πολύ γρήγορα. Για παράδειγμα, η μέθοδος που ονομάζεται HNSW μπορεί να επιστρέψει αποτελέσματα σε λίγα χιλιοστά του δευτερολέπτου ακόμη και για 10 εκατομμύρια διανύσματα. Κερδίζεις μεγάλη ταχύτητα για μια μικρή θυσία ακρίβειας.

Τι κάνει η διανυσματική βάση δεδομένων;

Μια διανυσματική βάση δεδομένων κάνει τρία πράγματα ταυτόχρονα: (1) αποθηκεύει διανύσματα, (2) βρίσκει γρήγορα τα διανύσματα που είναι πιο παρόμοια με ένα διάνυσμα ερωτήματος, (3) φιλτράρει κατά μεταδεδομένα δίπλα σε κάθε διάνυσμα. Τα μεταδεδομένα είναι οι ετικέτες που επισυνάπτετε σε αυτό το κομμάτι: αρχείο προέλευσης, ημερομηνία, τμήμα, επίπεδο απορρήτου κ.λπ. Το φιλτράρισμα μεταδεδομένων είναι κρίσιμο στο εταιρικό RAG. γιατί πρέπει να μπορείτε να ορίσετε περιορισμούς όπως "αναζήτηση μόνο στα έγγραφα του 2025 του τμήματος Οικονομικών".

# Εγγραφείτε στη διανυσματική βάση δεδομένων (εννοιολογική)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Η ετήσια άδεια μετ' αποδοχών είναι 14 ημέρες..."), text="Η ετήσια άδεια μετ' αποδοχών είναι 14 ημέρες...", metadata={"πηγή": "ik_el_kitabi.pdf": "ΙΚ" "2025-06", "privacy": "ic"})

# Μεταδεδομένα φιλτραρισμένη αναζήτηση (εννοιολογικό) αποτέλεσμα = vektor_db.search( vektor=embed("πόσες ημέρες άδεια έχω;", top_k=4, filter={"τμήμα": "HR", "απόρρητο": ["εσωτερικό", "ενεργό"]})

Επιλέγοντας τη σωστή βάση δεδομένων

όχημα

Επιλεγμένη πτυχή

Κατάλληλη κατάσταση

Ενσωματωμένη / βασισμένη σε αρχείο (ενσωματωμένη βιβλιοθήκη)

Χωρίς εγκατάσταση, μονή μηχανή

Πρωτότυπο, μικρό κιτ (< μερικές εκατοντάδες χιλιάδες μέρη)

Διαχειριζόμενη υπηρεσία cloud

Η κλιμάκωση και η συντήρηση δεν είναι δική σας ευθύνη

Παραγωγή, ταχέως αναπτυσσόμενα δεδομένα, μικρή ομάδα

Ανοιχτός κώδικας στον δικό σας διακομιστή

Πλήρης έλεγχος, τα δεδομένα σας παραμένουν δικά σας

Υποχρέωση ιδιωτικότητας, υπάρχουσα υποδομή

Προσθήκη στην υπάρχουσα βάση δεδομένων

Δεν διαχειρίζεστε ξεχωριστά συστήματα

Προσθήκη διανυσματικής υποστήριξης στο DB που ήδη χρησιμοποιείτε

Ρωτήστε κατά την επιλογή: Πόσα κομμάτια θα υπάρχουν; Πόσο κρίσιμο είναι το φιλτράρισμα μεταδεδομένων; Μπορούν τα δεδομένα να βγουν εκτός εταιρείας (εμπιστευτικότητα); Μπορεί η ομάδα να λειτουργήσει μια υποδομή; Είναι συχνά συνετό να ξεκινάτε από μικρά και να επεκτείνεστε όσο χρειάζεται.

Αδύναμη Προσέγγιση / Ισχυρή Προσέγγιση

Αδύναμη (αποθήκευση απλής ενσωμάτωσης, χωρίς μεταδεδομένα):

Απλώς αποθηκεύστε το κείμενο και το διάνυσμα. Αναζήτηση: επιστρέψτε τα 4 πιο παρόμοια διανύσματα.# Πρόβλημα: δεν είναι δυνατό να φιλτράρετε όπως "μόνο τα τρέχοντα έγγραφα HR";# παλιά/μη εξουσιοδοτημένα εξαρτήματα ενδέχεται επίσης να συμπεριληφθούν στην απόκριση.

Ισχυρό (πλούσια μεταδεδομένα + φιλτραρισμένη αναζήτηση):

Προσθέστε πηγή, ημερομηνία, τμήμα και ετικέτα απορρήτου σε κάθε κομμάτι. Φιλτράρετε σύμφωνα με την εξουσία και την τρέχουσα κατάσταση του χρήστη κατά την αναζήτηση: filter = {"privacy": user_authority, "date_date": "2024-01"}# Επομένως, το αποτέλεσμα είναι ασφαλές και ενημερωμένο.

Τρεις Μίνι Θήκες

Περίπτωση 1 — Λάθος συνδυασμός μοντέλων. Μια ομάδα ενσωμάτωσε έγγραφα με το μοντέλο Α ​​και ερωτήσεις με το μοντέλο Β. Οι αναζητήσεις επέστρεψαν χωρίς νόημα αποτελέσματα και το ποσοστό σωστών απαντήσεων παρέμεινε στο 31%. Όταν άλλαξα σε ένα μεμονωμένο μοντέλο (και τα δύο το ίδιο μοντέλο ενσωμάτωσης), το ποσοστό ανέβηκε στο 88%. Μάθημα: η ερώτηση και το έγγραφο πρέπει να βρίσκονται στον ίδιο χώρο.

Περίπτωση 2 — Κίνδυνος απορρήτου χωρίς μεταδεδομένα. Σε μια εταιρεία υγειονομικής περίθαλψης, όλα τα έγγραφα του τμήματος ρίχτηκαν σε μια ενιαία ομάδα χωρίς μεταδεδομένα. Όταν ένας συνεργάτης πωλήσεων έκανε μια ερώτηση, το σύστημα προσδιόρισε ένα κομμάτι δεδομένων ασθενών. Όταν προστέθηκαν μεταδεδομένα + φίλτρο (σύμφωνα με το επίπεδο εξουσιοδότησης), αυτός ο κίνδυνος εξαλείφθηκε. Κατά την ανάκτηση, 12 μη εξουσιοδοτημένα κομμάτια δεν φέρονται καθόλου.

Περίπτωση 3 — Κλίμακα συμφόρησης. Μια εταιρεία ηλεκτρονικού εμπορίου έψαξε 8 εκατομμύρια περιγραφές προϊόντων με μια απλή μέθοδο "σάρωση όλων". Κάθε ερώτημα χρειάστηκε 6 δευτερόλεπτα. Όταν αλλάξαμε σε ANN που βασίζεται στο HNSW, ο χρόνος μειώθηκε στα 45 χιλιοστά του δευτερολέπτου, με απώλεια ακρίβειας μόνο 1%. Μάθημα: Το ANN είναι υποχρεωτικό στο μεγάλο σετ.

Συνήθη λάθη

  • Ενσωμάτωση της ερώτησης και του εγγράφου με διαφορετικά μοντέλα: Τα αποτελέσματα δεν έχουν νόημα. πάντα ένα μοντέλο.
  • Παράβλεψη μεταδεδομένων: Δεν μπορείτε να φιλτράρετε. Χάνετε τον έλεγχο του απορρήτου και της ενημέρωσης.
  • Λάθος της ενσωμάτωσης για κρυπτογράφηση: Η ενσωμάτωση μεταφέρει αναστρέψιμες πληροφορίες. Είναι λάθος να υποθέσουμε ότι τα ευαίσθητα δεδομένα είναι «κρυφά».
  • Η δημιουργία άσκοπα μεγάλης υποδομής σε ένα μικρό σύνολο: Ένα τεράστιο σύμπλεγμα που διαχειρίζεται 5.000 μέρη είναι περιττή πολυπλοκότητα.
  • Μην ανησυχείτε πολύ για το κριτήριο ομοιότητας: Ξεκινήστε με συνημίτονο στο κείμενο. Ο λεπτός συντονισμός έρχεται αργότερα.
Προσοχή: Η ενσωμάτωση ενσωματώνει το νόημα του κειμένου σε αριθμούς, αλλά δεν «καταστρέφει» το περιεχόμενο. Εάν διαρρεύσει μια διανυσματική βάση δεδομένων, τα αρχικά αποθηκευμένα κείμενα (στις περισσότερες εγκαταστάσεις αποθηκεύεται επίσης το κείμενο) παραβιάζονται επίσης. Διατηρήστε το vector αποθετήριο τόσο εμπιστευτικό όσο και τα έγγραφα μέσα σε αυτό.

Συνοπτικά

  • Η ενσωμάτωση μετατρέπει το κείμενο σε ένα διάνυσμα αριθμών που φέρει το νόημά του. Παρόμοιες έννοιες είναι στενά διανύσματα.
  • Η ομοιότητα μετριέται συχνά με συνημίτονο. Για κανονικοποιημένα διανύσματα, το γινόμενο με τελείες δίνει το ίδιο αποτέλεσμα.
  • Στα μεγάλα δεδομένα, το ANN (π.χ. HNSW) αντικαθιστά την ακριβή αναζήτηση: μεγάλη ταχύτητα με μικρή θυσία ακρίβειας.
  • Η διανυσματική βάση δεδομένων εκτελεί διανυσματική αποθήκευση + αναζήτηση ομοιότητας + φιλτράρισμα μεταδεδομένων. Τα μεταδεδομένα είναι απαραίτητα για το εταιρικό RAG.
  • Η ερώτηση και το έγγραφο πρέπει να μεταφραστούν με το ίδιο μοντέλο ενσωμάτωσης. διαφορετικά οι συντεταγμένες δεν μπορούν να συγκριθούν.

Εργασία εφαρμογής

Εξάγετε 10 σύντομα αποσπάσματα (3-6 προτάσεις το καθένα) από το έγγραφο που επιλέξατε στην προηγούμενη ενότητα. (1) Σχεδιάστε τουλάχιστον τρεις ετικέτες μεταδεδομένων για κάθε κομμάτι (πηγή, ημερομηνία και μια τρίτη κατάλληλη για το επιχειρηματικό σας πλαίσιο: τμήμα, προϊόν, απόρρητο κ.λπ.). (2) Γράψτε ποιο φίλτρο μεταδεδομένων θα πρέπει να εφαρμοστεί για 3 διαφορετικές ερωτήσεις χρήστη. (3) Βρείτε 3 ζεύγη ερωτήσεων που εκφράζουν το ίδιο νόημα με διαφορετικές λέξεις (π.χ. "δικαίωμα διακοπών" ↔ "ετήσια άδεια") και εξηγήστε με μία πρόταση γιατί δεν θα ταιριάζουν με την αναζήτηση λέξεων-κλειδιών αλλά θα ταιριάζουν με την ενσωμάτωση.

λίστα ελέγχου

  • [ ] Μπορώ να πω ότι η ενσωμάτωση μετατρέπει το κείμενο σε διάνυσμα στον σημασιολογικό χώρο και παρόμοιες έννοιες είναι κοντινές.
  • Γνωρίζω ότι η [ ] ομοιότητα συνημιτόνου μετρά τη γωνία και είναι η προεπιλεγμένη προτίμηση στο κείμενο.
  • [ ] Μπορώ να εξηγήσω γιατί το ANN είναι απαραίτητο στα μεγάλα δεδομένα.
  • [ ] Γνωρίζω γιατί τα μεταδεδομένα είναι κρίσιμα για την εμπιστευτικότητα και τον έλεγχο της φρεσκάδας.
  • [ ] Ακολουθώ τον κανόνα της μετάφρασης της ερώτησης και του εγγράφου με το ίδιο μοντέλο ενσωμάτωσης.