B2BB2B LLM
Zakelijk inzicht

Hoe u LLM-fallbacks ontwerpt zonder de latentie-, kosten- of outputcontracten te verbreken

Een praktische architectuur voor LLM-fallback-routing die nieuwe pogingen scheidt van fallback, providerfouten classificeert, gestructureerde outputcontracten beschermt, de kosten controleert en teams voldoende telemetrie geeft om te bewijzen dat de betrouwbaarheid is verbeterd.

Fallback is niet alleen een lijst met back-upmodellen. Voor technische teams die verschillende LLM-providers gebruiken, is fallback een routeringsbeleid dat beslist wanneer een verzoek van de ene provider of het andere model naar de andere mag gaan, wat onveranderlijk moet blijven en hoe het systeem bewijst dat het alternatieve pad de applicatie betrouwbaarder heeft gemaakt.

Het lezersprobleem is meestal eenvoudig: verminder mislukte verzoeken en verlaag de vertraging zonder stil de uitvoerkwaliteit, schemavaliditeit, veiligheidsgedrag of kosten te veranderen. De oplossing is specifieker dan ‘probeer een andere aanbieder’. Een betrouwbare LLM-fallback-strategie heeft foutclassificatie, aanvraagdeadlines, regels voor modelcompatibiliteit, kostenlimieten, stroomonderbrekers en observatie op provider- en routeniveau nodig.

Begin met een fallback-beleid, en probeer geen code opnieuw

Opnieuw proberen en fallback lossen verschillende problemen op. Bij een nieuwe poging wordt dezelfde provider gevraagd hetzelfde verzoek te voltooien na een tijdelijke fout. Bij een fallback wordt een ander model, provider, regio of route gevraagd om het werk te voltooien. Door deze problemen met elkaar te combineren ontstaan ​​systemen waarover moeilijk te redeneren is tijdens incidenten.

Feit: Betrouwbaarheidsrichtlijnen van aanbieders van cloudinfrastructuur adviseren gewoonlijk een begrensde exponentiële back-off, jitter, maximale limieten voor nieuwe pogingen, idempotentiecontroles en het vermijden van nieuwe pogingen op meerdere lagen, omdat stormen bij nieuwe pogingen de overbelasting kunnen verergeren. Grote LLM-providers documenteren ook tijdelijke fouten, snelheidslimieten, overbelastingsreacties, time-outs en SDK gedrag bij nieuwe pogingen.

Aanbeveling: implementeer één laag voor nieuwe pogingen voor elk verzoekpad. Als de toepassingsgateway het opnieuw probeert, mogen downstream-services het ook niet onafhankelijk opnieuw proberen, tenzij het eigendom van de nieuwe poging expliciet is. Elke nieuwe poging moet dezelfde deadline voor de beller in beslag nemen en mag geen nieuwe time-out met een open einde veroorzaken.

Een minimaal beleid moet deze vragen beantwoorden voordat er code wordt geschreven:

  • Welke fouten kunnen opnieuw worden geprobeerd op dezelfde provider?
  • Welke fouten maken terugval naar een andere provider of een ander model mogelijk?
  • Welke fouten mogen nooit worden geactiveerd fallback?
  • Welk outputcontract moet identiek blijven?
  • Wat is de maximaal toegestane kostenstijging?
  • Hoeveel van de aanvraagdeadline mag worden besteed voordat fallback niet is toegestaan?
  • Welke telemetrie bewijst of fallback een defect heeft geholpen of verborgen?

Classificeer fouten voordat u rondrijdt Hen

Fallback is gevaarlijk als elke non-200 reactie op dezelfde manier wordt behandeld. Een time-out van een provider is niet hetzelfde als een verkeerd opgemaakt verzoek. Een tarieflimiet is niet hetzelfde als een veiligheidsweigering.Een uitvoervalidatiefout is niet hetzelfde als een netwerkfout.

