Αναλυτική υπηρεσία προπλήρωσης και αποκωδικοποίησης
Μια αρχιτεκτονική εξυπηρέτησης που χωρίζει τα συμπεράσματα μοντέλων μεγάλων γλωσσών σε δύο ξεχωριστές φάσεις—προπλήρωση και αποκωδικοποίηση—και τις εκτελεί σε διαφορετικές ομάδες GPU.
Επισκόπηση
It matters because these two phases have opposite hardware appetites, and forcing them onto the same machines wastes capacity and hurts latency.
Βαθιά κατάδυση
Όταν ένα LLM απαντά, λειτουργεί σε δύο στάδια. Το Prefill διαβάζει ολόκληρη την προτροπή ταυτόχρονα και δημιουργεί την κρυφή μνήμη κλειδιού-τιμής (KV). Αυτή είναι μια μεγάλη, παράλληλη, υπολογιστική ριπή που διαποτίζει τις μαθηματικές μονάδες της GPU. Στη συνέχεια, η αποκωδικοποίηση δημιουργεί διακριτικά ένα-ένα, με κάθε βήμα να διαβάζει ολόκληρη την κρυφή μνήμη KV — μια ελαφρά υπολογιζόμενη ροή δεσμευμένη σε εύρος ζώνης μνήμης. Εκτελέστε μαζί, μια μεγάλη προπλήρωση εμποδίζει την αποκωδικοποίηση όλων (αποκωδικοποίηση της γραμμής) και η ομαδοποίηση των δύο δημιουργεί παρεμβολές. Η διάσπαση τοποθετεί την προπλήρωση σε μια ομάδα GPU και την αποκωδικοποίηση σε μια άλλη, μεταφέροντας την κρυφή μνήμη KV μεταξύ τους μέσω γρήγορων διασυνδέσεων όπως το NVLink ή το InfiniBand. Κάθε ομάδα συντονίζεται και κλιμακώνεται ανεξάρτητα, βελτιώνοντας την καλή απόδοση, εξομαλύνοντας τον λανθάνοντα χρόνο της ουράς και αφήνοντας τους χειριστές να πετύχουν ταυτόχρονα στενούς στόχους time-to-first-token και time-per-output-token.
Τεχνική διορατικότητα
Οι δύο φάσεις διαφέρουν ως προς το σημείο συμφόρησης. Το Prefill επεξεργάζεται όλα τα prompt token παράλληλα, έτσι τα FLOP του κλιμακώνονται με το μήκος γραμμής και μεγιστοποιεί τους πυρήνες τανυστή. Η αποκωδικοποίηση είναι αυτοπαλινδρομική: κάθε νέο διακριτικό χρειάζεται ένα πέρασμα προς τα εμπρός που διαβάζει ξανά την πλήρη κρυφή μνήμη KV από το HBM, επομένως η διεκπεραίωση περιορίζεται από το εύρος ζώνης της μνήμης και όχι από τον υπολογισμό. Η διάσπαση το εκμεταλλεύεται αυτό με το μέγεθος, τη ομαδοποίηση και ακόμη και την επιλογή διαφορετικών παραλληλισμών για κάθε ομάδα και στη συνέχεια στέλνοντας την κρυφή μνήμη KV από τους εργαζόμενους προπλήρωσης για την αποκωδικοποίηση των εργαζομένων.
Στρατηγικός αντίκτυπος
Κόστος και προϋπολογισμός
Οι αποφάσεις για την αρχιτεκτονική καθορίζουν την απόδοση και το λειτουργικό κόστος για χρόνια.
Σαφέστερες αποφάσεις
Η τεχνική εκπαίδευση βοηθά τις ομάδες να επιλέξουν τη σωστή στοίβα, όχι μόνο τη νεότερη.
Ελεγχος ποιότητας
Οι καλύτερες επιλογές μηχανικής μειώνουν τα περιστατικά αξιοπιστίας στην παραγωγή.
Το Μέλλον της Αναλυτικής Προπλήρωσης και Αποκωδικοποίησης Υπηρεσιών
Αναμένετε ότι η διάσπαση θα γίνει προεπιλογή στις στοίβες παραγωγής. Συστήματα όπως το DistServe, το Splitwise και το Mooncake το έκαναν δημοφιλές και το vLLM και το NVIDIA Dynamo αποστέλλουν πλέον κατανεμημένες λειτουργίες. Η έρευνα ωθεί τις βελτιστοποιήσεις μεταφοράς κρυφής μνήμης KV, τη συγκέντρωση και επαναχρησιμοποίηση της προσωρινής μνήμης σε αιτήματα, τη δυναμική εξισορρόπηση των αναλογιών προπλήρωσης/αποκωδικοποίησης υπό μετατόπιση κίνησης και αυστηρότερη ενοποίηση με προσωρινή αποθήκευση προθέματος και τεμαχισμένη προπλήρωση. Καθώς τα παράθυρα περιβάλλοντος μεγαλώνουν σε εκατομμύρια διακριτικά, ο διαχωρισμός αυτών των φάσεων γίνεται ολοένα και πιο σημαντικός για την οικονομικά αποδοτική, χαμηλής καθυστέρησης προβολή.
Υλοποίηση σε πραγματικό κόσμο
Ένας βοηθός συνομιλίας δρομολογεί μεγάλες προτροπές εγγράφων σε ένα σύμπλεγμα προγεμίσματος βαρέως υπολογισμού και, στη συνέχεια, μεταδίδει απαντήσεις από ένα σύμπλεγμα αποκωδικοποίησης βελτιστοποιημένο για μνήμη για να διατηρεί ομαλή την καθυστέρηση πληκτρολόγησης.
Το NVIDIA Dynamo και το vLLM επιτρέπουν στους χειριστές να αναπτύξουν ξεχωριστές ομάδες εργαζομένων προπλήρωσης και αποκωδικοποίησης, έτσι ώστε μια έκρηξη μακροχρόνιων προτροπών να μην παγώνει τις συνεχείς γενιές.
Το Mooncake (χρησιμοποιείται από την Kimi του Moonshot AI) αναλύει την προπλήρωση και την αποκωδικοποίηση και προσθέτει ένα κατανεμημένο χώρο αποθήκευσης κρυφής μνήμης KV για να μειώσει τον πλεονάζοντα γρήγορο επανυπολογισμό σε κλίμακα.
Μια υπηρεσία συμπλήρωσης κώδικα αφιερώνει μια μικρή ομάδα προγεμίσματος για σύντομες εντολές και μια μεγάλη ομάδα αποκωδικοποίησης, καθώς το μεγαλύτερο κόστος προέρχεται από τη ροή πολλών διακριτικών εξόδου.
Κίνδυνοι & προστατευτικά κιγκλιδώματα
Η βελτιστοποίηση ενός σημείου αναφοράς μπορεί να κρύψει ευρύτερες αδυναμίες του συστήματος.
Το κόστος υποδομής και συντήρησης συχνά υποτιμάται.
Τα κενά ασφάλειας και παρατηρητικότητας μπορούν να αυξηθούν καθώς τα συστήματα γίνονται πιο πολύπλοκα.
Οδικός Χάρτης Εφαρμογής
Καθορίστε τους στόχους καθυστέρησης, ποιότητας και κόστους πριν από την εφαρμογή.
Σημείο αναφοράς υπό ρεαλιστικές συνθήκες φορτίου και δεδομένων.
Παρακολούθηση οργάνου για σφάλματα, μετατόπιση και επιπτώσεις από τον χρήστη.
Προετοιμάστε διαδρομές επαναφοράς και απόκρισης συμβάντος πριν την κλιμάκωση.
Συνεχίστε την εξερεύνηση
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Disaggregated Prefill and Decode Serving quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Επόμενος οδηγός
KServe και Model Serving στο Kubernetes
Συχνές ερωτήσεις
What is Disaggregated Prefill and Decode Serving?
Μια αρχιτεκτονική εξυπηρέτησης που χωρίζει τα συμπεράσματα μοντέλων μεγάλων γλωσσών σε δύο ξεχωριστές φάσεις—προπλήρωση και αποκωδικοποίηση—και τις εκτελεί σε διαφορετικές ομάδες GPU. Έχει σημασία γιατί αυτές οι δύο φάσεις έχουν αντίθετες ορέξεις υλικού και το να τις εξαναγκάσουν στα ίδια μηχανήματα σπαταλά τη χωρητικότητα και βλάπτει τον λανθάνοντα χρόνο.
Ποιος είναι ο βασικός λόγος υλικού για τον διαχωρισμό της προπλήρωσης και της αποκωδικοποίησης σε διαφορετικές ομάδες GPU;
Το Prefill επεξεργάζεται ολόκληρη την προτροπή παράλληλα και κορεσμούς υπολογισμούς, ενώ η αποκωδικοποίηση διαβάζει την κρυφή μνήμη KV σε κάθε βήμα και περιορίζεται από το εύρος ζώνης μνήμης - αντίθετες ορέξεις που δικαιολογούν ξεχωριστές, ανεξάρτητα συντονισμένες ομάδες.
Ποια δομή δεδομένων πρέπει να μεταφερθεί από τους εργαζόμενους προπλήρωσης για την αποκωδικοποίηση των εργαζομένων;
Το Prefill δημιουργεί την κρυφή μνήμη KV για την προτροπή. Η αποκωδικοποίηση χρειάζεται αυτήν την κρυφή μνήμη για να συνεχίσει να δημιουργεί, επομένως η κρυφή μνήμη αποστέλλεται μέσω μιας γρήγορης διασύνδεσης στη δεξαμενή αποκωδικοποίησης.
Ποιο πρόβλημα μειώνει συγκεκριμένα η διάσπαση σε μια κοινή εγκατάσταση GPU;
Σε κοινόχρηστες GPU, μια μεγάλη ριπή προπλήρωσης μπορεί να εμποδίσει τα συνεχιζόμενα βήματα αποκωδικοποίησης. Ο διαχωρισμός τους αποτρέπει αυτή την παρεμβολή και σταθεροποιεί την καθυστέρηση της ουράς.
Γιατί η προπλήρωση μπορεί να ομαδοποιηθεί επιθετικά αλλά να αποκωδικοποιήσει τα οφέλη από τη διαφορετική ρύθμιση;
Το Prefill επεξεργάζεται όλα τα prompt token μαζί, έτσι οι μεγαλύτερες παρτίδες τροφοδοτούν καλά τους πυρήνες του τανυστή. Η αποκωδικοποίηση δημιουργεί ένα διακριτικό τη φορά και περικλείεται από τη μνήμη, επομένως κλιμακώνεται διαφορετικά.
Ποιες διασυνδέσεις χρησιμοποιούνται συνήθως για τη μετακίνηση της κρυφής μνήμης KV μεταξύ χωρισμένων δεξαμενών;
Απαιτούνται σύνδεσμοι υψηλού εύρους ζώνης και χαμηλής καθυστέρησης, όπως το NVLink (εντός κόμβου) και το InfiniBand (inter-node), ώστε η μεταφορά κρυφής μνήμης KV να μην γίνει το νέο σημείο συμφόρησης.