Vinster:
- Kan designa end-to-end-arkitekturen som tar en LLM-funktion från idé till produktion
- Etablerar lager av verifieringstillämpning, mänskligt godkännande och spårning (loggning/mått)
- Gränser översätter etik och integritetsprinciper till produktionsbeslut
I de tidigare tio enheterna lärde vi oss delarna en efter en: förfrågningsstruktur, tokenekonomi, flöde, systemprompt, modellval, cache, batch, felhantering, säker nyckel och automatisering. I denna sista enhet kombinerar vi delarna och etablerar den holistiska arkitekturen som bär ett LLM-drag från idé till produktion. Produktionen skiljer sig från en "arbetsdemo": verifiering är obligatorisk, produktionen måste övervakas, gränser och etiska principer måste förankras i beslut. Denna enhet är modulens bärarkolumn; Alla de tidigare samlas här.
Lager av produktionsarkitektur
En solid LLM-kvalifikation består av ungefär fem lager:
- Indatalager: Samla data, rengör den, maskera känsliga områden, överför bara det som behövs.
- Modelllager: Välj rätt modell (enhet 5), ställ in systemprompt och parametrar (enhet 4), cache (enhet 6).
- Valideringslager: Kontrollera utdata mot schema/regel, källa och mänskligt godkännande vid behov.
- Åtgärdslager: Utför åtgärd med validerad utdata; Fånga åtgärder med stor effekt.
- Övervakningslager: Spela in och mät varje samtal, kostnad, fel och kvalitet.
Dessa lager är en pipeline; var och en kontrollerar utdata från den föregående.
Varför krävs verifiering?
LLM:er kan producera flytande men ibland felaktiga resultat. Detta kallas hallucination: modellen kan tillverka information som verkar vara sann men som inte är det. I ett chattspel är detta acceptabelt; kan inte tolereras i ett produktionssystem (faktura, hälsa, juridik, ekonomi). Så det visade sig blint opålitligt; är bekräftad.
Verifieringslager (ökar genom påverkan):
- Format/schemavalidering: Överensstämmer utdatan med det förväntade JSON-schemat? (Den strukturerade produktionen garanterar till stor del detta.)
- Regel/logikverifiering: Är värdena rimliga? (Är beloppet negativt, är datumet i framtiden, är kategorin giltig?)
- Källverifiering: Baseras påståendet på den dokumentation som tillhandahålls? Säger modellen något som inte finns i dokumentet?
- Mänskligt godkännande: En expert granskar beslut med stor inverkan eller tvetydiga.
Varning: "Modellen är så bra, ingen ytterligare verifiering behövs" är det farligaste produktionsfelet. Oavsett hur bra modellen är, är verifieringsskiktet ett skyddsnät i beslut med stor genomslagskraft. Även ett felaktigt automatiskt beslut kan ta bort all sparad tid.
Människan-i-slingan
Alla beslut behöver inte vara helt automatiska. I human-in-the-loop-metoden påskyndar modellen arbetet och människan godkänner det. Den rätta balansen beror på beslutets inverkan och modellens tillförlitlighet på den uppgiften.
Beslutets inverkan
Tillvägagångssätt
Låg (etikettförslag, utkast)
Full automatisering; felet är billigt och reversibelt
Medium (dirigering, prioritering)
Automation + provtagningskontroll
Hög (pengar, kontrakt, hälsa, radering)
Mänskligt samtycke är obligatoriskt; modellen bara föreslår
Övervakning: Du kan inte hantera det du inte ser
I produktionen måste du övervaka varje samtal. Utan övervakning kan du inte förbättra kostnaden, kvaliteten eller fånga upp ett problem tidigt. Viktiga mätvärden att registrera:
- Användning/kostnad: Per förfrågan och totala tokens, modellfördelning, dagliga utgifter.
- Latens: Genomsnittlig och värsta svarstid.
- Felfrekvens: 429/500 frekvenser, försök igen, övergivna.
- Kvalitet: Avvisad utdatahastighet vid verifieringslager, korrigeringshastighet vid mänskligt godkännande, användarfeedback.
Tips: Skriv inte känslig information (personlig information, nycklar) till övervakningsloggar. Överväg loggar inom ramen för konfidentialitet; spela in genom att maskera vid behov (enhet 9).
Etik och gränser
Etiskt ansvar är lika mycket en del av produktionsbeslutet som teknisk noggrannhet:
- Transparens: Användaren ska veta om de pratar med en artificiell intelligens eller en människa.
- Rättvisa och partiskhet: Modellen kan ha bias från de data som den är utbildad på; Övervaka diskriminerande konsekvenser i beslut med stor genomslagskraft (anställning, kredit).
- Ansvar: Om ett automatiserat beslut orsakar skada är du ansvarig; "Modellen sa det" är inget försvar.
- Acceptans av gränser: Modellen kan inte utföra vissa uppgifter på ett tillförlitligt sätt; att inte automatisera dem är också ett designbeslut.
Kopierbara mallar
# Valideringschecklista (efter generering av utdata)1) Är schemat giltigt? (strukturerad utdatavalidering)2) Är värdena vettiga? (regelkontroll: intervall, datum, enum)3) Är påståendet baserat på källan? (avvisa om inte i dokumentet)4) Är påverkan hög? → skicka för mänskligt godkännande5) Om allt godkänts → tillåt åtgärd, spara
# Systemprompt som tvingar att lita på källan. Lita endast på informationen i det medföljande dokumentet. Lägg inte till något som inte finns i dokumentet. Om en information inte finns i dokumentet, skriv "Finns inte i dokumentet". Aldrig gissa eller hitta på saker.
# Mänskligt godkännande tröskel (beslutsregel)IF decision_type in [pengar, kontrakt, radera, hälsa] → mänskligt godkännande obligatorisktIF model_trust < tröskel ELLER validering "osäker" → skicka till mänskligt godkännande ÖVRIGT → autotillämpning + provtagningskontroll
# Spårningsloggmall (skriver känslig data){ "time":"...", "model":"...", "input_token":..., "output_token":..., "delay_ms":..., "stop_reason":"...", "autentication":"godkänd|avvisad|mänsklig", "cost_usd": ALDRIG skrivna data och nyckeln }
Svag prompt / Stark prompt (produktionssäkerhet)
# SVAG (ingen verifiering, ingen källa, gäller automatiskt) Utvärdera denna begäran, fatta ett återbetalningsbeslut och ansök.
# STARK (källbaserad, genererar rekommendationer, lämnar till mänskligt godkännande) Utvärdera denna returförfrågan endast baserat på returpolicydokumentet. Rekommendera beslut med motivering men implementera inte: {"recommendation":"approve|reject","reason":"...","policy_clause":"..."}.Om det inte finns någon tydlig grund i policydokumentet, ange "otydligt". En representant kommer att godkänna det slutliga beslutet.
Kraftfull version; Det tillskriver beslutet till källan, positionerar modellen som en "föreslagare" snarare än en "görare" och sätter det storslagna steget bakom mänskligt godkännande. Detta är kärnan i produktionstillförlitlighet.
Tre minifodral
Fall 1 — Dagen då verifieringsskiktet sparades. En fintech lät modellen klassificera transaktionsbeskrivningar och skapa automatiska bokföringsposter. De lade till regelvalidering: när modellen matade ut beloppet felaktigt (12 500 istället för 1 250 i dokumentet), avvisade regeln "beloppet stämmer inte med dokumentet" och posten föll till människan. Om det inte fanns någon verifiering skulle den felaktiga posten tyst komma in i systemet.
Fall 2 — Flyling fångad av övervakning. Ett SaaS-team hade satt upp en övervakningspanel; En morgon tredubblades den dagliga kostnaden. Det sågs från loggarna att en klient gick in i en loop och skickade samma begäran tusentals gånger. De lade till kvot och deduplicering; Problemet löstes inom några timmar. Utan spårning skulle räkningen vara en överraskning i slutet av månaden.
Fall 3 — Acceptera gränsen. En nystartad hälso-och sjukvård planerade att göra en diagnosrekommendation helt automatiskt och visa den för patienten. I en etik- och ansvarsgranskning beslutade de att detta var förbjudet: modellen ger bara en sammanfattning och möjliga hänvisningar till en läkare, läkaren ställer diagnosen. Att inte automatisera ett jobb är också ett moget designbeslut.
Vanliga misstag
- Hoppa över validering: Tillämpa utdata blint och säga "modellen är bra".
- Automatisera beslut med stor genomslagskraft: Mänskligt godkännande är viktigt i pengar/hälsa/lag.
- Ej övervakning: Kostnads- och kvalitetsproblem upptäcks sent.
- Skriva känslig data till loggar: Sekretesskränkning; Spara den genom att maskera den.
- Försöker inte lita på källan: Modellen kan utgöra det som inte finns i dokumentet.
- Att ignorera gränser: Att inte automatisera vissa uppgifter är det rätta beslutet; Transparens och ansvar är ditt.
Djupare: Release Management, Rollback och inkrementell distribution
Att ta en LLM-funktion i produktion handlar inte om att ställa in den och glömma den; är att säkert modifiera ett livesystem över tid. Den har tre pelare.
Versionering. Din systemuppmaning, modellval och verifieringsregler ändras över tiden. Version varje betydande förändring och registrera vilken version som är live. Om kvaliteten en dag sjunker, "vad har vi ändrat?" Du bör kunna svara på frågan inom några minuter. I ett versionslöst system tar det dagar att hitta grundorsaken till en regression.
Återställ. Om en ny prompt eller modell beter sig sämre än förväntat i live, bör du snabbt kunna återgå till den tidigare, välkända versionen. En förändring utan en återställningsplan är att blint acceptera en liverisk. "Jag ändrade något, det blev dåligt, jag kan inte gå tillbaka" är det dyraste produktionsscenariot.
Gradvis utrullning. Istället för att tillämpa en ändring på all trafik på en gång rullar du ut den till en liten procentandel (t.ex. 5 %) först och övervakar mätvärden (kvalitet, kostnad, fel). Är det bra ökar du procenten; Om det är dåligt får du tillbaka det med bara en liten del som påverkas. Detta begränsar risken avsevärt.
Dessa tre metoder kombinerar tekniker från alla tidigare enheter: eval (enhet 5) mäter ändras i förväg, övervakning (denna enhet) ger tidig varning under fortplantning, verifieringsskiktet fångar upp felaktiga utdata innan de blir genomförbara. Produktionen är inte en enda korrekt inställning; Det är en kontinuerlig disciplin som mäter, övervakar och kan förändras med tillförsikt. Hela modulen är till för att du ska etablera denna disciplin.
Sammanfattningsvis
Produktion är mer än en fungerande demo: det är en pipeline av indata-, modell-, verifierings-, handlings- och övervakningsskikt. Utgången är opålitlig utan verifiering; beslut med stor inverkan är knutna till mänskligt godkännande; Varje samtal övervakas för kostnader, fel och kvalitet. Etik, transparens, fördomskontroll, ansvarighet och acceptans av gränser är integrerade i tekniska beslut. Varje del som lärs i denna modul kommer samman i denna holistiska design.
Applikationsuppgift
Designa en LLM-funktion från början till slut. (1) Fyll i de fem lagren (indata, modell, verifiering, åtgärd, övervakning) för din specifika uppgift. (2) Markera efter påverkan vilka beslut som kräver mänskligt godkännande. (3) Skriv minst tre valideringskontroller (schema, regel, källa). (4) Bestäm nyckelmåtten du kommer att spåra och vad du inte kommer att logga. (5) Skriv en gräns och en etisk princip som du accepterar i det här inslaget.
checklista
- [ ] Jag kan designa fem lager av produktionspipelinen.
- [ ] Jag kan validera utdata mot schema, regel och källa.
- [ ] Jag kan sätta en tröskel för mänskligt godkännande baserat på effekten av beslutet.
- [ ] Jag övervakar kostnader, fel och kvalitet och övar på att inte skriva känslig data i loggar.
- [ ] Jag kan omvandla etik, ansvar och gränser till produktionsbeslut.
Modulexamen
1. Vad gör "system"-rollen i ett LLM-chatt-API?
- A) Ger modellen permanenta instruktioner och beteenderegler som gäller genom hela samtalet ✔
- B) Behåller den sista frågan skriven av användaren
- C) Lagrar responsen från modellen
- D) Krypterar API-nyckeln
Beskrivning: Systemrollen ger modellen ihållande instruktioner, personlighet och regler som gäller genom hela samtalet; Det är en omdirigering på hög nivå, skild från användarmeddelanden.
2. Varför skickas konversationshistoriken (tidigare meddelanden) igen varje gång i en API-förfrågan?
- A) Det är nödvändigt att säkerhetskopiera eftersom servern raderar historiken
- B) API-anrop är tillståndslösa; ✔ Kontext skickas på nytt vid varje förfrågan eftersom modellen inte kommer ihåg historien
- C) Krävs endast för fakturering, har ingen effekt på modellen
- D) Sändningshistorik är obligatorisk för att undvika att svaret saktar ner
Förklaring: LLM API-anrop är tillståndslösa; Modellen kommer inte ihåg tidigare omgångar, så all relevant historik skickas på nytt vid varje begäran för att bevara sammanhanget.
3. Vad är en "token" i LLM-prissättning?
- A) Engångslösenord som används för att logga in på API:et
- B) En fast avgift betalas vid varje begäran
- C) Den minsta enhet som modellen bearbetar texten i; motsvarar vanligtvis orddel ✔
- D) En enhet som endast mäter längden på utgången
Beskrivning: Token är den minsta enhet där modellen bearbetar text; Det motsvarar vanligtvis ett fragment av ett ord, och både input och output debiteras baserat på antalet tokens.
4. Varför är output-tokens dyrare än input-tokens hos de flesta LLM-leverantörer?
- A) Utdatatokens är alltid längre än indata
- B) Inmatningstokens är gratis
- C) Utdatatokens skickas två gånger över internet
- D) Enhetskostnaden är högre eftersom produktionen av produktion kräver ytterligare beräkningar för varje token ✔
Beskrivning: Varje utdatatoken kräver att modellen utför steg-för-steg-generering (beräkning); Denna produktionskostnad är högre än att bearbeta insatsen på en gång, så utgående enhetspris är vanligtvis högre.
5. I vilken situation är det mest fördelaktigt att använda streaming?
- A) I långa svar; Minskar upplevd fördröjning och förhindrar timeout ✔
- B) Endast i mycket korta svar på ett ord
- C) Att minska kostnaden till noll
- D) För att dölja API-nyckeln
Beskrivning: I långa svar minskar streaming upplevd latens genom att få de första orden att visas omedelbart och förhindrar HTTP-timeouts vid stora max_tokens-värden.
6. Vad påverkar generellt en ökning av parametern 'ansträngning' i moderna modeller?
- A) Förkorta alltid svaret
- B) Roterar API-nyckeln automatiskt
- C) Det minskar bara priset på ingångssymbolen
- D) Ökar tankedjupet och symboliska utgifter; Det kan förbättra kvaliteten, men det ökar också latens och kostnad ✔
Beskrivning: Parametern ansträngning justerar hur djupt modellen kommer att tänka på en uppgift och hur många tokens den kommer att spendera; Uppgradering kan förbättra kvaliteten, men det ökar också latens och kostnad. För enkla uppgifter räcker det med låg ansträngning.
7. Vilken är generellt sett den mest kostnadseffektiva metoden för en enkel klassificeringsuppgift med stora volymer?
- A) Använd alltid den dyraste och mest kraftfulla modellen
- B) Ringer alla modeller samtidigt för varje förfrågan
- C) Välj den lättaste/billigaste modellen som klarar uppgiften genom att verifiera den med lite eval ✔
- D) att hålla max_tokens-värdet onödigt högt
Förklaring: Om uppgiften inte är komplex, kommer att välja en snabbare och billigare modell som enkelt klarar uppgiften (t.ex. Haiku-klass) istället för att använda den dyraste och mest kraftfulla modellen minska kostnaden avsevärt.
8. I vilket scenario minskar promptcache kostnaderna mest?
- A) När ett stort och fast sammanhang används upprepade gånger över många förfrågningar ✔
- B) När en helt annan text skickas med varje förfrågan
- C) När endast en begäran görs
- D) För att minska utmatningstokens
Beskrivning: Caching är en prefixmatchning; I de fall där ett stort, oföränderligt sammanhang (systemuppmaning, dokument) återanvänds över många förfrågningar, är läsning från cachen en liten bråkdel (~0,1x) av det fulla priset.
9. Hur ska jag redigera prompten så att promptcachen träffar?
- A) Att sätta variabelt innehåll i början och fast innehåll i slutet
- B) Bädda in aktuellt datum och tid i systemprompten för varje begäran
- C) Sätta fast innehåll (systemprompt, dokument) i början och variabelt innehåll i slutet ✔
- D) Ändra ordningen på verktygslistan med varje begäran
Förklaring: Eftersom cachen är en prefixmatchning, initieras fast/oföränderligt innehåll (systemprompt, dokument); variabelt innehåll (datum, användarfråga, begäran-ID) sätts i slutet. Även en enda byte som ändras i början kommer att ogiltigförklara cachen.
10. För vilken typ av arbetsbelastning är batchbearbetning bäst lämpad?
- A) Livechatt där användaren förväntar sig ett omedelbart svar på skärmen
- B) Bara en kort fråga
- C) Genererar API-nyckel
- D) Jobb som är förseningstoleranta, stora volymer och som inte kräver omedelbara resultat ✔
Beskrivning: Batchbearbetning är lämplig för stora volymer jobb som inte kräver ett omedelbart svar och som tål förseningar; resultat levereras efter en tid, men enhetskostnaden är vanligtvis lägre.
11. Vad används för att säkert matcha vilken begäran resultaten tillhör i en batch?
- A) Sändningsorder (position) av förfrågningar
- B) Längd på svar
- C) De fyra sista siffrorna i API-nyckeln
- D) Ett unikt custom_id ges till varje begäran ✔
Anmärkning: Massresultat kan returneras i en annan ordning än inlämningsordningen; så det är nödvändigt att matcha resultat efter ID, inte plats, med ett unikt custom_id som ges för varje begäran.
12. Vad är det rekommenderade beteendet när du får ett 429-fel (hastighetsgräns) från API:et?
- A) Tvinga genom att skicka många fler förfrågningar samtidigt
- B) Försöker igen med exponentiell backoff, efter rubriken för att försöka igen efter ✔
- C) Avbryt begäran helt och visa felet som en krasch för användaren
- D) Ändra API-nyckeln
Förklaring: 429 är ett återförsökbart fel; Det korrekta tillvägagångssättet är att försöka igen med exponentiell backoff, med respekt för återförsök efter-huvudet. De flesta officiella SDK:er gör detta automatiskt.
13. Vilka av följande HTTP-felkoder anses generellt kunna provas igen?
- A) 400 (ogiltig begäran)
- B) 401 (autentiseringsfel)
- C) 529 (server överbelastad) ✔
- D) 404 (hittades inte)
Förklaring: 429 (hastighetsgräns), 500 (serverfel) och 529 (överbelastning) är tillfälliga fel och kan testas igen genom att backa. Fel som 400 och 401 är frågor om begäran/identitet; Att försöka igen löser det inte.
14. Vilket av följande är det säkra sättet att hantera API-nycklar?
- A) Lagra i miljövariabeln/dold hanterare, inte bädda in den i koden och rotera regelbundet ✔
- B) Skriv in nyckeln direkt i källkoden och skicka den till förvaret
- C) Sätta nyckeln i klientsidan (webbläsaren) JavaScript
- D) Dela en enda nyckel med hela teamet via e-post
Beskrivning: Nycklar skrivs aldrig till källkoden eller arkivet; Den lagras i en miljövariabel eller dolt hanteringsverktyg, beviljas med minimala privilegier och roteras regelbundet.
15. Vilket är det bästa sättet att integrera LLM med ett automationsverktyg (n8n, Zapier, Make) när det gäller integritet?
- A) Skickar all rådata till modellen, även om det inte är nödvändigt
- B) Skriva API-nyckeln i vanlig text i flödessteget
- C) Minimera och maskera känslig data och lagra nyckeln som hemliga referenser ✔
- D) Att behålla personuppgifter permanent i flödeshistoriken
Beskrivning: Eftersom data som matas in i automatisering passerar genom tredje parts system och modell, måste känsliga/personliga uppgifter minimeras, maskeras och endast obligatoriska fält skickas; API-nyckeln lagras också som hemliga referenser i verktyget.
16. Varför är validering av output obligatoriskt i en LLM-baserad produktionsfunktion?
- A) Endast formatering krävs eftersom modellen aldrig gör misstag
- B) Eftersom modellen kan producera flytande men ibland felaktigt; Schema/regel måste granskas med resurs och mänskligt godkännande ✔
- C) Validering bör undvikas eftersom det bara ökar kostnaderna
- D) Verifiering är endast för att minska antalet tokens
Beskrivning: LLM:er kan producera flytande men ibland felaktiga (hallucinatoriska) utdata; så det kom ut i beslut med stor effekt; Den bör granskas genom schema/regelkontroll, källvalidering och mänskligt godkännande när det behövs.