Een praktische taxonomie moet ten minste deze klassen bevatten:

  • Opnieuw te proberen transportfout: verbindingsreset, DNS-probleem, tijdelijke netwerkfout of gateway-time-out.
  • Provider-overbelasting: gedocumenteerde overbelasting of tijdelijke server-side mislukking.
  • Snelheidslimiet: aanvraag-, token-, versnellings- of quotumtempolimiet, vooral wanneer een Retry-After-waarde wordt opgegeven.
  • Time-out provider: de provider heeft het verzoek geaccepteerd, maar heeft het verzoek niet voltooid binnen de serviceperiode.
  • Ongeldig verzoek: misvormd payload, niet-ondersteunde parameter, ongeldig schema of model-incompatibele optie.
  • Authenticatie- of configuratiefout: onjuiste sleutel, uitgeschakeld account, ontbrekende toegangsrechten of opgebruikt quotum op accountniveau.
  • Veiligheidsweigering of -blokkering: de provider weigert of blokkeert opzettelijk inhoud op basis van veiligheid policy.
  • Uitvoervalidatiefout: het model heeft gereageerd, maar het antwoord voldoet niet aan het toepassingscontract.

Aanbeveling: probeer alleen tijdelijke fouten binnen het latentiebudget van de aanroeper opnieuw. Sta alleen terugval toe voor foutklassen die de product- en platformteams expliciet hebben goedgekeurd. Val niet terug op authenticatiefouten, verkeerd geformuleerde verzoeken, deterministische schemafouten of veiligheidsweigeringen, tenzij het product een specifiek alternatief veilig gedrag definieert.

Dit onderscheid is van belang omdat terugval anders bugs kan verbergen. Als een schema ongeldig is voor de primaire provider en door een fallback-provider wordt genegeerd, kan het systeem er gezonder uitzien terwijl het minder beperkte uitvoer retourneert. Dat is geen betrouwbaarheid; het is contractdrift.

Gebruik deadlines, niet alleen time-outs

Problemen met staartlatentie komen vaak voort uit nieuwe pogingen die technisch beperkt zijn, maar praktisch te traag. Een verzoek met een gebruikersgericht budget van 15 seconden mag niet 14 seconden mislukken op de primaire route en vervolgens een volledige terugvalpoging starten die niet op tijd kan worden voltooid.

Gebruik een verzoekdeadline die door de hele stapel wordt doorgegeven. Bij elke routeringsbeslissing moet de resterende tijd worden gecontroleerd voordat deze opnieuw probeert of terugvalt. Bijvoorbeeld:

request_deadline_ms = 6000
primary_attempt_timeout_ms = 3500
retry_backoff_budget_ms = 500
minimum_fallback_budget_ms = 1800

if remaining_deadline_ms < minimum_fallback_budget_ms:
    return controlled_failure

De exacte cijfers zijn afhankelijk van de werklast. Een route voor het voltooien van een chat kan voldoende tijd reserveren voor één alternatief model. Een achtergrondextractietaak kan meerdere pogingen toestaan. Een pad voor automatisch aanvullen in realtime geeft mogelijk de voorkeur aan een snelle fout boven een laat terugvalantwoord.

Aanbeveling: definieer latentiebudgetten per routeklasse, niet globaal. Een UI-route met lage latentie, een batchclassificatieroute en een lange-contextanalyseroute mogen niet dezelfde retry- en fallback-envelop delen.

Definieer modelklassen op werklast

Leveranciersnamen zijn een slechte abstractie voor fallback. De applicatie geeft om de eigenschappen van de werkbelasting: contextlengte, redeneerdiepte, toolondersteuning, gestructureerd uitvoergedrag, latentie, beperkingen voor gegevensverwerking en kosten.Terugvalroutes moeten rond deze eigenschappen worden georganiseerd.

Nuttige modelklassen zijn onder meer:

  • Snelle conceptversie: korte reacties, lage latentie, gemiddelde kwaliteitstolerantie.
  • Gestructureerde extractie: strikte JSON uitvoer, schemavalidatie, lage tolerantie voor indeling drift.
  • Redenering: analyse in meerdere stappen, hogere kwaliteitseisen, hogere acceptabele latentie.
  • Lange context: grote documenten, hoge tokenvensters, zorgvuldige afkapregels.
  • Lage kosten batch: asynchrone of niet-dringende taken geoptimaliseerd voor eenheidseconomie.
  • Premium-escalatie: dure maar capabele modellen die alleen worden gebruikt als het beleid dit toestaat.

