Enhed 11 / 11

End-to-End-produktion: Verifikation, overvågning og etik

Gevinster:

  • Kan designe den ende-til-ende-arkitektur, der tager en LLM-funktion fra idé til produktion
  • Etablerer lag af verifikationshåndhævelse, menneskelig godkendelse og sporing (logning/metrics)
  • Grænser omsætter etik og privatlivsprincipper til produktionsbeslutninger

I de foregående ti enheder lærte vi delene én efter én: anmodningsstruktur, token-økonomi, flow, systemprompt, modelvalg, cache, batch, fejlhåndtering, sikker nøgle og automatisering. I denne sidste enhed kombinerer vi delene og etablerer den holistiske arkitektur, der bærer et LLM-træk fra idé til produktion. Produktion er forskellig fra en "arbejdsdemo": verifikation er obligatorisk, output skal overvåges, grænser og etiske principper skal indlejres i beslutninger. Denne enhed er modulets bærersøjle; Alle de tidligere samles her.

Lag af produktionsarkitektur

En solid LLM-kvalifikation består af cirka fem lag:

  1. Inputlag: Indsaml data, rengør dem, masker følsomme områder, send kun det nødvendige.
  2. Modellag: Vælg den korrekte model (enhed 5), indstil systemprompt og parametre (enhed 4), cache (enhed 6).
  3. Valideringslag: Tjek output mod skema/regel, kilde og menneskelig godkendelse, hvis det er nødvendigt.
  4. Handlingslag: Udfør handling med valideret output; Optag handlinger med stor effekt.
  5. Overvågningslag: Optag og mål alle opkald, omkostninger, fejl og kvalitet.

Disse lag er en rørledning; hver enkelt kontrollerer output fra den forrige.

Hvorfor er verifikation påkrævet?

LLM'er kan producere flydende, men nogle gange unøjagtige output. Dette kaldes hallucination: modellen kan fremstille oplysninger, der ser ud til at være sande, men som ikke er det. I et chatspil er dette acceptabelt; kan ikke tolereres i et produktionssystem (faktura, sundhed, jura, økonomi). Så det viste sig, blindt upålideligt; er bekræftet.

Verifikationslag (stiger ved påvirkning):

  • Format/skemavalidering: Er output i overensstemmelse med det forventede JSON-skema? (Det strukturerede output garanterer stort set dette.)
  • Regel/logik verifikation: Er værdierne rimelige? (Er beløbet negativt, er datoen i fremtiden, er kategorien gyldig?)
  • Kildebekræftelse: Er påstanden baseret på den leverede dokumentation? Siger modellen noget, der ikke er i dokumentet?
  • Menneskelig godkendelse: En ekspert gennemgår beslutninger med stor indflydelse eller tvetydige.
Advarsel: "Modellen er så god, at der ikke er behov for yderligere verifikation" er den farligste produktionsfejl. Uanset hvor god modellen er, er verifikationslaget et sikkerhedsnet i beslutninger med stor indflydelse. Selv én forkert automatisk beslutning kan tage al den sparede tid væk.

Menneske-i-løkken

Ikke enhver beslutning skal være fuldautomatisk. I human-in-the-loop tilgangen fremskynder modellen arbejdet, og mennesket godkender det. Den rette balance afhænger af beslutningens indflydelse og modellens pålidelighed på den opgave.

Beslutningens virkning

tilgang

Lav (etiketforslag, kladde)

Fuld automatisering; fejl er billig og reversibel

Medium (routing, prioritering)

Automatisering + prøveudtagningskontrol

Høj (penge, kontrakt, sundhed, sletning)

Menneskets samtykke er obligatorisk; modellen foreslår kun

Overvågning: Du kan ikke administrere det, du ikke ser

I produktionen skal du overvåge hvert opkald. Uden overvågning kan du ikke forbedre omkostningerne, kvaliteten eller opdage et problem tidligt. Nøglemålinger til registrering:

  • Anvendelse/omkostninger: Pr. anmodning og samlede tokens, modelfordeling, dagligt forbrug.
  • Latency: Gennemsnitlig og worst-case responstid.
  • Fejlrate: 429/500 rater, genforsøg, opgivelser.
  • Kvalitet: Afvist outputhastighed ved verifikationslag, korrektionshastighed ved menneskelig godkendelse, brugerfeedback.
Tip: Skriv ikke følsomme data (personlige oplysninger, nøgler) til overvågningslogfiler. Overvej logfiler inden for rammerne af fortrolighed; optag ved maskering om nødvendigt (enhed 9).

Etik og grænser

