Για τη φωνητική ΤΝ, το να γνωρίζει πότε πρέπει να μιλήσει είναι δυσκολότερο απ’ όσο ακούγεται. Οι άνθρωποι δίνουν αβίαστα ο ένας τον λόγο στον άλλον μέσα σε κλάσματα του δευτερολέπτου, όμως τα προηγούμενα συστήματα φωνητικής τεχνητής νοημοσύνης δεν μπορούσαν να ακολουθήσουν αυτόν τον ρυθμό. Η αρχιτεκτονική τους, που βασιζόταν σε εναλλαγή σειράς, χρησιμοποιούσε μικροσκοπικά μοντέλα γνωστά ως ανιχνευτές εναλλαγής, με ένα διόλου αξιοζήλευτο έργο: αν μάντευαν πολύ νωρίς, διέκοπταν τον χρήστη. Αν μάντευαν πολύ αργά, η απόκριση φαινόταν νωθρή. Μόνο αφού αποφάσιζε ο ανιχνευτής μπορούσε να ξεκινήσει την εργασία του το πολύ μεγαλύτερο LLM.
Το GPT‑Live, το φωνητικό μας σύστημα τρίτης γενιάς, αφαιρεί τον ανιχνευτή εναλλαγής από τη διαδρομή ήχου. Το φωνητικό μοντέλο του υποστηρίζει πλήρη αμφίδρομη επικοινωνία, δηλαδή μπορεί να ακούει και να μιλά ταυτόχρονα. Έτσι, εξαλείφεται η ανάγκη για ξεχωριστό ανιχνευτή και η συνομιλία γίνεται πιο άμεση και φυσική. Όταν χρειάζεται βαθύτερη συλλογιστική ή χρήση εργαλείων, το GPT‑Live μπορεί επίσης να συμβουλεύεται τα κορυφαία μοντέλα μας, όπως το GPT‑5.5, χωρίς να διακόπτει τη ροή της συνομιλίας. Μαζί, αυτές οι δυνατότητες προσφέρουν στο GPT‑Live έναν πρωτοφανή συνδυασμό άμεσης συνομιλιακής απόκρισης και επιπέδου ευφυΐας.
Η παροχή αυτής της εμπειρίας σε μεγάλη κλίμακα απαίτησε μια νέα αρχιτεκτονική συστήματος, βελτιστοποιημένη για χαμηλή καθυστέρηση. Σε αντίθεση με την τυπική εξαγωγή συμπερασμάτων τύπου αιτήματος-απόκρισης, το σύστημά μας μεταδίδει τον εισερχόμενο ήχο στο φωνητικό μοντέλο και την εξερχόμενη ομιλία πίσω στον χρήστη, ενώ χειρίζεται την ανάθεση μέσω ξεχωριστής ασύγχρονης διαδρομής. Τους τελευταίους έξι μήνες, ανασχεδιάσαμε την εξαγωγή συμπερασμάτων του μοντέλου, τη διαχείριση περιβάλλοντος και τη μεταφορά πολυμέσων, ώστε η ομιλία να ρέει ομαλά από άκρο σε άκρο.
Η αρχιτεκτονική δημιουργεί επίσης ένα σαφές όριο μεταξύ της βασικής φωνητικής διαδρομής και της λογικής της εφαρμογής. Έτσι, η συμπεριφορά της εφαρμογής προσαρμόζεται εύκολα χωρίς να επηρεάζεται η ταχύτητα απόκρισης. Αυτή η βάση υποστηρίζει ένα αυξανόμενο φάσμα δυνατοτήτων στη Φωνητική λειτουργία ChatGPT, όπως τη νέα δυνατότητα ελέγχου του υπολογιστή σας και συντονισμού των πρακτόρων σας στην εφαρμογή ChatGPT για υπολογιστές.
Σε αυτή την ανάρτηση εξηγούμε γιατί τα προηγούμενα συστήματα εναλλαγής σειράς δεν κάλυπταν τις ανάγκες μας και πώς σχεδιάσαμε το νέο σύστημα για άμεση απόκριση σε κάθε επίπεδο. Θα εξετάσουμε την εξαγωγή συμπερασμάτων με κατάσταση, τη δυναμική διαχείριση περιβάλλοντος, την ασύγχρονη ανάθεση και τη βελτιστοποίηση σε επίπεδο πρωτοκόλλου, που συνεργάζονται για να κάνουν το GPT‑Live πραγματικά ζωντανό.
Οι παλαιότερες φωνητικές αρχιτεκτονικές κληρονόμησαν τη φύση εναλλαγής σειράς των LLM κειμένου, αλλά κάθε σειρά αναπαριστανόταν ως διακριτό τμήμα ήχου αντί για κείμενο. Στα συστήματα διαδοχικής επεξεργασίας, η μετατροπή ομιλίας σε κείμενο, το LLM και η μετατροπή κειμένου σε ομιλία εκτελούνταν διαδοχικά. Αυτή η αλληλουχία αύξανε την καθυστέρηση και αγνοούσε ενδείξεις όπως ο τόνος και ο ρυθμός.
Τα μοντέλα ομιλίας σε ομιλία βελτίωσαν αυτή την προσέγγιση, επεξεργαζόμενα απευθείας τον ήχο. Η εκπαίδευση του μοντέλου ώστε να κατανοεί και να παράγει εγγενώς ομιλία τού επέτρεψε να διατηρεί λεπτομέρειες που χάνονταν κατά την απομαγνητοφώνηση και να απαντά γρηγορότερα. Ωστόσο, το σύστημα εξακολουθούσε να βασίζεται στον ανιχνευτή εναλλαγής για να αποφασίσει πότε μπορούσε να αρχίσει η εξαγωγή συμπερασμάτων. Το μοντέλο χειριζόταν μεγαλύτερο μέρος της αλληλεπίδρασης, αλλά αυτή εξακολουθούσε να βασίζεται σε εναλλαγή σειράς.
Το GPT‑Live αναθέτει στο φωνητικό μοντέλο τον έλεγχο της συνομιλίας: ο ήχος εισέρχεται και εξέρχεται από το μοντέλο, ενώ η βαθύτερη συλλογιστική και η χρήση εργαλείων εκτελούνται ασύγχρονα. Κύριο έργο του συστήματος είναι να διατηρεί έναν αδιάλειπτο βρόχο πολυμέσων. Άλλες εργασίες, όπως η κλήση κορυφαίων μοντέλων και η μόνιμη αποθήκευση της συνομιλίας, εκτελούνται εκτός της ζωντανής διαδρομής.
Η αδιάλειπτη λειτουργία αυτού του βρόχου πολυμέσων δεν είναι πάντα απλή υπόθεση. Οποιαδήποτε καθυστέρηση στη μεταφορά, την επεξεργασία ή την εξαγωγή συμπερασμάτων μπορεί να γίνει αντιληπτή ως παύση ή ακουστική παραμόρφωση. Ένα προηγούμενο σύστημα που βασιζόταν σε εναλλαγή σειράς μπορούσε να ανεχτεί κάποια απόκλιση στον χρόνο άφιξης ενός τμήματος ήχου. Ένα ζωντανό σύστημα πολυμέσων, όμως, πρέπει να παραδίδει κάθε πλαίσιο ήχου στην ώρα του.
Η προηγούμενη εργασία μας στη Φωνητική λειτουργία ChatGPT και το Realtime API μάς είχε ήδη προσφέρει μια σημαντική βάση. Είχαμε ήδη ανακατασκευάσει τη φωνητική υποδομή μας, ώστε να μεταδίδει ήχο και βίντεο απευθείας προς και από τα συστήματά μας, με μικρότερη και πιο προβλέψιμη καθυστέρηση. Το GPT‑Live προχώρησε ακόμη περισσότερο αυτόν τον σχεδιασμό, μεταδίδοντας πολυμέσα μέχρι το μοντέλο μέσω ενός νέου συστήματος εξαγωγής συμπερασμάτων με κατάσταση, σχεδιασμένου για συνεχή συνομιλία.
Ωστόσο, η εξαγωγή συμπερασμάτων μέσω ροής ήταν μόνο ένα μέρος της λύσης. Για να λειτουργεί σωστά στην παραγωγή, έπρεπε επίσης να εξασφαλίσουμε την αξιόπιστη παράδοση ήχου από τον πελάτη στη στοίβα εξαγωγής συμπερασμάτων και να αντιμετωπίσουμε τις προκλήσεις της διατήρησης κατάστασης.
Μία από τις πρώτες αποφάσεις μας ήταν να διαχωρίσουμε ρητά τη ροή πολυμέσων από τη λογική της εφαρμογής και την επιχειρηματική λογική. Ο ήχος μεταδίδεται μεταξύ του πελάτη και του φωνητικού μοντέλου μέσω μιας αποκλειστικής γρήγορης διαδρομής. Η ανάθεση, η χρήση εργαλείων και οι άλλες εργασίες της εφαρμογής εκτελούνται πίσω από ένα ασύγχρονο όριο RPC. Μια αργή κλήση εργαλείου ή υπηρεσία backend μπορεί να καθυστερήσει το δικό της αποτέλεσμα, αλλά δεν μπορεί να διακόψει τη ροή των πολυμέσων.
Αυτός ο διαχωρισμός προσφέρει επίσης στο σύστημα ένα σαφές όριο προσαρμογής. Οι εφαρμογές μπορούν να αλλάζουν τα εργαλεία, τις πολιτικές και τη συμπεριφορά του backend χωρίς να επηρεάζουν το frontend πολυμέσων που διατηρεί τη ροή του ήχου. Η ζωντανή διαδρομή παραμένει μικρή, προβλέψιμη και εστιασμένη στις εργασίες που πρέπει να εκτελούνται σε πραγματικό χρόνο.
Γράψαμε το frontend πολυμέσων και τη λογική εξαγωγής συμπερασμάτων σε Go, αντικαθιστώντας μια προηγούμενη υλοποίηση Python με asyncio. Αυτό βελτίωσε σημαντικά την ομαλότητα παράδοσης των πλαισίων, με το p95 του νέου συστήματος να αντιστοιχεί στο p50 του προηγούμενου.
Το WebRTC παρέχει τη βάση μεταφοράς. Έχει σχεδιαστεί για πολυμέσα χαμηλής καθυστέρησης και μπορεί να συνεχίζει να λειτουργεί παρά την απώλεια πακέτων, την απόκλιση ρολογιού και τις αλλαγές στη σύνδεση του πελάτη. Αν τα πακέτα φτάσουν αργά, το WebRTC μπορεί να επιμηκύνει ανεπαίσθητα τον ήχο ώστε να αποτρέψει τα κενά και έπειτα να επιταχύνει για λίγο την αναπαραγωγή, μέχρι να συγχρονιστεί ξανά με τον πραγματικό χρόνο.
Ελαχιστοποιώντας την ενδιάμεση αποθήκευση και τον αποκλεισμό σε όλο το σύστημα, μπορούμε να πετύχουμε την απόκριση κάτω του ενός δευτερολέπτου που αναμένουν οι άνθρωποι από μια συνομιλία.
Η εξαγωγή συμπερασμάτων με διατήρηση κατάστασης συνεπάγεται τους δικούς της λειτουργικούς συμβιβασμούς. Μια φωνητική συνεδρία μπορεί να παραμένει ενεργή για μεγάλο διάστημα, όμως το περιβάλλον της αυξάνεται συνεχώς, ενώ τα στιγμιότυπα μοντέλων ενεργοποιούνται και απενεργοποιούνται ανάλογα με τη ζήτηση.
Για να αντιμετωπίσουμε αυτά τα ζητήματα, δημιουργήσαμε έναν απρόσκοπτο μηχανισμό μεταβίβασης μεταξύ στιγμιοτύπων μοντέλων. Όταν απαιτείται μετάβαση, μπορούμε να προθερμάνουμε ένα στιγμιότυπο αντικατάστασης παράλληλα με το υπάρχον, να το προγεμίσουμε με το τρέχον περιβάλλον της συνεδρίας, να εκτελέσουμε εξαγωγή συμπερασμάτων και στα δύο παράλληλα και να μεταβούμε στο νέο μόλις είναι πλήρως έτοιμο.
Ο ίδιος βασικός μηχανισμός υποστηρίζει επίσης τη δυναμική συμπύκνωση περιβάλλοντος. Καθώς μια συνομιλία συνεχίζεται, το συσσωρευμένο περιβάλλον της μπορεί τελικά να υπερβεί το όριο περιβάλλοντος του μοντέλου. Η συμπύκνωση μπορεί να μειώσει το μέγεθος του περιβάλλοντος ώστε να χωρά στο όριο, αλλά η διαδικασία απαιτεί χρόνο. Και επειδή αλλάζει το προηγούμενο περιβάλλον, ακυρώνει επίσης την κρυφή μνήμη κλειδιών-τιμών (KV) του μοντέλου, η οποία αποθηκεύει κλειδιά και τιμές προσοχής από token που έχουν ήδη υποβληθεί σε επεξεργασία. Η αναδημιουργία αυτής της κατάστασης απαιτεί νέα προγέμιση, προκαλώντας πρόσθετη καθυστέρηση.
Αντί γι’ αυτό, αντιμετωπίζουμε τη συμπύκνωση ως ακόμη μία ελεγχόμενη μετάβαση. Ενώ το αρχικό στιγμιότυπο μοντέλου συνεχίζει τη συνομιλία, το σύστημα συμπυκνώνει το περιβάλλον και προετοιμάζει ένα στιγμιότυπο αντικατάστασης με το νέο περιβάλλον. Μόλις αυτό το στιγμιότυπο είναι έτοιμο, μπορούμε να μεταβούμε σε αυτό χωρίς καμία διακοπή των πολυμέσων. Έτσι, το σύστημα μπορεί να υποστηρίζει κλήσεις μεγάλης διάρκειας, εκτελώντας συμπύκνωση όποτε χρειάζεται.
Η απαιτητική επεξεργασία παραμένει εκτός της ζωντανής διαδρομής, ώστε η συνομιλία να συνεχίζεται απρόσκοπτα ακόμη και κατά τη μεταβίβαση.
Η δυνατότητα του GPT‑Live να καλεί υπάρχοντα κορυφαία μοντέλα τού προσφέρει μεγάλη ισχύ, αποσυνδέοντας ουσιαστικά την «ομιλία» από τη βαθύτερη «σκέψη». Για να δίνει, όμως, αυτή η αρχιτεκτονική δύο μοντέλων την αίσθηση ενός ενιαίου συστήματος, έπρεπε να λύσουμε δύο συναφή προβλήματα μηχανικής.
Ανάθεση για βαθύτερη εργασία
Το GPT-Live παρέχει γρήγορες, φυσικές απαντήσεις, ενώ το GPT-5.5 χειρίζεται την αναζήτηση στο παρασκήνιο
Πρώτον, τα αποτελέσματα πρέπει να επιστρέφουν αρκετά γρήγορα ώστε να είναι χρήσιμα στη συνεχιζόμενη συνομιλία. Έπρεπε, λοιπόν, να ελαχιστοποιήσουμε την καθυστέρηση σε όλη τη διαδρομή ανάθεσης, από τη δρομολόγηση και την επεξεργασία της προτροπής έως την εξαγωγή συμπερασμάτων και τις κλήσεις εργαλείων. Παράλληλα, άλλα συστήματα του προϊόντος εξακολουθούν να χρειάζονται διακριτά μηνύματα, οπότε έπρεπε να αναπαραστήσουμε τη συνεχιζόμενη συνομιλία σε μορφή που μπορούσαν να κατανοήσουν.
Όταν αποστέλλεται μια ανάθεση, βελτιστοποιούμε τον χρόνο έως ότου το κορυφαίο μοντέλο παραγάγει κάτι χρήσιμο για τη συνομιλία. Το φωνητικό μοντέλο μπορεί να διατηρήσει για λίγο τη ροή της συνομιλίας όσο ένα κορυφαίο μοντέλο εκτελεί συλλογιστική ή χρησιμοποιεί εργαλεία, αλλά δεν μπορεί να καλύψει μια υπερβολικά αργή απόκριση. Γι’ αυτό θεωρήσαμε ολόκληρο τον βρόχο ανάθεσης —δρομολόγηση, επεξεργασία προτροπής, εξαγωγή συμπερασμάτων και κλήσεις εργαλείων— μέρος του διαθέσιμου χρόνου απόκρισης.
Η πρώτη βελτιστοποίηση είναι η προετοιμασία του κορυφαίου μοντέλου και των εργαλείων που χρειάζεται πριν ζητηθεί η ανάθεση. Όταν ξεκινά μια φωνητική συνεδρία, ο διακομιστής εφαρμογής δημιουργεί μια συνεδρία εξαγωγής συμπερασμάτων για το κορυφαίο μοντέλο και την προγεμίζει με το αρχικό περιβάλλον της συνομιλίας, διασφαλίζοντας ότι η προτροπή έχει υποβληθεί σε πλήρη επεξεργασία πριν από το πρώτο ανατεθειμένο αίτημα.
Έπειτα, διατηρούμε αυτή τη συνεδρία εξαγωγής συμπερασμάτων διαθέσιμη σε όλη τη διάρκεια της φωνητικής συζήτησης και χρησιμοποιούμε σταθερή συνάφεια συνεδρίας για τα διαδοχικά αιτήματα. Σε συνδυασμό με την προσωρινή αποθήκευση προτροπών, αυτές οι τεχνικές μειώνουν την καθυστέρηση, διατηρώντας παράλληλα εύκολη την ανάκαμψη από αστοχία ενός worker.
Η προσπάθεια συλλογιστικής, τα όρια εξόδου, τα σχήματα εργαλείων και οι διαδρομές μετ’ επιστροφής μεταξύ μοντέλου και εργαλείων επηρεάζουν επίσης το πότε η συνομιλία λαμβάνει ένα χρήσιμο αποτέλεσμα. Προσαρμόσαμε, λοιπόν, αυτές τις παραμέτρους για ταχύτερες αποκρίσεις. Ελαχιστοποιώντας την εργασία που απαιτείται στη διαδρομή ανάθεσης, δώσαμε στο φωνητικό μοντέλο τη δυνατότητα να ενσωματώνει γρήγορα αποτελέσματα από τα κορυφαία μοντέλα μας.
Παρότι το φωνητικό μοντέλο λειτουργεί με συνεχείς ροές ομιλίας, πολλά από τα συστήματα γύρω του εξακολουθούν να βασίζονται σε εναλλαγές μεταξύ χρήστη και βοηθού, όπως το περιβάλλον συνομιλίας του ChatGPT και τμήματα της υποδομής αναλύσεων και ασφάλειας. Έτσι, ο διακομιστής εφαρμογής διαχωρίζει την αλληλεπικαλυπτόμενη και ενίοτε αμφίσημη συνομιλία σε διακριτά μηνύματα.
Καθώς φτάνει ο ήχος, ο διακομιστής χρησιμοποιεί τμηματικές απομαγνητοφωνήσεις και χρονικά σήματα για να συμπεράνει ποιος ομιλητής έχει τον λόγο και να δημιουργήσει μια ουρά μηνυμάτων. Το νεότερο μήνυμα παραμένει προσωρινό: το κείμενο, ο χρονισμός και η αντιστοίχισή του σε ομιλητή μπορούν να αλλάξουν καθώς φτάνει περισσότερη ομιλία. Μόλις ένας ομιλητής διατηρήσει τον λόγο αρκετά ώστε η απόδοση να είναι αξιόπιστη, ο διακομιστής οριστικοποιεί το αντίστοιχο μήνυμα.
Η επικάλυψη ομιλητών περιπλέκει τη διαδικασία. Μια σύντομη επιβεβαίωση από τον βοηθό ενώ μιλά ο χρήστης (π.χ. «μάλιστα» ή «εντάξει») δεν χρειάζεται απαραίτητα να γίνει ξεχωριστό μήνυμα. Μια ουσιαστική παρέμβαση του βοηθού, όμως, συχνά πρέπει να γίνεται. Παρομοίως, δίνουμε προτεραιότητα στη συνοχή των εμφανιζόμενων απαντήσεων του βοηθού, ακόμη κι όταν ο χρήστης παρεμβαίνει.
Κάθε πολιτική τμηματοποίησης εξισορροπεί την αμεσότητα με τη βεβαιότητα. Η υπερβολικά πρώιμη οριστικοποίηση δημιουργεί κατακερματισμένο ιστορικό και ασταθή σειρά, ενώ η μεγάλη αναμονή καθυστερεί τις απομαγνητοφωνήσεις και τις λειτουργίες που εξαρτώνται από αυτές. Το σύστημα διατηρεί, επομένως, δύο συναφείς όψεις της συνομιλίας: μια υποθετική όψη της τρέχουσας κατάστασης και ένα έγκυρο αρχείο όσων ειπώθηκαν. Η προβολή συνομιλίας στο περιβάλλον χρήστη της εφαρμογής μπορεί να χειρίζεται ενημερώσεις, οπότε χρησιμοποιεί την υποθετική όψη. Η καταγραφή στη ροή αναλύσεων, όμως, απαιτεί οριστική απομαγνητοφώνηση.
Έτσι, το υπόλοιπο ChatGPT αποκτά μια σταθερή εικόνα της συνομιλίας, χωρίς να επιβάλλεται εναλλαγή σειράς στη ζωντανή φωνητική διαδρομή.
Η άμεση απόκριση ξεκινά μόλις ο χρήστης πατήσει το κουμπί. Με το GPT‑Live, το σύστημα πρέπει να δημιουργήσει τη διαδρομή πολυμέσων και να αρχίσει να τροφοδοτεί το μοντέλο με ήχο πριν ξεκινήσει η συνομιλία. Έτσι, κάθε τμήμα της ακολουθίας εκκίνησης βρίσκεται στην κρίσιμη διαδρομή.
Όπως αναφέραμε παραπάνω, το WebRTC προσφέρει μια ισχυρή βάση πραγματικού χρόνου, αλλά η εκκίνηση μιας τυπικής συνεδρίας WebRTC απαιτεί έναν απροσδόκητα μεγάλο αριθμό χειραψιών πρωτοκόλλου και διαδρομών δικτύου μετ’ επιστροφής. Το WebRTC προϋπήρχε της έμφασης στην ελαχιστοποίηση των διαδρομών μετ’ επιστροφής που διαμόρφωσε μεταγενέστερα πρωτόκολλα όπως το QUIC. Ως αποτέλεσμα, τα υποκείμενα πρωτόκολλά του μερικές φορές επαναλαμβάνουν εργασίες όταν χρησιμοποιούνται μαζί. Για παράδειγμα, κάθε πρωτόκολλο περιλάμβανε τον δικό του μηχανισμό προστασίας από επιθέσεις DoS, ακόμη κι όταν δεν ήταν απαραίτητος στο πλαίσιο ολόκληρης της στοίβας WebRTC.
Αναλύσαμε τη στοίβα και αναπτύξαμε το WebRTC Abridged Roundtrip Protocol (WARP(ανοίγει σε νέο παράθυρο)), το οποίο μειώνει την εκκίνηση πολυμέσων και δεδομένων από έξι διαδρομές δικτύου μετ’ επιστροφής σε μόλις μία. Το WARP το πετυχαίνει μέσω μιας σειράς βελτιώσεων πρωτοκόλλου με συμβατότητα προς τα πίσω: ενσωμάτωση της χειραψίας DTLS μέσω ICE (SPED(ανοίγει σε νέο παράθυρο)), χρήση της ταχύτερης χειραψίας DTLS 1.3(ανοίγει σε νέο παράθυρο), εκ των προτέρων διαπραγμάτευση της χειραψίας SCTP (SNAP(ανοίγει σε νέο παράθυρο)) και εκ των προτέρων διαπραγμάτευση των καναλιών δεδομένων αντί της χρήσης του DCEP(ανοίγει σε νέο παράθυρο).
Σχεδιάσαμε το WARP ως ένα σύνολο ανοικτών προδιαγραφών, σε συνεργασία με μέλη της κοινότητας WebRTC, ώστε να επωφεληθεί από αυτή την εργασία το ευρύτερο οικοσύστημα. Προωθούμε τις προτάσεις μέσω της ομάδας εργασίας TSVWG του IETF, ενώ υποστήριξη για το WARP έχει ήδη προστεθεί τόσο στο libwebrtc όσο και στο Pion και βρίσκονται σε εξέλιξη προσπάθειες για άλλες υλοποιήσεις WebRTC.
Αφού βελτιστοποιήσαμε τη χειραψία πολυμέσων, απέμενε μία εμφανής καθυστέρηση: η ανταλλαγή σηματοδοσίας που χρησιμοποιείται για την κοινοποίηση παραμέτρων SDP πριν μπορέσει να συνδεθεί το WebRTC. Για να αφαιρέσουμε αυτή την ανταλλαγή από την κρίσιμη διαδρομή, αναπτύξαμε αυτό που ονομάζουμε Instant Connect. Διαπραγματεύεται αυτές τις παραμέτρους εκ των προτέρων, χωρίς να δεσμεύει χωρητικότητα διακομιστή και χωρίς αλλαγές στις υπάρχουσες υλοποιήσεις WebRTC.
Το Instant Connect λειτουργεί παράλληλα με την τυπική ροή σηματοδοσίας. Αν οι παράμετροι που έχουν συμφωνηθεί εκ των προτέρων είναι έγκυρες, ο διακομιστής μπορεί να δημιουργήσει τη συνεδρία μόλις φτάσει το πρώτο πακέτο πολυμέσων. Αν είναι παρωχημένες ή μη έγκυρες, η ροή σηματοδοσίας βρίσκεται ήδη σε εξέλιξη, οπότε ο πελάτης μπορεί να επιστρέψει σε αυτή χωρίς πρόσθετη καθυστέρηση.
Μαζί, το Instant Connect και το WARP μειώνουν δραστικά τον χρόνο από την πρόθεση του χρήστη έως τη ζωντανή ροή πολυμέσων. Με την ανταλλαγή SDP εκτός της κρίσιμης διαδρομής και το WARP να συμπτύσσει τη χειραψία μεταφοράς, ο πελάτης μπορεί πλέον να ξεκινήσει μια συνεδρία με ένα μόνο πακέτο UDP. Ο διακομιστής μπορεί να απαντήσει αμέσως, επιτρέποντας στο υπόλοιπο σύστημα να αρχίσει αυτό που ενδιαφέρει πραγματικά τον χρήστη: να ακούει και να αποκρίνεται.
Ένα σύστημα μπορεί θεωρητικά να φαίνεται γρήγορο, αλλά να κολλάει με πραγματική φωνητική κίνηση. Πριν επιτρέψουμε στο GPT‑Live να συνομιλεί με χρήστες, πραγματοποιήσαμε μια αθόρυβη δοκιμή, δρομολογώντας ένα μικρό και σταδιακά αυξανόμενο ποσοστό των συνεδριών της Φωνητικής λειτουργίας ChatGPT στην παραγωγή τόσο στην υπάρχουσα εμπειρία προηγμένης φωνητικής λειτουργίας όσο και στο νέο μας σύστημα. Η προηγμένη φωνητική λειτουργία συνέχισε να εξυπηρετεί κανονικά τους χρήστες, ενώ η σκιώδης διαδρομή εκτελούσε εξαγωγή συμπερασμάτων σε λειτουργία μόνο για ανάγνωση. Έτσι, το σύστημα εκτέθηκε σε πραγματικούς πελάτες, δίκτυα, διάρκειες συνεδριών και γεωγραφική κατανομή, χωρίς να αλλάξει αυτό που άκουγαν οι χρήστες.
Ένα από τα πρώτα διδάγματα ήταν ότι η χωρητικότητα δεν μπορούσε να αναχθεί στη ρυθμαπόδοση των GPU. Οι φωνητικές συνεδρίες παραμένουν ανοιχτές και στέλνουν συνεχώς πλαίσια, επομένως οι χειριστές ροών στην CPU, οι ουρές και οι διαδρομές δικτύου πρέπει να κλιμακώνονται μαζί με την εξαγωγή συμπερασμάτων. Υπό πραγματικό φόρτο, ένα υποστηρικτικό στοιχείο έφτασε σε κορεσμό νωρίτερα από ό,τι προέβλεπαν οι εκτιμήσεις των δοκιμών φόρτου, με αποτέλεσμα να συσσωρεύονται αιτήματα εξαγωγής συμπερασμάτων και να αυξάνεται σωρευτικά η καθυστέρηση. Αλλάξαμε το ερώτημα για τη χωρητικότητα από «Πόσα αιτήματα μπορεί να διαχειριστεί μια GPU;» σε «Πόσες ταυτόχρονες συνεδρίες μπορεί να υποστηρίζει το σύστημα, διατηρώντας κάθε πλαίσιο εντός χρονοδιαγράμματος;»
Η δοκιμή ανέδειξε επίσης τη γεωγραφία σε ζήτημα πρώτης προτεραιότητας. Η δρομολόγηση μιας συνεδρίας σε απομακρυσμένη υποδομή μπορεί να προσθέσει καθυστέρηση σε διάφορα σημεία κατά την εκκίνηση και τη ροή. Αρχίσαμε να επικυρώνουμε τις κυκλοφορίες μοντέλων μαζί με την περιφερειακή χωρητικότητα και τη διαμόρφωση κατεύθυνσης της κίνησης και, στη συνέχεια, να αναλύουμε την καθυστέρηση ανά γεωγραφική προέλευση. Η μεταφορά της εξαγωγής συμπερασμάτων πιο κοντά στους χρήστες βοήθησε, αλλά επιβεβαίωσε και το ευρύτερο δίδαγμα: η απόκριση από άκρο σε άκρο εξαρτάται από κάθε υπηρεσία στη διαδρομή, όχι μόνο από τον διακομιστή του μοντέλου.
Άλλες αστοχίες εμφανίζονταν μόνο σε ρεαλιστικούς κύκλους ζωής συνεδριών. Οι συνεδρίες μεγάλης διάρκειας αποκάλυψαν πιέσεις στη μνήμη και στη διατήρηση δεδομένων. Οι επανασυνδέσεις δοκίμασαν τη συμπύκνωση και την επαναφορά της κατάστασης. Οι συνηθισμένες αποσυνδέσεις πελατών αποκάλυψαν συνθήκες ανταγωνισμού στη διαδικασία τερματισμού. Αυτά τα προβλήματα εμφανίζονταν σπάνια σε σύντομες δοκιμές φόρτου, επειδή εξαρτώνταν από τον χρόνο, τη συσσωρευμένη κατάσταση και τη συμπεριφορά μεταξύ διαφορετικών υπηρεσιών.
Τέλος, οι δοκιμές στην παραγωγή μάς ανάγκασαν να βελτιώσουμε την παρατηρησιμότητα και τους ελέγχους κυκλοφορίας. Βρήκαμε μετρήσεις που συνένωναν διαφορετικές πηγές καθυστέρησης, πίνακες ελέγχου των οποίων τα συγκεντρωτικά στοιχεία έκρυβαν μεμονωμένες προβληματικές μηχανές και αποκλίσεις διαμόρφωσης μεταξύ των δοκιμασμένων και των ανεπτυγμένων συστημάτων. Ως απάντηση, προσθέσαμε λεπτομερέστερη τηλεμετρία, επικύρωση βάσει αποδεδειγμένα ορθών διαμορφώσεων, σταδιακή αύξηση της κίνησης και δυνατότητα γρήγορης απομόνωσης ή απενεργοποίησης μεμονωμένων διαδρομών. Η αθόρυβη δοκιμή εξελίχθηκε σε μια πρόβα πριν από την κυκλοφορία, όχι μόνο για το πόση κίνηση μπορούσε να δεχτεί το σύστημα, αλλά και για το πόσο γρήγορα μπορούσαμε να εντοπίσουμε, να περιορίσουμε και να αποκαταστήσουμε μια αστοχία.
Η κλιμάκωση του GPT‑Live στο επίπεδο του ChatGPT απαίτησε ένα εντελώς νέο σύστημα, χτισμένο γύρω από μία θεμελιώδη αρχή: η φωνή πρέπει να ρέει. Η εξαγωγή συμπερασμάτων μέσω ροής τροφοδοτεί συνεχώς το μοντέλο πλήρους αμφίδρομης επικοινωνίας με ήχο. Μια αποκλειστική διαδρομή πολυμέσων διασφαλίζει την αξιόπιστη παράδοση πλαισίων. Η ασύγχρονη ανάθεση επιτρέπει την παράλληλη εκτέλεση βαθύτερης σκέψης. Η βελτιστοποιημένη μεταφορά διατηρεί άμεση την απόκριση της εμπειρίας μέχρι τον χρήστη.
Η αρχιτεκτονική πίσω από το GPT‑Live εξελίσσεται ήδη σε μια ευρύτερη πλατφόρμα αλληλεπίδρασης σε πραγματικό χρόνο. Υποστηρίζει τη Φωνητική λειτουργία ChatGPT καθώς αυτή επεκτείνεται από τη συνομιλία στον συντονισμό πρακτόρων και θα αποτελέσει τη βάση του επερχόμενου GPT‑Live API. Με τον καιρό, θα επιτρέψει στις φωνητικές εμπειρίες να καλύπτουν περισσότερες συσκευές, εφαρμογές και τρόπους αλληλεπίδρασης, χωρίς να θυσιάζουν την αμεσότητα που κάνει μια φωνητική συζήτηση να μοιάζει ζωντανή.
Αν θέλετε να λύνετε τέτοιου είδους προβλήματα μηχανικής, ελάτε να εργαστείτε μαζί μας.

