Njësia 7 / 11

Ngarkesat e punës në grup dhe asinkron

Fitimet:

  • Përcakton se për cilat ngarkesa pune është i përshtatshëm përpunimi i grupit
  • Kupton shkëmbimin kosto/latencë ndërmjet përpunimit sinkron, asinkron dhe grupor
  • Harton një fluks pune të fortë grupi që përputhet me custom_id me rezultatet

Shumica e integrimeve LLM fokusohen në skenarë "live" ku një përdorues është duke pritur për një përgjigje përpara një ekrani. Por shumica e ngarkesave profesionale nuk janë reale: etiketimi i mijëra dokumenteve brenda natës, përmbledhja e një grupi të dhënash të tërë, klasifikimi i të gjitha regjistrimeve të thirrjeve në arkiv. Në këto çështje, askush nuk pret një përgjigje të menjëhershme; Gjëja kryesore është të përfundoni punën me çmim të lirë dhe të besueshëm. Batch është pikërisht për këto ngarkesa pune. Në këtë njësi, do të mësoni ndryshimin midis përpunimit sinkron, asinkron dhe grupor, kur grupi është zgjidhja e duhur dhe një rrjedhë e fuqishme që përputhet me besim custom_id dhe rezultatet.

Tre mënyra pune

modaliteti

Si funksionon

vonesë

Kosto tipike

punë e përshtatshme

sinkron

Ju bëni një kërkesë dhe prisni përgjigjen

sekonda

Standard

Bisedë e drejtpërdrejtë, asistent i menjëhershëm

asinkron

Ju vendosni në radhë punën dhe njoftoheni kur të përfundojë.

Sekonda-minuta

Standard

Detyrat e sfondit, hapat e automatizimit

Batch

Dërgon mijëra kërkesa në një paketë, më pas merr rezultatet

Minuta-orë

Zakonisht me zbritje

Punë me volum të lartë, tolerante ndaj vonesave

Përpunimi në grup është ky: ju dërgoni qindra/mijëra kërkesa si një "punë" e vetme tek ofruesi; Ofruesi i përpunon ato me ritmin e vet dhe i kthen të gjitha rezultatet në masë pasi të jenë përfunduar. Në këmbim ju merrni dy gjëra: (1) në përgjithësi kosto më të ulët për njësi, (2) aftësinë për të lëvizur volum të lartë pa pasur nevojë të merreni me kufijtë e shpejtësisë. Çmimi është që rezultatet nuk vijnë menjëherë, por pas njëfarë kohe.

Kur të grumbullohet, kur jo?

Vendimi vjen në një pyetje: A po pret përdoruesi rezultatin tani?

  • Jo, unë mund ta mbaj atë → kandidat grumbull. Etiketimi i natës, përmbledhja e grupeve, klasifikimi i arkivave, pasurimi i të dhënave, vlerësimi (eval) ekzekutimi.
  • Po, duke pritur në ekran → sinkronizoj. Bisedë e drejtpërdrejtë, këshilla të menjëhershme, ndihmë gjatë plotësimit të formularëve.
Këshillë: Dy mënyra mund të bashkëjetojnë në të njëjtin produkt. Përdoruesi punon në mënyrë sinkrone në bisedën e drejtpërdrejtë; Natën i jep të gjitha muhabetet e asaj dite batch-it për analiza cilësore. Ndarja e “nevojës së gjallë” nga “nevoja kolektive” është vendimi i parë i arkitekturës.

Anatomia e rrjedhës së fortë të grupeve

Rregulli teknik më i rëndësishëm i përpunimit në grup është përputhja e rezultateve.

  1. Jepini çdo kërkese një 'id_e_përshtatshme' unike. Kjo është ID-ja juaj e krijuar që identifikon kërkesën (p.sh. faturë-2026-07-18-000431).
  2. Paraqitni punën. Të gjitha kërkesat shkojnë në një paketë; secili me custom_id-in e vet.
  3. Anketoni situatën. Ju kërkoni statusin në intervale derisa puna të "mbarojë".
  4. Përputhni rezultatet me 'custom_id'. Rezultatet mund të kthehen në një mënyrë të ndryshme nga urdhri i dorëzimit; kështu që kurrë mos përputhni sipas pozicionit, por sipas custom_id-it që mbart çdo rezultat.
  5. Kontrolloni llojin e secilit rezultat. Një kërkesë mund të ketë sukses, një mund të dështojë, një mund të përfundojë. Procesi i bazuar në sukses/dështim.

