Left Logo Right Logo

Παραγωγική Τεχνητή Νοημοσύνη (Generative AI)


Καλωσορίσατε στο δεύτερο μάθημα Τεχνητής Νοημοσύνης και Μηχανικής Μάθησης (Machine Learning). Την πρώτη σειρά μπορείτε να τη βρείτε εδώ. Σε αυτή τη δεύτερη σειρά διαλέξεων, στρέφουμε την προσοχή μας στις ιδέες, στις τεχνικές και στις εφαρμογές που συνολικά συντελούν αυτό που αποκαλείται Παραγωγική Τεχνητή Νοημοσύνη (Generative AI).

Θα αρχίσουμε εκεί όπου κατέληξε η πρώτη σειρά διαλέξεων και θα προχωρίσουμε στην ανάπτυξη τόσο των βασικών ιδεών όσο και της υλοποίησής τους στην Python και PyTorch, χτίζοντας, εκπαιδεύοντας και χρησιμοποιώντας βαθιά νευρωνικά δίκτυα και μεγάλα γλωσσικά μοντέλα (LLMs) που παράγουν εικόνες και φυσική γλώσσα (κείμενο). Εν συντομία, σκοπός μας είναι να αναπτύξουμε μια “λειτουργική” κατανόηση των βασικών ιδεών πίσω από την παραγωγική τεχνητή νοημοσύνη, και τα συστήματα που τη χρησιμοποιούν. Συστήματα όπως τα μοντέλα της OpenAI (GPT, DALL·E, κ.α.), της Anthropic (Claude), της Google (Gemini, κ.α.) αλλάζουν ριζικά πολλές πτυχές της καθημερινής μας ζωής.

Οι διαλέξεις έχουν ως αφετηρία τη βασική ερώτηση «Τι είναι η παραγωγική τεχνητή νοημοσύνη;» Κατά πρώτη όψη, ο στόχος της παραγωγικής τεχνητής νοημοσύνης είναι, όπως το λέει και το όνομα, η παραγωγή – παραγωγή κειμένου, εικόνων, κώδικα, βίντεο, ή ενδεχομένως οτιδήποτε άλλο μας ενδιαφέρει. Η χρησιμότητά της, όμως, εκτείνεται σε πολύ ευρύτερο φάσμα εφαρμογών. Όπως θα δούμε, η πραγματική ουσία της παραγωγικής τεχνητής νοημοσύνης είναι ο τρόπος με τον οποίο αναπτύσσει μια (τεχνητή) αντίληψη του «σύμπαντος» στο οποίο αναφέρεται (εικόνων, κειμένων, κ.ο.κ.). Η ιδέα αυτή – η ανάπτυξη τεχνητής αντίληψης – είναι πιο αφηρημένη από τους συγκεκριμένους στόχους που σηματοδότησαν την πορεία μας στο πρώτο μάθημα, όπου χτίζαμε εργαλεία για να πετύχουμε καλή ακρίβεια σε προβλήματα παλινδρόμησης και ταξινόμησης. Ωστόσο, θα βρούμε την αρχή του νήματος στις τελευταίες διαλέξεις της πρώτης σειράς, όπου αναπτύξαμε την ιδέα του Transfer Learning.

Από το Transfer Learning, μπαίνουμε κατευθείαν στην ουσία: Σημασιολογικές Ενσωματώσεις (semantic embeddings). Οι ενσωματώσεις είναι η γέφυρα που συνδέει τις ιδέες της τεχνητής νοημοσύνης που συζητήσαμε στο πρώτο μάθημα με την παραγωγική τεχνητή νοημοσύνη. Στην πορεία μας θα συναντήσουμε διάφορες εφαρμογές. Μία από τις σημαντικότερες είναι η αναζήτηση σε βάση γνώσης, που θα μας οδηγήσει στα συστήματα RAG (Retrieval-Augmented Generation), που επιτρέπουν στα μεγάλα γλωσσικά μοντέλα να αξιοποιούν εξειδικευμένα κείμενα πάνω στα οποία δεν έχουν εκπαιδευτεί.

