ΑρχικήHow toΠως να εκτελέσετε το Ollama στο Google Colab

Πως να εκτελέσετε το Ollama στο Google Colab

Εισαγωγή στο Ollama

Το Ollama είναι ένα εργαλείο που μας επιτρέπει να πειραματιστούμε με μοντέλα γενετικής τεχνητής νοημοσύνης (αγγλικά: Generative AI) για τις εφαρμογές μας στο Colab.

Είναι ιδιαίτερα εύκολο στη χρήση, καθώς η εγκατάστασή του είναι γρήγορη και διατίθεται μέσω Docker. Ωστόσο, για να ολοκληρώσουμε ένα περιβάλλον εργασίας στο Colab, μπορεί να είναι χρήσιμο να εκκινήσουμε αυτό το εργαλείο μέσα σε ένα notebook.

Η σύνδεση μεταξύ των δύο περιβαλλόντων μπορεί να γίνει με διάφορους τρόπους, ρυθμίζοντας εικονικές μηχανές (στο Cloud και όχι μόνο), runtime και περιβάλλοντα ανάπτυξης.

Σε κάθε περίπτωση, αυτό που θα δούμε σε αυτή το άρθρο θα είναι ιδιαίτερα χρήσιμο.

Οδηγός Χρήσης του Ollama

Το Ollama χρησιμοποιεί τα LLM (Large Language Models) του ως εικόνες που μπορούν να κατεβούν από αποθετήρια. Για κάθε ένα από αυτά υπάρχουν διαθέσιμες εκδόσεις με διαφορετικούς αριθμούς παραμέτρων και, κατά συνέπεια, διαφορετικά μεγέθη. Όλες οι ενέργειες εκτελούνται μέσω της εντολής ollama, η οποία είναι διαθέσιμη μετά την εγκατάσταση, και μέσω της οποίας μπορούμε να εκτελέσουμε διάφορες εντολές. Ακολουθεί μια τυπική ροή εργασίας στο Ollama:

  • Ξεκινάμε τον διακομιστή του Ollama με την εντολή ollama serve (αυτή η υπηρεσία θα πρέπει να παραμείνει σε εκτέλεση). Μέσω μεταβλητών περιβάλλοντος καθορίζουμε παραμέτρους που θα επικοινωνούν με τις διευθύνσεις IP και την TCP θύρα (συνήθως η 11434), καθώς θα αλληλεπιδρούμε με το Ollama μέσω δικτύου.
  • Κατεβάζουμε την εικόνα του LLM που μας ενδιαφέρει, για παράδειγμα, με την εντολή ollama pull gemma2:2b θα ζητήσουμε να εγκατασταθεί το μοντέλο Gemma 2 (της Google) με 2 δισεκατομμύρια παραμέτρους και μέγεθος 1,6 GB.
  • Ελέγχουμε την επιτυχία της λήψης με την εντολή ollama list.
  • Αλληλεπιδρούμε με το μοντέλο χρησιμοποιώντας την εντολή ollama run ή με άλλες διαθέσιμες μεθόδους.
  • Διαγράφουμε ένα κατεβασμένο LLM με την εντολή ollama rm [όνομα του LLM].

Υπάρχουν και άλλες εντολές, αλλά για την ώρα μπορούμε να περιοριστούμε σε αυτές.

Από εδώ και στο εξής, θα μπορούμε να αλληλεπιδρούμε με το Ollama μέσω δικτύου, χρησιμοποιώντας βιβλιοθήκες προγραμματισμού (θα το μάθουμε μαζί), μέσω της εντολής ollama run για άμεση αλληλεπίδραση με ένα μοντέλο ή μέσω ενός δικτυακού πελάτη όπως το curl, που είναι εξαιρετικό για δοκιμές.

Ενσωμάτωση του Ollama στο Google Colab

Πριν δούμε τα βήματα, ας επαναλάβουμε μερικά βασικά στοιχεία ενός notebook:

  • Σε ένα notebook μπορούμε να καλέσουμε εντολές Linux προσθέτοντας ένα θαυμαστικό (!) μπροστά. Για παράδειγμα, με την εντολή !ls, το notebook θα καταλάβει ότι το ls δεν είναι εντολή προγραμματισμού αλλά εντολή συστήματος.
  • Μπορούμε να ζητήσουμε την καθαριότητα της εξόδου μέσω της συνάρτησης clear_output της IPython, κάτι που θα είναι πολύ χρήσιμο, καθώς οι ενέργειες που θα δούμε θα παράγουν πολύ κείμενο στην έξοδο.
from IPython.display import clear_output
clear_output()

Αυτό θα είναι χρήσιμο, όπως μπορούμε να φανταστούμε, για τις διαδικασίες εγκατάστασης και λήψης μοντέλων, αλλά όχι για εκείνες όπου θα πρέπει να διαβάσουμε αποτελέσματα.

  • Το runtime μπορεί να διαθέτει GPU, η οποία θα ενεργοποιηθεί στη συνέχεια της παρουσίασης.