Vermeld voor elke klasse de toegestane primaire modellen, toegestane fallback-modellen en verboden downgradepaden. Een verzoek met een lange context mag niet terugvallen op een model met een korte context dat de prompt stilzwijgend afkapt. Een gestructureerde extractietaak mag niet terugvallen op een model dat niet aan de schemabeperkingen kan voldoen. Een premium redeneertaak kan terugvallen naar een ander premium model mogelijk maken, maar niet naar een snel conceptmodel, tenzij de gebruikerservaring expliciet een lager antwoord ondersteunt.

Voor teams die een enterprise LLM API bouwen, moeten deze klassen in configuratie- of beleidsgegevens leven en niet verspreid zijn over applicatieservices. Hierdoor blijft het routeringsgedrag controleerbaar en gemakkelijker te veranderen tijdens providerincidenten.

Bescherm gestructureerde uitvoercontracten

Gestructureerde uitvoerterugval is een van de gemakkelijkste plekken om subtiele productiefouten te creëren. Providers verschillen in de manier waarop ze de JSON-modus, JSON Schema, toolaanroepen, weigeringsvelden, veiligheidsfeedback, voltooiingsredenen en schemasubsets ondersteunen. Een schema dat met het ene model werkt, is niet gegarandeerd overdraagbaar naar een ander model.

Feit: Sommige leveranciersdocumentatie beschrijft strikte schema-naleving voor ondersteunde modellen, terwijl andere documentatie slechts ondersteuning voor een subset van JSON Schema vermeldt. Reacties van providers kunnen ook weigeringsvelden, promptfeedback, veiligheidsbeoordelingen, finishredenen of geen kandidaten bevatten wanneer een prompt geblokkeerd of ongeldig is.

Aanbeveling: behandel uitvoervalidatie als onderdeel van de route, en niet als een optioneel probleem voor de beller. De gateway moet het definitieve antwoord valideren voordat het wordt teruggestuurd naar de toepassing. Als de validatie mislukt, moet de route de fout classificeren en beslissen of een fallback-poging is toegestaan.

Er zijn twee werkbare patronen:

Gebruik een draagbare schema-subset

Houd schema's op het kruispunt van functies die worden ondersteund door goedgekeurde fallback-providers. Dit verbetert de draagbaarheid en verlaagt de operationele complexiteit. Het nadeel is dat u mogelijk rijkere providerspecifieke beperkingen kwijtraakt.

Gebruik providerspecifieke schemaadapters

Onderhoud adapters die het applicatiecontract vertalen naar de ondersteunde schema-indeling van elke provider. Hierdoor blijven de mogelijkheden behouden, maar neemt de test- en onderhoudslast toe.Er is ook een compatibiliteitsmatrix voor nodig, zodat technici weten op welke routes veilig terug kunnen worden gegrepen.

Een basiscompatibiliteitsrecord zou er als volgt uit kunnen zien:

{
  "route": "invoice_extraction_v3",
  "contract": "invoice_json_schema_v3",
  "primary": "provider_a.structured_model",
  "fallbacks": ["provider_b.extraction_model"],
  "disallowed": ["provider_c.fast_model"],
  "requires": ["json_schema", "enum", "required_fields"],
  "validation": "strict_before_return"
}

Aanbeveling: retourneer nooit fallback-uitvoer alleen maar omdat het goed opgemaakte tekst is. Retourneer het pas nadat het voldoet aan hetzelfde contract op applicatieniveau dat wordt verwacht van de primaire route.

Beheers de kosten voordat zich incidenten voordoen

Fallback verschuift verkeer vaak naar duurdere modellen, precies op het moment dat het verkeer toeneemt of een provider achteruitgaat. Zonder kostenbeheersing kan een betrouwbaarheidsmechanisme een uitgavenincident worden.

Stel reserveregels in, waaronder:

  • Maximale reserveprijsvermenigvuldiger per route.
  • Toegestane modellagen per organisatie, werkruimte of omgeving.
  • Dagelijkse of uurlijkse reservebestedingsbudgetten.
  • Afzonderlijk beleid voor interactieve en batchproductietaken.
  • Regels voor de vraag of fallback de grenzen van de provider, regio of modelfamilie mag overschrijden.

Aanbeveling: meet de kosten per succesvol antwoord, niet alleen de ruwe aanvraagkosten. Een duurdere terugval kan gerechtvaardigd zijn als hierdoor een voor de gebruiker zichtbare storing op een kritieke route wordt voorkomen. Dezelfde terugval kan onaanvaardbaar zijn voor batchwerk met lage prioriteit.

