Σχεδιασμός και Υλοποίηση εξειδικευμένου chatbot για διαδικτυακές πλατφόρμες
34
Στην παρούσα εργασία χρησιμοποιείται το μοντέλο BGE-M3 [5]. Το μοντέλο αυτό είναι
ιδιαίτερα κατάλληλο για την περίπτωσή μας για τρεις λόγους. Καταρχάς, υποστηρίζει πάνω
από εκατό γλώσσες, οπότε καλύπτει χωρίς πρόβλημα την ελληνική, κάτι που δεν είναι
δεδομένο για όλα τα μοντέλα ενσωματώσεων, που έχουν εκπαιδευτεί κυρίως σε αγγλικά
δεδομένα. Επιπλέον, μπορεί να επεξεργαστεί κείμενα μέχρι 8192 λεκτικές μονάδες, που
σημαίνει ότι μπορούμε να περάσουμε ολόκληρα μεγάλα τμήματα κειμένου χωρίς να χρειαστεί
υπερβολικός κατακερματισμός του περιεχομένου. Τέλος, η τοπική εκτέλεση του μοντέλου
μέσω του Ollama εξαλείφει την ανάγκη για εξωτερικά κλειδιά API και πρόσθετο οικονομικό
κόστος, γεγονός που καλύπτει επαρκώς τις προδιάγραφες και τους περιορισμούς της παρούσας
εργασίας
Η σημασιολογική αναζήτηση που βασίζεται σε αυτά τα μοντέλα λειτουργεί ως εξής:
αρχικά, αποθηκεύουμε τις ενσωματώσεις όλων των εγγράφων σε μια διανυσματική βάση
δεδομένων, όπως το ChromaDB [6]. Όταν υποβάλλεται ένα ερώτημα από τον χρήστη, αυτό
μετατρέπεται επίσης σε διάνυσμα ενσωμάτωσης μέσω του ίδιου μοντέλου. Στη συνέχεια,
υπολογίζεται η ομοιότητα του διανύσματος του ερωτήματος με όλες τις αποθηκευμένες
ενσωματώσεις, και επιστρέφονται τα k πιο σχετικά στοιχεία (top-k) [18]. Η όλη διαδικασία
γίνεται σε χιλιοστά του δευτερολέπτου ακόμα και για βάσεις με χιλιάδες έγγραφα, που είναι
ακριβώς η περίπτωσή μας.
Από γεωμετρική σκοπιά, οι διανυσματικές ενσωματώσεις τοποθετούν κάθε κείμενο σε ένα
σημείο ενός χώρου εκατοντάδων διαστάσεων, όπου η απόσταση αντανακλά τη σημασιολογική
συγγένεια. Η ομοιότητα συνημιτόνου [27], που μετρά τη γωνία μεταξύ δύο διανυσμάτων
αγνοώντας το μέτρο τους, προτιμάται έναντι της ευκλείδειας απόστασης ακριβώς επειδή
ενδιαφέρει η κατεύθυνση, δηλαδή το νόημα, και όχι το μήκος του διανύσματος που εξαρτάται
από επιφανειακά χαρακτηριστικά όπως το μέγεθος του κειμένου. Στην πράξη, τα διανύσματα
κανονικοποιούνται ώστε η ομοιότητα συνημιτόνου να ανάγεται σε ένα απλό εσωτερικό