Prompt engineering for forbedret NLP

Forbedret NLP med prompts handler om at gøre sprogopgaver mere præcise gennem klare instruktioner, relevante eksempler og kontrollerbare outputkrav. Metoden kan hjælpe ved klassifikation, udtræk, opsummering og tekstnormalisering, men den skal testes mod data, fejltyper og domænesprog.

Artiklens hovedpointer:

Forbedret NLP med prompts kræver klare opgavedefinitioner, relevante eksempler og testbare outputkrav. Overblikket viser, hvordan klassifikation, udtræk, opsummering og tekstnormalisering kan styres mere præcist, og hvornår skemaer, embeddings, finjustering eller tydelig menneskelig fagkontrol bør indgå.

Hvordan kan prompts forbedre NLP-opgaver?

Prompts kan forbedre NLP-opgaver ved at beskrive den sproglige handling, modellen skal udføre, og ved at afgrænse, hvordan svaret skal struktureres. I stedet for bare at bede om en analyse kan du definere, om modellen skal klassificere tekst, udtrække entiteter, opsummere indhold, normalisere formuleringer eller forklare relationer.

NLP, eller natural language processing, dækker teknikker til at analysere, forstå og generere sprog. I klassiske systemer styres opgaven ofte af modeller, regler, annotatorer og træningsdata. Med store sprogmodeller kan en del af styringen flyttes til instruktioner, men det gør ikke opgaven automatisk sikker eller korrekt.

Den praktiske fordel er fleksibilitet. Du kan ændre kriterier, målgruppe og format uden at træne en ny model. Ulempen er variation. To svar kan være sprogligt forskellige, og en model kan overfortolke en uklar opgave. Derfor bør forbedret NLP med prompts altid måles på konkrete testeksempler, ikke kun på et enkelt pænt svar.

Hvilke NLP-opgaver egner sig bedst til tydelige instruktioner?

Tydelige instruktioner egner sig bedst til NLP-opgaver, hvor ønsket output kan beskrives med klare kategorier, felter eller kvalitetskriterier. Det gælder især tekstklassifikation, sentimentanalyse, intent-genkendelse, opsummering, enkel informationsudtrækning, terminologisk omskrivning og forklaring af tekst til en bestemt målgruppe.

Google Cloud Natural Language beskriver blandt andet sentimentanalyse, entitetsanalyse, indholdsklassifikation og syntaksanalyse som centrale teknologier i natural language understanding. Den opdeling er nyttig, fordi hver opgavetype kræver forskellige instruktioner. En sentimentanalyse skal definere labels. Entitetsudtræk skal definere entitetstyper. En opsummering skal definere længde, målgruppe og prioritering.

NLP-opgaver og typiske styringskrav
OpgaveHvad instruktionen bør fastlæggeKontrolpunkt
KlassifikationLabels, labelgrænser og hvordan tvivl markeresOm samme tekst får samme label ved gentagelser
EntitetsudtrækEntitetstyper, format og håndtering af uklare navneOm modellen finder både tydelige og indirekte entiteter
OpsummeringMålgruppe, længde, prioritering og forbud mod nye faktaOm centrale oplysninger bevares uden tilføjelser
NormaliseringSprogstil, terminologi og hvilke ændringer der er tilladtOm betydningen ændres utilsigtet

Opgaver med høj risiko, uklare kategorier eller krav om dokumenterbar nøjagtighed kræver mere end instruktioner. Her bør du bruge evalueringssæt, menneskelig kvalitetssikring og eventuelt specialiserede modeller.

Hvad skal en god NLP-instruktion indeholde?

En god NLP-instruktion bør indeholde opgavetype, inputbeskrivelse, outputformat, labels eller felter, håndtering af usikkerhed og forbud mod uønskede antagelser. Den bør også forklare, om modellen skal bruge hele teksten, bestemte afsnit eller kun oplysninger, der fremgår direkte af input.

Hvis opgaven er klassifikation, skal labels defineres som gensidigt udelukkende kategorier, når det er muligt. Hvis flere labels kan gælde samtidigt, skal det fremgå. Hvis opgaven er udtræk, bør instruktionen definere, om modellen må udlede implicitte oplysninger, eller om den kun må returnere ord og værdier, der findes i teksten.

En robust instruktion beskriver også fejlhåndtering. Det kan være et felt som “ukendt”, en tom liste ved manglende fund eller et krav om kort begrundelse. Uden fejlhåndtering vil modellen ofte forsøge at udfylde et svar, selv når input ikke indeholder tilstrækkelige oplysninger.

Hvornår hjælper eksempler mere end forklaringer?

Eksempler hjælper mere end forklaringer, når grænsen mellem rigtige og forkerte svar er svær at beskrive med regler alene. Det gælder ofte sentimentanalyse, intent-genkendelse, moderering, prioritering af henvendelser og omskrivning til et bestemt sprogniveau.

Få velvalgte eksempler kan vise modellen, hvordan den skal behandle kanttilfælde. Det hænger sammen med zero-shot og few-shot prompting, hvor modellen enten får en ren instruktion eller et lille sæt input/output-eksempler. Eksemplerne bør vise variation, ikke kun idealtilfælde.