Het kostenbeleid moet ook zichtbaar zijn voor de organisaties die het platform gebruiken. Teams willen mogelijk premium terugval toestaan ​​voor workflows voor productieklantenondersteuning, terwijl deze worden geblokkeerd voor ontwikkeling, testen of interne experimenten. Dat is een bestuursbeslissing, niet zomaar een routeringsbeslissing.

Voeg stroomonderbrekers toe per provider, model, regio en foutklasse

Naïeve terugval kan een verslechterde provider schaden. Elk mislukt primair verzoek leidt tot een nieuwe primaire poging en vervolgens tot een nieuwe terugvalpoging, terwijl andere services hetzelfde doen. Stroomonderbrekers verminderen herhaalde druk en maken het routeringsgedrag voorspelbaarder.

Een stroomonderbreker moet specifiek genoeg zijn om overreactie te voorkomen. Markeer een hele provider niet als ongezond omdat één model in één regio gestructureerde uitvoerfouten retourneert. Volg waar mogelijk de status per provider, model, regio, route en foutklasse.

Een eenvoudige statusmachine voor stroomonderbrekers is voor veel teams voldoende:

  • Gesloten: normale verkeersstromen naar de route.
  • Open: route wordt tijdelijk vermeden nadat de foutdrempels zijn bereikt overschreden.
  • Half open: beperkte test voor herstel van verkeerstests voordat het volledige verkeer wordt hervat.

De drempelwaarden moeten rekening houden met het volume. Tien storingen per minuut kunnen betekenisvol zijn voor een route met een laag volume, maar niet relevant voor een route die duizenden verzoeken per minuut verwerkt. Gebruik minimale steekproefgroottes, rollende vensters en foutklassefilters.

Aanbeveling: stroomonderbrekers moeten niet alleen HTTP storingen tellen. Ze moeten ook uitvoervalidatiefouten, time-outpercentages, snelheidslimietpercentages en weigerings- of blokpatronen afzonderlijk volgen. Deze klassen impliceren verschillende operationele reacties.

Log de routeringsbeslissing, niet alleen de uiteindelijke fout

Fallback die de gebruikerservaring verbetert, kan het nog steeds moeilijker maken om incidenten te diagnosticeren.Als logboeken alleen de uiteindelijke succesvolle provider laten zien, verliezen technici het bewijs dat de primaire provider faalde.

Elk verzoek moet het volgende registreren:

  • Oorspronkelijke provider, model en route.
  • Fallback-provider, model en route bij gebruik.
  • Foutklasse die nieuwe pogingen of fallback heeft geactiveerd.
  • ID's van providerverzoek bij gebruik beschikbaar.
  • Aantal nieuwe pogingen en uitstelduur.
  • Deadline verbruikt vóór elke poging.
  • Uitvoervalidatieresultaat.
  • Geschatte kosten voor elke poging en uiteindelijke kosten.
  • Of het uiteindelijke antwoord afkomstig was van primair of fallback.
  • Organisatie, werkruimte, omgeving en metagegevens van applicaties waar het beleid dit toestaat.

Deze telemetrie ondersteunt zowel technisch als commercieel beheer. Het koppelt ook fallback-gedrag aan AI API-kostenbeheersing wanneer verschillende teams, producten of klanten een verschillend betrouwbaarheids- en budgetbeleid hebben.

Meet of fallback daadwerkelijk heeft geholpen

Het ruwe succespercentage is niet genoeg. Een fallback-strategie kan de laatste 200 reacties verhogen, terwijl de p99-latentie slechter wordt, de kosten verdubbelen of minder geldige gestructureerde uitvoer retourneren.

Meet ten minste deze statistieken per route:

  • Primaire succespercentage.
  • Eindelijke succespercentage na nieuwe poging en fallback.
  • p50, p95 en p99-latentie voor en na fallback.
  • Fallback-aanroeppercentage.
  • Kosten per succesvolle reactie.
  • Contract-geldig responspercentage.
  • Veiligheidsweigering of blokkeringspercentage per provider.
  • Kwaliteitsregressiesignalen van applicatiespecifiek evaluatie.

Voorspelling: naarmate meer bedrijven een LLM-infrastructuur met meerdere providers gebruiken, zal het fallback-beleid meer op traffic engineering gaan lijken en minder op ad hoc uitzonderingsafhandeling.Teams verwachten beleidscontroles per werkruimte, omgeving en werklastklasse, met auditlogboeken waarin wordt uitgelegd waarom een model is geselecteerd.

