Αρχιτεκτονική και αξιολόγηση ενός Search API με προτεραιότητα στην τεχνητή νοημοσύνη
Δημιουργία ενός κλιμακούμενου Search API που διαχειρίζεται 200 εκατομμύρια ημερήσια ερωτήματα χρησιμοποιώντας υβριδική ανάκτηση και έξυπνη επιμέλεια πλαισίου για μοντέλα AI
Η δημιουργία ενός κλιμακούμενου Search API που δίνει προτεραιότητα στην τεχνητή νοημοσύνη θέτει μοναδικές ερευνητικές προκλήσεις στη διασταύρωση της ανάκτησης πληροφοριών, της τεχνητής νοημοσύνης και του σχεδιασμού συστημάτων. Σε αντίθεση με τις παραδοσιακές υπηρεσίες που λειτουργούν με περιορισμένα δεδομένα, ένα Search API πρέπει να ευρετηριάζει συνεχώς δισεκατομμύρια έγγραφα, να κατανοεί την πρόθεση των ερωτημάτων σε διάφορες γλώσσες και τομείς, και να παρέχει σχετικά αποτελέσματα μέσα σε λίγα χιλιοστά του δευτερολέπτου. Στον κόσμο των πρακτόρων τεχνητής νοημοσύνης, ένα Search API πρέπει επίσης να επιμελείται προσεκτικά το πλαίσιο που παρέχεται στα μοντέλα των προγραμματιστών, ώστε να διασφαλίζεται ότι τα μοντέλα αυτά αποδίδουν ιδανικά και ενσωματώνουν μέγιστες ακριβείς πληροφορίες. Η αποτελεσματική μηχανική πλαισίου απαιτεί το API όχι μόνο να συλλαμβάνει τη συνάφεια σε επίπεδο εγγράφου, αλλά και να αντιμετωπίζει τις μεμονωμένες ενότητες και τμήματα των εγγράφων ως αυτόνομες μονάδες πρώτης τάξης.
Στο άρθρο αυτό, παρουσιάζουμε τον σχεδιασμό και την αξιολόγηση του Perplexity Search API. Αρχικά, εξερευνούμε την αρχιτεκτονική και τις βασικές τεχνικές αποφάσεις πίσω από την υποδομή αναζήτησης παραγωγής μας, η οποία επεξεργάζεται 200 εκατομμύρια ερωτήματα καθημερινά. Η αρχιτεκτονική μας συνδυάζει υβριδικούς μηχανισμούς ανάκτησης, αγωγούς κατάταξης πολλαπλών σταδίων, κατανεμημένη ευρετηρίαση και δυναμική ανάλυση μέσω μιας αυτοβελτιούμενης ενότητας κατανόησης περιεχομένου.
Στη συνέχεια, περιγράφουμε την προσέγγισή μας για εμπειρική αξιολόγηση της απόδοσης του Search API μέσω ενός νέου πλαισίου αξιολόγησης ανοιχτού κώδικα. Μέσω ολοκληρωμένης αξιολόγησης συγκριτικών δεικτών παράλληλα με υπάρχοντα εμπορικά API, αποδεικνύουμε κορυφαία απόδοση τόσο στην ποιότητα όσο και στην καθυστέρηση (latency). Το Perplexity Search API διατίθεται για προγραμματιστές παγκοσμίως από σήμερα.
[Εύρεση search_evals στο GitHub]
Δημιουργία συστήματος αναζήτησης βελτιστοποιημένου για μοντέλα τεχνητής νοημοσύνης
Από την ίδρυσή μας, κατανοήσαμε ότι οι ισχυρές δυνατότητες αναζήτησης θα ήταν κρίσιμες για την υποστήριξη των προϊόντων τεχνητής νοημοσύνης που καθορίζουν την κατηγορία και τα οποία θέλαμε να κυκλοφορήσουμε. Αρχικά, ελπίζαμε ότι αυτές οι δυνατότητες υπήρχαν ήδη σε δημόσια διαθέσιμη μορφή. Πειραματιστήκαμε με το χαρτοφυλάκιο των διαθέσιμων Search API στα τέλη του 2022, και η πολύ πρώτη έκδοση της μηχανής απαντήσεων του Perplexity ενσωμάτωνε στην πραγματικότητα μερικές από αυτές τις προσφορές. Συγκεκριμένα, αναλύαμε τα ερωτήματα των χρηστών, διαμορφώναμε και στέλναμε αιτήματα σε αυτά τα API, και συλλέγουμε τα αποτελέσματα ως πλαίσιο για τον μεταγενέστερο αγωγό παραγωγής μας.
Ωστόσο, καθώς οι χρήστες συνέρρεαν στο Perplexity, συνειδητοποιήσαμε γρήγορα ότι αυτά τα API δεν θα κλιμακώνονταν με την ανάπτυξή μας. Οι τιμές που συναντήσαμε ήταν εξωφρενικές, με έναν κορυφαίο πάροχο API να χρεώνει 200 δολάρια ανά χίλια ερωτήματα. Αλλά το πιο μοιραίο ήταν ότι αυτά τα παλαιού τύπου API απλώς δεν είχαν σχεδιαστεί για τα νέα παραδείγματα ανάκτησης που εισήγαγαν τα προηγμένα συστήματα τεχνητής νοημοσύνης.
Αρχικά, οι μορφές αιτημάτων και απαντήσεων αυτών των παλαιού τύπου API σχεδιάστηκαν για έναν κόσμο στον οποίο οι άνθρωποι θα ήταν οι αποκλειστικοί καταναλωτές των αποτελεσμάτων αναζήτησης. Ως αποτέλεσμα, αυτά τα API έδωσαν προτεραιότητα σε αποτελέσματα σε επίπεδο εγγράφου, αποκλείοντας πιο λεπτομερείς πληροφορίες που αποκαλύπτονται από υποενότητες εγγράφων. Η επιτυχία ενός μοντέλου τεχνητής νοημοσύνης εξαρτάται από την ποιότητα και τη συντομία του παρεχόμενου πλαισίου, και διαπιστώσαμε από πρώτο χέρι πώς η υπερβολικά ευρεία ανάκτηση μπορεί να εκτροχιάσει τα μοντέλα τεχνητής νοημοσύνης, ασχέτως του πόσο σχετικά μπορεί να φαίνονται συνολικά τα ανακτηθέντα έγγραφα. Οι προσπάθειές μας να επιβάλουμε την ακρίβεια σε ανακριβή αποτελέσματα είχαν περιορισμένη επιτυχία.
Παρατηρήσαμε επίσης ότι τα παλαιού τύπου API ήταν είτε πολύ παρωχημένα είτε πολύ αργά. Τα ανεξάρτητα ανεπτυγμένα Search API βασίζονταν σε ευρετήρια που ήταν ελλιπή και ενημερώνονταν πολύ σπάνια. Τα API που βασίζονται σε scraping, όπως τα διάφορα ανεπίσημα SERP API για την Αναζήτηση Google, επωφελούνταν από ένα πιο περιεκτικό ευρετήριο αλλά προσέφεραν απαράδεκτα υψηλή καθυστέρηση λόγω της αναποτελεσματικότητας που είναι εγγενής στην υποβολή ερωτημάτων σε μια μηχανή αναζήτησης τρίτου κατασκευαστή. Η υψηλή καθυστέρηση καθιστούσε τα API ακατάλληλα για εφαρμογές που απευθύνονται σε χρήστες, ενώ η παλαιότητα καθιστούσε τα σύνολα αποτελεσμάτων άχρηστα για οποιοδήποτε σύστημα τεχνητής νοημοσύνης που φιλοδοξεί να είναι ακριβές και αξιόπιστο.
Τέλος, παρατηρήσαμε το οικοσύστημα της τεχνητής νοημοσύνης να διχοτομείται μεταξύ της λεκτικής αναζήτησης και της σημασιολογικής αναζήτησης, με συστήματα να αναδύονται που ήταν υπερ-βελτιστοποιημένα για τη μία τροπικότητα εις βάρος της άλλης. Είδαμε την άνοδο των διανυσματικών βάσεων δεδομένων που δεν μπορούσαν να υποστηρίξουν επαρκώς ούτε απλά φίλτρα boolean. Τα παραδοσιακά backends αναζήτησης δεν τα πήγαν καλύτερα, με πρωτόγονη υποστήριξη για τις ευκαιρίες σημασιολογικής κατάταξης και ανάκτησης που ξεκλειδώθηκαν από την τεχνητή νοημοσύνη.
Καθώς συνειδητοποιήσαμε ότι η περαιτέρω βελτίωση του Perplexity θα απαιτούσε την κατασκευή της δικής μας αποκλειστικής υποδομής αναζήτησης, συμπυκνώσαμε τις παρατηρήσεις μας σε τρία βασικά κριτήρια:
Πληρότητα, φρεσκάδα και ταχύτητα: το ευρετήριο αναζήτησης πρέπει να είναι ολοκληρωμένο, συνεχώς ενημερωμένο και σχεδιασμένο για καθυστέρηση σε πραγματικό χρόνο.
Κατανόηση περιεχομένου σε λεπτομερές επίπεδο: η ευθραυστότητα του μοντέλου τεχνητής νοημοσύνης και τα περιορισμένα παράθυρα πλαισίου απαιτούν τα αποτελέσματα αναζήτησης να παρουσιάζονται και να κατατάσσονται στο πιο λεπτομερές δυνατό επίπεδο.
Υβριδική ανάκτηση και κατάταξη: τόσο οι αγωγοί ανάκτησης όσο και κατάταξης πρέπει να ενσωματώνουν λεκτικά και σημασιολογικά σήματα ώστε τα αποτελέσματα να είναι χρήσιμα για την τεχνητή νοημοσύνη.
Υποδομή ανίχνευσης (crawling) και ευρετηρίασης
Η λειτουργία σε κλίμακα Perplexity απαιτεί υποδομή που μπορεί να χαρτογραφήσει ολοκληρωμένα τον ιστό και να ανταποκρίνεται στη συνεχή εξέλιξή του. Το ευρετήριο αναζήτησής μας παρακολουθεί πάνω από 200 δισεκατομμύρια μοναδικά URL, με χωρητικότητα να παρακολουθεί πολλές εκατοντάδες δισεκατομμύρια επιπλέον.
Η διασφάλιση ότι το ευρετήριό μας καλύπτει ένα επαρκώς ολοκληρωμένο τμήμα του διαδικτύου και ότι κάθε έγγραφο αντανακλά την πιο πρόσφατη κατάσταση είναι ένα δύσκολο επίτευγμα. Υπάρχει μια εγγενής ένταση μεταξύ πληρότητας και φρεσκάδας: για έναν σταθερό προϋπολογισμό ευρετηρίασης, οι λειτουργίες ανανέωσης για υπάρχουσες σελίδες πρέπει να ανταγωνίζονται τις λειτουργίες ευρετηρίασης για νέες, μη επισκεπτόμενες σελίδες. Ισορροπούμε αυτή την ένταση μέσω ενός συνδυασμού κλιμάκωσης (η οποία χαλαρώνει τον περιορισμό βελτιστοποίησης αυξάνοντας τον προϋπολογισμό ευρετηρίασης) και ιεράρχησης με γνώμονα τη μηχανική μάθηση (η οποία διασφαλίζει ότι κάθε λειτουργία ευρετηρίασης είναι μέγιστα πολύτιμη για το ευρετήριο συνολικά).
Έχουμε κατασκευάσει ένα ευρετήριο κλίμακας exabyte και έναν μηχανισμό ανίχνευσης που κλιμακώνεται οριζόντια τόσο με το μέγεθος όσο και με τον όγκο ερωτημάτων. Ο ανιχνευτής και οι στόλοι ευρετηρίασης του Perplexity περιλαμβάνουν συλλογικά δεκάδες χιλιάδες CPU και εκατοντάδες terabytes μνήμης RAM, με σημαντικό περιθώριο για περαιτέρω κλιμάκωση. Συνδυάζουμε αυτή την υποδομή υπολογιστικής ισχύος με μια ισορροπία κρύας και ζεστής αποθήκευσης. Χρησιμοποιούμε τόσο εκπαιδευμένα μοντέλα όσο και ρυθμισμένες ευρετικές μεθόδους για να προσδιορίσουμε ποια έγγραφα πρέπει να διατηρούνται σε άμεση πρόσβαση, δίνοντας προτεραιότητα σε έγγραφα από έγκυρους τομείς, έγγραφα που αφορούν υποεξ εξεταζόμενα θέματα και άλλες κατηγορίες με τεράστιες δυνατότητες εμπλουτισμού του ευρετηρίου μας.
Αυτή η υποδομή επιτρέπει στο Perplexity να επεξεργάζεται δεκάδες χιλιάδες λειτουργίες ευρετηρίασης ανά δευτερόλεπτο. Αλλά ακόμη και με αυτόν τον σχετικά γενναιόδωρο προϋπολογισμό, η κλίμακα του διαδικτύου είναι πολύ τεράστια για να ευρετηριαστεί κάθε μεμονωμένο URL σε συχνή και επαναλαμβανόμενη βάση. Εδώ έρχεται η μηχανική μάθηση (ML). Εκπαιδεύουμε ένα μοντέλο ML για να προβλέψει εάν κάποιο δεδομένο υποψήφιο URL πρέπει να ευρετηριαστεί. Ο στόχος εκπαίδευσης έχει διαμορφωθεί ώστε να διασφαλίζεται ότι βαθμονομούμε την απόφασή μας ευρετηρίασης τόσο ως προς τη σπουδαιότητα όσο και ως προς την πιθανή συχνότητα ενημέρωσης του συγκεκριμένου URL. Βασιζόμαστε επίσης στη μηχανική μάθηση για να μας πει ακριβώς πότε να προγραμματίσουμε τη λειτουργία ευρετηρίασης. Για ιστότοπους με ρουτίνα δημοσίευσης και ανανέωσης, αυτό μας επιτρέπει να αναβάλλουμε τις λειτουργίες στο χρονικό σημείο όπου είναι πιθανό να είναι πιο χρήσιμες. Μέσω της συνεχιζμούμενης βελτίωσης αυτών των μοντέλων ML, είμαστε σε θέση να διατηρούμε ένα ευρετήριο που ικανοποιεί τις απαιτήσεις τόσο σε πληρότητα όσο και σε φρεσκάδα.
Παρόλο που η υποδομή ανίχνευσής μας κλιμακώνεται εύκολα οριζόντια, γνωρίζουμε ότι οι διαχειριστές ιστοτόπων αντιμετωπίζουν διαφορετικούς τεχνικούς περιορισμούς. Προσέχουμε να διατηρούμε έναν προβλέψιμο και διαχειρίσιμο ρυθμό αιτημάτων προς οποιονδήποτε δεδομένο τομέα. Το PerplexityBot, ο ανιχνευτής αναζήτησής μας, συμμορφώνεται με τα ρητά όρια που ορίζονται στα αρχεία robots.txt ή, ελλείψει ορίων που καθορίζονται από τον τομέα, με τα πρότυπα του κλάδου σχετικά με τους ρυθμούς αιτημάτων. Προσαρμόζουμε επίσης τη συμπεριφορά ανίχνευσής μας όταν εντοπίζουμε μη διαθεσιμότητα ιστότοπου. Το κατανεμημένο σύστημά μας είναι αρχιτεκτονικά σχεδιασμένο ώστε να επιβάλλει αυτά τα όρια ακόμη και σε δεκάδες χιλιάδες ταυτόχρονες λειτουργίες.
Αυτοβελτιούμενη κατανόηση περιεχομένου σε κλίμακα διαδικτύου
Ακόμη και με ένα από τα μεγαλύτερα και πιο φρέσκα ευρετήρια αναζήτησης στον πλανήτη, η ποιότητα των αποτελεσμάτων κάθε ερωτήματος εξαρτάται από την κατανόηση του περιεχομένου κάθε εγγράφου από το σύστημά μας. Εδώ, αντιμετωπίζουμε μια θεμελιώδη πρόκληση: το διαδίκτυο είναι ένα χαοτικό μέρος. Κανένα σταθερό σύνολο κανόνων ανάλυσης δεν μπορεί να διαχειριστεί την άπειρη ποικιλία διατάξεων, δομών και στυλ που βρίσκονται σε ολόκληρο το διαδίκτυο.
Λύσαμε αυτή την πρόκληση αναπτύσσοντας μια ενότητα κατανόησης περιεχομένου που αναλύει ιστοτόπους και εξάγει σημασιολογικά σημαντικό περιεχόμενο χρησιμοποιώντας δυναμικά σύνολα κανόνων. Ένας ιστότοπος πλούσιος σε καλά δομημένα δεδομένα σε μορφή λίστας ή πίνακα μπορεί να επωφεληθεί από πιο τυποποιημένους κανόνες ανάλυσης και εξαγωγής, ενώ ένας άλλος ιστότοπος που διαθέτει κυρίως περιεχόμενο ελεύθερης μορφής που δημιουργείται από χρήστες μπορεί να απαιτεί ένα πιο χαλαρό σύνολο κανόνων. Επειδή ο ιστός είναι κυρίως στατικός σε μικρά χρονικά διαστήματα, διαπιστώνουμε ότι η διάρκεια ζωής ενός δεδομένου κανόνα είναι σχετικά μεγάλη. Αλλά καθώς οι ιστότοποι εξελίσσονται με την πάροδο του χρόνου και καθώς μαθαίνουμε περισσότερα σχετικά με τους καλύτερους τρόπους εξαγωγής πληροφοριών, τα σύνολα κανόνων μας απαιτούν επίσης συνεχή συντήρηση.
Για να διευκολύνουμε αυτή τη δυναμική προσαρμογή, στρεφόμαστε (φυσικά) στην τεχνητή νοημοσύνη. Στην κλίμακα του Perplexity, παρατηρούμε μια απίστευτα πλούσια τομή του ιστού κατά την εξυπηρέτηση εκατομμυρίων ερωτημάτων χρηστών ανά ώρα. Αυτό αποτελεί τη βάση για έναν επαναληπτικό κύκλο αυτοβελτίωσης. Παρατηρούμε τη συμπεριφορά ανάλυσης και τα εξαγόμενα αποτελέσματα των τρεχόντων συνόλων κανόνων μας σε ολόκληρο το σύμπαν των ερωτημάτων μας. Στη συνέχεια, χρησιμοποιούμε προηγμένα LLM για να αξιολογήσουμε την απόδοση σε δύο βασικές διαστάσεις:
Πληρότητα: το ευρετήριό μας πρέπει να λαμβάνει όσο το δυνατόν περισσότερο σημασιολογικά σημαντικό περιεχόμενο, αποφεύγοντας παράλληλα την ψευδή εξαγωγή πληροφοριών που δεν είναι ενημερωτικές ή στερούνται νόηματος.
Ποιότητα: το ευρετήριό μας βασίζεται σε περιεχόμενο υψηλής ποιότητας τόσο στην ουσία όσο και στη μορφή. Οι πληροφορίες πρέπει να συλλαμώνονται με τρόπο που να διατηρεί την αρχική δομή και διάταξη του περιεχομένου.
Σημειώστε ότι η πληρότητα και η ποιότητα παρουσιάζουν μια άλλη εγγενή ένταση: η χειροκίνητη βελτιστοποίηση για την ποιότητα είναι δυνατή, αλλά οι προκύπτοντες κανόνες ανάλυσης ενδέχεται να αποτύχουν να συλλάβουν κρίσιμο περιεχόμενο. Ομοίως, θα μπορούσαμε να κωδικοποιήσουμε με το χέρι επιτρεπτικούς κανόνες που εφαρμόζουν ελάχιστο φιλτράρισμα στο ακατέργαστο περιεχόμενο, κάτι που θα μπορούσε να βελτιώσει την πληρότητα αλλά εις βάρος της ποιότητας. Γι' αυτό στρεφόμαστε στην αυτοβελτίωση μέσω τεχνητής νοημοσύνης για να εξελίξουμε το σύνολο κανόνων μας με τρόπο που να μπορεί να βελτιστοποιήσει και τα δύο ταυτόχρονα με τρόπο προσαρμοσμένο στον τομέα.
Συγκεκριμένα, μετά από κάθε αξιολόγηση της απόδοσης ανάλυσης με καθοδήγηση από LLM, το σύστημά μας διαμορφώνει ένα σύνολο προτεινόμενων αλλαγών στο σύνολο κανόνων για την αντιμετώπιση των πιο σημαντικών κατηγοριών σφαλμάτων. Αυτά τα σύνολα κανόνων υποβάλλονται σε περαιτέρω επικύρωση, μετά την οποία αναπτύσσουμε τη νέα έκδοση στον ευρετηριαστή μας. Δεδομένου ότι οι βελτιώσεις στη λογική ανάλυσης και εξαγωγής μπορούν μόνο να ωφελήσουν τις μελλοντικές λειτουργίες ευρετηρίασης, οι επενδύσεις μας στην επαναυρετηρίαση βελτιστοποιημένη με ML είναι ιδιαίτερα σημαντικές: η συνεχής ανανέωση εγγράφων υψηλς κυκλοφορίας χρησιμοποιώντας την τελευταία έκδοση αυτής της λογικής διασφαλίζει έναν σφιχτό κύκλο αυτοβελτίωσης.
Αυτοί οι κανόνες έχουν σημασία όχι μόνο για τη βασική απόδοση ανάλυσης αλλά και για την τμηματοποίηση σε μονάδες υποεγγράφων. Όσον αφορά τα προηγμένα LLM, κάθε token πλαισίου είναι πολύτιμο. Ένας μεγάλος όγκος προηγ B.εργασίας έχει τεκμηριώσει πώς η απόδοση των LLM υποβαθμίζεται με την αύξηση του μεγέθους του πλαισίου και τη μόλυνση του πλαισίου με άσχετες πληροφορίες. Η ύπαρξη καλά δομημένης, περιεκτικής ανάλυσης μας επιτρέπει να αποδομούμε τα έγγραφα σε αυτόνομα τμήματα, καθένα από τα οποία μπορεί να ανακτηθεί και να καταταχθεί μεμονωμένα κατά τον χρόνο εκτέλεσης του ερωτήματος.
Αγωγός ανάκτησης και κατάταξης
Η σύγχρονη αναζήτηση απαιτεί τη διασφάλιση τόσο της πληρότητας όσο και της συνάφειας υπό έναν αυστηρό περιορισμό καθυστέρησης. Ο αγωγός ανάκτησης και κατάταξης του Perplexity το επιτυγχάνει αυτό μέσω μιας αρχιτεκτονικής πολλαπλών σταδίων που βελτιώνει προοδευτικά τα αποτελέσματα με μια σειρά ολοένα πιο εξελιγμένων ενοτήτων. Επιλύουμε τα πιθανά σημεία συμφόρησης κλιμακώνοντας οριζόντια τυχόν πιθανλ σημεία συμφόρησης στον μέγιστο δυνατό βαθμό.
Ο αγωγός ξεκινά με την ανάκτηση από το ευρετήριό μας. Δεν επιβάλλουμε επιλογή μεταξύ λεκτικής και σημασιολογικής ανάκτησης. Αντίθετα, υποβάλουμε ερώτημα στο ευρετήριο αναζήτησης μέσω και των δύο τροπικοτήτων και συγχωνεύουμε τα αποτελέσματα σε ένα υβριδικό σύνολο υποψηφίων. Σε αυτό το στάδιο, η προτεραιότητα είναι η πληρότητα έναντι της ακρίβειας - τα επόμενα στάδια του αγωγού θα βελτιστοποιήσουν την ακρίβεια.
Ο αγωγός συνεχίζεται με στάδια προφιλτραρίσματος, στα οποία εφαρμόζουμε βασικές ευρετικές μεθόδους και φίλτρα πρώτης κοπής για να αφαιρέσουμε σαφώς μη ανταποκρινόμενο ή παρωχημένο περιεχόμενο από το σύνολο των υποψηφίων.
Στη συνέχεια εφαρμόζουμε πολλαπλά στάδια ολοένα πιο προηγμένης κατάταξης. Τα αρχικά στάδια βασίζονται σε λεξικούς βαθμολογητές και βαθμολογητές βάσει embeddings, βελτιστοποιημένους για ταχύτητα. Καθώς το σύνολο των υποψηφίων περιορίζεται σταδιακά, χρησιμοποιούμε στη συνέχεια ισχυρότερα μοντέλα reranker με cross-encoder για να διαμορφώσουμε οριστικά το τελικό σύνολο αποτελεσμάτων. Χάρη στις πολυάριθμες επενδύσεις μας στην απόδοση inference, μπορούμε να αξιοποιούμε αρχιτεκτονικές μοντέλων αιχμής για αυτά τα μεταγενέστερα στάδια, διατηρώντας παράλληλα χαμηλή τη συνολική καθυστέρηση της κατάταξης.
Σε όλη τη διάρκεια αυτού του αγωγού, ανακτούμε και βαθμολογούμε τα αποτελέσματα τόσο σε επίπεδο εγγράφου όσο και σε επίπεδο υποεγγράφου. Όπως συζητήθηκε παραπάνω, η τεχνητή νοημοσύνη απαιτεί προσεκτική μηχανική πλαισίου. Ο αγωγός μας έχει σχεδιαστεί για να προβάλλει τις πιο ατομικές δυνατές μονάδες στο μοντέλο, έτσι ώστε οι μεταγενέστεροι καταναλωτές να μπορούν να ενσωματώσουν αυτές τις ακριβείς μονάδες χωρίς να τραβούν άσχετο πλαίσιο από αλλού στα έγγραφα πηγής.
Η διασφάλιση υψηλής ποιότητας σε κάθε στάδιο αυτού του αγωγού είναι δυνατή μόνο μέσω του συν-σχεδιασμού με το χαρτοφυλάκιο προϊόντων του Perplexity. Κάθε λεπτομέρεια της στοίβας κατάταξης έχει σχεδιαστεί για να αξιοποιεί το πλούσιο σήμα που παράγεται από τα εκατομμύρια αιτημάτων χρηστών που εξυπηρετούμε κάθε ώρα της ημέρας. Η συντριπτική πλειονότητα αυτού του σήματος είναι αυτοματοποιημένη, με κάθε παραγόμενη απάντηση του Perplexity να παρέχει ένα εμπειρικό σημείο δεδομένων σχετικά με την ποιότητα αναζήτησης όπως χρησιμοποιείται σε μια ζωντανή ροή εργασίας πρακτόρων. Συνδυάζουμε αξιολογήσεις που βασίζονται στην τεχνητή νοημοσύνη με ζωντανή ανθρώπινη ανατροφοδότηση για να εμπλουτίσουμε τα δεδομένα εκπαίδευσης για τα μοντέλα embedding και κατάταξης πολύ πέρα από όσα μπορεί να προσφέρει οποιοδήποτε χειροκίνητα κατασκευασμένο σύνολο δεδομένων.
Αυτή η συνέργεια μεταξύ αναζήτησης και προϊόντος είναι μοναδική για το Perplexity. Οι παλαιού τύπου μηχανές αναζήτησης περιορίζονται στο χονδροειδές σήμα που παρέχεται από την τηλεμετρία των μπλε συνδέσμων. Οι νεότερες προσφορές αναζήτησης προσπάθησαν να υλοποιήσουν ορισμένες από αυτές τις έννοιες που προωθούν την τεχνητή νοημοσύνη, αλλά στερούνται περιβαλλόντων πραγματικού κόσμου που μπορούν να επικυρώσουν την ποιότητα αναζήτησης και να παρέχουν τον πλούτο του σήματος που απαιτείται για κύκλους ταχείας βελτίωσης. Είμαστε τυχεροί που έχουμε το συστατικό που λείπει: ένα ζωντανό πεδίο δοκιμών για την ποιότητα αναζήτησης, που τροφοδοτείται από προηγμένα LLM και δοκιμάζεται συνεχώς στη μάχη από εκατομμύρια περίεργους χρήστες παγκοσμίως.
Καθιέρωση ενός νέου ορίου για την ποιότητα και την απόδοση
Αφού κατασκευάσαμε το Perplexity Search API και το SDK για να διαθέσουμε την υποδομή αναζήτησής μας σε προγραμματιστές παγκοσμίως, θέλαμε να κατανοήσουμε πώς μετριούνται οι διάφορες εμπορικές προσφορές API σε περιπτώσεις χρήσης τεχνητής νοημοσύνης στον πραγματικό κόσμο. Έ έχει γίνει σύνηθες να αξιολογούνται τα ίδια τα μοντέλα τεχνητής νοημοσύνης, αλλά χρειαζόμασταν μια τροπή σε αυτό το μοτίβο: να αξιολογήσουμε την ποιότητα των API αναζήτησης όταν καλούνται από μοντέλα τεχνητής νοημοσύνης.
Αρχικά στραφήκαμε στο οικοσύστημα ανοικτού κώδικα για να κατανοήσουμε την προγενέστερη τέχνη. Βρήκαμε πολλά από τα βασικά συστατικά για αυστηρή αξιολόγηση, αλλά κανένα framework που να ενσωματώνει αυτά τα συστατικά σε μια λύση benchmarking έτοιμη προς χρήση. Έτσι, ξεκινήσαμε να αναπτύσσουμε ένα πλαίσιο αξιολόγησης που θα μπορούσε να χρησιμοποιηθεί όχι μόνο από την Perplexity, αλλά από οποιονδήποτε ερευνητή ή προγραμματιστή που επιδιώκει να συγκρίνει APIs αναζήτησης.
Χρησιμοποιώντας αυτό το πλαίσιο αξιολόγησης, αξιολογήσαμε αυστηρά το Perplexity Search API παράλληλα με άλλες προσφορές. Η βελτιστοποίηση της απόδοσης αναζήτησης είναι πολύπλοκη, με πολλές λεπτές ανταλλαγές μεταξύ ποιότητας και ταχύτητας. Σε μια νίκη για τους προγραμματιστές, διαπιστώσαμε ότι το Perplexity Search API θέτει ένα νέο κορυφαίο επίπεδο (state-of-the-art) τόσο για την ποιότητα όσο και για την καθυστέρηση. Οι προγραμματιστές δεν χρειάζεται πλέον να επιλέγουν μεταξύ της δημιουργίας αστραπιαία γρήγορων εφαρμογών και της διασφάλισης αποτελεσμάτων υψηλής ποιότητας: με το Perplexity, μπορούν να τα έχουν και τα δύο.
Σχεδιασμός αξιόπιστων αξιολογήσεων για ροές εργασίας αναζήτησης πρακτόρων
Ξεκινήσαμε ορίζοντας τρεις κατευθυντήριες αρχές για το πλαίσιο αξιολόγησής μας:
Φάσμα πολυπλοκότητας: το πλαίσιο αξιολόγησης θα πρέπει να μετρά την απόδοση σε απλές και πολύπλοκες περιπτώσεις χρήσης πρακτόρων τεχνητής νοημοσύνης.
Ουδετερότητα: το πλαίσιο αξιολόγησης θα πρέπει να αξιολογεί όλα τα API σε ίση βάση.
Απλότητα: παρόλο που ορισμένες περιπτώσεις χρήσης μπορεί να είναι πολύπλοκες, το ίδιο το πλαίσιο θα πρέπει να είναι όσο το δυνατόν πιο απλό, ώστε άλλοι να μπορούν να το κατανοήσουν, να αναπαράγουν τα αποτελέσματα και να επεκτείνουν το πλαίσιο με ελάχιστη κόπωση.
Το ελαφρύ πλαίσιο αξιολόγησής μας, search_evals, επιτυγχάνει estos στόχους μέσω ενός απλού αρθρωτού σχεδιασμού. Αναπτύξαμε δύο υποδοχές πρακτόρων τεχνητής νοημοσύνης για να αποτυπώσουμε τόσο τις κλασικές περιπτώσεις χρήσης αναζήτησης μίας βολής όσο και τις προηγμένες ροές εργασίας πρακτόρων (που απεικονίζονται από διάφορα προϊόντα «εις βάθος έρευνας» που είναι ευρέως διαθέσιμα στην αγορά καταναλωτών). Και οι δύο υποδοχές υλοποιήθηκαν με έναν απλό τρόπο που αφήνει ελάχιστα περιθώρια για κρυφό πλεονέκτημα.
Για να καθοδηγήσουμε τις αξιολογήσεις μας, υιοθετήσαμε τέσσερα benchmarks: το SimpleQA και το FRAMES για αναζήτηση ενός βήματος, μαζί με το BrowseComp και το HLE για εις βάθος έρευνα. Συλλογικά, αυτά τα benchmarks παρέχουν ευρέως αποδεκτά κριτήρια μέτρησης για πράκτορες γνώσης. Ακολουθώντας την καθιερωμένη συμβατική πρακτική, βαθμολογούμε όλα τα benchmarks χρησιμοποιώντας την ίδια μεθοδολογία ταξινομητή με προτροπή (prompted classifier) που χρησιμοποιήθηκε στην αρχική εργασία. Οι ακριβείς υλοποιήσεις των benchmark (συμπεριλαμβανομένης της λογικής βαθμολόγησης) μπορούν να ελεγχθούν στο αποθετήριό μας στο GitHub.
Σχεδιάσαμε το πλαίσιο έχοντας κατά νου την αναπαραγωγιμότητα και την επεκτασιμότητα. Τόσο οι βαθμολογίες σε επίπεδο εργασίας όσο και τα υποκείμενα αποτελέσματα των πρακτόρων αποθηκεύονται με κάθε εκτέλεση. Πρόσθετες υποδοχές, benchmarks και προσφορές Search API μπορούν εύκολα να ενσωματωθούν. Οι ερευνητές και οι προγραμματιστές μπορούν να διαβάσουν τα έγγραφα του GitHub για περισσότερες πληροφορίες σχετικά με την επέκταση του πλαισίου για την αντιμετώπιση των ακριβών αναγκών σας.
Αποτελέσματα αξιολόγησης
Οπλισμένοι με αυτό το πλαίσιο αξιολόγησης, ξεκινήσαμε να αξιολογήσουμε το Search API μας σε σύγκριση με άλλες προσφορές API. Σε όλα τα δοκιμασμένα benchmarks, το Perplexity στέκεται ως το ταχύτερο και υψηλότερης ποιότητας API στην αγορά.
Διαπιστώσαμε ότι οι επενδύσεις μας που περιγράφηκαν παραπάνω στην αποδοτικότητα του index, της retrieval και της ranking απέδωσαν πλουσιοπάροχα. Η διάμεση καθυστέρηση της Perplexity ανέρχεται σε 358ms, πάνω από 150ms ταχύτερα από τον δεύτερο ταχύτερο πάροχο. Η καθυστέρηση στο 95ο εκατοστημόριο παραμένει άνετα κάτω από τα 800ms. Με τις υψηλές μετρήσεις TTFT (time-to-first-token) των σημερινών frontier models, κάθε χιλιοστό του δευτερολέπτου μετρά στην εμπειρία δημιουργίας ευχάριστων εμπειριών χρήστη. Έχουμε περάσει τα τελευταία δύο χρόνια βελτιστοποιώντας την καθυστέρηση για τους δικούς μας χρήστες, και μας ικανοποιεί το γεγονός ότι αυτές οι ίδιες επενδύσεις θα ωφελήσουν πλέον και την κοινότητα προγραμματιστών.
Καθυστέρηση Search API
(αιτήματα που ξεκίνησαν από το AWS us-east-1)
p50 | p75 | p90 | p95 | |
Perplexity | 358ms | 443ms | 604ms | 763ms |
Exa | 1375ms | 1499ms | 1798ms | 2188ms |
Brave | 513ms | 637ms | 728ms | 808ms |
Βασισμένο σε SERP* | 1342ms | 1586ms | 1743ms | 1790ms |
Εκατοστημόρια καθυστέρησης του Search API για αιτήματα που ξεκίνησαν από το AWS us-east-1.
* Πολλοί πάροχοι Search API χρησιμοποιούν scraping SERP ως βάση για τα αποτελέσματά τους. Για να αποτυπώσουμε την απόδοση τέτοιων προσεγγίσεων, χρησιμοποιούμε ένα αντιπροσωπευτικό API που βασίζεται σε Google SERP και προσφέρεται από την Tavily.
Αυτό το πλεονέκτημα ταχύτητας δεν έρχεται εις βάρος της ποιότητας. Το Perplexity Search API αποφέρει απόδοση αιχμής τόσο σε ρυθμίσεις αναζήτησης ενός βήματος όσο και σε ρυθμίσεις εις βάθος έρευνας. Σε κάθε δοκιμασμένο benchmark, το Perplexity ηγείται της κούρσας στην παροχή αποτελεσμάτων υψηλής ποιότητας που μπορούν να τροφοδοτήσουν ροές εργασίας τεχνητής νοημοσύνης ποικίλης πολυπλοκότητας. Η διαφορά μεταξύ του Perplexity και της καλύτερης εναλλακτικής λύσης είναι ιδιαίτερα έντονη στα SimpleQA και HLE, υποδεικνύοντας ότι αυτά τα αποτελέσματα είναι ισχυρά σε όλο το φάσμα της πολυπλοκότητας των εργασιών.
Όπως και με την καθυστέρηση, η ηγεσία μας στην ποιότητα αναζήτησης απορρέει από την ηγεσία μας στη δημιουργία απολαυστικών, εξαιρετικά επισκέψιμων προϊόντων τεχνητής νοημοσύνης. Τα εκατομμύρια των χρηστών μας χρησιμοποιούν το Perplexity για να ικανοποιήσουν την περιέργειά τους για κάθε πιθανό θέμα, και τα προκύπτοντα σήματα ποιότητας και συνάφειας επιτρέπουν στα μοντέλα αναζήτησής μας να βελτιώνονται με κάθε ώρα που περνάει.
Benchmarks ποιότητας Search API
Αναζήτηση ενός βήματος | Εις βάθος έρευνα | |||
SimpleQA | FRAMES | BrowseComp | HLE | |
Perplexity | .930 | .453 | .371 | .288 |
Exa | .781 | .399 | .265 | .242 |
Brave | .822 | .320 | .221 | .191 |
Βασισμένο σε SERP* | .890 | .437 | .348 | .248 |
Βαθμολογίες ποιότητας του Search API στο SimpleQA, FRAMES, BrowseComp και HLE.
Βρισκόμαστε ακόμη στις πρώτες μέρες των εγγενών στην τεχνητή νοημοσύνη μηχανών αναζήτησης, και η τέχνη και η επιστήμη της μέτρησης αναμφίβολα θα εξελιχθούν. Προσκαλούμε την κοινότητα να συνεισφέρει αναπτύσσοντας αυστηρές και δημιουργικές μεθόδους για την αξιολόγηση των μηχανών αναζήτησης στην εποχή των πρακτόρων τεχνητής νοημοσύνης.
Το δομικό στοιχείο για το επόμενο κεφάλαιο της τεχνητής νοημοσύνης
Το μέλλον των συστημάτων πρακτόρων και των έξυπνων βοηθών θα εξαρτηθεί από τη διαθεσιμότητα πλούσιων προγραμματιστικών διεπαφών στη συλλογική γνώση του κόσμου. Οι παλαιού τύπου μηχανές αναζήτησης σήμερα έχουν κορεστεί σε χρήση σε περίπου 10¹⁰ ερωτήματα την ημέρα, έναν αριθμό που πιθανότατα έχει φτάσει στο peak του. Η επόμενη γενιά συστημάτων αναζήτησης και ανάκτησης θα εξυπηρετήσει πολλαπλάσια αιτήματα, καθώς ένα διαρκώς αναπτυσσόμενο σύμπαν πρακτόρων τεχνητής νοημοσύνης βασίζεται σε αυτά για ακριβείς πληροφορίες σε πραγματικό χρόνο.
Οι προσπάθειές μας μέχρι σήμερα μας έχουν τοποθετήσει ως την ταχύτερη, πιο αποδοτική μηχανή αναζήτησης προσβάσιμη μέσω API. Αλλά ακόμη πιο φιλόδοξη καινοτομία θα χρειαστεί για να τροφοδοτήσουμε το επόμενο κεφάλαιο της τεχνητής νοημοσύνης. Πώς κλιμακώνουμε αποτελεσματικά αυτά τα συστήματα μπροστά στη διαρκώς αυξανόμενη ζήτηση; Πώς μπορούν αυτά τα συστήματα αναζήτησης να βελτιστοποιηθούν υπό το φως νέων προσεγγίσεων στη μηχανική πλαισίου και τη μετα-εκπαίδευση; Και πώς πλοηγούμαστε στην πανταχού παρούσα ένταση μεταξύ πληρότητας, επικαιρότητας και καθυστέρησης; Αυτά είναι ανοιχτά ερωτήματα τα οποία το Perplexity, με τον συνδυασμό αποτυπώματος προϊόντος, κλίμακας και τεχνικού ταλέντου, βρίσκεται σε μοναδική θέση να αντιμετωπίσει.
Παραπομπή
@online{perplexity2025ArchitectingAndEvaluatingAnAiFirstSearchApi,
author = {{Perplexity} and Aleksandr Bogutskii and Aleksandr Nikolenko and Aleksei Bykov and Alexander Pecheny and Alexandr Yarats and Arsenii Shevchenko and Denis Bykov and Dmitry Pervukhin and Ismail Gadzhiev and James Liounis and Kevin Hu and Kirill Priemko and Maksim Gaiduk and Maksim Morozov and Marko Kevac and Michael Liang and Mikhail Galanin and Nandor Licker and Nataliya Pevgova and Nikita Kireev and Nikolai Tretiak and Paul Schofield and Saif Ali Raja and Saleh Alghusson and Sebastian Sepulveda and Sergei Miller and Svyatoslav Feldsherov and Vitalii Polshkov and Vladimir Zaytsev and Denis Yarats},
title = {{Architecting and evaluating an AI-first Search API}},
date = {2025-09-25},
url = {https://www.perplexity.ai/hub/blog/architecting-and-evaluating-an-ai-first-search-api}
}