Etisk ansvar er lige så meget en del af produktionsbeslutningen som teknisk nøjagtighed:

  • Gennemsigtighed: Brugeren skal vide, om de taler med en kunstig intelligens eller et menneske.
  • Retfærdighed og bias: Modellen kan have bias fra de data, som den er trænet på; Overvåg diskriminerende konsekvenser i beslutninger med stor effekt (ansættelse, kredit).
  • Ansvar: Hvis en automatiseret beslutning forårsager skade, er du ansvarlig; "Modellen sagde det" er ikke et forsvar.
  • Accept af grænser: Modellen kan ikke udføre nogle opgaver pålideligt; ikke at automatisere dem er også en designbeslutning.

Kopierbare skabeloner

# Valideringstjekliste (efter outputgenerering)1) Er skemaet gyldigt? (struktureret outputvalidering)2) Giver værdierne mening? (regelkontrol: interval, dato, enum)3) Er påstanden baseret på kilden? (afvis hvis ikke i dokumentet)4) Er påvirkningen høj? → send til menneskelig godkendelse5) Hvis alt er bestået → tillad handling, gem

# Systemprompt, der tvinger at stole på kilden. Stol kun på oplysningerne i det medfølgende dokument. Tilføj ikke noget, der ikke er i dokumentet. Hvis en information ikke er i dokumentet, skriv "Ikke fundet i dokumentet". Aldrig gætte eller finde på ting.

# Menneskelig godkendelsestærskel (beslutningsregel) IF decision_type in [penge, kontrakt, sletning, sundhed] → menneskelig godkendelse obligatoriskIF model_trust < threshold ELLER validering "usikker" → indsend til menneskelig godkendelse ANDET → autoanvend + prøveudtagningskontrol

# Sporingslogskabelon (skriver følsomme data){ "time":"...", "model":"...", "input_token":..., "output_token":..., "delay_ms":..., "stop_reason":"...", "autentication":"bestået|afvist|menneske", "cost_usd": ALDRIG skrevet // nøgle er //-nøgle skrevet:...

Svag prompt / stærk prompt (produktionspålidelighed)

# SVAG (ingen verifikation, ingen kilde, gælder automatisk) Evaluer denne anmodning, tag en tilbagebetalingsbeslutning og ansøg.

# STÆRK (kildebaseret, genererer anbefaling, overlader til menneskelig godkendelse) Evaluer kun denne returanmodning baseret på returpolitikdokumentet. Anbefal beslutning med begrundelse, men implementer ikke: {"recommendation":"godkend|afvis","reason":"...","policy_clause":"..."}.Hvis der ikke er et klart grundlag i politikdokumentet, giv "uklart". En repræsentant godkender den endelige beslutning.

Kraftig version; Det tilskriver beslutningen til kilden, placerer modellen som en "forslagsstiller" snarere end en "gører", og sætter det høje indvirkningstrin bag menneskelig godkendelse. Dette er essensen af ​​produktionspålidelighed.

Tre mini etuier

Tilfælde 1 — Den dag, hvor verifikationslaget blev gemt. En fintech fik modellen til at klassificere transaktionsbeskrivelser og oprette automatiske regnskabsposter. De tilføjede regelvalidering: når modellen udskrev beløbet forkert (12.500 i stedet for 1.250 i dokumentet), afviste reglen "beløbet matcher ikke dokumentet" outputtet, og registreringen faldt til mennesket. Hvis der ikke var nogen verifikation, ville den forkerte registrering stille ind i systemet.

Sag 2 — Flygtning fanget af overvågning. Et SaaS-team havde oprettet et overvågningspanel; En morgen tredobledes de daglige omkostninger. Det kunne ses fra loggene, at en klient gik ind i en løkke og sendte den samme anmodning tusindvis af gange. De tilføjede kvote og deduplikering; Problemet blev løst inden for få timer. Uden sporing ville regningen være en overraskelse i slutningen af ​​måneden.

Tilfælde 3 — Accept af grænsen. En startup i sundhedssektoren planlagde at lave en diagnoseanbefaling helt automatisk og vise den til patienten. I en etik- og ansvarsgennemgang besluttede de, at dette var off-limits: modellen giver kun et resumé og mulige pointer til en læge, lægen stiller diagnosen. Ikke at automatisere et job er også en moden designbeslutning.

