Ενσωματώσεις
Γρήγορος ορισμός
Μια ενσωμάτωση είναι μια λίστα αριθμών (ένα διάνυσμα) που αντιπροσωπεύει τη σημασία ενός κειμένου, εικόνας ή άλλου αντικειμένου, έτσι ώστε παρόμοια αντικείμενα να έχουν κοντινά διανύσματα. Οι ενσωματώσεις είναι αυτές που καθιστούν δυνατή την αναζήτηση με βάση τη σημασία.
Σε αυτή τη σελίδα
Πώς λειτουργούν οι ενσωματώσεις
Ένα μοντέλο ενσωμάτωσης διαβάζει ένα κείμενο και εξάγει ένα διάνυσμα σταθερού μήκους, συνήθως αρκετές εκατοντάδες έως μερικές χιλιάδες αριθμούς. Το μοντέλο εκπαιδεύεται έτσι ώστε κείμενα με σχετικές σημασίες να βρίσκονται κοντά το ένα στο άλλο σε αυτόν τον χώρο: "πολιτική επιστροφής χρημάτων" και "πώς μπορώ να πάρω τα χρήματά μου πίσω;" μοιράζονται σχεδόν καμία λέξη αλλά παράγουν κοντινά διανύσματα.
Η ιδέα πηγαίνει πίσω σε διανύσματα λέξεων όπως το word2vec (Mikolov και συνεργάτες, 2013), το οποίο έμαθε ότι οι λέξεις που εμφανίζονται σε παρόμοια συμφραζόμενα έχουν παρόμοιες σημασίες. Τα μοντέλα σε επίπεδο προτάσεων όπως το Sentence-BERT (2019) το επεκτείνουν σε ολόκληρες προτάσεις και αποσπάσματα, που είναι αυτό που χρειάζονται η αναζήτηση και η απάντηση σε ερωτήσεις.
Για τι χρησιμοποιούνται
Τα embeddings ενισχύουν την αναζήτηση με σημασία: συγκρίνουν το διάνυσμα μιας ερώτησης με τα διανύσματα αποθηκευμένων αποσπασμάτων και επιστρέφουν το πιο κοντινό. Είναι το βήμα ανάκτησης της ανάκτησης-ενισχυμένης γενιάς (RAG). Επίσης, χρησιμοποιούνται για την ομαδοποίηση παρόμοιων συνομιλιών, την ανίχνευση διπλοτύπων, την προετοιμασία παρόμοιων προϊόντων και τη δρομολόγηση ενός μηνύματος στο σωστό θέμα.
Τα πολύγλωσσα μοντέλα embedding τοποθετούν μια ερώτηση στα Γαλλικά και ένα απόσπασμα στα Αγγλικά κοντά το ένα στο άλλο όταν εννοούν το ίδιο πράγμα, επιτρέποντας σε μια βάση γνώσεων να εξυπηρετεί πελάτες σε πολλές γλώσσες.
Πρακτικά σημεία
Τα διανύσματα από διαφορετικά μοντέλα δεν είναι συγκρίσιμα: αν αλλάξετε το μοντέλο embedding, κάθε αποθηκευμένο απόσπασμα πρέπει να επανα-ενσωματωθεί. Τα embeddings αποτυπώνουν τη σημασία, όχι τις ακριβείς τιμές, οπότε είναι κακά σε ακριβείς φίλτρα όπως μια τιμή ή μια αναφορά προϊόντος — αυτά χρειάζονται δομημένα πεδία ή αναζήτηση λέξεων-κλειδιών παράλληλα. Και τα μεγάλα έγγραφα πρέπει να χωρίζονται σε αποσπάσματα πριν την ενσωμάτωσή τους, γιατί ένα διάνυσμα για ολόκληρο το εγχειρίδιο θολώνει το περιεχόμενό του.
Τα μοντέλα embedding διαφέρουν επίσης στην κάλυψη γλωσσών, διάσταση (και επομένως κόστος αποθήκευσης) και πού φιλοξενούνται.
Embeddings στο AI SmartTalk
Κάθε βοηθός AI SmartTalk χρησιμοποιεί ένα μοντέλο embedding για όλες τις γνώσεις του. Οι νέοι βοηθοί χρησιμοποιούν από προεπιλογή ένα πολύγλωσσο μοντέλο φιλοξενούμενο στην ΕΕ, και τα μοντέλα embedding της OpenAI είναι επίσης διαθέσιμα. Τα διανύσματα αποθηκεύονται σε PostgreSQL με pgvector και συνδυάζονται με αναζήτηση λέξεων-κλειδιών και τριγράμματος, έτσι ώστε οι αναφορές προϊόντων και οι ακριβείς όροι να βρίσκονται αξιόπιστα όπως οι παραφρασμένες ερωτήσεις.
Συχνές ερωτήσεις
Ποια είναι η διαφορά μεταξύ ενός embedding και ενός token;
Ένα token είναι ένα κομμάτι κειμένου, περίπου ένα θραύσμα λέξης, που διαβάζει ένα μοντέλο. Ένα embedding είναι ένα διάνυσμα αριθμών που αντιπροσωπεύει τη σημασία — ενός token, μιας πρότασης ή ενός ολόκληρου αποσπάσματος.
Είναι τα embeddings το ίδιο με μια βάση δεδομένων διανυσμάτων;
Όχι. Τα embeddings είναι τα διανύσματα; μια βάση δεδομένων ή δείκτης διανυσμάτων τα αποθηκεύει και βρίσκει τα πιο κοντινά γρήγορα.
Μπορώ να αλλάξω μοντέλα embedding αργότερα;
Ναι, αλλά κάθε αποθηκευμένο στοιχείο πρέπει να επανα-ενσωματωθεί με το νέο μοντέλο, επειδή τα διανύσματα από διαφορετικά μοντέλα ζουν σε διαφορετικούς χώρους και δεν μπορούν να συγκριθούν.