Η αποχώρηση από το API είναι μία γραμμή κώδικα.
Η επανεγγραφή για την οποία όλοι βάζουν προϋπολογισμό δεν υπάρχει. Τα self-hosted serving stacks μιλούν το ίδιο OpenAI-compatible API που ήδη καλεί ο κώδικάς σας, οπότε η μεταφορά της υδραυλικής εγκατάστασης είναι το base URL. Το ειλικρινές υπόλοιπο είναι evals, όχι μηχανική, και κόβει και προς τις δύο κατευθύνσεις: η ίδια γραμμή που σας αφήνει να φύγετε από εκείνους σας αφήνει να φύγετε και από εμάς.
Σε αυτό το άρθρο 3 ενότητες
- Οι ομάδες μένουν σε hosted AI APIs πολύ αφότου θέλουν να φύγουν, γιατί έχουν προϋπολογίσει μια επανεγγραφή. Για την υποδομή από κάτω, εκείνη η επανεγγραφή δεν υπάρχει: τα self-hosted serving stacks εκθέτουν το ίδιο OpenAI-compatible API που ήδη μιλά ο κώδικάς σας.
- Η μεταφορά από την πλευρά της εφαρμογής είναι το base URL και το key. Τα prompts σας, οι streaming handlers σας, τα εργαλεία σας: αμετάβλητα.
- Το ειλικρινές υπόλοιπο είναι η συμπεριφορά του μοντέλου: ένα διαφορετικό μοντέλο απαντά διαφορετικά, οπότε η πραγματική δουλειά της μεταφοράς είναι να τρέξετε τα evals σας στις δικές σας εργασίες. Μικρότερη από επανεγγραφή, και δοκιμάσιμη πριν δεσμευτείτε.
- Η ίδια ιδιότητα σας προστατεύει και στην έξοδο: open weights συν ένα τυπικό API σημαίνει ότι και η αποχώρηση από εμάς είναι μία γραμμή. Πουλάμε σε πελάτες που μπορούν να φύγουν.
Η σύσκεψη γίνεται παντού. Όλοι στο δωμάτιο θέλουν να φύγουν από το hosted API, διαλέξτε τον λόγο: τα δεδομένα που δεν θα έπρεπε να φεύγουν, η κατηγορία rate limit που δεν θα αντέξει το roadmap, ο λογαριασμός που κλιμακώνεται με την επιτυχία. Και τότε κάποιος λέει την πρόταση που την τελειώνει: είμαστε πολύ ενσωματωμένοι, θα ήταν επανεγγραφή. Έξι μήνες μετά, ίδια σύσκεψη, ίδια πρόταση, ένα ακόμα sprint retry logic στο ενδιάμεσο.
Η πρόταση αξίζει έναν έλεγχο, γιατί η ενσωμάτωση που περιγράφει έχει βάθος μίας τιμής ρύθμισης.
h2 (#the-standard): Ο κόσμος τυποποιήθηκε ενώ δεν κοιτούσατε
Κάτι χρήσιμο συνέβη στον κόσμο του serving τα τελευταία χρόνια: το format του OpenAI API έγινε το de facto wire standard για την επικοινωνία με γλωσσικά μοντέλα, και τα open-source serving stacks το υιοθέτησαν σκόπιμα. Ίδια routes, ίδιο format αιτήματος, ίδιο πρωτόκολλο streaming, για τον ευρέως χρησιμοποιούμενο πυρήνα της επιφάνειας: chat completions, streaming, embeddings. Όταν παραδίδουμε ένα ιδιωτικό endpoint, μιλά εγγενώς αυτή τη διάλεκτο. Το SDK σας δεν ξέρει ότι μετακόμισε. Αν η εφαρμογή σας στηρίχθηκε στα ιδιόκτητα έξτρα ενός vendor, αυτό είναι ένας σύντομος έλεγχος, όχι επανεγγραφή, και τον περνάμε μαζί σας: τα περισσότερα έξτρα έχουν άμεσα ισοδύναμα ή λεπτά shims.
- OPENAI_BASE_URL=https://api.vendor.example/v1
+ OPENAI_BASE_URL=https://inference.yourcompany.internal/v1
OPENAI_API_KEY=**** # your key, issued by you, revoked by youPrompts, streaming handlers, retry logic, εργαλεία: ανέγγιχτα. Αυτό το diff είναι ολόκληρη η μεταφορά της υδραυλικής εγκατάστασης. Γι' αυτό ακριβώς ο προϋπολογισμός επανεγγραφής αξίζει καχυποψία: κοστολογήθηκε για έναν κόσμο όπου κάθε πάροχος είχε το δικό του wire format, και εκείνος ο κόσμος έχει φύγει.
h2 (#the-honest-remainder): Τι αλλάζει πραγματικά: το μοντέλο
Τώρα το ειλικρινές μισό, γιατί ο ισχυρισμός της μίας γραμμής ισχύει μόνο για την υποδομή από κάτω. Ένα διαφορετικό μοντέλο είναι ένας διαφορετικός συνάδελφος. Κάντε του την ίδια ερώτηση και η απάντηση επιστρέφει διατυπωμένη και δομημένη διαφορετικά. Prompts ρυθμισμένα για ένα μοντέλο μπορεί να χρειάζονται προσαρμογή. Οι ακραίες περιπτώσεις μετακινούνται. Αυτό είναι πραγματική δουλειά. Είναι όμως και οριοθετημένη, δοκιμάσιμη και φθηνή σε σχέση με ό,τι προϋπολογίσατε: τρέξτε το υπάρχον σύνολο evals σας (ή χτίστε το μικρό που θα έπρεπε να έχετε ούτως ή άλλως) εναντίον του υποψήφιου μοντέλου στις πραγματικές σας εργασίες, συγκρίνετε, αποφασίστε. Γίνεται πριν δεσμευτείτε, σε ένα endpoint που μπορείτε να δοκιμάσετε, όχι μετά από μια επανεγγραφή που δεν μπορείτε να αναιρέσετε.
| ΜΙΑ ΓΡΑΜΜΗ (Η ΥΔΡΑΥΛΙΚΗ ΕΓΚΑΤΑΣΤΑΣΗ) | ΠΡΑΓΜΑΤΙΚΗ ΔΟΥΛΕΙΑ (ΤΟ ΜΟΝΤΕΛΟ) |
|---|---|
| ΤΟ ΚΟΜΜΑΤΙ ΠΟΥ ΟΛΟΙ ΥΠΕΡΕΚΤΙΜΟΥΝΤο base URL και το API key | Τρέξιμο των evals σας στο νέο μοντέλο |
| Formats αιτήματος και απάντησης, streaming | Προσαρμογές prompts όπου άλλαξε η συμπεριφορά |
| Ο κώδικας retry και εργαλείων σας | Απόφαση για quantization και διαστασιολόγηση (το αναλαμβάνουμε εμείς) |
| Έξτρα του API ειδικά του vendor, αν τα χρησιμοποιήσατε | Ένας σύντομος έλεγχος: αντικατάσταση ή shim για το καθένα |
Προσέξτε τι δεν εμφανίστηκε σε αυτόν τον πίνακα: κανένας ισχυρισμός ότι το ανοιχτό μοντέλο είναι εξίσου καλό. Δεν κάνουμε αυτόν τον ισχυρισμό, γιατί γερνά άσχημα και γιατί δεν θα έπρεπε ούτως ή άλλως να τον δεχτείτε από έναν vendor. Το τρέξιμο των evals αντικαθιστά τον ισχυρισμό. Οι δικές σας εργασίες, και τα δύο μοντέλα, δίπλα δίπλα, και η απόφαση είναι δική σας με τα στοιχεία μπροστά σας. Αυτό το πέρασμα evals είναι μέρος της εγκατάστασής μας, μαζί με τη διαστασιολόγηση και το trade-off του quantization (που δείχνουμε, δεν κρύβουμε), εκεί όπου ένας managed πάροχος κερδίζει την αμοιβή του.
h2 (#both-ways): Η γραμμή κόβει και προς τις δύο κατευθύνσεις, σκόπιμα
Όλα τα παραπάνω περιγράφουν και την αποχώρηση από εμάς. Τα open weights είναι φορητά αρχεία. Το endpoint μιλά την τυπική διάλεκτο. Τα δεδομένα σας ζουν στο μηχάνημά σας και φεύγουν μαζί σας. Αν πάψουμε να αξίζουμε τον φόρτο εργασίας, η μεταφορά μακριά μας είναι η ίδια μία γραμμή, και το χτίσαμε έτσι σκόπιμα, για τον ίδιο λόγο που η υπόλοιπη εταιρεία κατάργησε τους μετρητές και αρνείται φόρους εξόδου (το επιχείρημα για τις χρεώσεις egress είναι η ίδια στάση ένα επίπεδο πιο κάτω). Anti-lock-in που δεν μπορείτε να ασκήσετε είναι λέξη από διαφημιστικό. Οι πελάτες που μπορούν να φύγουν, και μένουν παρ' όλα αυτά, είναι η μόνη σύσταση που αξίζει.
Μία ακόμα ελευθερία ταξιδεύει μαζί: μόλις το μοντέλο γίνει δικό σας, κανείς δεν το αποσύρει κάτω από τα prompts σας, και η έκδοση που πέρασε τα evals σας μένει η έκδοση που απαντά μέχρι να αποφασίσετε εσείς αλλιώς. Σε ένα hosted API, εκείνο το χρονοδιάγραμμα ανήκει σε κάποιον άλλον.
“Η ίδια γραμμή που σας αφήνει να φύγετε από εκείνους σας αφήνει να φύγετε και από εμάς. Αυτό είναι το νόημα.”
Ευθείες απαντήσεις
Είναι το OpenAI-compatible API πραγματικά συμβατό;+
Ο ευρέως χρησιμοποιούμενος πυρήνας (chat completions, streaming, embeddings) είναι το de facto πρότυπο που υλοποιεί ο κόσμος του serving. Αν στηριχθήκατε στα ιδιόκτητα έξτρα ενός vendor, αυτά παίρνουν έναν σύντομο έλεγχο: τα περισσότερα έχουν άμεσα ισοδύναμα ή λεπτά shims, και περνάμε αυτή τη λίστα μαζί σας.
Τι γίνεται με το prompt engineering μου;+
Το περισσότερο μεταφέρεται. Κάποιο χρειάζεται προσαρμογή όπου η συμπεριφορά του νέου μοντέλου διαφέρει, και τα evals σας σας δείχνουν ακριβώς πού. Προϋπολογίστε ώρες ρύθμισης prompts, όχι επανεγγραφή.
Μία γραμμή μακριά από το δικό σας endpoint.
Φέρτε μας το μοντέλο που θέλετε να τρέξετε. Θα το διαστασιολογήσουμε, θα το εγκαταστήσουμε πίσω από το API που ήδη μιλά ο κώδικάς σας, και θα τρέξουμε τα evals μαζί σας πριν αλλάξετε οτιδήποτε.
Μιλήστε με έναν μηχανικόΦτάσατε στο τέλος.
Βάλτε την ανάγνωση σε εφαρμογή
Τι τρέχετε;
Πείτε μας για τον φόρτο εργασίας, την κίνηση και τις απαιτήσεις ανάκαμψης. Ξεκινήστε από το εργαλείο διαμόρφωσης server ή συζητήστε τις λεπτομέρειες με έναν μηχανικό.
Γραμμένο από τους μηχανικούς που χτίζουν και λειτουργούν την υποδομή που περιγράφει.Μιλήστε με έναν μηχανικό