Almindelige fejl

  • Spring validering over: Blindt anvende outputtet og sige "modellen er god".
  • Automatisering af beslutninger med stor effekt: Menneskelig godkendelse er afgørende i penge/sundhed/lovgivning.
  • Ikke overvågning: Omkostnings- og kvalitetsproblemer opdages sent.
  • Skrivning af følsomme data til logfiler: Krænkelse af privatlivets fred; Gem det ved at maskere det.
  • Forsøger ikke at stole på kilden: Modellen kan udgøre det, der ikke er i dokumentet.
  • Ignorer grænser: Ikke at automatisere nogle opgaver er den rigtige beslutning; Gennemsigtighed og ansvar er dit eget.

Dybere: Release Management, Rollback og Incremental Deployment

At tage en LLM-funktion i produktion handler ikke om at sætte den op og glemme den; er at sikkert ændre et live system over tid. Den har tre søjler.

Versionering. Din systemprompt, modelvalg og verifikationsregler ændres over tid. Version hver væsentlig ændring og optag, hvilken version der er live. Hvis kvaliteten en dag falder, "hvad har vi ændret?" Du bør være i stand til at besvare spørgsmålet inden for få minutter. I et versionsløst system tager det dage at finde årsagen til en regression.

Rul tilbage. Hvis en ny prompt eller model opfører sig dårligere end forventet i live, bør du hurtigt kunne vende tilbage til den tidligere, velkendte version. En ændring uden en tilbagerulningsplan er blindt at acceptere en liverisiko. "Jeg har ændret noget, det blev dårligt, jeg kan ikke gå tilbage" er det dyreste produktionsscenarie.

Gradvis udrulning. I stedet for at anvende en ændring på al trafik på én gang, ruller du den ud til en lille procentdel (f.eks. 5 %) først og overvåger metrics (kvalitet, omkostninger, fejl). Hvis det er godt, øger du procenten; Hvis det er dårligt, får du det tilbage med kun en lille sektion, der er påvirket. Dette begrænser i høj grad risikoen.

Disse tre praksisser kombinerer teknikker fra alle tidligere enheder: eval (enhed 5) måler ændringer på forhånd, overvågning (denne enhed) giver tidlig advarsel under udbredelsen, verifikationslaget fanger fejlagtige output, før de bliver handlingsdygtige. Produktion er ikke et enkelt korrekt setup; Det er en kontinuerlig disciplin, der måler, overvåger og kan ændre sig med tillid. Hele modulet er til dig for at etablere denne disciplin.

Sammenfattende

Produktion er mere end en fungerende demo: Det er en pipeline af input, model, verifikation, handling og overvågningslag. Udgangen er upålidelig uden verifikation; beslutninger med stor effekt er knyttet til menneskelig godkendelse; Hvert opkald overvåges for omkostninger, fejl og kvalitet. Etik, gennemsigtighed, bias-kontrol, ansvarlighed og accept af grænser er en integreret del af tekniske beslutninger. Hver del, der læres i dette modul, samles i dette holistiske design.

Ansøgningsopgave

Design en LLM-funktion end-to-end. (1) Udfyld de fem lag (input, model, verifikation, handling, overvågning) til din specifikke opgave. (2) Markér efter indvirkning, hvilke beslutninger der kræver menneskelig godkendelse. (3) Skriv mindst tre valideringstjek (skema, regel, kilde). (4) Bestem de nøglemålinger, du vil spore, og hvad du ikke vil logge. (5) Skriv en grænse og et etisk princip, som du accepterer i dette indslag.

tjekliste

  • [ ] Jeg kan designe fem lag af produktionspipelinen.
  • [ ] Jeg kan validere outputtet mod skema, regel og kilde.
  • [ ] Jeg kan indstille en menneskelig godkendelsestærskel baseret på virkningen af ​​beslutningen.
  • [ ] Jeg overvåger omkostninger, fejl og kvalitet og øver mig i ikke at skrive følsomme data i logfiler.
  • [ ] Jeg kan transformere etik, ansvar og grænser til produktionsbeslutninger.

Modul eksamen

1. Hvad gør "system"-rollen i en LLM chat API?

  • A) Giver modellen permanente instruktioner og adfærdsregler, der gælder gennem hele samtalen ✔
  • B) Beholder det sidste spørgsmål skrevet af brugeren
  • C) Gemmer responsen produceret af modellen
  • D) Krypterer API-nøglen

Beskrivelse: Systemrollen giver modellen vedvarende instruktioner, personlighed og regler, der gælder gennem hele samtalen; Det er en omdirigering på højt niveau, adskilt fra brugerbeskeder.

2. Hvorfor sendes samtalehistorikken (tidligere beskeder) igen hver gang i en API-anmodning?

  • A) Det er nødvendigt at tage backup, da serveren sletter historikken
  • B) API-kald er statsløse; ✔ Kontekst sendes igen på hver anmodning, fordi modellen ikke husker historien
  • C) Kun påkrævet til fakturering, har ingen effekt på modellen
  • D) Afsendelseshistorik er obligatorisk for at undgå at bremse svaret

