kkOracle, a fun project.. (in greek)
Κίνητρο
Το 2024 είχα εκλεγεί αναπληρωτής καθηγητής σε τμήμα Φυσικής ελληνικού πανεπιστημίου. Η χαρά μεγάλη για την επιστροφή στην Ελλάδα μετά από 16 χρόνια στο εξωτερικό. Προετοιμαζόμενος για την ανάληψη των καθηκόντων είχα σκεφτεί ένα project για την δημιουργία ενός γλωσσικού μοντέλου (LLM) που θα μπορούσε να χρησιμοποιηθεί ως εκπαιδευτικό εργαλείο από προπτυχιακούς φοιτητές που μαθαίνουν Φυσική στα ελληνικά. Η βασική ιδέα ήταν μέσω ανάθεσης διπλωματικών εργασιών να φτιάχναμε αρχικά ένα high quality curated dataset (στα ελληνικά) που θα αφορούσε κάποιο από τα βασικά μαθήματα του τμήματος (Μηχανική, Ηλεκτρομαγνητισμός, Στατιστική Μηχανική, Κβαντομηχανική…) που θα περιελάμβανε και feedback από ερωτήσεις/απαντήσεις όπως προκύπτουν κατά τις παραδόσεις των μαθημάτων. Κατόπιν θα μπορούσαμε να χρησιμοποιήσουμε κάποια εθνική υποδομή (GPUs @ ΕΔΕΤ/GRNET?) για να κάνουμε το training. Πίστευα ότι αρκετοί προπτυχιακοί θα έδειχναν ενδιαφέρον καθώς μέσω του project θα έμπαιναν πιο βαθιά σε ένα hot topic.
Δυστυχώς για διάφορους λόγους (μη ακαδημαϊκούς) δεν κατάφερα να επιστρέψω και να αναλάβω καθήκοντα και έτσι η ιδέα για το project έπρεπε να εγκαταληφθεί. Παρακινούμενος καθαρά από περιέργεια και επειδή είχα ξοδέψει χρόνο για να διαβάσω (λίγο διαγώνια) τη θεωρία και είχα γράψει και κώδικα για κάποιες δοκιμές, προσπαθούσα να σκεφτώ αν θα μπορούσα στα γρήγορα να φτιάξω ένα synthetic dataset στα ελληνικά (άσχετο με τη Φυσική) για να δομικάσω πως δουλέυει το fine-tuning των LLM (και όχι το full training το οποίο απαιτεί hardware άλλης κλάσης). Μια προφανής ιδέα ήταν να συγκεντρώσω μέσω web scraping αρθρογραφία κάποιας ελληνικής εφημερίδας και να εκπαιδεύσω ένα μοντέλο με βάση αυτό το dataset.
Σκέφτηκα την “Καθημερινή” όμως ήταν δύο τα προβλήματα, ένα άμεσα πρακτικό και ένα πιο “conceptual”: α) πλέον τα περισσότερα άρθρα είναι paywalled και το scraping λίγο περίπλοκο (όπως και για άλλες εκδόσεις) και β) στη συγκεκριμένη εφημερίδα γράφουν άρθρα και ο Σάκης Μουμτζής και ο Πέτρος Παπακωνσταντίνου και επομένως δεν είναι ξεκάθαρο πως θα έκανα το post-training evaluation. Και τα δύο αυτά προβλήματα μου τα έλυνε ο “Ριζοσπάστης” καθώς έχει πλήρες web archive (σε full text ανά φύλλο για τα τελευταία 25 χρόνια παρακαλώ!) και μάλιστα λόγω του ότι είναι κομματικό όργανο το περιεχόμενο είναι “coherent” by default. Όλα έδειχναν πολύ εύκολα καθώς χωρίς καμία επίβλεψη ο κώδικας θα κατέβαζε τα άρθρα, θα ετοίμαζε το dataset και θα έκανε το fine tuning. Μόνο υπομονή χρειαζόταν διότι με private resources το compute power είναι περιορισμένο. Τέλος του 2024 έγραψα τον κώδικα σε 1-2 ημέρες…
Τεχνικά ζητήματα
-
Το download των εκδόσεων του Σαββατοκύριακου από το 2008 μέχρι το τέλος του 2024 έγινε με ένα απλό
Python
script, με κατάλληλα random delays διότι οι server στον Περισσό είναι rate limited. Συνολικά κοντά στο 1Gb text είναι το αρχικό υλικό. Ένα άλλο script κάνει επιλογή κομματιών της ύλης της εφημερίδας, αφήνοντας απέξω το πρόγραμμα της τηλεόρασης, κινηματογράφους,θέατρα, μνήμες αγωνιστών, σκάκι, αθλητικά, κλπ… -
Ακολούθως (πάλι με ένα
Python
script) το content που απομένει χωρίζεται σε chunks των 1200 χαρακτήρων, δίνεται ως context στο Meltemi v1.5 του Ινστιτούτου Επεξεργασίας του Λόγου του Ερευνητικού Κέντρου Αθηνά. Με βάση αυτό το context ζητάμε από το Meltemi να μας φτιάξει ζεύγη ερωτήσεων και απαντήσεων. Χρησιμοποιώντας τις GPU ενός M4 Mac mini και “τρέχοντας” το Meltemi τοπικά, το generation 150k ερωτήσεων-απαντήσεων πήρε περίπου 20 ημέρες. Κατόπιν χωρίζουμε τα ζεύγη τυχαία σε training(70%)/validation(15%)/test dataset(15%).
Παράδειγμα ορισμένων generated ερωτήσεων-απαντήσεων σε jsonl
format:
{"prompt": "Ποιοι είναι οι λόγοι για τους οποίους ο Γιώργος Παπανδρέου θεώρησε τον Μπαράκ Ομπάμα ως νέο πρότυπο για την ειρήνη και τη δημοκρατία;", "completion": "Ο Γιώργος Παπανδρέου πίστευε ότι η εκλογή του Μπαράκ Ομπάμα αντιπροσώπευε μια ιστορική αλλαγή στις Ηνωμένες Πολιτείες και θα έπρεπε να χρησιμεύσει ως παράδειγμα στην Ευρώπη. Υποστήριξε επίσης ότι ο Ομπάμα θα αποτελούσε ένα θεματοφύλακα της ειρήνης, καθώς οι ηγετικές του ικανότητες ήταν απαραίτητες για την αντιμετώπιση παγκόσμιων ζητημάτων όπως η κλιματική αλλαγή και τα διεθνή εντάλματα."}
{"prompt": "Ποια μέτρα πρέπει να λάβει το κράτος για την ανακούφιση των επιχειρήσεων από τη φορολογία;", "completion": "Το κράτος θα πρέπει να ελαφρύνει τις επιχειρήσεις από άμεση και έμμεση φορολογία, εργοδοτικές εισφορές, εισφορές υπέρ τρίτων, τέλη, χρεώσεις, πνευματικά δικαιώματα και κάθε λογής «χαράτσια» που πληρώνουν."}
{"prompt": "Πώς χειρίζεται η λογική των αστικών πολιτικών συστημάτων τη δυσαρέσκεια του λαού απέναντι στις πολιτικές αποφάσεις;", "completion": "Η αστική πολιτική ατζέντα συχνά παρουσιάζει την πλειοψηφία ως ανίκητη και επιδιώκει να επιβάλει σιωπή στη μειοψηφία για να διατηρήσει το status quo. Αυτή η πρακτική τους ενθαρρύνει μια παθητική στάση στον πληθυσμό, ενθαρρύνοντάς τον να παραμείνει σε εσωτερικούς χώρους και να φοβάται τυχόν κριτική της κυρίαρχης κυβέρνησης."}
{"prompt": "Ποια είναι τα κύρια σημεία των δεσμεύσεων που ανέλαβε η ελληνική κυβέρνηση στη Σύνοδο Κορυφής;", "completion": "Η ελληνική κυβέρνηση δεσμεύτηκε για παράταση της λιτότητας στους δημόσιους υπαλλήλους, νέες ανατροπές στο ασφαλιστικό σύστημα, νέο φορολογικό σύστημα, μείωση των κρατικών κοινωνικών δαπανών και προώθηση αντιδραστικών μεταρρυθμίσεων στη δημόσια διοίκηση με μέτρα όπως ο Καποδίστρα 2 και ο νέος εκλογικός νόμος. Επιπλέον, ανέλαβε να προωθήσει την ανταγωνιστικότητα της οικονομίας με προνόμια και φοροαπαλλαγές προς το μεγάλο κεφάλαιο, ρίχνοντας παράλληλα τις τιμές εργασίας για τους εργαζόμενους."}
- Έχοντας έτοιμο το training dataset, χρησιμοποίησσα το open source mlx framework για να κάνω fine tune 16 layer του Meltemi Instruct v.1.5 με τη μέθοδο LoRA και χρησιμοποιόντας μόνο τη GPU του M4. Το fine-tuning για 2 epochs (~75k iterations, batch size=4) διαρκεί περίπου 5ημέρες και η unified memory (24Gb) έφτασε ίσα ίσα για να μη χρειαστεί swap που θα έκανε το training πολύ πιο αργό! Χρειάστηκε να κάνω 3-4 δοκιμές για να βρω τα hyperparameters (learning rate, rank, alpha) που έδιναν stable models με σχετικά optimal αποτελέσματα.
Αποτέλεσμα
Για περίπου 40 ημέρες ο M4 “έλιωσε” στο inference και το training αλλά το fine-tuned LLM ήταν πλέον έτοιμο για δοκιμές. Παραθέτω μερικές ενδεικτικές ερωτήσεις και απαντήσεις του original Meltemi-Instruct και του fine tuned LLM.
(user): Τι λέει το ΚΚΕ για την ΕΕ;(meltemi): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) είναι ένα πολιτικό κόμμα στην Ελλάδα που ιδρύθηκε το 1918. Το κόμμα έχει μια μαρξιστική-λενινιστική ιδεολογία και είναι μέλος της Διεθνούς Κομμουνιστικής Ένωσης. Το ΚΚΕ είναι αντίθετο με την Ευρωπαϊκή Ένωση (ΕΕ) και υποστηρίζει την αποχώρηση της Ελλάδας από την ΕΕ. Το κόμμα πιστεύει ότι η ΕΕ είναι ένα καπιταλιστικό μπλοκ που εξυπηρετεί τα συμφέροντα των μεγάλων επιχειρήσεων και των πλουσίων. Το ΚΚΕ υποστηρίζει μια σοσιαλιστική κοινωνία και πιστεύει ότι η ΕΕ είναι εμπόδιο στην επίτευξη αυτού του στόχου. Το κόμμα έχει συμμετάσχει σε διάφορες διαδηλώσεις και διαμαρτυρίες κατά της ΕΕ και έχει υποστηρίξει την αποχώρηση της Ελλάδας από την ΕΕ σε δημοψηφίσματα.
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) έχει μια αρνητική στάση απέναντι στην Ευρωπαϊκή Ένωση (ΕΕ), θεωρώντας την ως μια ιμπεριαλιστική ένωση που εξυπηρετεί τα συμφέροντα των μονοπωλίων και όχι των εργαζομένων. Σύμφωνα με το ΚΚΕ, η ΕΕ είναι μια ένωση που προωθεί την κερδοφορία των επιχειρήσεων και όχι την ευημερία των ανθρώπων, και οι πολιτικές της έχουν οδηγήσει σε φτώχεια, ανεργία και άλλα προβλήματα για τον λαό. Το κόμμα υποστηρίζει ότι η ΕΕ πρέπει να διαλυθεί και να αντικατασταθεί από μια νέα σοσιαλιστική κοινωνία όπου ο λαός έχει τον έλεγχο της οικονομίας και της πολιτικής.
(user): Τι λέει το ΚΚΕ για τον Αλέξη Τσίπρα;
(meltemi): Το ΚΚΕ δεν έχει εκφράσει κάποια συγκεκριμένη άποψη για τον Αλέξη Τσίπρα, ο οποίος είναι Έλληνας πολιτικός και πρώην Πρωθυπουργός της Ελλάδας. Ωστόσο, το κόμμα έχει ασκήσει κριτική στην πολιτική του ΣΥΡΙΖΑ, του κόμματος του οποίου ηγείται ο Τσίπρας, και έχει επικρίνει τις πολιτικές του σε διάφορα ζητήματα, όπως η οικονομία, η μετανάστευση και η εξωτερική πολιτική.
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) έχει μια αρνητική άποψη για τον Αλέξη Τσίπρα, θεωρώντας τον ως μια «αξιόπιστη» επιλογή που υποστηρίζει τα συμφέροντα των μονοπωλίων και της αστικής τάξης. Το ΚΚΕ πιστεύει ότι η πολιτική του ΣΥΡΙΖΑ είναι μια παραλλαγή της πολιτικής της ΝΔ και του ΠΑΣΟΚ, με στόχο να διατηρήσει το σύστημα στην εξουσία και να εξυπηρετήσει τα συμφέροντα των πλουσίων.
(user): Τι λέει το ΚΚΕ για το νόμο της αξίας στο Σοσιαλισμό;
(meltemi): Το ΚΚΕ δεν έχει μια συγκεκριμένη θέση για το νόμο της αξίας στο σοσιαλισμό, καθώς ο σοσιαλισμός είναι ένα οικονομικό και πολιτικό σύστημα που διαφέρει από τον καπιταλισμό. Ο σοσιαλισμός χαρακτηρίζεται από την κοινωνική ιδιοκτησία των μέσων παραγωγής και τον κεντρικό σχεδιασμό της οικονομίας, και δεν βασίζεται στο νόμο της αξίας. Ωστόσο, το ΚΚΕ υποστηρίζει την ιδέα μιας κεντρικά σχεδιασμένης οικονομίας που θα καθοδηγείται από τις ανάγκες των εργαζομένων και θα στοχεύει στην εξάλειψη της εκμετάλλευσης και της ανισότητας. Πιστεύουν ότι αυτό μπορεί να επιτευχθεί μέσω της οικοδόμησης μιας σοσιαλιστικής κοινωνίας, η οποία θα οδηγήσει τελικά στην εγκαθίδρυση μιας αταξικής, κομμουνιστικής κοινωνίας.
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) υποστηρίζει ότι ο νόμος της αξίας, που είναι ο νόμος της αγοράς, δεν μπορεί να αλλάξει ή να τροποποιηθεί σε ένα σοσιαλιστικό σύστημα. Αντίθετα, το ΚΚΕ υποστηρίζει ότι ο νόμος της αξίας πρέπει να καταργηθεί και να αντικατασταθεί με μια νέα σοσιαλιστική κοινωνία όπου η παραγόμενη αξία κατανέμεται δίκαια και ισότιμα σε όλους τους ανθρώπους.
(user): Τι λέει το ΚΚΕ για τις ΑΠΕ;
(meltemi): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) υποστηρίζει την ανάπτυξη των ανανεώσιμων πηγών ενέργειας (ΑΠΕ) ως μέσο μείωσης της εξάρτησης από τα ορυκτά καύσιμα και μετριασμού των επιπτώσεων της κλιματικής αλλαγής. Ωστόσο, το κόμμα τονίζει ότι η ανάπτυξη των ΑΠΕ πρέπει να γίνεται με γνώμονα τις ανάγκες των εργαζομένων και του περιβάλλοντος, και όχι με γνώμονα τα κέρδη των ιδιωτικών εταιρειών. Το ΚΚΕ υποστηρίζει ότι η ανάπτυξη των ΑΠΕ θα πρέπει να είναι δημόσια ιδιοκτησία και να σχεδιάζεται και να υλοποιείται από μια ενιαία, δημόσια επιχείρηση ενέργειας. Αυτό θα διασφάλιζε ότι η ανάπτυξη των ΑΠΕ θα γινόταν με τρόπο που θα ελαχιστοποιούσε την επίδραση στο περιβάλλον και θα μεγιστοποιούσε τα οφέλη για τους εργαζόμενους. Το κόμμα υποστηρίζει επίσης ότι η ανάπτυξη των ΑΠΕ θα πρέπει να είναι αποκεντρωμένη και να περιλαμβάνει τη συμμετοχή των τοπικών κοινοτήτων. Αυτό θα διασφάλιζε ότι η ανάπτυξη των ΑΠΕ θα ήταν επωφελής για τις τοπικές οικονομίες και θα δημιουργούσε θέσεις εργασίας. Το ΚΚΕ υποστηρίζει ότι η ανάπτυξη των ΑΠΕ θα πρέπει να χρηματοδοτηθεί από τον κρατικό προϋπολογισμό και όχι από τους φορολογούμενους. Αυτό θα διασφάλιζε ότι η ανάπτυξη των ΑΠΕ θα ήταν επωφελής για την κοινωνία στο σύνολό της και δεν θα ωφελούσε μόνο τους πλούσιους.
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) υποστηρίζει την ανάπτυξη των Ανανεώσιμων Πηγών Ενέργειας (ΑΠΕ), αλλά με όρους που θα ωφελήσουν τα λαϊκά στρώματα και όχι τους μεγάλους επιχειρηματικούς ομίλους. Το ΚΚΕ αναγνωρίζει τη σημασία της χρήσης ανανεώσιμων πηγών ενέργειας για την αντιμετώπιση της κλιματικής αλλαγής και τη μείωση της εξάρτησης από τα ορυκτά καύσιμα. Ωστόσο, το κόμμα πιστεύει ότι η ανάπτυξη των ΑΠΕ πρέπει να είναι μέρος ενός συνολικού σχεδίου που περιλαμβάνει μέτρα για την αντιμετώπιση της ενεργειακής φτώχειας, την προστασία του περιβάλλοντος και την εξασφάλιση προσιτής ενέργειας για όλους. Το ΚΚΕ υποστηρίζει επίσης ότι οι ΑΠΕ θα πρέπει να αναπτύσσονται με τρόπο που να ωφελεί τις τοπικές κοινότητες και όχι μόνο τους μεγάλους επιχειρηματικούς ομίλους.
και μερικές απαντήσεις μόνο του fine tuned μοντέλου:
(user): Τι λέει το ΚΚΕ για την πράσινη ανάπτυξη;(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) υποστηρίζει ότι η πράσινη ανάπτυξη είναι μια απάτη που χρησιμοποιείται από την αστική τάξη και τα κόμματά της για να προωθήσουν τα συμφέροντά τους. Σύμφωνα με το ΚΚΕ, η πράσινη ανάπτυξη είναι μια μορφή καπιταλιστικής ανάπτυξης που ωφελεί μόνο τους πλούσιους και όχι τον λαό. Το ΚΚΕ πιστεύει ότι ο μόνος τρόπος για να υπάρξει μια δίκαιη και βιώσιμη ανάπτυξη είναι μέσω μιας σοσιαλιστικής κοινωνίας όπου οι άνθρωποι έχουν έλεγχο στην κοινωνική παραγωγή και κατανομή των πόρων.
(user): Ποια είναι η θέση του ΚΚΕ για την τραγωδία των Τεμπών;
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) έχει κατηγορήσει την κυβέρνηση ότι φέρει την κύρια ευθύνη για την τραγωδία στα Τέμπη. Το κόμμα έχει επίσης επικρίνει τις προηγούμενες κυβερνήσεις, λέγοντας ότι έχουν εφαρμόσει πολιτικές που οδήγησαν σε έλλειψη προσωπικού και υποδομών στον τομέα των μεταφορών. Επιπλέον, το ΚΚΕ έχει υποστηρίξει ότι η ιδιωτικοποίηση των σιδηροδρόμων υπό την ΕΕ και τις κυβερνήσεις έχει οδηγήσει σε μείωση της χρηματοδότησης και της στελέχωσης, με αποτέλεσμα να μην υπάρχουν επαρκή μέτρα ασφαλείας. Το κόμμα έχει καλέσει για άμεση έρευνα σχετικά με τα αίτια της τραγωδίας και για την τιμωρία όσων ευθύνονται για το ατύχημα.
(user): Τι λέει το ΚΚΕ για την τεχνητή νοημοσύνη;
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) έχει επικρίνει τη χρήση της τεχνητής νοημοσύνης, υποστηρίζοντας ότι οι εξελίξεις στην τεχνολογία χρησιμοποιούνται για να ωφελήσουν τα μονοπώλια και όχι τον λαό. Το ΚΚΕ έχει επίσης εκφράσει ανησυχίες σχετικά με τις επιπτώσεις της τεχνητής νοημοσύνης στην εργασία και την κοινωνία γενικότερα.
(user): Ποια είναι η θέση του ΚΚΕ για το σύμφωνο συμβίωσης;
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) υποστηρίζει ότι το σύμφωνο συμβίωσης δεν αντιμετωπίζει τα προβλήματα που αντιμετωπίζουν οι ομοφυλόφιλοι, όπως η ομοφοβία και οι διακρίσεις. Σύμφωνα με το ΚΚΕ, το σύμφωνο συμβίωσης είναι μια αστική μεταρρύθμιση που δεν αντιμετωπίζει τις βαθύτερες αιτίες των προβλημάτων που αντιμετωπίζουν οι ομοφυλόφιλοι.
(user): Τι λέει το ΚΚΕ για τη ΓΣΣΕ;
(kkOracle): Το Κομμουνιστικό Κόμμα Ελλάδας (ΚΚΕ) θεωρεί ότι η Γενική Συνομοσπονδία Εργατών Ελλάδας (ΓΣΕΕ) είναι ένα συνδικαλιστικό όργανο που δεν εξυπηρετεί τα συμφέροντα των εργαζομένων. Υποστηρίζει ότι η ΓΣΕΕ είναι υποταγμένη στην αστική τάξη και λειτουργεί ως μηχανισμός χειραγώγησης της εργατικής τάξης, αντί να την εκπροσωπεί. Το ΚΚΕ υποστηρίζει την ανάγκη για ένα ισχυρό και ανεξάρτητο εργατικό κίνημα που θα αγωνιστεί για τα δικαιώματα των εργαζομένων και θα διεκδικήσει μια κοινωνία χωρίς εκμετάλλευση.
Μερικές γενικές παρατηρήσεις:
α) Όπως ανάμενα και από τη μείωση του train
and validation-loss
κατά τη διάρκεια του fine tuning, η σύγκριση των απαντήσεων του original και του trained μοντέλου στις ίδιες ερωτήσεις κάνει φανερή την μεταβολή του στυλ και του περιεχομένου.
β) Είναι ενδιαφέρον ότι το μοντέλο έχει γίνει πιο “λακωνικό” και λιγότερο “περιγραφικό” (overfitting?). Παράλληλα η συχνότητα “παραισθήσεων” φαίνεται να έχει ανέβει.
γ) Το original μοντέλο πολλές φορές σε niche ερωτήσεις δεν απαντάει σωστά και είναι φλύαρο ενώ στις ίδιες ερωτήσεις το kkOracle είναι πιο “to the point” θα έλεγα.
δ) Για κάποιο λόγο που δεν καταλαβαίνω όταν ρωτάς για ιστορικά γεγονότα ή πρόσωπα το kkOracle, η συχνότητα λάθος απάντησης είναι αυξημένη παρόλο που η εφημερίδα έχει πολλά ιστορικά ένθετα που έχουν περάσει στο training.
Γενικά θα έλεγα πως το μοντέλο όντως έμαθε “μελετώντας” την εφημερίδα! Αν και τελικά τα αποτελέσματα αυτού του πρόχειρου πειράματος είναι λίγο πίσω από τις αρχικές προσδοκίες μου. Ελπίζω και άλλοι να μπουν στον κόπο να κάνουν evaluate, έχοντας πάντα στο νου ότι το μοντέλο είναι ένα απλό πείραμα. Πιθανά το μοντέλο μπορεί να βελτιωθεί αρκετά παίζοντας με το prompting ή τη δομή του dataset αλλά αυτό ξεπερνάει το χρόνο που ήθελα να επενδύσω σε αυτό το project. Αν κάποιος έχει τις γνώσεις και τον χρόνο να “παίξει” με άλλες ιδέες για το training με χαρά να μοιραστώ το dataset που έφτιαξα.
Το full model το έχω αποθέσει σε safetensor format
στο Huggingface. Ο πιο απλός και γρήγορος τρόπος χρήσης σε M-series Mac είναι χρησιμοποιώντας το mlx_lm
. Έχοντας εγκατεστημένοPython
, στην command line:
pip install mlx-lm
μετά αφού πρώτα κατεβάσετε τοπικά το μοντέλο στο folder model_kkOracle
:
python -m mlx_lm.generate --model model_kkOracle --prompt "Τι λέει..." --temp 0.3
Ή και σε οποιοδήποτε λειτουργικό σύστημα χρησιμοποιώντας τον παρακάτω κώδικα Python
αφού πρώτα κατεβάσετε τοπικά το μοντέλο στο folder model_kkOracle
και κάνετε install το transformers
library (pip install transformers
).
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cpu" # the device to load the model onto "cpu" (no graphics card) or "cuda" (Nvidia)
model = AutoModelForCausalLM.from_pretrained("model_kkOracle")
tokenizer = AutoTokenizer.from_pretrained("model_kkOracle")
model.to(device)
messages = [
{"role": "user", "content": "Τι λέει το ΚΚΕ για την κυβέρνηση Παπαδήμου;"},
]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
input_prompt = tokenizer(prompt, return_tensors='pt').to(device)
outputs = model.generate(input_prompt['input_ids'], max_new_tokens=256, do_sample=True, temperature=0.3, use_cache=True, pad_token_id=tokenizer.eos_token_id, attention_mask=input_prompt["attention_mask"])
print(tokenizer.batch_decode(outputs)[0])
Αν το χρησιμοποιήσετε και έχετε κάποιο ενδιαφέρον chat με το kkOracle, μοιραστείτε τις ερωτήσεις και απαντήσεις κάτω από το παρακάτω post στο X (πρώην Twitter):
Ένα πείραμα... γλωσσικό μοντέλο "kkOracle" βασισμένο στο Meltemi-Instruct του @ILSP_AthenaRC, fine tuned με άρθρα της εφημερίδας "Ριζοσπάστης¨από το 2008 ως το 2024.
— Alexandros Koutsioumpas (@a_koutsioubas) April 14, 2025
Απολαύστε υπεύθυνα..https://t.co/mYtTSD9ft3 pic.twitter.com/mZd8AbOo6N
ή κάτω από αυτό το post στο BlueSky.
Τι έμαθα:
- Είναι εντυπωσιακό ότι με modest private resources μπορείς να κάνεις light fine tune ένα 7B parameter LLM. Αλλά για full tuning ή training χρειάζεσαι μεγάλες GPU με αρκετή VRAM.
- Το fine tuning με τη μέθοδο LoRA επηρεάζει σαφώς το στυλ με το οποίο απαντάει το LLM αλλά η εκμάθηση του από το dataset είναι λίγο ρηχή. Το γεγονός ότι με τη LoRA ουσιαστικά προσθέτεις ένα layer επί του original LLM οδηγεί στο να μην “ξεχνάει” εύκολα το αρχικό training. Ίσως η μέθοδος αυτή να μην είναι η κατάλληλη για ένα τόσο γενικό training corpus όπως το συγκεκριμένο. Αν στο άμμεσο μέλλον αποκτήσω πρόσβαση σε hardware με περισσότερη RAM ίσως κάνω μια προσπάθεια να κάνω full fine tuning, θα έχει ενδιαφέρον.
- Φιλότιμη και αξιόλογη προσπάθεια το Meltemi, χωρίς αυτό δεν θα μπορούσα να ολοκληρώσω αυτό το μικρό project. Όμως χρειαζόμαστε επειγόντως καλύτερα μοντέλα στην ελληνική γλώσσα καθώς από τις δοκιμές έμεινα με την αίσθηση ότι η κατανόηση του context στα ελληνικά είναι κάπως πίσω από μοντέλα που έχω δοκιμάσει στην αγγλική ή γαλλλική γλώσσα. Δεν έχω δοκιμάσει ακόμα το Llama-Krikri αλλά το licence του Meltemi μου φαίνεται πολύ πιο permissive.
- Μερικές απαντήσεις του μοντέλου είναι απολαυστικές. Υποψιάζομαι ότι τα LLM θα γίνουν (αν δεν είναι ήδη) φοβερό εργαλείο για την ιστορική έρευνα και γενικά τις ανθρωπιστικές επιστήμες.
- Όταν χρησιμοποιείς μόνο τη GPU για το training, η CPU είναι idle και ο υπολογιστής μπορεί να χρησιμοποιηθεί για casual computing άνετα. Η unified memory είναι φοβερό πλεονέκτημα για τους επεξεργαστές της Apple όταν τρέχεις local LLM.