Câștiguri:
- Poate proiecta arhitectura end-to-end care duce o caracteristică LLM de la idee la producție
- Stabilește niveluri de aplicare a verificării, aprobarea umană și urmărire (înregistrare/valori)
- Granițele traduc principiile de etică și confidențialitate în decizii de producție
În cele zece unități anterioare, am învățat părțile una câte una: structura cererii, economia jetonelor, fluxul, promptul de sistem, selecția modelului, memoria cache, lotul, managementul erorilor, cheia securizată și automatizarea. În această ultimă unitate, combinăm piesele și stabilim arhitectura holistică care poartă o caracteristică LLM de la idee la producție. Producția este diferită de o „demo de lucru”: verificarea este obligatorie, rezultatele trebuie monitorizate, limitele și principiile etice trebuie încorporate în decizii. Această unitate este coloana purtătoare a modulului; Toate cele precedente se reunesc aici.
Straturi de arhitectură de producție
O calificare solidă LLM constă din aproximativ cinci straturi:
- Strat de intrare: Colectați date, curățați-le, mascați zonele sensibile, transmiteți doar ceea ce este necesar.
- Stratul model: Selectați modelul corect (unitatea 5), setați promptul și parametrii sistemului (unitatea 4), memoria cache (unitatea 6).
- Stratul de validare: verificați rezultatul cu schema/regula, sursa și aprobarea umană, dacă este necesar.
- Stratul de acțiune: Efectuați acțiune cu rezultate validate; Captați acțiuni de mare impact.
- Stratul de monitorizare: Înregistrați și măsurați fiecare apel, cost, eroare și calitate.
Aceste straturi sunt o conductă; fiecare verifică ieşirea celui precedent.
De ce este necesară verificarea?
LLM-urile pot produce rezultate fluente, dar uneori inexacte. Aceasta se numește halucinație: modelul poate fabrica informații care par a fi adevărate, dar nu sunt. Într-un joc de chat, acest lucru este tolerabil; nu poate fi tolerat într-un sistem de producție (factură, sănătate, juridic, finanțe). Așa s-a dovedit, orbește nesigur; este confirmat.
Straturi de verificare (crescând după impact):
- Validare format/schemă: ieșirea este conformă cu schema JSON așteptată? (Ieșirea structurată garantează în mare măsură acest lucru.)
- Verificare regulă/logică: sunt valorile rezonabile? (Suma este negativă, data este în viitor, categoria este valabilă?)
- Verificarea sursei: revendicarea se bazează pe documentația furnizată? Modelul spune ceva care nu este în document?
- Aprobare umană: un expert analizează deciziile cu impact ridicat sau ambigue.
Atenție: „Modelul este atât de bun, nu este necesară nicio verificare suplimentară” este cea mai periculoasă eroare de producție. Indiferent cât de bun ar fi modelul, stratul de verificare este o plasă de siguranță în deciziile cu impact ridicat. Chiar și o singură decizie automată greșită poate elimina tot timpul economisit.
Omul-în-buclă
Nu orice decizie trebuie să fie complet automată. În abordarea „human-in-the-loop”, modelul accelerează munca și omul o aprobă. Echilibrul corect depinde de impactul deciziei și de fiabilitatea modelului asupra sarcinii respective.
Impactul deciziei
Abordare
Scăzut (sugestie de etichetă, schiță)
Automatizare completă; eroarea este ieftină și reversibilă
Medie (rutare, prioritizare)
Automatizare + control prelevare
Mare (bani, contract, sănătate, ștergere)
Consimțământul uman este obligatoriu; modelul doar sugerează
Monitorizare: Nu poți gestiona ceea ce nu vezi
În producție, trebuie să monitorizați fiecare apel. Fără monitorizare, nu puteți îmbunătăți costurile, calitatea sau nu puteți identifica o problemă din timp. Valori cheie de înregistrat:
- Utilizare/cost: pe cerere și totalul de jetoane, distribuție model, cheltuieli zilnice.
- Latență: timp de răspuns mediu și cel mai rău caz.
- Rata de eroare: rate 429/500, reîncercări, abandonuri.
- Calitate: rata de ieșire respinsă la nivelul de verificare, rata de corecție la aprobarea umană, feedbackul utilizatorului.
Sfat: Nu scrieți date sensibile (informații personale, chei) în jurnalele de monitorizare. Luați în considerare jurnalele în sfera de confidențialitate; se înregistrează prin mascare dacă este necesar (unitatea 9).
Etica și limitele
Responsabilitatea etică face parte din decizia de producție la fel de mult ca și acuratețea tehnică:
- Transparență: utilizatorul ar trebui să știe dacă vorbește cu o inteligență artificială sau cu un om.
- Corectitudine și părtinire: modelul poate prezenta părtinire din datele pe care este antrenat; Monitorizați consecințele discriminatorii în deciziile cu impact ridicat (angajare, creditare).
- Răspundere: Dacă o decizie automată provoacă un prejudiciu, sunteți responsabil; „Modelul a spus așa” nu este o apărare.
- Acceptarea limitelor: Modelul nu poate îndeplini unele sarcini în mod fiabil; neautomatizarea acestora este, de asemenea, o decizie de proiectare.
Șabloane copiabile
# Lista de verificare a validării (după generarea ieșirii)1) Schema este validă? (validare structurată a ieșirii)2) Au sens valorile? (verificarea regulilor: interval, dată, enumerare)3) Afirmația se bazează pe sursă? (respingeți dacă nu este în document)4) Impactul este mare? → trimiteți pentru aprobare umană5) Dacă toate au trecut → permiteți acțiunea, salvați
# Prompt de sistem care forțează să se bazeze pe sursă. Bazează-te numai pe informațiile din documentul furnizat. Nu adăugați nimic care nu este în document. Dacă o informație nu este în document, scrieți „Nu a fost găsit în document”. Nu ghiciți și nu inventați niciodată lucruri.
# Pragul de aprobare umană (regulă de decizie)IF tipul_decizie în [bani, contract, ștergere, sănătate] → aprobare umană obligatorieIF model_încredere < prag SAU validare „nesigură” → trimite la aprobare umană ALTĂ → aplicare automată + control eșantionare
# Șablon de jurnal de urmărire (scrierea datelor sensibile){ "time":"...", "model":"...", "input_token":..., "output_token":..., "delay_ms":..., "stop_reason":"...", "authentication":"passed|rejected|human", "cost_usd/NEVER": date personale și sunt scrise.
Prompt slab / Prompt puternic (fiabilitatea producției)
# SLAB (fără verificare, fără sursă, se aplică automat) Evaluați această solicitare, luați o decizie de rambursare și aplicați.
# STRONG (bazat pe sursă, generează recomandare, lasă la aprobarea umană) Evaluați această solicitare de returnare numai pe baza documentului privind politica de returnare. Recomandați decizia cu justificare, dar nu implementați: {"recommendation":"approve|reject","reason":"...","policy_clause":"..."}. Dacă nu există o bază clară în documentul de politică, indicați „neclar”. Un reprezentant va aproba decizia finală.
Versiune puternică; Acesta atribuie decizia sursei, poziționează modelul ca un „sugestor” mai degrabă decât un „factor” și pune pasul cu impact mare în spatele aprobării umane. Aceasta este esența fiabilității producției.
Trei mini carcase
Cazul 1 — ziua în care a fost salvat stratul de verificare. Un fintech avea ca modelul să clasifice descrierile tranzacțiilor și să creeze înregistrări contabile automate. Au adăugat validarea regulilor: odată ce modelul a scos suma incorect (12.500 în loc de 1.250 în document), regula „suma nu se potrivește cu documentul” a respins rezultatul și înregistrarea a căzut în sarcina umanului. Dacă nu a existat nicio verificare, înregistrarea incorectă ar intra în tăcere în sistem.
Cazul 2 — Fugitiv prins de supraveghere. O echipă SaaS a înființat un panou de monitorizare; Într-o dimineață, costul zilnic s-a triplat. Din jurnale s-a văzut că un client a intrat într-o buclă și a trimis aceeași cerere de mii de ori. Au adăugat cotă și deduplicare; Problema a fost rezolvată în câteva ore. Fără urmărire, factura ar fi o surpriză la sfârșitul lunii.
Cazul 3 — Acceptarea limitei. Un startup din domeniul sănătății plănuia să facă o recomandare de diagnostic în mod complet automat și să o arate pacientului. Într-o analiză de etică și răspundere, au decis că acest lucru este interzis: modelul oferă doar un rezumat și puncte posibile unui medic, acesta pune diagnosticul. Nu automatizarea unui job este, de asemenea, o decizie de proiectare matură.
Greșeli comune
- Omiterea validării: se aplică orbește rezultatul, spunând „modelul este bun”.
- Automatizarea deciziei cu impact ridicat: aprobarea umană este esențială în bani/sănătate/lege.
- Nemonitorizare: Problemele de cost și calitate sunt descoperite cu întârziere.
- Scrierea datelor sensibile în jurnale: încălcarea confidențialității; Salvați-l mascând-o.
- Nu încercați să vă bazați pe sursă: modelul poate alcătui ceea ce nu este în document.
- Ignorarea limitelor: a nu automatiza unele sarcini este decizia corectă; Transparența și responsabilitatea vă aparțin.
Mai profund: gestionarea lansărilor, rollback și implementare incrementală
Introducerea unei funcții LLM în producție nu înseamnă să o configurați și să uitați de ea; este de a modifica în siguranță un sistem activ în timp. Are trei piloni.
Versiune. Solicitarea sistemului, selectarea modelului și regulile de verificare se modifică în timp. Versiune fiecare modificare semnificativă și înregistrează versiunea live. Dacă într-o zi calitatea scade, "ce am schimbat?" Ar trebui să poți răspunde la întrebare în câteva minute. Într-un sistem fără versiune, găsirea cauzei fundamentale a unei regresii durează zile.
Rollback. Dacă un nou prompt sau model se comportă mai rău decât se aștepta în direct, ar trebui să puteți reveni rapid la versiunea anterioară, binecunoscută. O schimbare fără un plan de retragere înseamnă a accepta orbește un risc viu. „Am schimbat ceva, s-a prost, nu mă pot întoarce” este cel mai scump scenariu de producție.
Lansare treptată. În loc să aplicați o modificare la întregul trafic simultan, o implementați mai întâi la un procent mic (de exemplu, 5%) și monitorizați valorile (calitate, cost, erori). Dacă e bine, mărești procentul; Dacă este rău, îl vei primi înapoi cu doar o mică secțiune afectată. Acest lucru limitează foarte mult riscul.
Aceste trei practici combină tehnici din toate unitățile anterioare: eval (unitatea 5) măsoară schimbarea în avans, monitorizarea (această unitate) dă avertizare timpurie în timpul propagării, stratul de verificare prinde rezultate eronate înainte ca acestea să devină acționabile. Producția nu este o singură configurație corectă; Este o disciplină continuă care măsoară, monitorizează și se poate schimba cu încredere. Întregul modul este pentru a stabili această disciplină.
Pe scurt
Producția este mai mult decât o demonstrație de lucru: este o conductă de straturi de intrare, model, verificare, acțiune și monitorizare. Ieșirea este nesigură fără verificare; deciziile cu impact ridicat sunt legate de aprobarea umană; Fiecare apel este monitorizat pentru cost, erori și calitate. Etica, transparența, controlul părtinirii, responsabilitatea și acceptarea limitelor sunt parte integrantă a deciziilor tehnice. Fiecare piesă învățată în acest modul se reunește în acest design holistic.
Sarcina de aplicare
Proiectați o funcție LLM de la capăt la capăt. (1) Completați cele cinci straturi (de intrare, model, verificare, acțiune, monitorizare) pentru sarcina dvs. specifică. (2) Marcați după impact ce decizii vor necesita aprobarea umană. (3) Scrieți cel puțin trei verificări de validare (schemă, regulă, sursă). (4) Determinați valorile cheie pe care le veți urmări și ceea ce nu veți înregistra. (5) Scrieți o limită și un principiu etic pe care le acceptați în această caracteristică.
lista de verificare
- [ ] Pot proiecta cinci straturi ale conductei de producție.
- [ ] Pot valida rezultatul în raport cu schema, regula și sursa.
- [ ] Pot seta un prag de aprobare umană pe baza impactului deciziei.
- [ ] Monitorizez costul, eroarea și calitatea și exersez să nu scriu date sensibile în jurnale.
- [ ] Pot transforma etica, responsabilitatea și limitele în decizii de producție.
Examenul modulului
1. Ce face rolul „sistem” într-un API de chat LLM?
- A) Oferă modelului instrucțiuni permanente și reguli de comportament care se aplică pe parcursul întregii conversații ✔
- B) Păstrează ultima întrebare scrisă de utilizator
- C) Stochează răspunsul produs de model
- D) Criptează cheia API
Descriere: Rolul sistemului oferă modelului instrucțiuni persistente, personalitate și reguli care se aplică pe parcursul întregii conversații; Este o redirecționare la nivel înalt, separată de mesajele utilizatorului.
2. De ce este trimis din nou istoricul conversațiilor (mesajele anterioare) de fiecare dată într-o solicitare API?
- A) Este necesar să faceți backup deoarece serverul șterge istoricul
- B) Apelurile API sunt apatride; ✔ Contextul este retrimis la fiecare solicitare deoarece modelul nu își amintește istoricul
- C) Necesar doar pentru facturare, nu are efect asupra modelului
- D) Trimiterea istoricului este obligatorie pentru a evita încetinirea răspunsului
Explicație: apelurile API LLM sunt apatride; Modelul nu își amintește rundele anterioare, așa că toată istoria relevantă este retrimise la fiecare solicitare de păstrare a contextului.
3. Ce este un „token” în prețurile LLM?
- A) Parolă unică folosită pentru a vă conecta la API
- B) O taxă fixă plătită pentru fiecare cerere
- C) Cea mai mică unitate în care modelul prelucrează textul; de obicei corespunde părții de cuvânt ✔
- D) O unitate care măsoară numai lungimea ieșirii
Descriere: Tokenul este cea mai mică unitate în care modelul procesează text; De obicei, corespunde unui fragment de cuvânt și atât intrarea, cât și ieșirea sunt taxate în funcție de numărul de jetoane.
4. De ce sunt jetoanele de ieșire mai scumpe decât jetoanele de intrare la majoritatea furnizorilor de LLM?
- A) Jetoanele de ieșire sunt întotdeauna mai lungi decât cele de intrare
- B) Jetoanele de intrare sunt gratuite
- C) Jetoanele de ieșire sunt trimise de două ori prin internet
- D) Costul unitar este mai mare deoarece generarea ieșirii necesită calcule suplimentare pentru fiecare simbol ✔
Descriere: Fiecare dintre jetoanele de ieșire necesită ca modelul să efectueze generarea pas cu pas (calcul); Acest cost de producție este mai mare decât procesarea input-ului dintr-o dată, astfel încât prețul unitar de ieșire este de obicei mai mare.
5. În ce situație este cea mai benefică utilizarea streaming-ului?
- A) În răspunsuri lungi; Reduce întârzierea percepută și previne timeout ✔
- B) Numai în răspunsuri foarte scurte, dintr-un singur cuvânt
- C) Pentru a reduce costul la zero
- D) Pentru a ascunde cheia API
Descriere: în cazul răspunsurilor lungi, streamingul reduce latența percepută, făcând primele cuvinte să apară imediat și previne expirarea timpului HTTP la valori mari max_tokens.
6. Ce afectează în general creșterea parametrului „efort” în modelele moderne?
- A) Scurtați întotdeauna răspunsul
- B) Rotește automat cheia API
- C) Reduce doar prețul jetonului de intrare
- D) Crește profunzimea gândirii și cheltuielile cu simboluri; Poate îmbunătăți calitatea, dar crește și latența și costul ✔
Descriere: parametrul efort ajustează cât de profund se va gândi modelul la o sarcină și câte jetoane va cheltui; Actualizarea poate îmbunătăți calitatea, dar crește și latența și costul. Pentru sarcini simple, este suficient un efort redus.
7. Care este, în general, cea mai rentabilă abordare a unei sarcini de clasificare simplă, de mare volum?
- A) Folosiți întotdeauna cel mai scump și mai puternic model
- B) Apelarea tuturor modelelor în același timp pentru fiecare solicitare
- C) Selectarea celui mai ușor/cel mai ieftin model care îndeplinește sarcina verificându-l cu o mică evaluare ✔
- D) menținerea valorii max_tokens în mod inutil prea mare
Explicație: Dacă sarcina nu este complexă, alegerea unui model mai rapid și mai ieftin care realizează cu ușurință sarcina (de exemplu, clasa Haiku) în loc de a utiliza modelul cel mai scump și mai puternic va reduce semnificativ costul.
8. În ce scenariu memorarea promptă în cache reduce cel mai mult costul?
- A) Când un context mare și fix este utilizat în mod repetat în mai multe solicitări ✔
- B) Când se trimite un text complet diferit cu fiecare cerere
- C) Când se face o singură cerere
- D) Pentru a reduce jetoanele de ieșire
Descriere: Memorarea în cache este o potrivire de prefix; În cazurile în care un context mare, imuabil (prompt de sistem, documente) este reutilizat în mai multe solicitări, citirea din cache este o mică fracțiune (~0,1x) din prețul total.
9. Cum ar trebui să editez promptul astfel încât memoria cache a promptului să ajungă?
- A) Punerea de conținut variabil la început și conținut fix la sfârșit
- B) Încorporați data și ora curentă în promptul de sistem pentru fiecare solicitare
- C) Introducerea conținutului fix (prompt de sistem, documente) la început și conținut variabil la sfârșit ✔
- D) Modificarea ordinii listei de instrumente cu fiecare solicitare
Explicație: Deoarece memoria cache este o potrivire de prefix, conținutul fix/neschimbabil (prompt de sistem, documente) este inițializat; conținutul variabil (data, întrebarea utilizatorului, ID-ul cererii) este pus la sfârșit. Chiar și un singur octet modificat la început va invalida memoria cache.
10. Pentru ce tip de volum de lucru este cel mai potrivită procesarea în lot?
- A) Chat live unde utilizatorul așteaptă un răspuns instantaneu pe ecran
- B) O singură întrebare scurtă
- C) Generarea cheii API
- D) Lucrări tolerante la întârziere, volum mare și care nu necesită rezultate imediate ✔
Descriere: Procesarea în lot este potrivită pentru volume mari de lucrări care nu necesită un răspuns imediat și sunt tolerante la întârziere; rezultatele sunt livrate după ceva timp, dar costul unitar este de obicei mai mic.
11. Ce se folosește pentru a potrivi cu încredere ce cerere îi aparțin rezultatele dintr-un lot?
- A) Ordinea de expediere (poziția) cererilor
- B) Lungimea răspunsurilor
- C) Ultimele 4 cifre ale cheii API
- D) Un custom_id unic dat fiecărei solicitări ✔
Observație: rezultatele în bloc pot fi returnate într-o ordine diferită de cea de trimitere; deci este necesar să se potrivească rezultatele după ID, nu locație, cu un custom_id unic dat fiecărei solicitări.
12. Care este comportamentul recomandat atunci când primiți o eroare 429 (limită de rată) de la API?
- A) Forțarea prin trimiterea mult mai multe cereri în același timp
- B) Încercați din nou cu backoff exponențial, urmând titlul de reîncercare după ✔
- C) Anulați complet solicitarea și afișați utilizatorului eroarea ca o blocare
- D) Schimbarea cheii API
Explicație: 429 este o eroare care poate fi reîncercată; Abordarea corectă este să încercați din nou cu backoff exponențial, respectând antetul retry-after. Majoritatea SDK-urilor oficiale fac acest lucru automat.
13. Care dintre următoarele coduri de eroare HTTP sunt, în general, considerate reîncercabile?
- A) 400 (cerere nevalidă)
- B) 401 (eroare de autentificare)
- C) 529 (server supraîncărcat) ✔
- D) 404 (negăsit)
Explicație: 429 (limită de viteză), 500 (eroare de server) și 529 (supraîncărcare) sunt erori temporare și pot fi reîncercate prin deconectare. Erorile precum 400 și 401 sunt probleme de solicitare/identitate; Încercarea din nou nu o va rezolva.
14. Care dintre următoarele este modalitatea sigură de a gestiona cheile API?
- A) Stocarea în variabila de mediu/managerul ascuns, fără încorporarea acesteia în cod și rotirea regulată ✔
- B) Scrieți cheia direct în codul sursă și trimiteți-o la depozit
- C) Introducerea cheii în JavaScript partea client (browser).
- D) Partajarea unei singure chei cu întreaga echipă prin e-mail
Descriere: cheile nu sunt niciodată scrise în codul sursă sau în depozit; Este stocat într-o variabilă de mediu sau într-un instrument de management ascuns, acordat cu privilegii minime și rotit în mod regulat.
15. Care este cea mai bună abordare a integrării LLM cu un instrument de automatizare (n8n, Zapier, Make) în ceea ce privește confidențialitatea?
- A) Trimiterea tuturor datelor brute către model, chiar dacă nu este necesar
- B) Scrierea cheii API în text simplu în cadrul etapei fluxului
- C) Minimizarea și mascarea datelor sensibile și stocarea cheii ca acreditări secrete ✔
- D) Păstrarea permanentă a datelor personale în istoricul fluxului
Descriere: pe măsură ce datele care intră automatizarea trec prin sisteme și modele terțe, datele sensibile/personale trebuie reduse la minimum, mascate și trimise numai câmpurile obligatorii; Cheia API este, de asemenea, stocată ca acreditări secrete în instrument.
16. De ce este obligatorie validarea rezultatelor într-o caracteristică de producție bazată pe LLM?
- A) Este necesară doar formatarea deoarece modelul nu face niciodată greșeli
- B) Pentru că modelul poate produce fluid, dar uneori incorect; Schema/regula trebuie auditată cu aprobarea resurselor și a omului ✔
- C) Validarea ar trebui evitată deoarece nu face decât să mărească costul
- D) Verificarea este doar pentru a reduce numărul de jetoane
Descriere: LLM-urile pot produce rezultate fluente, dar uneori inexacte (halucinatorii); asa a iesit in decizii de mare impact; Ar trebui să fie auditat prin verificarea schemei/regulilor, validarea sursei și aprobarea umană atunci când este necesar.