Forklaring: LLM API-kald er statsløse; Modellen husker ikke tidligere runder, så al relevant historie sendes igen ved hver anmodning for at bevare konteksten.

3. Hvad er et 'token' i LLM-priser?

  • A) Engangsadgangskode brugt til at logge ind på API'en
  • B) Et fast gebyr betales ved hver anmodning
  • C) Den mindste enhed, som modellen behandler teksten i; svarer normalt til orddel ✔
  • D) En enhed, der kun måler længden af output

Beskrivelse: Token er den mindste enhed, hvor modellen behandler tekst; Det svarer normalt til et fragment af et ord, og både input og output debiteres baseret på antallet af tokens.

4. Hvorfor er output-tokens dyrere end input-tokens hos de fleste LLM-udbydere?

  • A) Output-tokens er altid længere end input
  • B) Input-tokens er gratis
  • C) Output-tokens sendes to gange over internettet
  • D) Enhedsomkostninger er højere, fordi produktion af output kræver yderligere beregninger for hver token ✔

Beskrivelse: Hvert af outputtokenserne kræver, at modellen udfører trin-for-trin-generering (beregning); Denne produktionsomkostning er højere end at behandle input på én gang, så output enhedsprisen er normalt højere.

5. I hvilken situation er det mest fordelagtigt at bruge streaming?

  • A) I lange svar; Reducerer opfattet forsinkelse og forhindrer timeout ✔
  • B) Kun i meget korte svar på et ord
  • C) At reducere omkostningerne til nul
  • D) For at skjule API-nøglen

Beskrivelse: I lange svar reducerer streaming den opfattede latenstid ved at få de første ord til at vises med det samme og forhindrer HTTP-timeouts ved store max_tokens-værdier.

6. Hvad påvirker det generelt at øge 'indsats'-parameteren i moderne modeller?

  • A) Forkort altid svaret
  • B) Roterer API-nøglen automatisk
  • C) Det reducerer kun input token-prisen
  • D) Øger tænkedybde og symbolsk forbrug; Det kan forbedre kvaliteten, men det øger også latens og omkostninger ✔

Beskrivelse: Indsatsparameteren justerer, hvor dybt modellen vil tænke over en opgave, og hvor mange tokens den vil bruge; Opgradering kan forbedre kvaliteten, men det øger også ventetiden og omkostningerne. Til simple opgaver er lav indsats tilstrækkelig.

7. Hvad er generelt den mest omkostningseffektive tilgang til en enkel klassificeringsopgave med store mængder?

  • A) Brug altid den dyreste og mest kraftfulde model
  • B) Ringer til alle modeller på samme tid for hver anmodning
  • C) Valg af den letteste/billigste model, der udfører opgaven ved at verificere den med en lille eval ✔
  • D) at holde max_tokens værdien unødigt for høj

Forklaring: Hvis opgaven ikke er kompleks, vil valget af en hurtigere og billigere model, der nemt klarer opgaven (f.eks. Haiku-klassen) i stedet for at bruge den dyreste og mest kraftfulde model, reducere omkostningerne betydeligt.

8. I hvilket scenarie reducerer prompt-caching omkostningerne mest?

  • A) Når en stor og fast kontekst bruges gentagne gange på tværs af mange anmodninger ✔
  • B) Når en helt anden tekst sendes med hver anmodning
  • C) Når kun en enkelt anmodning fremsættes
  • D) For at reducere output-tokens

Beskrivelse: Caching er et præfiksmatch; I tilfælde, hvor en stor, uforanderlig kontekst (systemprompt, dokumenter) genbruges på tværs af mange anmodninger, er læsning fra cachen en lille brøkdel (~0,1x) af den fulde pris.

9. Hvordan skal jeg redigere prompten, så promptcachen rammer?

  • A) Sætte variabelt indhold i begyndelsen og fast indhold i slutningen
  • B) Integrer den aktuelle dato og klokkeslæt i systemprompten for hver anmodning
  • C) Sætte fast indhold (systemprompt, dokumenter) i begyndelsen og variabelt indhold i slutningen ✔
  • D) Ændring af rækkefølgen af værktøjslisten med hver anmodning

Forklaring: Da cachen er et præfiksmatch, initialiseres fast/uændret indhold (systemprompt, dokumenter). variabelt indhold (dato, brugerspørgsmål, anmodnings-id) sættes til sidst. Selv en enkelt byte ændret i begyndelsen vil ugyldiggøre cachen.