Για να πειραματιστούμε με το Ollama σε ένα notebook, μπορούμε να ακολουθήσουμε διάφορες προσεγγίσεις, αλλά όλες θα καταλήξουν σε μια σειρά βημάτων, μερικά σε γλώσσα Python και άλλα ως εντολές Linux.

Βήματα εγκατάστασης του Ollama

Αρχικά, ας προχωρήσουμε στην εγκατάσταση του Ollama και των εργαλείων που απαιτούνται για τη διαχείριση της GPU:

!sudo apt-get install -y pciutils
!curl -fsSL https://ollama.com/install.sh | sh
from IPython.display import clear_output
clear_output()

Στη συνέχεια, θα ενεργοποιήσουμε τον διακομιστή του Ollama με μια διαδικασία στο παρασκήνιο, ώστε η κυψέλη να μην παραμένει σε αναμονή, εμποδίζοντας την εκτέλεση των επόμενων εντολών:

from IPython.display import clear_output
%env OLLAMA_HOST=0.0.0.0:11434
%env OLLAMA_ORIGINS=*
import subprocess
subprocess.Popen(["ollama", "serve"])
clear_output()

Τώρα που το Ollama είναι έτοιμο, ας προχωρήσουμε στη λήψη ενός μοντέλου. Ας επιλέξουμε το Gemma 2 με 2 δισεκατομμύρια παραμέτρους:

!ollama pull gemma2:2b
clear_output()

Αφού ολοκληρωθεί η λήψη, ελέγχουμε αν το μοντέλο είναι διαθέσιμο:

!ollama list

Η έξοδος θα πρέπει να είναι κάπως έτσι:

NAME           ID                SIZE        MODIFIED
gemma2:2b      8ccf136fdd52      1.6 GB      32 seconds ago

Δοκιμή του μοντέλου

Ας δοκιμάσουμε το περιβάλλον που δημιουργήσαμε, αλληλεπιδρώντας με το μοντέλο μέσω του curl (χρησιμοποιώντας backslashes για να συνεχίσουμε την εντολή σε πολλές γραμμές):

!curl http://localhost:11434/api/generate -d \
'{ \
  "model": "gemma2:2b", \
  "prompt": "Who was the most famous Italian singer?", \
  "stream": false \
}'

Σε λίγα δευτερόλεπτα, θα λάβουμε μια απάντηση από το Gemma 2, σε μορφή JSON, αλλά εδώ θα την παραθέσουμε συνοπτικά για λόγους αναγνωσιμότητας:

{
  "model": "gemma2:2b",
  "response": "It's impossible to definitively say who is THE MOST famous Italian singer of all time. Fame is subjective and depends on various factors like era, genre, and global reach. However, some strong contenders for 'most famous' include: * Domenico Modugno: Known for 'Volare,' a song that became an international hit in the 1950s, bridging cultures through its universal message of longing. * Lucio Dalla: Considered one of the most iconic and influential Italian singers-songwriters, known for his poetic lyrics and unique style. * Mina: A legendary singer with a career spanning decades, Mina's influence on popular music in Italy is undeniable. Ultimately, deciding who is 'most famous' depends on your criteria."
}

Είναι στο χέρι μας τώρα να διαβάσουμε την απάντηση και να κρίνουμε πόσο αυτή ανταποκρίνεται στις ανάγκες μας. Είναι ενδιαφέρον να σημειωθεί ότι μπορούμε να αλληλεπιδρούμε με το Ollama μέσω API, γεγονός που το καθιστά κατάλληλο για πρακτική χρήση με οποιαδήποτε γλώσσα προγραμματισμού που μπορεί να αλληλεπιδράσει μέσω δικτύου.

Ωστόσο, θα γνωρίσουμε ειδικά εργαλεία που προσφέρει η βιβλιοθήκη LangChain, τα οποία θα εκτιμήσουμε στην επόμενη διάλεξη.

Συμπέρασμα

Η ενσωμάτωση του Ollama στο Google Colab μας επιτρέπει να εκμεταλλευτούμε τη δύναμη των μοντέλων τεχνητής νοημοσύνης με ευκολία και ευελιξία. Ακολουθώντας τα παραπάνω βήματα, μπορούμε να δημιουργήσουμε ένα ισχυρό περιβάλλον εργασίας για πειραματισμούς και

Στέλιος Θεοδωρίδης
Στέλιος Θεοδωρίδης
Ο ήρωας μου είναι ο γάτος μου ο Τσάρλι και ακροάζομαι μόνο Psychedelic Trance
RELATED ARTICLES

Πρόσφατα άρθρα

Tηλέφωνα έκτακτης ανάγκης

Δίωξη Ηλεκτρονικού Εγκλήματος: 11188
Ελληνική Αστυνομία: 100
Χαμόγελο του Παιδιού: 210 3306140
Πυροσβεστική Υπηρεσία: 199
ΕΚΑΒ 166