Οι διαλέξεις αυτής της σειράς είναι πιο απαιτητικές από αυτές της πρώτης σειράς. Παίρνουμε ως δεδομένες τη γνώση και την εξοικείωση με την υλοποίηση και την εκπαίδευση βαθιών νευρωνικών δικτύων. Αναγκαστικά, θα χρειαστούμε και κάποιες σημαντικές ιδέες και έννοιες από τα μαθηματικά, όπως τη γεωμετρία του εσωτερικού γινομένου. Όπως και με την πρώτη σειρά, ο στόχος μας εδώ είναι να εισάγουμε έναν πυρήνα επιλεγμένων βασικών ιδεών που μπορεί να επεκταθεί εύκολα, αλλά και να χρησιμοποιηθεί άμεσα. Ωστόσο, την ανάπτυξη μαθηματικών ιδεών που ενδεχομένως εμπλουτίζουν/εμβαθύνουν την κατανόηση, αλλά δεν είναι αυστηρά απαραίτητα, την αφήνουμε για μια συμπληρωματική σειρά διαλέξεων πάνω στο μαθηματικό υπόβαθρο της τεχνητής νοημοσύνης.

Οι διαλέξεις αντλούν από τη διδασκαλία μου στο Πανεπιστήμιο του Τέξας στο Ώστιν (UT Austin) και έχουν σχεδιαστεί για μαθητές του λυκείου (και για οποιονδήποτε άλλο διαθέτει το κατάλληλο υπόβαθρο) που έχουν παρακολουθήσει την πρώτη σειρά διαλέξεων και είναι έτοιμοι για το επόμενο βήμα.

Θα βρείτε παρακάτω συνδέσμους προς τις διαλέξεις, οι οποίες είναι οργανωμένες θεματικά σε «ενότητες». Η δομή των διαλέξεων είναι παρόμοια με αυτήν της πρώτης σειράς: χρησιμοποιούμε διαφάνειες όταν πρωτοεισάγουμε και εξηγούμε μια καινούργια ιδέα, και στις επόμενες διαλέξεις αναπτύσσουμε και υλοποιούμε αυτές τις ιδέες στην Python, επιλύοντας χαρακτηριστικά προβλήματα που βασίζονται κατά περίπτωση σε πραγματικά ή αληθοφανή τεχνητά δεδομένα.

Python και Colab: θα χρησιμοποιήσουμε τη γλώσσα προγραμματισμού Python. Ο προγραμματισμός γίνεται στο Colab. Το Colab είναι ένα δωρεάν, βασισμένο στο cloud εργαλείο από την Google, το οποίο επιτρέπει τη συγγραφή και την εκτέλεση κώδικα Python σε περιβάλλον Jupyter Notebook. Δουλεύει εξ ολοκλήρου στον browser, χωρίς να απαιτείται εγκατάσταση λογισμικού ή ρύθμιση περιβάλλοντος, οπότε η χρήση του εξασφαλίζει σε όλους πρόσβαση στο ίδιο υπολογιστικό περιβάλλον. Θα χρειαστείτε όμως λογαριασμό Gmail.

Πώς μπορείτε να χρησιμοποιήσετε την ύλη του μαθήματος:


1. Οι διαλέξεις είναι σχεδιασμένες για να τις παρακολουθήσετε με τη σειρά, μαζί με το υλικό, δηλαδή, τις διαφάνειες ή τα Colab Notebooks.
2. Όποιος ενδιαφέρεται για μια γρήγορη επισκόπηση του μαθήματος, μπορεί να παρακολουθήσει μόνο τις διαλέξεις με διαφάνειες. Οι λοιπές διαλέξεις όπου υλοποιούμε αλγορίθμους σε Python έχουν στον τίτλο την επισήμανση "(Python / Colab)".
3. Εάν έχετε ήδη εμπειρία χρησιμοποιώντας την Python και έχετε κάποια επαφή με τις ιδέες και τους αλγορίθμους της παραγωγικής τεχνητής νοημοσύνης που συζητάμε, μπορείτε απλά να πάτε κατευθείαν στα Colab Notebooks που σας ενδιαφέρουν.
4. Τα μαθήματα/διαλέξεις που συμπεριλαμβάνονται στην ιστοσελίδα αποτελούν έναν αρχικό αλλά εξελισσόμενο βασικό κορμό ή πυρήνα. Πρόσθετες διαλέξεις θα είναι διαθέσιμες στην ιστοσελίδα στο άμεσο μέλλον.

  1. Βιντεοσκοπημένα μαθήματα
  2. Διαφάνειες
  3. Colab Notebooks σε Python


Ενότητα 1: Εισαγωγή στο Μάθημα και στην Παραγωγική Τεχνητή Νοημοσύνη

Ενότητα 2: Η Λογιστική Παλινδρόμηση και η Γεωμετρία του Εσωτερικού Γινομένου

Ενότητα 3: Σημασιολογικές Ενσωματώσεις

Ενότητα 4: Αναζήτηση σε Βάση Γνώσης

Ενότητα 5: Μεγάλα Γλωσσικά Μοντέλα