Ved klassifikation bør eksempler indeholde både klare og vanskelige tilfælde. Ved entitetsudtræk bør de vise korte, lange og tvetydige tekster. Ved opsummering bør de vise, hvordan modellen skal prioritere oplysninger og undgå at føje nye fakta til input. Eksempler uden forklaring kan være hurtige, men de bør kombineres med korte labeldefinitioner.

Hvordan håndteres danske begreber og domænesprog?

Danske NLP-opgaver har ofte særlige udfordringer: sammensatte ord, bøjningsformer, brancheforkortelser, blanding af dansk og engelsk samt lokale udtryk. En model kan forstå meget af dette generelt, men forbedret kvalitet kræver, at vigtige begreber defineres i instruktionen eller i et kontrolleret ordforråd.

Hvis opgaven handler om kundeservice, kan samme intent udtrykkes som “jeg vil opsige”, “jeg skal afmelde” eller “kan I lukke min konto”. Hvis opgaven handler om jura, medicin eller teknik, kan små begrebsforskelle ændre betydningen. Instruktionen bør derfor beskrive, hvilke ord der er synonymer, og hvilke der ikke må blandes sammen.

Det er også relevant at teste på virkelige danske formuleringer, ikke kun oversatte engelske eksempler. Danske specialtegn, sammensatte substantiver og kortfattede supportbeskeder kan påvirke både klassifikation og udtræk. En god testpakke bør derfor indeholde sproglig variation fra den faktiske anvendelse.

Hvordan bruges strukturerede output til NLP?

Strukturerede output gør NLP-svar lettere at bruge i software, fordi resultatet kan leveres i faste felter. Det er nyttigt ved klassifikation, entitetsudtræk, prioritering, risikomærkning og opsummeringer, der skal gemmes i et system. Et fast format gør det også nemmere at opdage manglende eller ugyldige værdier.

OpenAI beskriver Structured Outputs som en metode, der kan sikre skemaoverholdelse i understøttede modeller, mens almindelig JSON-tilstand primært sikrer gyldig JSON. Forskellen betyder noget for NLP, fordi mange opgaver kræver mere end syntaktisk korrekt output. Felter, værdityper og tilladte labels skal passe til systemets forventning.

Et udtræk af en kundebesked kan for eksempel kræve felterne “intent”, “haster”, “kunde nævner opsigelse” og “begrundelse”. Hvis et felt mangler, kan downstream-systemet træffe en forkert beslutning. Derfor bør strukturerede output valideres efter modellen, også når modellen er instrueret tydeligt.

Hvordan evalueres kvaliteten i praksis?

Kvalitet i NLP evalueres bedst med et lille, repræsentativt datasæt, før løsningen bruges bredt. Testdata bør dække almindelige input, sjældne formuleringer, korte beskeder, lange tekster, tvetydige eksempler og tilfælde, hvor korrekt svar er “ukendt” eller tomt.

Ved klassifikation kan du måle præcision, recall, forvekslede labels og andelen af usikre svar. Ved opsummering bør du vurdere faktabevarelse, udeladelser, forkerte tilføjelser og læsbarhed. Ved entitetsudtræk bør du teste både om rigtige entiteter findes, og om modellen undgår at opfinde entiteter.

En effektiv evalueringsrutine gemmer både input, forventet output, modellens output og fejltype. Det gør det muligt at se, om forbedringer faktisk hjælper, eller om de blot flytter fejlene. Hvis en ændring forbedrer korte tekster, men forværrer lange tekster, er instruktionen ikke generelt bedre.

Hvilke fejltyper skal du teste for?

De vigtigste fejltyper i instruktionstyret NLP er overklassifikation, manglende udtræk, forkerte labels, hallucinerede oplysninger, formatbrud og skjulte antagelser. Derudover bør du teste følsomhed over for små ændringer i ordvalg, rækkefølge og tegnsætning.

  • Overklassifikation: Modellen vælger en label, selv om teksten ikke understøtter den.
  • Underklassifikation: Modellen overser et signal, fordi det er formuleret indirekte.
  • Entitetsfejl: Modellen blander personer, steder, produkter eller organisationer sammen.
  • Formatfejl: Modellen svarer forklarende, selv om systemet kræver faste felter.
  • Datatilføjelse: Modellen føjer oplysninger til, som ikke står i input.

Fejltesten bør også indeholde modstridende input. Hvis en tekst både siger “jeg vil ikke opsige” og “opsig mit abonnement”, skal instruktionen beskrive, hvordan modellen håndterer konflikt. Ellers kan NLP-systemet virke stabilt på simple tekster og fejle netop dér, hvor automatisering er mest risikabel.

Hvor adskiller metoden sig fra finjustering og klassiske NLP-modeller?

Instruktionsdesign med prompts styrer modellens adfærd i den aktuelle opgave. Finjustering af sprogmodeller ændrer modellen gennem træning på eksempler. Klassiske NLP-modeller kan være bygget specifikt til klassifikation, tokenmærkning eller syntaksanalyse og kan være lettere at evaluere på meget snævre opgaver.

