Κέρδη:
- Καθορίζει για ποιους φόρτους εργασίας είναι κατάλληλη η επεξεργασία κατά παρτίδες
- Κατανοεί την αντιστάθμιση κόστους/λανθάνοντος χρόνου μεταξύ σύγχρονης, ασύγχρονης και ομαδικής επεξεργασίας
- Σχεδιάζει μια ισχυρή ροή εργασιών δέσμης που ταιριάζει με το custom_id με τα αποτελέσματα
Οι περισσότερες ενσωματώσεις LLM επικεντρώνονται σε "ζωντανά" σενάρια όπου ένας χρήστης περιμένει μια απάντηση μπροστά από μια οθόνη. Αλλά η πλειονότητα των επαγγελματικών φόρτων εργασίας δεν είναι στην πραγματικότητα ζωντανή: προσθήκη ετικετών σε χιλιάδες έγγραφα κατά τη διάρκεια της νύχτας, σύνοψη ενός ολόκληρου δεδομένων, ταξινόμηση ολόκληρων εγγραφών κλήσεων στο αρχείο. Σε αυτά τα θέματα, κανείς δεν περιμένει μια άμεση απάντηση. Το σημαντικό είναι να τελειώσεις τη δουλειά φθηνά και αξιόπιστα. Το Batch είναι ακριβώς για αυτούς τους φόρτους εργασίας. Σε αυτήν την ενότητα, θα μάθετε τη διαφορά μεταξύ σύγχρονης, ασύγχρονης και ομαδικής επεξεργασίας, όταν η δέσμη είναι η σωστή επιλογή και μια ισχυρή ροή που ταιριάζει με σιγουριά custom_id και τα αποτελέσματα.
Τρεις τρόποι λειτουργίας
λειτουργία
Πώς λειτουργεί
καθυστέρηση
Τυπικό κόστος
κατάλληλη δουλειά
σύγχρονες
Κάνεις ένα αίτημα και περιμένεις την απάντηση
δευτερόλεπτα
Τυπικό
Ζωντανή συνομιλία, άμεσος βοηθός
ασύγχρονος
Κάνετε ουρά για την εργασία και λαμβάνετε ειδοποίηση όταν τελειώσει.
Δευτερόλεπτα – λεπτά
Τυπικό
Εργασίες παρασκηνίου, βήματα αυτοματισμού
παρτίδα
Στέλνει χιλιάδες αιτήματα σε ένα πακέτο και, στη συνέχεια, λαμβάνει τα αποτελέσματα
Λεπτά – ώρες
Συνήθως με έκπτωση
Εργασίες μεγάλου όγκου, ανεκτικές σε καθυστερήσεις
Η ομαδική επεξεργασία είναι η εξής: στέλνετε εκατοντάδες/χιλιάδες αιτήματα ως μία «δουλειά» στον πάροχο. Ο πάροχος τα επεξεργάζεται με τον δικό του ρυθμό και επιστρέφει όλα τα αποτελέσματα μαζικά μόλις ολοκληρωθούν. Σε αντάλλαγμα έχετε δύο πράγματα: (1) γενικά χαμηλότερο κόστος μονάδας, (2) τη δυνατότητα να μετακινείτε υψηλή ένταση χωρίς να χρειάζεται να αντιμετωπίζετε όρια ταχύτητας. Το τίμημα είναι ότι τα αποτελέσματα δεν έρχονται αμέσως, αλλά μετά από κάποιο χρονικό διάστημα.
Πότε να παρτίδα, Πότε όχι;
Η απόφαση καταλήγει σε μία ερώτηση: Περιμένει ο χρήστης το αποτέλεσμα τώρα;
- Όχι, μπορώ να το κρατήσω → υποψήφιος παρτίδας. Νυχτερινή επισήμανση, σύνοψη παρτίδων, ταξινόμηση αρχείων, εμπλουτισμός δεδομένων, αξιολόγηση (eval) εκτέλεση.
- Ναι, αναμονή στην οθόνη → συγχρονισμός. Ζωντανή συνομιλία, άμεσες συμβουλές, βοήθεια κατά τη συμπλήρωση φορμών.
Συμβουλή: Δύο λειτουργίες μπορούν να συνυπάρχουν στο ίδιο προϊόν. Ο χρήστης λειτουργεί συγχρονισμένα στη ζωντανή συνομιλία. Το βράδυ, δίνεις όλες τις κουβέντες εκείνης της ημέρας στην παρτίδα για ποιοτική ανάλυση. Ο διαχωρισμός της «ζωντανής ανάγκης» από τη «συλλογική ανάγκη» είναι η πρώτη απόφαση της αρχιτεκτονικής.
Anatomy of Robust Batch Flow
Ο πιο σημαντικός τεχνικός κανόνας της επεξεργασίας κατά παρτίδες είναι η αντιστοίχιση αποτελεσμάτων.
- Δώστε σε κάθε αίτημα ένα μοναδικό "custom_id". Αυτό είναι το αναγνωριστικό που δημιουργήσατε και προσδιορίζει το αίτημα (π.χ. invoice-2026-07-18-000431).
- Υποβάλετε την εργασία. Όλα τα αιτήματα πηγαίνουν σε ένα πακέτο. το καθένα με το δικό του custom_id.
- Δημοσκόπηση της κατάστασης. Ζητάτε την κατάσταση κατά διαστήματα μέχρι να γίνει η δουλειά.
- Αντιστοιχίστε τα αποτελέσματα με το "custom_id". Τα αποτελέσματα μπορούν να επιστραφούν με διαφορετική σειρά από την εντολή υποβολής. άρα ποτέ μην ταιριάζετε με βάση τη θέση αλλά με το custom_id που φέρει κάθε αποτέλεσμα.
- Ελέγξτε τον τύπο κάθε αποτελέσματος. Ένα αίτημα μπορεί να πετύχει, ένα μπορεί να αποτύχει, ένα μπορεί να λήξει. Διαδικασία που βασίζεται στην επιτυχία/αποτυχία.
{ "requests": [ { "custom_id": "invoice-000431", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "Ταξινόμηση τιμολογίου. Επιστροφή μόνο JSON.", "messages": [{entus":role" "{{invoice_text}}" }] } }, { "custom_id": "invoice-000432", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "Ταξινόμηση τιμολογίου. Επιστροφή "[JSONsroages", "[JSONsroages"." "content": "{{invoice_text_2}}" }] } } ]}
Προσοχή: Η αντιστοίχιση των αποτελεσμάτων με βάση τη σειρά υποβολής είναι το νούμερο ένα λάθος κατά τη ομαδοποίηση. Η ουρά δεν διατηρείται. Χωρίς custom_id δεν μπορείτε να γνωρίζετε με σιγουριά ποιο αποτέλεσμα ανήκει σε ποιο έγγραφο — η αθόρυβη αντιστοίχιση οδηγεί σε λάθος δεδομένα.
Αντιγράψιμα πρότυπα
# κανόνας δημιουργίας custom_id (μοναδικός και ανιχνεύσιμος) Μορφή: <isture>-<ημερομηνία>-<sequence>. Παράδειγμα: request-20260718-000431Κανόνας: να μην επαναλαμβάνεται ποτέ στην εργασία. Ενσωματώστε το αναγνωριστικό εγγραφής πόρου σε αυτό.
# Κάρτα εργασίας παρτίδας (πρότυπο προγραμματισμού) Όνομα εργασίας: .............Αριθμός εγγραφών: .............Μοντέλο: ............. (απλή εργασία → γρήγορο μοντέλο) Μέγιστα_κουπόνια ανά αίτημα: .............Αναμενόμενη ανοχή χρόνου παράδοσης: ......... ώρες Κλειδί αντιστοίχισης αποτελέσματος: custom_idΣε περίπτωση σφάλματος: επανάληψη / ουρά / αναφορά
# Προτροπή μεμονωμένου αιτήματος σε παρτίδα (σύντομη και σχηματική) Ταξινόμηση αυτού του εγγράφου. Απλώς επιστρέψτε αυτό το JSON, σχολιάζοντας:{"category":"...","urgency":"low|medium|high"}Έγγραφο: """{{document}}"""
# Αποτελέσματα επεξεργασίας ψευδο-κωδικού για κάθε αποτέλεσμα: if result.status == "success": record = find(custom_id) save(record, result.output) αλλιώς: add_to_fail(custom_id, result.error) # και μετά δοκιμάστε ξανά
Αδύναμη προτροπή / Ισχυρή προτροπή (σχεδιασμός εργασίας παρτίδας)
# ΑΔΥΝΑΜΟΣ (εύθραυστος σχεδιασμός) Στείλτε 10.000 έγγραφα με τη σειρά με το ισχυρό μοντέλο, αποθηκεύστε τα αποτελέσματα που επιστράφηκαν με τη σειρά που φτάνουν.
# STRONG (ανθεκτική σχεδίαση) Στείλτε 10.000 έγγραφα σε μία παρτίδα με ένα γρήγορο μοντέλο. Δώστε σε κάθε έγγραφο ένα μοναδικό custom_id που περιέχει το αναγνωριστικό της εγγραφής πηγής. Αντιστοιχίστε τα αποτελέσματα με το custom_id. Κάντε ουρά τα αποτυχημένα και δοκιμάστε ξανά. Εκτελέστε στο νυχτερινό παράθυρο. Ανοχή παράδοσης 6 ώρες.
Ισχυρή έκδοση. Προκαθορίζει την επιλογή μοντέλου, το κλειδί αντιστοίχισης, τον χειρισμό σφαλμάτων και το χρονοδιάγραμμα. Αυτή είναι η διαφορά στην ασφαλή επεξεργασία δεκάδων χιλιάδων εγγραφών.
Τρεις Μίνι Θήκες
Περίπτωση 1 — Νυχτερινή επισήμανση. Μια ομάδα ηλεκτρονικού εμπορίου θα ταξινομήσει 200.000 κριτικές προϊόντων σε ετικέτες συναισθήματος. Η ζωντανή σύγχρονη ροή υπόκειται σε όρια ταχύτητας και ήταν δαπανηρή. Έφεραν τη δουλειά μέσα στη νύχτα ως παρτίδα με ένα γρήγορο μοντέλο. Το κόστος μονάδας έπεσε, όλο το σετ ήταν έτοιμο το πρωί και δεν υπήρχαν προβλήματα ορίου ταχύτητας.
Περίπτωση 2 — Σύγχυση παραγγελιών. Μια ομάδα ερευνητικής ομάδας αφαίρεσε 5.000 άρθρα, αλλά έγραψε τα αποτελέσματα σε αρχεία με τη σειρά που έφτασαν. Επειδή τα αποτελέσματα επιστράφηκαν με διαφορετική σειρά, περίπου 900 από τις 5.000 περιλήψεις συνδέθηκαν με λάθος άρθρο. Το αντιστοιχούσαν ξανά στο custom_id. Το πρόβλημα επιλύθηκε και αυτή η εμπειρία έγινε μόνιμος κανόνας: "Πάντα custom_id σε παρτίδα."
Περίπτωση 3 — Ζωντανή αναμονή σε λάθος λειτουργία. Μια ομάδα υποστήριξης προσπάθησε να δώσει μαζικά τις ζωντανές απαντήσεις που περίμενε ο χρήστης στην οθόνη. Οι χρήστες εγκατέλειψαν επειδή τα αποτελέσματα έφτασαν λίγα λεπτά αργότερα. Μετέφεραν τη ζωντανή εργασία πίσω στον συγχρονισμό, αφήνοντας μόνο τη νυχτερινή ανάλυση ποιότητας στην παρτίδα. Μάθημα: η παρτίδα δεν είναι για ζωντανή αναμονή.
Συνήθη λάθη
- Αντιστοίχιση αποτελεσμάτων ανά θέση: Η παραγγελία δεν διατηρείται. Χρησιμοποιήστε custom_id.
- Μεταφορά ζωντανής εργασίας σε παρτίδα: Ο χρήστης δεν μπορεί να περιμένει για λίγα λεπτά. Η παρτίδα προορίζεται για εργασίες με ανοχή καθυστέρησης.
- Μη χειρισμός περιπτώσεων σφαλμάτων: Ορισμένα αιτήματα ενδέχεται να επιστρέψουν αποτυχημένα/λήξαν. Βάλτε το σε ξεχωριστή ουρά και δοκιμάστε ξανά.
- Ισχυρό αντανακλαστικό χρήσης μοντέλου σε παρτίδες: Το γρήγορο μοντέλο + παρτίδα είναι ο φθηνότερος συνδυασμός σε απλές εργασίες.
- Δεν γίνεται ανιχνεύσιμο το custom_id: Εάν δεν υπάρχει εγγραφή πηγής ενσωματωμένη στο αναγνωριστικό, καθίσταται δύσκολο να συνδέσετε το αποτέλεσμα πίσω.
- Ξεχνώντας να εξετάσετε την κατάσταση: Αναμένετε αποτελέσματα πριν ολοκληρωθεί η εργασία. Ελέγξτε την κατάσταση ολοκλήρωσης.
Βαθύτερο: Παρακολούθηση παρτίδας και διαχείριση μερικής αποτυχίας
Η πιο ώριμη πτυχή της επεξεργασίας κατά παρτίδες είναι ότι απαιτεί διαφορετική νοοτροπία από τις μεμονωμένες κλήσεις: μια ομαδική εργασία είναι μια "διαδικασία", όχι ένα "γεγονός". Υποθέτοντας ότι δεκάδες χιλιάδες αιτήματα θα πετύχουν όλα είναι εύθραυστο. Ο ρεαλιστικός σχεδιασμός δέχεται μερική αποτυχία από την αρχή. Η κατάσταση κάθε αποτελέσματος μπορεί να είναι διαφορετική: επιτυχής, απέτυχε (π.χ. μη έγκυρη εισαγωγή), ακυρώθηκε ή έληξε. Μια ισχυρή ροή επεξεργάζεται την κατάσταση κάθε αποτελέσματος ξεχωριστά καθώς ταξιδεύει μέσα από αυτό, τοποθετεί τις αποτυχίες σε μια ξεχωριστή "ουρά επανάληψης δοκιμής" και εκτελεί αυτήν την ουρά ξεχωριστά.
Η δεύτερη πρακτική είναι να σχεδιάζετε για ανικανότητα (ότι η εκτέλεση της ίδιας εργασίας δύο φορές δεν προκαλεί κανένα κακό). Εάν μια παρτίδα διακοπεί και την επανεκκινήσετε, δεν πρέπει να επεξεργαστείτε ξανά και να γράψετε δύο φορές τις ήδη επεξεργασμένες εγγραφές. Η σύνδεση του custom_id στην εγγραφή προέλευσης λειτουργεί και εδώ: "έχει ήδη υποβληθεί σε επεξεργασία αυτή η εγγραφή;" πριν αποθηκεύσετε το αποτέλεσμα. Ο έλεγχος αποτρέπει τη διπλή πληκτρολόγηση.
Το τρίτο σημείο είναι να κλιμακώσετε τις ζωντανές ροές με παρτίδες. Ορισμένες εργασίες έχουν τόσο ζωντανές όσο και μαζικές διαστάσεις: όταν ο χρήστης φορτώνει ένα έγγραφο, του δίνετε μια γρήγορη προκαταρκτική περίληψη (σύγχρονη) και επεξεργάζεστε ξανά το ίδιο έγγραφο για βαθύτερη ανάλυση τη νύχτα (παρτίδα). Ο συνειδητός διαχωρισμός των δύο λειτουργιών βελτιστοποιεί τόσο την εμπειρία χρήστη όσο και το κόστος.
Τέλος, η παρτίδα είναι επίσης ένας τρόπος αντιμετώπισης των ορίων ταχύτητας (μονάδα 8). Η αποστολή υψηλής έντασης σε ζωντανή σύγχρονη ροή παράγει σταθερά 429, ενώ η αποστολή του ίδιου όγκου στις μεταφορές παρτίδας περιορίζει την πίεση στον προγραμματισμό του ίδιου του παρόχου και κάνει την εργασία πιο προβλέψιμη.
Συνοπτικά
Η επεξεργασία κατά παρτίδες είναι γενικά μια φθηνότερη και πιο ισχυρή λειτουργία για φόρτους εργασίας με ανεκτικότητα σε καθυστέρηση και μεγάλου όγκου. Η απόφασή του ήταν «ο χρήστης περιμένει το αποτέλεσμα τώρα;». καθορίζει την ερώτηση. Ο πιο κρίσιμος τεχνικός κανόνας είναι να δίνετε σε κάθε αίτημα ένα μοναδικό custom_id, να αντιστοιχίζετε τα αποτελέσματα κατά αναγνωριστικό αντί για τοποθεσία και να αντιμετωπίζετε την επιτυχία/αποτυχία κάθε αποτελέσματος ξεχωριστά.
Εργασία εφαρμογής
Επιλέξτε μια εργασία μεγάλου όγκου (π.χ. ταξινόμηση αρχείου). (1) Αποφασίστε εάν αυτό το έργο είναι ζωντανό ή συλλογικό και αιτιολογήστε το. (2) Σχεδιάστε μια μορφή custom_id (συμπεριλάβετε την εγγραφή πόρων). (3) Συμπληρώστε την κάρτα εργασιών παρτίδας (μοντέλο, μέγιστο_tokens, ανοχή, πολιτική σφαλμάτων). (4) Γράψτε τον ψευδοκώδικα επεξεργασίας αποτελεσμάτων για να συμπεριλάβετε αποτυχημένα αιτήματα.
λίστα ελέγχου
- [ ] Μπορώ να διακρίνω τις λειτουργίες σύγχρονης, ασύγχρονης και παρτίδας στον άξονα κόστους/καθυστέρησης.
- [ ] Μπορώ να αποφασίσω εάν μια εργασία είναι κατάλληλη για παρτίδα ή όχι κάνοντας τη σωστή ερώτηση.
- [ ] Δίνω σε κάθε αίτημα ένα μοναδικό custom_id και αντιστοιχίζω τα αποτελέσματα κατά αναγνωριστικό.
- [ ] Μπορώ να χειριστώ ξεχωριστά τα αποτυχημένα/ληγμένα αποτελέσματα.
- [ ] Γνωρίζω τα πλεονεκτήματα της επιλογής ενός γρήγορου μοντέλου σε απλές εργασίες παρτίδας.