10. Hvilken type arbejdsbyrde er batchbehandling bedst egnet til?

  • A) Live chat, hvor brugeren forventer et øjeblikkeligt svar på skærmen
  • B) Bare et kort spørgsmål
  • C) Generering af API-nøgle
  • D) Opgaver, der er forsinkelsestolerante, store mængder og ikke kræver øjeblikkelige resultater ✔

Beskrivelse: Batchbehandling er velegnet til store mængder job, der ikke kræver et øjeblikkeligt svar og er tolerante over for forsinkelser; resultater leveres efter nogen tid, men enhedsomkostningerne er normalt lavere.

11. Hvad bruges til sikkert at matche hvilken anmodning resultaterne hører til i en batch?

  • A) Afsendelse af ordre (position) af anmodninger
  • B) Længde af svar
  • C) Sidste 4 cifre i API-nøglen
  • D) Et unikt custom_id givet til hver anmodning ✔

Bemærk: Masseresultater kan returneres i en anden rækkefølge end indsendelsesrækkefølgen; så det er nødvendigt at matche resultater efter ID, ikke placering, med et unikt custom_id givet til hver anmodning.

12. Hvad er den anbefalede adfærd, når du modtager en 429 (rate limit) fejl fra API'en?

  • A) Tvinge ved at sende mange flere anmodninger på samme tid
  • B) Prøver igen med eksponentiel backoff, efter overskriften for at prøve igen efter ✔
  • C) Annuller anmodningen fuldstændigt og vis fejlen som et nedbrud til brugeren
  • D) Ændring af API-nøglen

Forklaring: 429 er en fejl, der kan prøves igen; Den korrekte tilgang er at prøve igen med eksponentiel backoff, idet man respekterer gentag-efter-headeren. De fleste officielle SDK'er gør dette automatisk.

13. Hvilke af følgende HTTP-fejlkoder anses generelt for at kunne prøves igen?

  • A) 400 (ugyldig anmodning)
  • B) 401 (godkendelsesfejl)
  • C) 529 (server overbelastet) ✔
  • D) 404 (ikke fundet)

Forklaring: 429 (hastighedsbegrænsning), 500 (serverfejl) og 529 (overbelastning) er midlertidige fejl og kan prøves igen ved at gå tilbage. Fejl som 400 og 401 er anmodninger/identitetsproblemer; At prøve igen løser det ikke.

14. Hvilken af ​​følgende er den sikre måde at administrere API-nøgler på?

  • A) Lagring i miljøvariablen/skjult manager, ikke indlejring af den i koden og rotation regelmæssigt ✔
  • B) Skriv nøglen direkte ind i kildekoden og send den til depotet
  • C) Sætte nøglen i klientsiden (browser) JavaScript
  • D) Deling af en enkelt nøgle med hele teamet via e-mail

Beskrivelse: Nøgler skrives aldrig til kildekoden eller depotet; Det er gemt i en miljøvariabel eller skjult administrationsværktøj, givet med minimale rettigheder og roteret regelmæssigt.

15. Hvad er den bedste tilgang til LLM-integration med et automatiseringsværktøj (n8n, Zapier, Make) med hensyn til privatliv?

  • A) Sende alle rådata til modellen, selvom det ikke er nødvendigt
  • B) Skrivning af API-nøglen i almindelig tekst inde i flow-trinnet
  • C) Minimering og maskering af følsomme data og lagring af nøglen som hemmelige legitimationsoplysninger ✔
  • D) Holde personlige data permanent i flowhistorikken

Beskrivelse: Da dataindtastning automatisering passerer gennem tredjepartssystemer og -model, skal følsomme/personlige data minimeres, maskeres og kun påkrævede felter sendes; API-nøglen gemmes også som hemmelige legitimationsoplysninger i værktøjet.

16. Hvorfor er validering af output obligatorisk i en LLM-baseret produktionsfunktion?

  • A) Kun formatering er påkrævet, fordi modellen aldrig laver fejl
  • B) Fordi modellen kan producere flydende, men nogle gange forkert; Skema/regel skal revideres med ressource- og menneskelig godkendelse ✔
  • C) Validering bør undgås, fordi det kun øger omkostningerne
  • D) Verifikation er kun for at reducere antallet af tokens

Beskrivelse: LLM'er kan producere flydende, men nogle gange unøjagtige (hallucinatoriske) output; så det kom ud i beslutninger med stor effekt; Det bør revideres ved skema/regelkontrol, kildevalidering og menneskelig godkendelse, når det er nødvendigt.