På trods af dine bedste bestræbelser, LLM stadig ikke opfører sig som forventet. Hvad skal du prøve næste? Redigerer du opfordringen? Ændre modellen? Fine-tune? Enhver af disse kan være gyldige muligheder, og der er en rækkefølge, hvor du kan prøve disse rettelser.
Principle V: Follow Prompt-Fix Escalation Ladder
Princip V: Følg Prompt-Fix Escalation Scale(Dette er en del af en igangværende Principles of AI Engineering serie: se indlæg
Når en prompt ikke fungerer som forventet, prøver jeg følgende rettelser i rækkefølge af præference:
-
Expanding and rephrasing instructions.
-
Adding examples.
-
Adding an explanation field.
-
Using a different model.
-
Breaking up a single prompt into multiple prompts.
-
Fine-tuning the model.
-
Throwing the laptop out the window in frustration.
I nogle tilfælde vil rækkefølgen af ting at prøve være anderledes; men at have en standardvej sparer tid og bevarer mental kapacitet til debugging.
Lad os nu skimme over hver tilgang. De første tre falder ind i bucket af Prompt Engineering og vil blive dækket mere dybt i det næste kapitel.
Lightweight Approaches
Lette tilgangeAdding Instructions
Den første ting at forsøge er at genforklare LLM hvad man skal gøre via prompt instruktioner. Prøv at tilføje klarere retninger, omformulere eller flytte instruktioner rundt.
Du skal ikke tøve med at gentage eller omformulere udsagn flere gange i forskellige dele af promptet - LLM'er bliver ikke generet af gentagelse.
Adding Examples
De er særligt vigtige, hvis du bruger mindre modeller; disse er ikke så naturligt "intelligente" så kræver en masse vejledning (
Eksempel på en Prompt med 2-shot Inference (Language Detection):
Detect the language of the text and output it in the JSON format: {“language”: “name_of_language”}. If you don’t know the language, output “unknown” in the language field.
Example I:
Input: Hello
Output: {“language”: “English”}
Example II:
Input: EjnWcn
Output: {“language”: “Unknown”}
Text: {{text}}
Det er normalt, at du bruger 1-3 eksempler, men i nogle tilfælde kan du tilføje flere.
Adding an Explanation Field
LLM'er, ligesom mennesker, drager fordel af at skulle forklare deres tænkning. Tilføj et "forklaring" felt til din output JSON, og output vil normalt blive bedre. Dette vil også hjælpe dig med at identificere, hvorfor modellen træffer bestemte beslutninger og justere instruktioner og eksempler.
I tilfælde, hvor forespørgslen bruger intern dokumentation - bed LLM om at udstede de sektioner af dokumentation, den brugte til at konstruere svar.
Du kan også prøve at bruge en
Changing the Model
Forskellige modeller udmærker sig ved forskellige typer opgaver.OpenAI's o3 model udmærker sig ved at analysere kode, men god gammel 4o har tendens til at producere bedre skrivning på trods af at være billigere pr. Token.
Denne eksperimentering fungerer hurtigere og sikrere, når du har automatiserede tests og målinger til at måle hver modells "tilpasning" til opgaven.
Heavyweight Approaches
Tunge tilgangeAlle metoder hidtil har været relativt lave omkostninger at prøve. nu kommer vi ind i de tunge fejlrettelser.
Breaking Up the Prompt
Hvis en prompt ikke kan få arbejdet gjort - hvorfor ikke prøve et system af to eller flere prompt?
-
Splitting the prompt by area of responsibility.
-
Using a new prompt as a guardrail reviewing output of the previous one.
Begge metoder er indført i
Fine-Tuning
Fine-tuning er en endnu tungere tilgang end at bruge flere opfordringer. For de fleste problemer bruger jeg det som en sidste udvej.
Hvorfor tøver jeg med at anbefale finjustering i de fleste tilfælde?
Overvej fin-tuning når du:
- Andre teknikker nåede ikke målet.
- Problemet er meget komplekst og specialiseret, og standard LLM viden er utilstrækkelig.
- Du har en høj volumen brug case og ønsker at spare penge ved at bruge en lavere end-model.
- Der kræves lav latens, så flere opfordringer ikke kan udføres i sekvens.
Conclusion
KonklusionenForhåbentlig præciserer denne artikel rækkefølgen af trin, du skal tage, når opfordringerne ikke fungerer som planlagt. Først vil du typisk prøve en hurtig ingeniørtilgang. Hvis det ikke virker, så prøv at skifte model og se, om det hjalp. Næste trin er at bruge flere interaktive opfordringer. Endelig overveje finjustering, hvis alle andre metoder har fejlet.
Hvis du har nydt dette indlæg - abonnere på mere.