{ "requests": [ { "custom_id": "invoice-000431", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "Klasifiko faturën. Ktheje vetëm JSON.", "messages": [{entus ":role"," "{{invoice_text}}" }] } }, { "custom_id": "invoice-000432", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "Klasifiko faturën. Ktheni "{userleages", "[JSONsroages" vetëm." "përmbajtja": "{{invoice_text_2}}" }] } } ]}

Kujdes: Përputhja e rezultateve bazuar në rendin e dorëzimit është gabimi numër një në grumbullim. Radha nuk ruhet. Pa custom_id nuk mund të dini me siguri se cili rezultat i përket cilit dokument - përputhja e gabuar çon në heshtje në të dhëna të gabuara.

Modele të kopjueshme

Rregulli i gjenerimit të # custom_id (unik dhe i gjurmueshëm) Formati: <isture>-<data>-<sekuenca>. Shembull: request-20260718-000431Rregulla: mos u përsërit kurrë në punë; Vendosni ID-në e rekordit të burimit në të.

# Kartë e punës së grupit (shaboni i planifikimit) Emri i punës: .............Numri i regjistrave: .............Modeli: ............. (punë e thjeshtë → model i shpejtë) Shenjat maksimale për kërkesë: .............Toleranca e pritshme e kohës së dorëzimit: ......... orë Çelësi i përputhjes së rezultatit: personal_idNë rast gabimi: riprovoni / radhë / raportoni

# Prompt për një kërkesë të vetme në grup (të shkurtër dhe skematik) Klasifikoni këtë dokument. Thjesht kthejeni këtë JSON, duke komentuar:{"category":"...","urgency":"i ulët|mesatar|i lartë"}Dokumenti: """{{document}}"""

# Pseudo-kodi i përpunimit të rezultatit për çdo rezultat: nëse result.status == "sukses": rekord = gjet (id_e_zakonshme) ruaj (rekord, rezultat.output) përndryshe: add_to_fail(id_e_zakonshme, rezultat.gabim) # pastaj provo sërish

Prompt i dobët / Prompt i fortë (dizajn i punës së grupit)

# I DOBËT (dizajn i brishtë)Dërgo 10,000 dokumente në rregull me modelin e fortë, ruani rezultatet e kthyera sipas radhës që arrijnë.

# FORTE (dizajn i qëndrueshëm) Dërgoni 10,000 dokumente në një grup me një model të shpejtë. Jepini çdo dokumenti një custom_id unike që përmban ID-në e rekordit burimor. Përputhni rezultatet me custom_id; vendosni në radhë ato të dështuara dhe provoni përsëri.Run në dritaren e natës; Toleranca e dorëzimit 6 orë.

Version i fuqishëm; Ai paracakton zgjedhjen e modelit, çelësin e përputhjes, trajtimin e gabimeve dhe kohën. Ky është ndryshimi në përpunimin e sigurt të dhjetëra mijëra regjistrimeve.

Tre Mini Rastet

Rasti 1 - Etiketimi i natës. Një ekip i tregtisë elektronike do të renditë 200,000 rishikime të produkteve në etiketa ndjenjash. Transmetimi sinkron i drejtpërdrejtë ishte subjekt i kufijve të shpejtësisë dhe ishte i kushtueshëm. Ata e çuan punën në natë si një grup me një model të shpejtë; Kostoja e njësisë ra, i gjithë kompleti ishte gati në mëngjes dhe nuk kishte probleme me kufirin e shpejtësisë.

Rasti 2 - Konfuzion i rendit. Një grup i ekipit hulumtues abstraktoi 5000 artikuj, por i shkroi rezultatet në skedarë sipas renditjes që mbërritën. Për shkak se rezultatet u kthyen në një rend tjetër, afërsisht 900 nga 5000 abstrakte u lidhën me artikullin e gabuar. Ata e rimarrë atë në custom_id; problemi u zgjidh dhe kjo përvojë u bë rregull i përhershëm: "Gjithmonë custom_id në grup."

Rasti 3 — Gatishmëria e drejtpërdrejtë në modalitetin e gabuar. Një ekip mbështetës u përpoq të jepte përgjigjet e drejtpërdrejta që përdoruesi priste në ekran; Përdoruesit u braktisën sepse rezultatet mbërritën disa minuta më vonë. Ata e kthyen punën e drejtpërdrejtë në sinkronizim, duke lënë vetëm analizën e cilësisë së natës në grup. Mësimi: grupi nuk është për gatishmëri të drejtpërdrejtë.

Gabimet e zakonshme

  • Përputhja e rezultateve sipas pozicionit: Rendi nuk ruhet; Përdor custom_id.
  • Transferimi i punës së drejtpërdrejtë në grup: Përdoruesi nuk mund të presë për minuta; grupi është për punë tolerante ndaj vonesave.
  • Mospërpunimi i rasteve të gabimeve: Disa kërkesa mund të kthehen të dështuara/skaduara; Vendoseni në një radhë të veçantë dhe provoni përsëri.
  • Refleksi i fortë i përdorimit të modelit në grup: Modeli i shpejtë + grupi është kombinimi më i lirë në punë të thjeshta.
  • Mosbërja e custom_id-it të gjurmueshme: Nëse asnjë rekord burimi nuk është i ngulitur në ID, bëhet e vështirë të lidhësh rezultatin përsëri.
  • Të harrosh të ekzaminosh situatën: Të presësh rezultate përpara se të mbarojë puna; Kontrolloni statusin e përfundimit.

Më e thellë: Monitorimi i grupit dhe administrimi i dështimit të pjesshëm

Aspekti më i pjekur i përpunimit të grupeve është se ai kërkon një mentalitet të ndryshëm nga thirrjet individuale: një punë grupore është një "proces", jo një "ngjarje". Të supozosh se dhjetëra mijëra kërkesa do të kenë sukses është e brishtë; Dizajni realist pranon dështimin e pjesshëm që në fillim. Statusi i secilit rezultat mund të jetë i ndryshëm: i suksesshëm, i dështuar (p.sh. hyrje i pavlefshëm), i anuluar ose i skaduar. Një rrjedhë e fortë përpunon statusin e secilit rezultat veç e veç ndërsa udhëton nëpër të, i vendos dështimet në një "radhë të riprovës" të veçantë dhe e ekzekuton atë radhë veç e veç.

Praktika e dytë është të dizajnosh për idempotencë (që të drejtosh të njëjtën punë dy herë nuk shkakton ndonjë dëm). Nëse një grup ndërpritet dhe e rinisni atë, nuk duhet të ripërpunoni dhe shkruani dy herë regjistrimet tashmë të përpunuara. Lidhja e custom_id me rekordin tuaj burimor funksionon edhe këtu: "a është përpunuar tashmë ky regjistrim?" përpara se të ruani rezultatin. Kontrollimi parandalon shtypjen e dyfishtë.

Pika e tretë është të tronditni transmetimet e drejtpërdrejta me grup. Disa punë kanë dimensione të drejtpërdrejta dhe të grupit: kur përdoruesi ngarkon një dokument, ju u jepni atyre një përmbledhje të shpejtë paraprake (sinkron) dhe ripërpunoni të njëjtin dokument për analizë më të thellë gjatë natës (grua). Ndarja me vetëdije e dy mënyrave optimizon përvojën e përdoruesit dhe koston.

Së fundi, grumbullimi është gjithashtu një mënyrë për t'u marrë me kufijtë e shpejtësisë (njësia 8). Dërgimi i volumit të lartë në rrjedhën sinkrone të drejtpërdrejtë prodhon konstante 429, ndërsa dërgimi i të njëjtit volum në transfertat e grupit kufizon presionin në planifikimin e vetë ofruesit dhe e bën punën më të parashikueshme.

Në përmbledhje

Përpunimi i grupeve është përgjithësisht një mënyrë më e lirë dhe më e fuqishme për ngarkesa pune tolerante ndaj vonesës dhe me volum të lartë. Vendimi i tij ishte "a po pret përdoruesi rezultatin tani?" përcakton pyetjen. Rregulli teknik më kritik është t'i jepet çdo kërkese një custom_id unike, të përputhen rezultatet sipas ID-së dhe jo sipas vendndodhjes dhe të trajtohet suksesi/dështimi i secilit rezultat veç e veç.

Detyra e aplikimit

Zgjidhni një punë me volum të lartë (p.sh. klasifikimi i arkivit). (1) Vendosni nëse kjo vepër është e drejtpërdrejtë apo kolektive dhe arsyetoni atë. (2) Dizajnoni një format personal_id (përfshini rekordin e burimit). (3) Plotësoni kartën e punës së grupit (modeli, max_tokens, toleranca, politika e gabimit). (4) Shkruani pseudokodin e përpunimit të rezultatit për të përfshirë kërkesat e dështuara.

listë kontrolli

  • [ ] Mund të dalloj modalitetet sinkron, asinkron dhe batch në boshtin kosto/vonesë.
  • [ ] Unë mund të vendos nëse një punë është e përshtatshme për grup apo jo duke bërë pyetjen e duhur.
  • [ ] Unë i jap çdo kërkese një custom_id unike dhe i përputh rezultatet me ID.
  • [ ] Mund të trajtoj veçmas rezultatet e dështuara/skaduara.
  • [ ] Unë i di përfitimet e zgjedhjes së një modeli të shpejtë në punë të thjeshta grupore.