Η φράση «τρέχω μια AI» καλύπτει δύο ανάγκες που δεν ζητούν το ίδιο μέγεθος διακομιστή. Μια εφαρμογή που καλεί ένα μοντέλο μέσω API διαστασιολογείται όπως κάθε εφαρμογή web. Ένα μοντέλο που εκτελείται στον ίδιο τον διακομιστή διαστασιολογείται πρώτα με βάση τη μνήμη του. Ο οδηγός αυτός ξεχωρίζει τις δύο περιπτώσεις, δίνει το αποτύπωμα των συνηθισμένων μοντέλων και τον τρόπο να το υπολογίσετε.
Οι περισσότερες εφαρμογές που «χρησιμοποιούν AI» (βοηθοί, agents, περιλήψεις, εξαγωγή δεδομένων, αναζήτηση σε έγγραφα) καλούν ένα μοντέλο που φιλοξενεί ο εκδότης του, μέσω API. Ο υπολογισμός γίνεται στους δικούς του διακομιστές. Ο δικός σας διακομιστής ετοιμάζει το αίτημα, περιμένει την απάντηση και την επεξεργάζεται. Διαστασιολογείται λοιπόν όπως κάθε εφαρμογή web: με βάση τη γλώσσα του, τη βάση δεδομένων του και τον αριθμό των ταυτόχρονων χρηστών.
Η άλλη περίπτωση είναι το μοντέλο που εκτελείται στον ίδιο τον διακομιστή, με το Ollama, το llama.cpp ή μια βιβλιοθήκη Python. Οι λόγοι είναι γνωστοί: δεδομένα που μένουν στη δική σας υποδομή, σταθερό κόστος όποιος κι αν είναι ο αριθμός των αιτημάτων, επεξεργασία μεγάλων όγκων στο παρασκήνιο, ένα εξειδικευμένο μοντέλο. Εδώ, ολόκληρο το μοντέλο πρέπει να χωρά στη μνήμη, και αυτό καθορίζει το μέγεθος.
| Τι κάνει ο διακομιστής | Ο πόρος που αποφασίζει | Σημείο εκκίνησης |
|---|---|---|
| Καλεί ένα μοντέλο μέσω API (βοηθός, agent, chatbot) | Η μνήμη της εφαρμογής | 2 vCPU, 4 GB |
| Υπολογίζει επίσης τα embeddings και αναζητά σε διανυσματική βάση (pgvector) | Η μνήμη των διανυσμάτων και του ευρετηρίου τους | 2 έως 4 vCPU, 6 έως 8 GB |
| Εκτελεί ένα μικρό μοντέλο 1 έως 4 δισεκατομμυρίων παραμέτρων, στο παρασκήνιο | Η μνήμη, και έπειτα ο επεξεργαστής | 4 vCPU, 8 GB |
| Εκτελεί ένα μοντέλο 7 έως 8 δισεκατομμυρίων παραμέτρων για λίγους χρήστες | Η μνήμη και το εύρος ζώνης της | 6 έως 8 vCPU, 16 GB |
| Εκτελεί ένα μοντέλο 12 έως 14 δισεκατομμυρίων παραμέτρων, με μεγάλο context | Η μνήμη | 8 vCPU, 24 GB |
Ένα αίτημα σε μοντέλο μέσω API διαρκεί από ένα έως αρκετές δεκάδες δευτερόλεπτα, ιδίως όταν η απάντηση μεταδίδεται σταδιακά (streaming). Σε αυτό το διάστημα, ο διακομιστής σας δεν υπολογίζει σχεδόν τίποτα: περιμένει. Αυτό που μετράει είναι η ικανότητά του να κρατά πολλά αιτήματα σε αναμονή χωρίς να μπλοκάρει τα υπόλοιπα:
proxy_read_timeout).Η μνήμη που χρειάζεται είναι αυτή της εφαρμογής και της βάσης της: 4 GB καλύπτουν μια εφαρμογή Python ή Node.js με PostgreSQL στην αρχή. Μια συνηθισμένη διάταξη, με ένα frontend σε Next.js, ένα API σε FastAPI και μια βάση PostgreSQL που καλούν ένα μοντέλο μέσω API, χωρά σε 6 έως 8 GB, μαζί με τη μεταγλώττιση του frontend.
Μια εφαρμογή που αναζητά στα έγγραφά σας (RAG, retrieval-augmented generation) μετατρέπει κάθε απόσπασμα σε διάνυσμα, και έπειτα βρίσκει τα πιο κοντινά σε μια ερώτηση. Δύο σημεία προς διαστασιολόγηση:
Ο τύπος halfvec του pgvector αποθηκεύει κάθε διάσταση σε 2 byte αντί για 4: η μισή μνήμη, με ποιότητα αναζήτησης που μένει πολύ κοντινή.
Ένα γλωσσικό μοντέλο είναι ένα αρχείο βαρών, που φορτώνεται ολόκληρο στη μνήμη για να απαντήσει. Το μέγεθός του εξαρτάται από τον αριθμό των παραμέτρων και από την κβαντοποίηση (quantization), την ακρίβεια με την οποία αποθηκεύεται κάθε βάρος. Η μορφή GGUF, αυτή του llama.cpp και του Ollama, προσφέρει κβαντοποιήσεις από 2 έως 16 bit. Η παραλλαγή Q4_K_M, γύρω στα 4 bit, είναι ο συνηθισμένος συμβιβασμός ανάμεσα σε μέγεθος και ποιότητα.
| Μέγεθος του μοντέλου | Παραδείγματα | 4 bit (Q4_K_M) | 8 bit (Q8_0) | 16 bit |
|---|---|---|---|---|
| 1 έως 3 δισεκατομμύρια παράμετροι | Llama 3.2 3B, Qwen2.5 3B | 1 έως 2 GB | 1,3 έως 3,5 GB | 2,5 έως 6,5 GB |
| 7 έως 8 δισεκατομμύρια | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 έως 5 GB | 7,7 έως 8,5 GB | 14,5 έως 16 GB |
| 12 έως 14 δισεκατομμύρια | Mistral Nemo 12B, Qwen2.5 14B | 7,5 έως 9 GB | 13 έως 16 GB | 25 έως 30 GB |
| 32 δισεκατομμύρια | Qwen2.5 32B | περίπου 20 GB | περίπου 35 GB | περίπου 65 GB |
| 70 δισεκατομμύρια | Llama 3.3 70B | περίπου 43 GB | περίπου 75 GB | περίπου 140 GB |
Σε αυτό το βάρος προστίθενται δύο ακόμη στοιχεία:
Παράδειγμα. Llama 3.1 8B σε 4 bit, δύο ταυτόχρονες συνομιλίες 8.000 tokens και μια μικρή εφαρμογή: 5 GB για το μοντέλο, 2 GB για το context, 2 GB για την εφαρμογή και το σύστημα, δηλαδή 9 GB, και περίπου 12 GB με 25 % περιθώριο.
Για να παραγάγει κάθε token, το μοντέλο ξαναδιαβάζει όλα τα βάρη του από τη μνήμη. Σε επεξεργαστή, η ταχύτητα παραγωγής περιορίζεται λοιπόν από το εύρος ζώνης της μνήμης περισσότερο παρά από τον αριθμό των πυρήνων: ένα μοντέλο 5 GB, σε ένα μηχάνημα που διαβάζει 25 GB το δευτερόλεπτο, φτάνει στο ανώτατο όριό του γύρω στα 5 tokens το δευτερόλεπτο, πριν καν υπολογιστεί ο χρόνος των πράξεων.
Διακρίνονται δύο φάσεις:
Στην πράξη, σε λίγα vCPU, ένα μοντέλο 7 έως 8 δισεκατομμυρίων παραμέτρων κβαντοποιημένο σε 4 bit παράγει λίγα tokens το δευτερόλεπτο. Αυτό είναι άνετο για επεξεργασίες στο παρασκήνιο (ταξινόμηση μηνυμάτων, εξαγωγή πεδίων από ένα έγγραφο, περίληψη τη νύχτα όσων έφτασαν μέσα στη μέρα) και για έναν εσωτερικό βοηθό. Οι διαδραστικές χρήσεις μεγάλης κλίμακας, και τα μοντέλα πολλών δεκάδων δισεκατομμυρίων παραμέτρων, εκτελούνται σε κάρτα γραφικών (GPU).
Η μέτρηση κρίνει: το llama-bench, που συνοδεύει το llama.cpp, δίνει την ταχύτητα των δύο φάσεων στον διακομιστή σας, για το μοντέλο σας.
llama-bench -m montelo-Q4_K_M.gguf -p 512 -n 128
Ένα μοντέλο καταλαμβάνει στον δίσκο περίπου όσο και στη μνήμη: 5 GB για ένα μοντέλο 8 δισεκατομμυρίων παραμέτρων σε 4 bit. Προβλέψτε χώρο για δύο ή τρία μοντέλα ή εκδόσεις, τα διανυσματικά ευρετήρια, τα έγγραφα πηγής και τη βάση δεδομένων. Ένας NVMe SSD φορτώνει ένα μοντέλο σε λίγα δευτερόλεπτα κατά την εκκίνηση της υπηρεσίας, κάτι που μετράει σε κάθε επανεκκίνηση.
Τάξη μεγέθους: 50 GB για μια εφαρμογή που καλεί ένα μοντέλο μέσω API, 80 έως 120 GB μόλις ένα μοντέλο και τα έγγραφά του βρίσκονται στον διακομιστή.
Με το Ollama, η εκκίνηση χρειάζεται δύο εντολές:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Το Ollama ακούει εξ ορισμού στο 127.0.0.1:11434, δηλαδή μόνο από τον ίδιο τον διακομιστή. Κρατήστε αυτή τη ρύθμιση: το API του δεν ζητά καμία ταυτοποίηση, και μια εγκατάσταση ανοιχτή στο Internet εξυπηρετεί οποιονδήποτε, με τους δικούς σας πόρους. Η εφαρμογή σας, στον ίδιο διακομιστή, επικοινωνεί μαζί του τοπικά. Αν ένας άλλος διακομιστής πρέπει να του στέλνει αιτήματα, περάστε από ένα proxy που ταυτοποιεί τα αιτήματα ή από ένα ιδιωτικό δίκτυο.
Ρυθμίστε έπειτα το μέγεθος του context (num_ctx) σε ό,τι χρειάζονται τα αιτήματά σας: αυτό κάνει τη μνήμη να μεγαλώνει, συνομιλία προς συνομιλία.
Το VPS Pro τρέχει σε επεξεργαστές Intel Xeon, μνήμη ECC και NVMe SSD σε κατοπτρισμό, με πρόσβαση root για να εγκαταστήσετε Ollama, llama.cpp, pgvector ή τη δική σας στοίβα λογισμικού. Η Ολοκληρωμένη υποστήριξη περιλαμβάνεται: περιγράψτε μας το έργο σας, API ή μοντέλο στον διακομιστή, και σας προτείνουμε το μέγεθος, και έπειτα, σε κάθε ερώτηση, κάνουμε τη διάγνωση και σας λέμε τι να κάνετε, από το σύστημα έως τον κώδικα της εφαρμογής σας.
Ναι. Το llama.cpp και το Ollama εκτελούν κβαντοποιημένα μοντέλα σε επεξεργαστή. Ένα μοντέλο 7 έως 8 δισεκατομμυρίων παραμέτρων σε 4 bit ζητά περίπου 5 GB μνήμης και παράγει λίγα tokens το δευτερόλεπτο σε λίγα vCPU, κάτι που ταιριάζει σε επεξεργασίες στο παρασκήνιο και σε εσωτερικούς βοηθούς.
Περίπου 5 GB για το μοντέλο κβαντοποιημένο σε 4 bit (Q4_K_M), συν 1 GB ανά συνομιλία 8.000 tokens, συν την εφαρμογή και το σύστημα. Ένας διακομιστής 8 GB τρέχει μόνο το μοντέλο. Τα 16 GB αφήνουν χώρο για την εφαρμογή, τη βάση δεδομένων και πολλές συνομιλίες.
Το API δίνει πρόσβαση στα πιο ισχυρά μοντέλα, χωρίς ειδικό διακομιστή, με κόστος ανά αίτημα. Το μοντέλο στον διακομιστή κρατά τα δεδομένα σε εσάς και σταθεροποιεί το κόστος, με ένα πιο συμπαγές μοντέλο. Πολλές εφαρμογές συνδυάζουν τα δύο: embeddings και ταξινόμηση στον διακομιστή, σύνταξη κειμένων μέσω API.
Περίπου 50 GB για μια εφαρμογή που καλεί ένα μοντέλο μέσω API. Μόλις ένα μοντέλο βρίσκεται στον διακομιστή, προβλέψτε 80 έως 120 GB: ένα μοντέλο 8 δισεκατομμυρίων παραμέτρων σε 4 bit ζυγίζει 5 GB, και συχνά κρατάτε πολλές εκδόσεις του, μαζί με τα έγγραφα και τα διανυσματικά τους ευρετήρια.
Simafri
Ας μιλήσουμε για την ιστοσελίδα σας
Πείτε μας με λίγα λόγια για το έργο σας: θα επικοινωνήσουμε σύντομα μαζί σας.
Ευχαριστούμε! Το αίτημά σας εστάλη. Θα επικοινωνήσουμε σύντομα μαζί σας.
Προτιμάτε email; Γράψτε μας στο support@simafri.com.