Implementatiechecklist

Gebruik deze checklist voordat u terugval op een productieroute inschakelt:

  • Definieer het latentiebudget en de aanvraagdeadline van de route.
  • Classificeer providerfouten in opnieuw te proberen, terugvalgeschikt en terminal klassen.
  • Documenteer welke fouten geen terugval mogen veroorzaken.
  • Lijst goedgekeurde primaire en terugvalmodellen per werklastklasse.
  • Verifieer de contextlengte, toolondersteuning, schemaondersteuning en veiligheidsgedrag voor elke terugval.
  • Valideer elke uiteindelijke reactie op basis van het applicatiecontract.
  • Stel het maximale aantal nieuwe pogingen, uitstel, jitter, in en verwerking na opnieuw proberen.
  • Configureer stroomonderbrekers op provider, model, regio en foutklasse.
  • Stel kostenvermenigvuldigers en reserve-bestedingslimieten in.
  • Logboekverzoek-ID's, foutklassen, pogingen, validatieresultaten, latentie en kosten.
  • Bekijk de p95- en p99-latentie na de implementatie, niet alleen de gemiddelde latentie.
  • Testprovideruitval, snelheidslimiet, ongeldig schema, veiligheidsweigering en scenario's voor mislukte uitvoervalidatie.

Actiebare conclusie

Een goede LLM-fallback-strategie is een beheerd routeringsbeleid. Het scheidt nieuwe pogingen van fallback, classificeert fouten nauwkeurig, handhaaft uitvoercontracten, respecteert latentiedeadlines en maakt de kosten zichtbaar voordat incidenten plaatsvinden.

Het belangrijkste ontwerpprincipe is onveranderlijkheid. Bepaal wat waar moet blijven als het verkeer van het primaire model naar een fallback gaat: schemavaliditeit, veiligheidsgedrag, contextafhandeling, toolondersteuning, kostenlimieten en waarneembaarheid. Sta vervolgens alleen terugval toe als deze invarianten behouden kunnen blijven.

Begin met één route met een hoge waarde in plaats van een globale terugvalschakelaar. Definieer de fouttaxonomie, compatibele fallback-modellen, validatieregels, stroomonderbrekers en statistieken. Voer foutoefeningen uit op die route. Als het uiteindelijke succespercentage verbetert zonder onaanvaardbare p99-latentie, contractgeldig responsverlies of kostenstijging, breidt u het beleid uit naar de volgende werklastklasse.

Gerelateerd lezen

FAQ

Veelgestelde vragen

Moet elk LLM-verzoek een fallback-model hebben?
Nee. Fallback is het nuttigst voor routes waar beschikbaarheid van belang is en een compatibel alternatief model hetzelfde outputcontract, veiligheidsgedrag, latentiebudget en kostenbeleid kan behouden. Sommige routes zouden in plaats daarvan snel moeten mislukken.
Welke fouten mogen geen LLM-fallback veroorzaken?
Authenticatiefouten, verkeerd geformuleerde verzoeken, niet-ondersteunde parameters, deterministische schemafouten en veiligheidsweigeringen zouden doorgaans terminaal moeten zijn. Terugval in deze gevallen kan productfouten verbergen of bestuursrisico's creëren, tenzij expliciet alternatief gedrag is goedgekeurd.
Hoe verschilt opnieuw proberen van fallback?
Met Opnieuw proberen wordt hetzelfde verzoek opnieuw naar dezelfde provider verzonden, meestal vanwege een tijdelijke fout. Fallback stuurt het verzoek naar een ander model, provider, regio of route. Een nieuwe poging moet binnen een bepaalde deadline plaatsvinden; terugval mag alleen plaatsvinden als het beleid, de compatibiliteit, de resterende tijd en het budget dit toelaten.
Hoe moeten teams fallback-succes meten?
Meet het uiteindelijke succespercentage naast de p95- en p99-latentie, het fallback-aanroeppercentage, de kosten per succesvol antwoord, het contractgeldige responspercentage en kwaliteitsregressiesignalen. Alleen al het succes van ruwe verzoeken kan een langzamere, duurdere of minder betrouwbare output verbergen.