
Deploy ενός LLM σε Serverless GPU: 5 Πλατφόρμες, Πραγματικές Τιμές, Ειλικρινή Cold Starts
Η RunPod χρεώνει $2,72/ώρα για μια A100 80GB. Το endpoint σας δέχεται δώδεκα requests πριν το μεσημέρι. Αυτή η GPU κάθεται αδρανής τις υπόλοιπες 23 ώρες και χρεώνει όλη την ώρα. Κάντε deploy ένα LLM σε serverless GPU και πληρώνετε μόνο όσο τρέχει ένα request. Πέντε πλατφόρμες το κάνουν αυτό. Χρεώνουν σε πέντε διαφορετικές μονάδες. Κανείς δεν τις κανονικοποιεί.
Μια αδρανής GPU κοστίζει ακριβώς όσο μια απασχολημένη.
Βασικά Συμπεράσματα
- Το serverless GPU χρεώνει μόνο όσο τρέχει ένα request και πέφτει στο μηδέν ανάμεσα στα requests.
- Μία GPU ανά instance στο Cloud Run. Τα μοντέλα 70B χρειάζονται πολλαπλές GPU, άρα το serverless συνήθως δεν μπορεί να τα φιλοξενήσει.
- Τα βάρη του μοντέλου μένουν μέσα στην εικόνα, σε έναν network volume ή κατεβαίνουν ξανά σε κάθε cold start.
- Το cold start είναι τρία πράγματα: εκκίνηση container, φόρτωση βαρών, αρχικοποίηση μηχανής. Μόνο το πρώτο είναι γρήγορο.
- Κάτω από περίπου 47.000 requests την ημέρα, το scale-to-zero νικά μια μισθωμένη GPU 24/7.
Τι σημαίνει πραγματικά το «serverless GPU» για ένα LLM;
Μια πλατφόρμα serverless GPU τρέχει το container συμπερασμού σας σε κοινόχρηστο υλικό GPU, το σηκώνει όταν φτάνει ένα request και πέφτει στο μηδέν όταν σταματά η κίνηση. Πληρώνετε ανά δευτερόλεπτο (ή ανά λεπτό ή ανά ώρα, ανάλογα με τον πάροχο) μόνο όσο το container είναι ζωντανό. Χωρίς χρέωση αδράνειας. Χωρίς reserved instance.
Η μονάδα χρέωσης διαφέρει ανά πάροχο, γι' αυτό η επόμενη ενότητα κανονικοποιεί τα πάντα σε $/GPU-ώρα.
Δύο περιορισμοί ξαφνιάζουν τον κόσμο. Πρώτον, το Google Cloud Run επιτρέπει μία GPU ανά instance, το πολύ. Αυτό βάζει ταβάνι στην VRAM σας σε μία κάρτα. Δεύτερον, το «serverless» δεν σημαίνει μόνιμο state. Δεν υπάρχει μακρόβια διεργασία που κρατά τα βάρη σας στη RAM ανάμεσα στα requests. Όταν το container πεθαίνει, ό,τι βρίσκεται στη μνήμη πεθαίνει μαζί του. Αυτή η μοναδική αλήθεια οδηγεί την απόφαση αποθήκευσης στην ενότητα για τα βάρη μοντέλων παρακάτω.
Το serverless δεν σημαίνει χωρίς server. Σημαίνει χωρίς server ανάμεσα στα requests σας, και ακριβώς εκεί εξαφανίζονται τα βάρη του μοντέλου σας.
Ποια πλατφόρμα serverless GPU να διαλέξετε; (Τιμές 2026, παραπλησίως)
Δεν πουλάμε καμία από αυτές τις πλατφόρμες και δεν παίρνουμε έσοδα affiliate από καμία. Από τα επτά άρθρα που ανταγωνίζονται για αυτό το ερώτημα και τις παραλλαγές του, τα τέσσερα δημοσιεύονται από εταιρεία που πουλά serverless GPU. Αυτός ο πίνακας όχι.
Όλες οι χρεώσεις διαβάστηκαν από τις ίδιες τις σελίδες τιμών των παρόχων στις 2026-07-30. Οι χρεώσεις αλλάζουν. Επαληθεύστε ξανά πριν δεσμευτείτε.
| Πλατφόρμα | Δημοσιευμένη μονάδα (τα λόγια τους) | $/GPU-ώρα (A100 80GB) | $/GPU-ώρα (H100) | Δωρεάν credits | Διαλέξτε την αν... |
|---|---|---|---|---|---|
| Modal | $0,000694/δευτ. | $2,50 | $3,95 | $30/μήνα Starter | θέλετε χρέωση ανά δευτερόλεπτο, γρήγορα builds και GPU snapshots |
| RunPod | $2,72/ώρα | $2,72 | $4,55 | κανένα δημοσιευμένο | θέλετε το πιο πλατύ μενού GPU σε σταθερές ωριαίες χρεώσεις |
| Beam | $0,000625/δευτ. | $2,25 | $3,55 | $30/μήνα | θέλετε μηδενική χρέωση για spin-up και φόρτωση εικόνας |
| Baseten | $0,06667/λεπτό | $4,00 | $6,50 | ναι, το ποσό δεν δημοσιεύεται | θέλετε managed συμπερασμό με χρέωση ενεργού υπολογισμού |
| Cloud Run | ανά δευτερόλεπτο (L4 και RTX PRO 6000 Blackwell, χωρίς A100/H100) | δεν δημοσιεύεται (χωρίς A100) | δεν δημοσιεύεται (χωρίς H100) | $300 GCP credit | είστε ήδη σε GCP και χρειάζεστε έλεγχο περιοχών EU/US |
Η αριθμητική της κανονικοποίησης, μία φορά για να την ελέγξετε: Modal A100 80GB στα $0,000694/δευτ. επί 3600 δευτερόλεπτα ισούται με $2,4984/ώρα. Beam: $0,000625 επί 3600 ισούται με $2,25/ώρα. Baseten: $0,06667/λεπτό επί 60 ισούται με $4,00/ώρα. Αυτή η διαφορά 1,8x ανάμεσα σε Beam και Baseten για την ίδια A100 είναι πραγματική και κρύβεται κοινή θέα, επειδή κανείς δεν δημοσιεύει την ίδια μονάδα.
Τρεις επισημάνσεις. Η σελίδα τιμών της Beam δηλώνει ρητά ότι δεν χρεώνει για spin-up server ή φόρτωση εικόνας container. Το FAQ τιμών της Baseten απαντά στο «Πληρώνω για χρόνο αδράνειας στη Baseten;» με «Όχι, δεν πληρώνετε για χρόνο αδράνειας» και μετά προσθέτει ότι ο χρεώσιμος χρόνος είναι «ο χρόνος που το μοντέλο σας αναπτύσσεται ενεργά, κλιμακώνεται πάνω ή κάτω ή κάνει προβλέψεις», άρα ο μετρητής καλύπτει περισσότερα από τον χρόνο πρόβλεψης, που είναι το κομμάτι που αξίζει να προϋπολογίσετε. Η RunPod δημοσιεύει ωριαίες χρεώσεις και κανένα νούμερο cold start στη σελίδα τιμών της.
Αν η Modal είναι η επιλογή σας, έχουμε γράψει τον πλήρη οδηγό Modal ξεχωριστά.
Χωράει καν το μοντέλο σας; VRAM, όρια μίας GPU και quota
Μπορείτε να τρέξετε ένα μοντέλο 70B σε serverless GPU; Συνήθως όχι. Σε FP16, τα 70B χρειάζονται περίπου 140 GB VRAM. Το Cloud Run βάζει ταβάνι μία GPU ανά instance (96 GB μέγιστο σε RTX PRO 6000). Τα μαθηματικά δεν βγαίνουν χωρίς κβαντοποίηση (FP8/GGUF) ή πλατφόρμα πολλαπλών GPU.
| GPU | VRAM | Ελάχιστη CPU / μνήμη | Τυπικό ταβάνι μοντέλου |
|---|---|---|---|
| L4 | 24 GB | 4 CPU / 16 GiB | 7B-13B (FP16), έως 30B κβαντοποιημένο |
| A100 80GB | 80 GB | ποικίλλει ανά πλατφόρμα | 30B-70B κβαντοποιημένο |
| H100 80GB | 80 GB | ποικίλλει ανά πλατφόρμα | 30B-70B κβαντοποιημένο |
| RTX PRO 6000 Blackwell | 96 GB | 20 CPU / 80 GiB | 70B σε FP8 |
Το προεπιλεγμένο quota του Cloud Run είναι 3 L4 GPU ανά περιοχή ανά έργο (η RTX PRO 6000 χορηγείται ξεχωριστά, ως 3.000 milliGPU), σε έξι περιοχές L4: asia-southeast1, asia-south1, europe-west1, europe-west4, us-central1, us-east4. Αυτό είναι το μισό της απάντησης για διαμονή δεδομένων στο Cloud Run για όποιον ρωτά για serverless GPU στην Ευρώπη. Η Modal και η RunPod τεκμηριώνουν τις δικές τους περιοχές EU και το FAQ έχει τα υπόλοιπα.
Ο οδηγός Cloud Run του Ismaili Simba στο dev.to (Απρίλιος 2025) αναφέρει ότι το αίτημα quota «μπορεί να πάρει χρόνο (έως 5 εργάσιμες ημέρες) για να εγκριθεί» και ότι «οι L4 GPU που διατίθενται στο Cloud Run έχουν όριο 16GB RAM.» Υπολογίστε αυτή την καθυστέρηση.
Για μεγέθυνση VRAM ανά μοντέλο, δείτε τον οδηγό μας για απαιτήσεις VRAM.
Πού μένουν τα βάρη του μοντέλου σας (και τι κοστίζει αυτό);
Ένα νήμα του Reddit από τον Νοέμβριο του 2024 που ακόμα καθόταν στο #5 της Google για αυτό ακριβώς το ερώτημα όταν ελέγξαμε στις 2026-07-30 ρωτά, αυτολεξεί:
«Δεν μπόρεσα να βρω χρέωση για αποθήκευση του μοντέλου 80 gb... Ποια είναι η εναλλακτική αν δεν θέλω να κατεβάζω το μοντέλο σε κάθε κλήση api (pod που σηκώνεται στην κλήση και μετά κλείνει); ... Γιατί αυτές οι πλατφόρμες δεν αναγράφουν το κόστος αποθήκευσης μοντέλου;»
Τρεις απαντήσεις με χαμηλή βαθμολογία, καμία τους απάντηση στο ερώτημα. Όταν τρέξαμε αυτή την αναζήτηση στις 2026-07-30, τα δέκα πρώτα αποτελέσματα περιλάμβαναν ακόμα εκείνο το δίχρονο νήμα που ρωτά πόσο κοστίζει η αποθήκευση μοντέλου. Κανείς μέσα στο νήμα δεν απάντησε. Και οι δύο πλατφόρμες δημοσιεύουν τη χρέωση. Στη Modal είναι $0,09 ανά GiB τον μήνα με το πρώτο TiB δωρεάν, άρα αυτό το checkpoint των 80 GB χρεώνεται $0,00. Στη RunPod είναι $0,07 ανά GB τον μήνα για network storage κάτω από 1 TB, που βάζει το ίδιο checkpoint στα περίπου $5,60 τον μήνα.
| Τοποθέτηση | Επίπτωση στο cold start | Τι κοστίζει | Rebuild για αλλαγή μοντέλου; | Ιδανικό για |
|---|---|---|---|---|
| Ενσωματωμένο στην εικόνα container | Γρηγορότερη εκκίνηση | Φούσκωμα μεγέθους εικόνας (27B FP8 = δεκάδες GB) | Ναι, πλήρες rebuild | Endpoint ενός μοντέλου |
| Μόνιμος network volume | Γρήγορο (cached στον host) | Modal $0,09/GiB/μήνα, 1 TiB δωρεάν, RunPod $0,07/GB/μήνα κάτω από 1 TB | Όχι, αλλάζετε τη διαδρομή | Πολλαπλά μοντέλα ή συχνές εναλλαγές |
| Τράβηγμα από Hugging Face στην εκκίνηση | Αργότερο: 26+ δευτ. για 130 GB στα 5 GB/s | Δωρεάν (bandwidth HF) | Όχι | Μόνο πρωτοτυπία |
Η τρίτη γραμμή είναι η περίπτωση αποτυχίας. Μια ανασκόπηση του ServerlessLLM (arXiv 2411.15664) από το TU München το 2024 αναφέρει ότι η LLaMA-2-70B (130 GB) χρειάζεται 26+ δευτερόλεπτα για τράβηγμα στα 5 GB/s, συν περίπου 84 δευτερόλεπτα για φόρτωση σε 8 GPU, έναντι περίπου 100 ms δημιουργίας token. Αυτά τα νούμερα αναφέρονται σε εκείνη την ανασκόπηση, δεν μετρήθηκαν από αυτήν.
Η σελίδα τιμών της RunPod έχει ενότητα Storage: container disk $0,10/GB/μήνα, volume disk $0,10/GB/μήνα εν λειτουργία και $0,20/GB/μήνα αδρανές, network storage $0,07/GB/μήνα κάτω από 1 TB και $0,05/GB/μήνα πάνω από αυτό, high-performance network storage $0,14/GB/μήνα. Το νούμερο υπάρχει. Απλά δεν κάθεται δίπλα στις ωριαίες χρεώσεις serverless ανά GPU που συγκρίνει ένας αναγνώστης όταν του γεννιέται η ερώτηση, ούτε στη ροή διαμόρφωσης του endpoint. Πρόβλημα ευρεσιμότητας, όχι μυστικότητας, και αρκετό για να κρατά ζωντανή την ερώτηση δύο χρόνια μετά.
# Point the Hugging Face cache at a mounted network volume
# so weights persist across cold starts (RunPod / Modal pattern)
export HF_HOME=/workspace/hf-cache
export TRANSFORMERS_CACHE=/workspace/hf-cache
export HF_HUB_ENABLE_HF_TRANSFER=1# Alternative: bake weights into the image at build time
FROM vllm/vllm-openai:latest
COPY ./model-weights /models/qwen3-27b-fp8
ENV MODEL_NAME=/models/qwen3-27b-fp8
# Downside: 30+ GB image, full rebuild to change modelsΑν δεν έχετε διαλέξει μοντέλο ακόμα, η σύνοψη ανοιχτών βαρών 2026 μεγεθύνει κάθε επιλογή για deployment.
Deploy: vLLM σε RunPod Serverless, από την αρχή μέχρι το τέλος
Έξι βήματα από το μηδέν μέχρι ένα καλούμενο endpoint. Επαληθεύστε το καθένα με τη διαδικασία vLLM της RunPod (ενημερωμένη 22 Ιουν 2026), που δεν δημοσιεύει τιμές.
-
Διαλέξτε το μοντέλο σας. Επιλέξτε ένα μοντέλο ανοιχτών βαρών μεγεθυμένο για τη GPU σας (δείτε τον πίνακα VRAM παραπάνω). Αν είναι gated στο Hugging Face, δημιουργήστε πρώτα ένα access token.
-
Δημιουργήστε το serverless endpoint. Στην κονσόλα της RunPod, επιλέξτε Serverless, διαλέξτε το worker template vLLM και επιλέξτε την κατηγορία GPU σας.
-
Ορίστε τις μεταβλητές περιβάλλοντος που μετρούν.
MODEL_NAME=Qwen/Qwen3.6-27B-FP8
MAX_MODEL_LEN=32768
GPU_MEMORY_UTILIZATION=0.90
DTYPE=autoΛάθος MODEL_NAME σημαίνει 404 στην εκκίνηση. MAX_MODEL_LEN πολύ ψηλό για τη VRAM σας σημαίνει OOM πριν το πρώτο token. GPU_MEMORY_UTILIZATION πάνω από 0,95 δεν αφήνει περιθώριο για αιχμές KV-cache.
-
Ορίστε ελάχιστους/μέγιστους workers και idle timeout. Ελάχιστοι workers στο 0 σας δίνει scale-to-zero (και cold starts). Ελάχιστοι workers στο 1 σκοτώνει τα cold starts αλλά χρεώνει συνεχώς. Η ενότητα cold start παρακάτω αναλύει αυτό το αντάλλαγμα.
-
Προσαρτήστε τον network volume που αποφασίσατε στην ενότητα βαρών μοντέλου, ή αποδεχτείτε τη διαδρομή ενσωμάτωσης στην εικόνα. Αν το παραλείψετε, κάθε cold start κατεβάζει ξανά το checkpoint.
-
Ρίξτε το πρώτο request. Διαβάστε το endpoint ID από την κονσόλα και επιβεβαιώστε ότι επιστρέφουν tokens.
curl -X POST "https://api.runpod.ai/v2/${ENDPOINT_ID}/runsync" \
-H "Authorization: Bearer ${RUNPOD_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"input": {
"messages": [{"role": "user", "content": "Explain cold starts in one sentence."}],
"max_tokens": 60
}
}'Αν ζυγίζετε την ίδια τη μηχανή serving, συγκρίναμε vLLM και SGLang σε throughput και latency.
Πώς καλείτε το endpoint από την εφαρμογή σας;
Κάθε πλατφόρμα στη λίστα μιλά ένα OpenAI-συμβατό API. Ένα απόσπασμα Python δουλεύει παντού. Η αλλαγή παρόχου είναι αλλαγή του base_url, όχι ξαναγράψιμο. Αυτό αναδιατυπώνει το «ποιος πάροχος» από απόφαση lock-in σε απόφαση διαμόρφωσης.
import os
from openai import OpenAI
ENDPOINT_ID = os.environ["RUNPOD_ENDPOINT_ID"]
client = OpenAI(
base_url=f"https://api.runpod.ai/v2/{ENDPOINT_ID}/openai/v1",
api_key=os.environ["RUNPOD_API_KEY"],
)
response = client.chat.completions.create(
model="Qwen/Qwen3.6-27B-FP8",
messages=[{"role": "user", "content": "What is scale to zero?"}],
max_tokens=120,
)
print(response.choices[0].message.content)# Same code, different provider. One line changes.
ENDPOINT_ID = os.environ["RUNPOD_ENDPOINT_ID"]
PROVIDERS = {
"runpod": f"https://api.runpod.ai/v2/{ENDPOINT_ID}/openai/v1",
"modal": "https://your-app--your-func.modal.run/v1",
"beam": "https://your-beam-endpoint/v1",
}
client = OpenAI(base_url=PROVIDERS["modal"], api_key="your-key")Αν κάθε πάροχος μιλά τη διάλεκτο της OpenAI, το «ποιος πάροχος serverless GPU» σταματά να είναι αρχιτεκτονική απόφαση και γίνεται μία γραμμή διαμόρφωσης.
Μόλις έχετε πολλαπλά endpoints, η σύγκριση LLM gateway καλύπτει δρομολόγηση και failover. Για μια πιο ελαφριά εγκατάσταση, ένας proxy LiteLLM προσθέτει retries και logging.
Τι cold start θα δείτε στην πράξη;
Για ένα μοντέλο 7B σε serverless GPU, περιμένετε 10 έως 30 δευτερόλεπτα σε ένα αληθινό cold start (εκκίνηση container συν φόρτωση βαρών συν αρχικοποίηση μηχανής), με βάση αναφορές ασκούντων. Τα έγγραφα παρόχων αναφέρουν 1 έως 5 δευτερόλεπτα για την εκκίνηση container μόνη της. Το χάσμα ανάμεσα σε αυτά τα νούμερα είναι το checkpoint σας να διασχίζει ένα δίκτυο.
Η σελίδα προϊόντος της RunPod υπόσχεται cold starts FlashBoot κάτω από 200ms (ισχυρισμός παρόχου, όχι μέτρηση). Ένας ασκών στο r/LLMDevs αναφέρει: «τα cold starts στην εμπειρία μου δεν είναι σπουδαία... θα έλεγα περίπου 10-30 δευτ.», προσθέτοντας «η περισσότερη εμπειρία μου αφορά μοντέλα diffusion πάντως.» Και τα δύο ισχύουν. Μετρούν διαφορετικά πράγματα.
Το νούμερο του cold start είναι τρία νούμερα στοιβαγμένα:
-
Εκκίνηση container. Τα έγγραφα της Modal: «Τα containers εκκινούν σε περίπου ένα δευτερόλεπτο.» Cloud Run: instances με προεγκατεστημένους drivers «ξεκινούν σε περίπου 5 δευτερόλεπτα.»
-
Φόρτωση βαρών. Το κομμάτι που κανείς δεν διαφημίζει. Μια ανασκόπηση του ServerlessLLM (arXiv 2411.15664) από το TU München το 2024 βάζει την LLaMA-2-70B στα 26+ δευτερόλεπτα για τράβηγμα συν περίπου 84 δευτερόλεπτα για φόρτωση σε 8 GPU.
-
Αρχικοποίηση μηχανής. Καταγραφή γραφήματος και warm-up της vLLM. Ο Logesh Umapathi μέτρησε Qwen3.6-27B-FP8 σε A100-80GB να πέφτει από 460 δευτ. βασική γραμμή σε 219 δευτ. με eager mode και σε περίπου 70 δευτ. με vLLM sleep mode συν Modal GPU snapshots. Αυτό είναι 6,5x, δημοσιευμένο 17 Μαΐου 2026.
| Πηγή | Τι μετρήθηκε | Νούμερο | Ημερομηνία | Τύπος |
|---|---|---|---|---|
| Έγγραφα Modal | Εκκίνηση container | ~1 δευτ. | τρέχον | Έγγραφο παρόχου |
| Έγγραφα Cloud Run | Εκκίνηση instance (drivers προεγκατεστημένοι) | ~5 δευτ. | τρέχον | Έγγραφο παρόχου |
| Umapathi | Qwen3.6-27B-FP8, A100-80GB, πλήρες cold start | 460 δευτ. σε 219 δευτ. σε ~70 δευτ. | Μάιος 2026 | Ανεξάρτητη μέτρηση |
| Ανασκόπηση ServerlessLLM (arXiv 2411.15664) TU München | Τράβηγμα + φόρτωση LLaMA-2-70B, νούμερα αναφερόμενα όχι μετρημένα | 26 δευτ. τράβηγμα + 84 δευτ. φόρτωση | 2024 | Προδημοσίευση arXiv (ανασκόπηση) |
| Ασκών r/LLMDevs | 7B σε RunPod, πλήρες request | ~10-30 δευτ. | Δεκ 2024 | Περιστατικό (σημείωση diffusion) |
Η ερμηνεία μας στα δημοσιευμένα δεδομένα: τα νούμερα παρόχων χρονομετρούν το container. Τα νούμερα ασκούντων χρονομετρούν ολόκληρο το request. Ανάμεσα σε αυτά τα δύο χρονόμετρα κάθονται 80 GB βαρών που διασχίζουν ένα δίκτυο. Η στήλη Τύπος είναι το νόημα.
Τι να κάνετε: vLLM sleep mode, GPU snapshots και ρύθμιση του παραθύρου scaledown. Η προεπιλεγμένη αδράνεια της Modal είναι 60 δευτερόλεπτα (ρυθμιζόμενη 2 δευτ.-20 λεπτά). Ένας ζεστός worker σκοτώνει τα cold starts αλλά χρεώνει ως πάντα ενεργός.
# Modal scaledown config (illustrative)
# A 60s window means you pay for 60 idle seconds per burst.
# A warm worker (min_containers=1) costs ~$2.50/hr on A100 80GB, 24/7.
@app.function(
gpu="A100",
scaledown_window=60, # seconds idle before shutdown
# min_containers=1, # uncomment to kill cold starts; costs $60/day
)Είναι το serverless GPU φθηνότερο από μια πάντα ενεργή GPU;
Το serverless GPU είναι φθηνότερο όταν η GPU σας κάθεται αδρανής τις περισσότερες ώρες της ημέρας. Στα 3.000 requests/ημέρα με μέσο όρο 2 δευτερόλεπτα το καθένα σε A100 80GB, το serverless κοστίζει περίπου $4,17/ημέρα έναντι $65,28/ημέρα για μια μισθωμένη GPU που τρέχει 24/7. Το σημείο τομής είναι ζήτημα κύκλου εργασίας, όχι ζήτημα όγκου.
Υποθέσεις (δικές μας, δηλωμένες για να τις ξανατρέξετε): A100 80GB στα $2,50/ώρα της Modal, 2 δευτερόλεπτα μέσος χρόνος GPU ανά request, μισθωμένη GPU στα $2,72/ώρα της RunPod όλο το εικοσιτετράωρο, hosted token API στα $0,40/1 εκατ. tokens (μια μεσαία δημοσιευμένη χρέωση) και περίπου 1.000 tokens ανά request.
| Requests/ημέρα | Serverless (εκτ.) | Μισθωμένη GPU 24/7 | Hosted token API | Φθηνότερο |
|---|---|---|---|---|
| 500 | $0,69 | $65,28 | $0,20 | Token API |
| 3.000 | $4,17 | $65,28 | $1,20 | Token API |
| 10.000 | $13,89 | $65,28 | $4,00 | Token API |
| 50.000 | $69,44 | $65,28 | $20,00 | Token API |
| 200.000 | $277,78 | $65,28 | $80,00 | Μισθωμένη GPU |
Το σημείο τομής πέφτει γύρω στα 47.000 requests/ημέρα. Κάτω από αυτό, κερδίζει το serverless. Ένα hosted token API νικά και τα δύο σε χαμηλό όγκο με ένα commodity μοντέλο. Το σημείο ισορροπίας δεν αφορά πόσα requests δέχεστε. Αφορά πόσες ώρες η GPU σας κάθεται χωρίς να κάνει τίποτα.
Η ανάλυση της BentoML τον Αύγουστο του 2024 πλαισιώνει καλά αυτό το αντάλλαγμα, αν και τα παραδείγματα τιμών της είναι εποχής GPT-3.5-turbo και δύο χρόνια παλιά.
Για το τι κοστίζει ένα hosted token API στον όγκο σας, δείτε τη σύγκριση τιμών LLM API. Για να κόψετε το κόστος ανά request στην πλευρά του συμπερασμού, το prompt caching εξοικονομεί τυπικά 30-60% σε επαναλαμβανόμενο context.
# Break-even calculator: adjust these and re-run
REQUESTS_PER_DAY = 3000
SECONDS_PER_REQUEST = 2
SERVERLESS_RATE_HR = 2.50 # Modal A100 80GB
RENTED_RATE_HR = 2.72 # RunPod A100 80GB, 24/7
serverless_daily = REQUESTS_PER_DAY * SECONDS_PER_REQUEST / 3600 * SERVERLESS_RATE_HR
rented_daily = RENTED_RATE_HR * 24
print(f"Serverless: ${serverless_daily:.2f}/day")
print(f"Rented 24/7: ${rented_daily:.2f}/day")
print(f"Crossover: {int(RENTED_RATE_HR * 24 / (SECONDS_PER_REQUEST / 3600 * SERVERLESS_RATE_HR))} req/day")Πότε το serverless GPU είναι λάθος επιλογή
- Υψηλή κίνηση χωρίς διακοπές. Πάνω από περίπου 47.000 requests/ημέρα σε αυτές τις χρεώσεις, ο κύκλος εργασίας αντιστρέφεται και μια μισθωμένη GPU είναι φθηνότερη ανά request.
- Αυστηρά SLO κάτω του δευτερολέπτου σε κρύα διαδρομή. Κανένα τέχνασμα snapshot δεν κάνει το πρώτο request ακαριαίο. Κρατήστε ζεστό worker ή μισθώστε το μηχάνημα.
- Μοντέλα 70B+ που χρειάζονται πολλαπλές GPU. Μία GPU ανά instance στο Cloud Run κλείνει αυτή τη συζήτηση.
- Αυστηρή διαμονή δεδομένων. Έξι περιοχές L4 είναι ολόκληρο το μενού στο Cloud Run.
- Οικονομικά ανά request που χάνουν από μια θέση worker που ήδη πληρώνετε. Αν έχετε πλεονάζουσα χωρητικότητα GPU, η προσθήκη συμπερασμού δεν κοστίζει τίποτα επιπλέον.
Αν η GPU σας είναι απασχολημένη δεκαέξι ώρες την ημέρα, το serverless είναι η ακριβή επιλογή και όποιος σας λέει το αντίθετο πουλά serverless.
Για τη διαδρομή τοπικής προτεραιότητας, δείτε τον οδηγό μας για εργαλεία τοπικών LLM.
Σχετικά με τον Συγγραφέα
Ο Mert Batur είναι Συνιδρυτής του Techsy.io, όπου η ομάδα παραδίδει AI agents, συστήματα αυτοματισμού και pipelines φωνής/SDR για πελάτες B2B. Γράφει για τη στοίβα εργαλείων LLM που η ομάδα της Techsy χρησιμοποιεί πραγματικά στην παραγωγή. Συνδεθείτε στο LinkedIn.
Συχνές Ερωτήσεις
Τι είναι το serverless GPU;
Μια πλατφόρμα serverless GPU τρέχει το container του μοντέλου σας σε κοινόχρηστο υλικό, πέφτει στο μηδέν ανάμεσα στα requests και χρεώνει μόνο για ενεργό υπολογισμό. Παίρνετε ένα endpoint συμπερασμού χωρίς να διαχειρίζεστε μια μόνιμη instance GPU. Το αντάλλαγμα είναι μια καθυστέρηση cold start στο spin-up.
Πόσο κοστίζει να τρέχω ένα LLM σε serverless GPU;
Μια A100 80GB τρέχει στα $2,25/ώρα στη Beam, $2,50/ώρα στη Modal, $2,72/ώρα στη RunPod (επαληθευμένο 2026-07-30). Ο λογαριασμός σας εξαρτάται από τον κύκλο εργασίας: 3.000 requests/ημέρα στα 2 δευτ. το καθένα κοστίζουν περίπου $4/ημέρα στη Modal. Η αποθήκευση προσθέτει $0,09/GiB/μήνα, με 1 TiB δωρεάν.
Πληρώνω για την αποθήκευση των βαρών του μοντέλου;
Ναι, αλλά είναι φθηνό. Η Modal χρεώνει $0,09/GiB/μήνα με 1 TiB/μήνα δωρεάν, άρα ένα checkpoint 80 GB δεν κοστίζει τίποτα. Η σελίδα τιμών της RunPod αναγράφει network storage στα $0,07/GB/μήνα κάτω από 1 TB, περίπου $5,60/μήνα για τα ίδια 80 GB.
Το μοντέλο μου ξανακατεβαίνει σε κάθε request;
Μόνο αν τίποτα δεν είναι cached. Βάρη σε μόνιμο volume ή ενσωματωμένα στην εικόνα επιβιώνουν των cold starts. Στρέψτε την cache του Hugging Face σε ephemeral storage και ένα μοντέλο 130 GB ξανακατεβαίνει σε κάθε spin-up. Αυτή είναι η περίπτωση αποτυχίας που πρέπει να αποφύγετε.
Πόσο διαρκεί το cold start για ένα μοντέλο 7B;
Περιμένετε 10-30 δευτερόλεπτα σε ένα αληθινό cold start, σύμφωνα με αναφορές ασκούντων (r/LLMDevs, Δεκ 2024). Το container εκκινεί σε 1-5 δευτ. (έγγραφα Modal, Cloud Run). Το υπόλοιπο είναι φόρτωση βαρών και αρχικοποίηση μηχανής. Με snapshots και sleep mode, ο Umapathi μέτρησε περίπου 70 δευτ. για ένα μοντέλο 27B, από 460 δευτ.
Μπορώ να τρέξω ένα μοντέλο 70B σε serverless GPU;
Συνήθως όχι. Ένα μοντέλο 70B σε FP16 χρειάζεται περίπου 140 GB VRAM. Το Cloud Run επιτρέπει μία GPU ανά instance (96 GB μέγιστο). Θα χρειαζόσασταν κβαντοποίηση FP8 για να χωρέσει σε μία κάρτα 80 GB, ή μια πλατφόρμα πολλαπλών GPU. Οι περισσότερες serverless επιφάνειες βάζουν ταβάνι μία GPU.
Είναι το serverless GPU φθηνότερο από τη μίσθωση GPU 24/7;
Κάτω από περίπου 47.000 requests/ημέρα (στα 2 δευτ./request σε A100 80GB), ναι. Το serverless χρεώνει μόνο ενεργά δευτερόλεπτα. Μια μισθωμένη GPU χρεώνει 24 ώρες ανεξαρτήτως. Πάνω από αυτό, κερδίζει η μισθωμένη GPU. Ένα hosted token API νικά και τα δύο σε χαμηλό όγκο. Δείτε τον πίνακα σημείου ισορροπίας παραπάνω.
Μπορώ να κάνω deploy ένα LLM σε serverless GPU δωρεάν;
Η Modal δίνει $30/μήνα δωρεάν credits (Starter). Η Beam δίνει $30/μήνα. Το credit νέου λογαριασμού $300 της GCP καλύπτει χρήση GPU στο Cloud Run. Αρκετά για πρωτοτυπία, όχι για κίνηση παραγωγής. Καμία πλατφόρμα δεν προσφέρει μόνιμο δωρεάν επίπεδο για συμπερασμό GPU.
Ποιοι πάροχοι serverless GPU διατίθενται στην Ευρώπη;
Το Cloud Run εξυπηρετεί L4 GPU σε europe-west1 (Βέλγιο) και europe-west4 (Ολλανδία). Η Modal τεκμηριώνει επιλογή περιοχής EU (eu-west, eu-north, eu-south) με χρέωση 1,5-1,75x των βασικών χρεώσεων. Η RunPod κατονομάζει ευρωπαϊκά data centers όπως EU-NL-1 και EU-FR-1. Καρφιτσώστε την περιοχή ρητά. Καμία τους δεν έχει προεπιλογή την EU.
Χρειάζομαι Docker για να κάνω deploy ένα LLM σε serverless GPU;
Όχι πάντα. Η RunPod προσφέρει έτοιμα worker templates vLLM που παρακάμπτουν το Docker. Η Modal χτίζει containers από έναν ορισμό εικόνας Python μέσα σε κώδικα. Για προσαρμοσμένες εξαρτήσεις θα γράψετε Dockerfile. Για stock serving vLLM, η έτοιμη διαδρομή δουλεύει σε λεπτά.
Συμπέρασμα
Πέντε πλατφόρμες, πέντε μονάδες χρέωσης, ένας κανονικοποιημένος πίνακας. Η απόφαση είναι πιο απλή από όσο τη παρουσιάζουν οι σελίδες παρόχων:
- Διαλέξτε GPU με βάση τη VRAM, όχι τη μάρκα.
- Βάλτε τα βάρη σας σε volume, όχι στην εικόνα, εκτός αν δεν αλλάζετε ποτέ μοντέλα.
- Περιμένετε cold starts 10-30 δευτερολέπτων και σχεδιάστε γύρω από αυτά.
- Κάτω από περίπου 47.000 requests/ημέρα, το scale-to-zero κερδίζει σε κόστος.
- Η μηχανή serving πίσω από το endpoint αλλάζει. Το
base_urlείναι μία γραμμή.
Έχετε ένα καλούμενο endpoint. Επόμενο: τι κάθεται μπροστά του όταν χρειάζεστε δρομολόγηση και failover; Η σύγκριση LLM gateway απαντά σε αυτό. Ή συζητήστε τη εγκατάστασή σας μαζί μας.