Σχεδιασμός και Υλοποίηση εξειδικευμένου chatbot για διαδικτυακές πλατφόρμες
50
χωρίς να χρειάζεται να ασχοληθούμε με τη χαμηλού επιπέδου διαχείριση του μοντέλου.
Επιπλέον, διαχειρίζεται αυτόματα τη φόρτωση και αποφόρτωση των μοντέλων από τη μνήμη,
που είναι κρίσιμο όταν τρέχουμε σε υλικό με περιορισμένη μνήμη VRAM. Από την άλλη, το
μητρώο μοντέλων του περιλαμβάνει έτοιμα μοντέλα όπως το Llama 3.2 και το BGE-M3 στις
κβαντοποιημένες εκδόσεις τους, οπότε η εγκατάστασή τους γίνεται με μία εντολή. Καθώς το
Ollama είναι εργαλείο ανοιχτού κώδικα και όχι αντικείμενο επιστημονικής δημοσίευσης, δεν
υπάρχει δημοσίευση με επιστημονική κρίση για να παραθέσουμε. Η τεκμηρίωσή του βασίζεται
στον επίσημο ιστότοπο και στο αποθετήριο στο GitHub, και είναι αναπόφευκτο σε αυτή την
περίπτωση η αναφορά να γίνει σε τέτοιες πηγές αντί σε επιστημονικό περιοδικό.
Αξίζει να σταθούμε λίγο περισσότερο σε καθεμία από αυτές τις λύσεις, γιατί οι διαφορές
τους δεν είναι απλές τεχνικές λεπτομέρειες αλλά καθορίζουν ποιος μπορεί πρακτικά να τις
χρησιμοποιήσει. Το llama.cpp γράφτηκε εξαρχής σε C++ με στόχο να τρέχει μεγάλα μοντέλα
σε απλό υλικό, ακόμη και σε φορητό υπολογιστή χωρίς ισχυρή κάρτα γραφικών. Το κλειδί της
επιτυχίας του ήταν η κβαντοποίηση, δηλαδή η μείωση της ακρίβειας των βαρών του μοντέλου
από 16 ή 32 bits σε 4 ή 5 bits, που περιορίζει πολύ τις απαιτήσεις σε μνήμη με μικρή μόνο
απώλεια στην ποιότητα των απαντήσεων [59], [65]. Τα μοντέλα αποθηκεύονται σε μία δικιά
του δυαδική φόρμα, την GGUF, που κρατά μαζί τα βάρη και τα μεταδεδομένα (metadata) που
χρειάζονται για τη φόρτωση. Στην πράξη το llama.cpp δίνει στον προγραμματιστή πλήρη
έλεγχο, αφού μπορεί να ορίσει πόσα επίπεδα του δικτύου θα φορτωθούν στην κάρτα γραφικών
και πόσα θα μείνουν στη CPU. Ο έλεγχος όμως αυτός έχει κόστος, καθώς απαιτεί να ασχοληθεί
κανείς με χαμηλού επιπέδου παραμέτρους και με τη μεταγλώττιση της βιβλιοθήκης για το
συγκεκριμένο μηχάνημα.
Σε εντελώς διαφορετική λογική κινείται το vLLM. Εδώ ο στόχος δεν είναι να τρέξει ένα
μοντέλο σε φτωχό υλικό, αλλά να εξυπηρετήσει όσο το δυνατόν περισσότερες ταυτόχρονες
αιτήσεις με τη μεγαλύτερη δυνατή ταχύτητα. Η βασική του καινοτομία, το PagedAttention,