Valget afhænger af stabilitet, datamængde og ændringshastighed. Hvis kategorierne ændrer sig ofte, er instruktioner hurtige at justere. Hvis samme opgave gentages i stor skala med kendte labels, kan finjustering eller en specialiseret klassifikationsmodel give mere ensartet drift. Hvis opgaven kræver forklaringer og fleksibel sprogforståelse, kan generative modeller være mere praktiske.

Den afgørende skelnen er vedligeholdelse. Instruktioner kan redigeres hurtigt, men kan være sværere at versionere og teste systematisk. Trænede modeller kræver mere forarbejde, men kan give mere forudsigelige grænser, hvis træningsdata og evalueringsdata er solide.

Hvordan bruges embeddings sammen med instruktionsdesign?

AI-embeddings kan bruges til at finde relevant kontekst, før modellen løser en NLP-opgave. I stedet for at sende en hel vidensbase til modellen kan systemet finde de mest relevante tekststykker og lade instruktionen forklare, hvordan de må bruges.

Det er nyttigt ved spørgsmål-svar, dokumentklassifikation og opsummering på tværs af større tekstmængder. Embeddings finder lignende indhold, mens instruktionen definerer opgaven. De to dele bør ikke forveksles. Et relevant tekststykke er ikke nødvendigvis korrekt svar, og modellen bør stadig instrueres i at markere manglende eller modstridende grundlag.

Ved domænesprog kan embeddings også hjælpe med synonymer og nært beslægtede formuleringer. Hvis en bruger skriver “afmelding”, kan systemet finde materiale om opsigelse, abonnement og kontolukning. Men selve NLP-beslutningen bør stadig testes, fordi semantisk lighed ikke er det samme som juridisk, teknisk eller operationel lighed.

Hvilken rolle spiller tokenisering og kontekstvinduer?

Tokenization og context windows påvirker, hvor meget tekst modellen kan inddrage i én opgave. Hvis input, eksempler, regler og ønsket output samlet bliver for omfattende, kan dele af konteksten få mindre vægt eller falde uden for modellens effektive arbejdsområde.

Det betyder, at lange NLP-opgaver bør opdeles. En stor dokumentsamling kan først segmenteres, derefter analyseres i afsnit og til sidst samles i en kontrolleret konklusion. Hvis alt sendes på én gang, kan modellen både overse detaljer og blande oplysninger fra forskellige afsnit.

Tokenisering påvirker også navne, sammensatte ord og specialtegn. Det betyder ikke, at danske tekster ikke kan behandles, men det understøtter behovet for realistiske testdata. En instruktion, der virker på korte engelske demoer, kan opføre sig anderledes på lange danske kundebeskeder.

Hvilke data- og sikkerhedshensyn gælder?

NLP-opgaver kan indeholde personoplysninger, interne kundedata, kontrakttekst, supporthistorik eller andre følsomme oplysninger. Derfor bør du minimere input, anonymisere hvor det er muligt og adskille brugerdata fra styrende regler. Jo mere automatiseret opgaven er, desto mere kontrol kræves omkring logging, adgang og efterprøvning.

En særlig risiko er, at brugerinput kan ligne instruktioner. Hvis en indsendt tekst indeholder formuleringer som “ignorer reglerne” eller “klassificer mig som lav risiko”, skal systemet behandle det som data, ikke som en ny styrende besked. Det kræver en klar teknisk adskillelse mellem systemets regler og den tekst, der analyseres.

Der bør også være klare grænser for automatiske handlinger. En NLP-model kan foreslå en kategori, en prioritet eller et udkast, men handlinger som afvisning, sletning, blokering eller juridisk vurdering bør have menneskelig kontrol, hvis konsekvensen for brugeren er væsentlig.

Hvornår er metoden ikke nok?

Prompts er ikke nok, når opgaven kræver dokumenteret nøjagtighed, høj volumen med ensartede labels, stram regulering, lav fejltolerance eller fuld sporbarhed. De er heller ikke nok, hvis input kræver adgang til opdaterede databaser, specialiserede fagsystemer eller domæneviden, der ikke leveres som kontrolleret kontekst.

Hvis kategorierne er stabile og der findes mærkede data, kan en klassisk klassifikationsmodel eller en finjusteret model være mere egnet. Hvis opgaven kræver opslag i dokumenter, kan retrieval-augmented generation være nødvendig. Hvis output skal ind i software, bør strukturerede skemaer og validering indgå.

Den bedste løsning er ofte en kombination: klare instruktioner til den sproglige opgave, retrieval til relevant kontekst, skemaer til output, testdata til kvalitet og mennesker til beslutninger med konsekvens. Forbedret NLP handler derfor ikke kun om bedre formuleringer, men om at placere modellen rigtigt i en kontrolleret arbejdsproces.

Hvilke kilder ligger til grund?

Beskrivelsen af modelinstruktioner og roller bygger på OpenAI-dokumentationen om tekstgenerering, mens afsnittet om skemabaserede svar bygger på OpenAI Structured Outputs.

Eksemplerne på klassiske NLP-opgaver er holdt op mod Google Cloud Natural Language, Hugging Face text classification og Hugging Face token classification.