Ο φόρος DevOps: το πραγματικό κόστος του self-hosting AI δεν είναι η GPU.
Η γραμμή που κανείς δεν προϋπολογίζει είναι ο χρόνος μηχανικών: μάχες με drivers, εκδόσεις CUDA, tuning του serving stack, Kubernetes. Γιατί η ωριαία τιμή της GPU δεν ήταν ποτέ ο αριθμός που μετρούσε.
Σε αυτό το άρθρο 2 ενότητες
- Το μεγαλύτερο κρυφό κόστος στο self-hosted AI είναι ο χρόνος μηχανικών, όχι η ωριαία τιμή της GPU.
- Συμβατότητα drivers και CUDA, επιλογές κβάντισης, tuning του serving stack και Kubernetes τρώνε εβδομάδες πριν εξυπηρετηθεί το πρώτο token.
- Ένα raw GPU cloud σας δίνει υπολογιστική ισχύ και έναν λογαριασμό· η καλωδίωση είναι σιωπηλά η δική σας μισθοδοσία.
- Η managed εναλλακτική: η ομάδα σας καλεί ένα endpoint, οι μηχανικοί μας το κρατούν σε λειτουργία. Δεν προσλαμβάνετε MLOps μηχανικό, παίρνετε τον δικό μας.
Τιμολογήστε έναν GPU server και παίρνετε έναν καθαρό αριθμό. Τιμολογήστε τι χρειάζεται για να μετατραπεί αυτός ο server σε inference endpoint παραγωγής και ο αριθμός μαλακώνει: μια έκδοση driver που διαφωνεί με το CUDA toolkit, ένα serving framework που θέλει διαφορετικό πυρήνα, μια κβάντιση που αποδεικνύεται ότι χρειάζεται περισσότερη VRAM απ' ό,τι έλεγε το άρθρο, ένα επίπεδο Kubernetes που ο φόρτος δεν χρειαζόταν. Τίποτα από αυτά δεν εμφανίζεται στο τιμολόγιο. Όλα εμφανίζονται στη μισθοδοσία σας.
Ο φόρος, γραμμή προς γραμμή
Να τι βρίσκεται ανάμεσα σε μια κάρτα σε ένα rack και σε ένα endpoint που η εφαρμογή σας μπορεί να εμπιστευτεί, με τη σειρά που έρχεται. Κάθε γραμμή είναι χρόνος μηχανικών, και κάθε γραμμή επαναλαμβάνεται: ένα stack που δούλευε τη μέρα που εγκαταστάθηκε πρέπει να συνεχίσει να δουλεύει μέσα από κάθε ενημέρωση που ακολουθεί.
Burn-in.
Αποδείξτε ότι η κάρτα και ο host είναι υγιείς πριν κάτι εξαρτηθεί από αυτούς: παρατεταμένο φορτίο, θερμοκρασίες, μνήμη, τροφοδοσία. Μια κάρτα που κάνει throttle στο πρώτο της πραγματικό batch είναι πρόβλημα που θέλετε να βρείτε την πρώτη μέρα, όχι τη μέρα του launch.
Ευθυγράμμιση driver και toolkit.
Πυρήνας, driver, CUDA toolkit, container runtime και serving framework πρέπει όλα να συμφωνούν μεταξύ τους. Συμφωνούν τη μέρα που τα καρφώνετε. Κάθε ενημέρωση σε οποιοδήποτε από αυτά ξανανοίγει το ερώτημα.
Πακετάρισμα μοντέλου.
Βάρη, tokenizer, κβάντιση και ο προϋπολογισμός VRAM που προκύπτει από αυτά. Η επιλογή κβάντισης αποφασίζει αν το μοντέλο χωρά, πόσο γρήγορα απαντά και πόση ποιότητα θυσιάζει, και οι δημοσιευμένοι αριθμοί είναι σημείο εκκίνησης, όχι εγγύηση για το δικό σας hardware.
Tuning του serving stack.
Batching, μήκος context, μέγεθος KV-cache και concurrency, ρυθμισμένα στον στόχο latency σας και όχι στις προεπιλογές του framework. Εδώ ζει το μεγαλύτερο μέρος της απόδοσης, και είναι δουλειά που κανείς δεν βλέπει όταν γίνεται καλά.
Υδραυλικά του endpoint.
TLS, αυθεντικοποίηση, ιδιωτική διαδρομή δικτύου προς την εφαρμογή που το καλεί, και η απόφαση για το τι είναι προσβάσιμο από πού. Ένα inference endpoint προσβάσιμο από το δημόσιο internet είναι ευθύνη πριν γίνει χαρακτηριστικό.
Παρατηρησιμότητα.
Υγεία κάρτας, πίεση VRAM, queue depth και εκατοστημόρια latency, με κάποιον να τα παρακολουθεί πραγματικά. Μια GPU που τρέχει σιωπηλά στη μισή ταχύτητα μοιάζει ακριβώς με υγιή σε ένα dashboard που ελέγχει μόνο αν η διεργασία είναι πάνω.
Ενημερώσεις, με δρόμο επιστροφής.
Ενημερώσεις μοντέλου, driver και stack σε πρόγραμμα, δοκιμασμένες πριν προσγειωθούν, με rollback που έχει εξασκηθεί. Η παράλειψη ενημερώσεων αγοράζει ησυχία για λίγο και μετά μια πολύ θορυβώδη εβδομάδα.
Load test.
Αποδείξτε ότι το endpoint αντέχει το concurrency σας στον στόχο latency σας πριν κάτι εξαρτηθεί από αυτό. Η πρώτη φορά που το endpoint βλέπει πραγματική κίνηση δεν πρέπει να είναι η πρώτη φορά που το μέτρησε κάποιος.
On-call.
Όταν χαλάσει στις 3 τα ξημερώματα, κάποιος πρέπει να το έχει. Όχι σε βάρδια σε spreadsheet: ένας μηχανικός που ξέρει το stack, ξύπνιος, με πρόσβαση.
Ποιες γραμμές εξαφανίζονται όταν οι άνθρωποι που τοποθέτησαν την κάρτα στο rack αναπτύσσουν και το stack
Όλες εκτός από δύο. Εξακολουθείτε να επιλέγετε το μοντέλο, και εξακολουθείτε να γράφετε την εφαρμογή που το καλεί. Burn-in, κάρφωμα εκδόσεων, tuning του serving stack, το ιδιωτικό endpoint, η παρακολούθηση, οι ενημερώσεις, το load test και το on-call μένουν στους ανθρώπους που έχουν το hardware και ήδη τα κουβαλούν για κάθε άλλο μηχάνημα στο δωμάτιο. Τρέχουμε inference στις δικές μας GPU, οπότε η λίστα προέρχεται από την πράξη.
Όχι μια κάρτα με την ώρα. Ένα ιδιωτικό endpoint που απαντά στο latency που συμφωνήσατε, σε single-tenant μηχάνημα, που το κρατούν ενημερωμένο μηχανικοί που ξέρουν το stack γιατί το έχτισαν. Η ωριαία τιμή είναι ο μικρότερος αριθμός στη σελίδα.
Ευθείες απαντήσεις
Δεν μπορούμε απλώς να χρησιμοποιήσουμε τον οδηγό εγκατάστασης του προμηθευτή;+
Οι οδηγοί υποθέτουν μία κάρτα, έναν driver, μία έκδοση framework, παγωμένα στον χρόνο. Παραγωγή σημαίνει ότι ο συνδυασμός συνεχίζει να δουλεύει μέσα από ενημερώσεις, υπό φορτίο, στον στόχο latency σας. Αυτή η συντήρηση είναι ο φόρος· η εγκατάσταση δεν ήταν ποτέ το δύσκολο κομμάτι.
Managed σημαίνει ότι χάνουμε το root;+
Όχι. Το μηχάνημα είναι single-tenant και δικό σας· το πόσο από το stack κουβαλάμε εμείς συμφωνείται ανά πελάτη: κάποιοι παίρνουν τα κλειδιά και τρέχουν τα πάντα, άλλοι μας δίνουν το επίπεδο serving και κρατούν την εφαρμογή τους.
Τι κάνει πραγματικά η ομάδα σας σε συνεχή βάση;+
Κλειδώνει εκδόσεις drivers και CUDA, αναπτύσσει και ρυθμίζει το serving stack, παρακολουθεί την κάρτα και το endpoint 24/7, και εφαρμόζει ενημερώσεις μοντέλου και stack σε πρόγραμμα που εγκρίνετε. Όταν χαλάσει, το φτιάχνουμε, οποιαδήποτε ώρα.
Φέρτε μας το μοντέλο που θέλετε να τρέξετε
Διαστασιολογούμε την GPU, αναπτύσσουμε το stack, και σας παραδίδουμε ένα ιδιωτικό endpoint. Ο φόρος DevOps μένει σε εμάς.
Δείτε τους GPU serversΦτάσατε στο τέλος.
Βάλτε την ανάγνωση σε εφαρμογή
Τι τρέχετε;
Πείτε μας για τον φόρτο εργασίας, την κίνηση και τις απαιτήσεις ανάκαμψης. Ξεκινήστε από το εργαλείο διαμόρφωσης server ή συζητήστε τις λεπτομέρειες με έναν μηχανικό.
Γραμμένο από τους μηχανικούς που χτίζουν και λειτουργούν την υποδομή που περιγράφει.Μιλήστε με έναν μηχανικό
