Træn din egen AI: En guide for ejendomsmæglere

Der lander endnu en ejendom i dit portefølje, og mens spændingen ved et nyt salg bobler, så står du overfor den velkendte udfordring: at skabe en frisk og fængende ejendomsbeskrivelse. Situationen er klassisk – et tomt dokument stirrer tilbage, ventende på at blive fyldt med levende beskrivelser, der skal overbevise fremtidige købere. Heldigvis kan processen være anderledes. OpenAI har nemlig introduceret en opdatering, som gør det muligt at personliggøre AI-modeller, så de afspejler netop din unikke skrivestil.

I denne trin-for-trin vejledning lærer du at træne din egen AI til at transformere noter til levende ejendomsbeskrivelser.

Vi bruger Eltoft Nielsens ejendomsbeskrivelser som eksempel, da hans måde at give ord til murstensdrømme på er helt og aldeles særegen. Eltoft Nielsen har en bemærkelsesværdig evne til at skabe beskrivelser, der vækker ejendomme til liv, skaber følelsesmæssige forbindelser og lokker køberne ind i en verden, hvor hvert hjem er en fortælling værd at dykke ned i.

Valget af Eltoft Nielsens ejendomsbeskrivelser som fundament for vores AI’s finetuning er bevidst. Hans skrivestil er så karakteristisk, at hvis AI’en kan fange hans tone og stil, vil det tydeligt demonstrere systemets evne til at tilpasse og genskabe individuelle skrivestile.

Det skal siges at du selvfølgelig bør lave den på din egne tidligere beskrivelser og ikke Eltoft Nielsens, så du får et tool i værktøjskassen, der er brugbart for dig fremadrettet.

Guiden består af 8 enkle trin – hvis du blot er interesseret i at se resultatet, kan du skippe direkte til trin 7 og 8.

  1. Definer din specikke usecase
    Det hele starter med en vision. Hvad ønsker du at opnå med din AI-model? Vi hjælper dig med at fastlægge din specifikke use case.
  2. Hent din OpenAI API-nøgle
    Ingen rejse uden billet – og i dette eventyr er din billet en API-nøgle fra OpenAI.
  3. Forbered din data
    For at AI kan lære, har den brug for materiale. Vi viser dig, hvordan du effektivt forbereder dit datagrundlag.
  4. Transformér din data til det rigtige format (JSONL)
    Data skal tale AI’ens sprog. Lær at omdanne dit indsamlede materiale til det korrekte format, så du kan begynde træningen uden komplikationer.
  5. Igangsæt finetuning
    Træningstid!
  6. Sådan tester du modellen
    En hurtig guide til at teste din model i OpenAI’s playground, samt vigtige overvejelser vedrørende din model
  7. Resultat af vores finetunede model
    Kan vi replikere Eltoft Nielsens stil og tone?
  8. Sammenlign med Prompt Engineering
    Endelig vil vi udforske, hvordan en finetunet model står i forhold til den mere manuelle tilgang ved prompt engineering, og diskutere fordele og udfordringer ved begge metoder.

Hvad er finetuning?

Før vi dykker ned i detaljerne, skal vi dog lige have klargjort et centralt begreb: Hvad indebærer finetuning egentlig?

Finetuning er en målrettet proces, der finpudser en allerede dygtig sprogmodel, så den performer endnu bedre til bestemte opgaver. Forestil dig ChatGPT – en specialudviklet udgave af de generelle GPT-modeller – som nu, efter finetuning, er en sand mester i kunsten at konversere. Gennem intensiv træning med et væld af chatdialoger er den blevet istand til at besvare dine spørgsmål med flydende og overbevisende sprogbrug.

Selvom GPT-modellerne i deres grundform er imponerende værktøjer, gør finetuning det muligt for dem at yde ekstraordinært i specifikke scenarier. I vores situation vil vi benytte netop denne teknik for at skabe autentiske og fængslende ejendomsbeskrivelser i Eltoft Nielsens karakteristiske stil.

Finetuningsprocessen til forskellige anvendelsesområder følger en grundlæggende ensartet metode, hvilket betyder at instruktionerne i denne guide kan tilpasses og anvendes til dim egen unikke usecase.

Yderligere eksempler på, hvor finetuning kan levere værdi:

  • Tilpasning af sprog til en brands identitet: En førende virksomhed inden for luxury segmentet ønsker, at hver meddelelse, de udsender, emmer af elegance og eksklusivitet. For at opnå dette mål træner de en sprogmodel på tidligere content, så modellens output er i et sprog og en tone, der resonerer med luksus og omhyggelighed.
  • Output i et bestemt format: En softwareudviklingsvirksomhed ønsker at automatisere processen med at skrive kodekommentarer og dokumentation. Ved at finetune en AI-model til at skabe outputs i JSON-format, sikres en gnidningsfri integration med eksisterende systemer og databaser.
  • Kundesupport og interaktion: En virksomhed forvandler deres kundesupport til en næsten menneskelig kollega ved at finetune en AI-model med data fra tidligere kundesamtaler. Resultatet? En chatbot, der forstår og besvarer kundehenvendelser med en hidtil uset nøjagtighed og i overensstemmelse med virksomhedens tone.

Finetuning er nøglen til at låse et hav af muligheder op for din forretnings kommunikation. Uanset om du vil fortælle historien om et hjem eller omforme din kundeservice, så er finetuning et fantastisk tool. Lad os komme i gang ✌🏼

Definer din specikke usecase

Inden vi begynder at finetune vores model, er det essentielt at fastlægge en præcis og målrettet anvendelse af modellen.

Det er vigtigt at du overvejer hvilket input du vil give modellen og hvilket svar du forventer. Vores mål i guiden er klart og enkelt: Vi vil transformere notater fra ejendomsbesigtigelser til fuldendte ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format.

Så til vores formål vil en ejendomsmægler indtaste sine notater efter første besøg. Et eksempel kunne være:

Ejendommen:
- Klassisk ejendom fra begyndelsen af 1900-tallet
- Bygget som landsted i 1900
- Tidligere ejer: Balletmester Hans Beck
- Højloftet og velrenoveret hus
- Nyt stråtag lagt i 2020
- Grundareal: Kuperet, med haverum, havestier og flere niveauer terrasser
- 422 m2 indbefatter hovedhus, tidligere hestestald, kuskeværelse
- 2 selvstændige boliger for teenagere/au pair/udlejning/erhverv/Airbnb
- Hovedhus omfavnet af terrasser, sol hele dagen

Beliggenhed:
- Søbækvej, Espegærde
- Højtbeliggende matrikel
- Udsigt til Øresund og Sverige
- Østvendt (Solen står op)
- Nærhed til medfølgende strandgrund
- Tæt på Espergærde centrum, syd for Helsingør
- Egen strandvej og lystbådehavn

Unikke salgspunkter:
- Historisk ejendom med kulturel baggrund
- Exceptionelt udsigt og placering
- Arkitektonisk perle med originale detaljer og håndværk
- Egen strandgrund
- Potentiale for indtægtskilder (udlejning/erhverv)
- Flotte udendørsområder med sol hele dagen
- Del af hyggelig by med historie som fiskerleje
- Nærhed til natur og sommervillakvarter fra 1800-tallet
- Perfekt forening af landlig idyl og moderne behov

Hvorefter modellen genererer en ejendomsbeskrivelse:

“Langs den nordsjællandske kyst står nogle klassiske ejendomme fra begyndelsen af 1900-tallet. De står som idealer for en tid, hvor håndværkere brugte år på at forfine sjæl og detaljer, vi ikke ser nybygget mere. Landstedet på Søbækvej er et af dem. Det er bygget af balletmester Hans Beck fra Det Kongelige Teater. Som elev af balletmester August Bournonville førte han den bournonvilleske ballettradition videre, den, vi ser på teatret i dag.Landstedet på Søbækvej står på en af de højest beliggende matrikler i Espegærde. Højt er godt, for selv om der er et par hundrede meter ned til den medfølgende strandgrund, så er her udsigt til vandet i Øresund og så langt som til Sverige. Øst, ja, det er dér, hvor Solen står op. Huset er bygget som landsted i 1900 som en af de første ejendomme i kvarteret. Grunden er kuperet og velsignet med mange haverum og gemmesteder, grønne havestier og en terrasse i flere niveauer, som stort set omfavner huset. Altså sol på kinderne hele dagen. Det er et højloftet og velrenoveret hus med ånd og sjæl og nyt stråtag lagt i 2020. Ud over hovedhuset rummer de 422 m2 også en tidligere hestestald og kuskens værelse, som i dag er 2 selvstændige boliger til enten teenagere, au pair, udlejning, erhverv eller Airbnb. Kom an, her er plads nok, tidligere med køkkenpersonale og heste og kusk, alt er bare så lækkert og lige til at flytte ind i.Espergærde begynder sin historie som et lille fiskerleje allerede i 1500-tallet. I 1800-tallet blev kysten attraktiv for landliggere, dem, der boede i byerne om vinteren og søgte naturen om sommeren. Gennem de sidste 150 år har byen udviklet sig til en hyggelig by lige syd for Helsingør. Med egen strandvej og lystbådehavn er stemningen af fiskerleje uberørt.”

Ejendomsbeskrivelsen her er taget fra Søbækvej 11, Espergærde

Det er essentielt, at træningsdataene afspejler det input vi i fremtiden vil indtaste, samt det ønskede output. Derfor bør du justere dit input, så det stemmer overens med den måde, du normalt tager dine notater på.

Få en API-key fra OpenAI

Følg disse steps:

  • Log ind på OpenAI’s hjemmeside
  • Klik i højre hjørne og vælg “View API keys”
  • Klik på “Create new secret key‍”
  • Giv din API-key et navn og gem den sikkert.

Forbered din data

Kernen i finetuning omfatter tre centrale elementer: “system”, “user” og “assistant”, som alle spiller en afgørende rolle i forberedelsen af vores data.

"system": refererer til den specifikke opgave, som din AI-model er designet til at løse. Det er essentielt, at du har en nøjagtig beskrivelse af denne opgave for at sikre, at modellen forstår, hvad der forventes af den.

"user": repræsenterer dig eller mere præcist det input og de spørgsmål, du stiller til AI-modellen.

"assistant": er den ønskede form for respons fra AI-modellen. Du bør have en klar definition af, hvad et tilfredsstillende svar indebærer, for at kunne styre modellen i den ønskede retning.

Hvis man skulle træne en model til ofte at lave stavefejl, ville træningsdataen kunne se således ud:

{ 
  "messages": [
    { "role": "system", "content": "Du er en AI-assistent, der ofte laver stavefejl" },
    { "role": "user", "content": "Fortæl mig en historie." },
    { "role": "assistant", "content": "Der var engang en prænsesse..." }
  ] 
}

Hvor “system” er vores usecase,

"Du er en AI-assistent, der ofte laver stavefejl"

“user” er vores input til modellen,

"Fortæl mig en historie."

og “assistant” er vores ønskede svar.

"Der var engang en prænsesse..."

Oversat til vores model, kunne det se således ud:

{
  "messages": [
    {
      "role": "system",
      "content": "Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format"
    },
    {
      "role": "user",
      "content": "Ejendommen:\n- Klassisk ejendom fra begyndelsen af 1900-tallet\n- Bygget som landsted i 1900\n- Tidligere ejer: Balletmester Hans Beck\n- Højloftet og velrenoveret hus\n- Nyt stråtag lagt i 2020\n- Grundareal: Kuperet, med haverum, havestier og flere niveauer terrasser\n- 422 m2 indbefatter hovedhus, tidligere hestestald, kuskeværelse\n- 2 selvstændige boliger for teenagere/au pair/udlejning/erhverv/Airbnb\n- Hovedhus omfavnet af terrasser, sol hele dagen\n\nBeliggenhed:\n- Søbækvej, Espegærde\n- Højtbeliggende matrikel\n- Udsigt til Øresund og Sverige\n- Østvendt (Solen står op)\n- Nærhed til medfølgende strandgrund\n- Tæt på Espergærde centrum, syd for Helsingør\n- Egen strandvej og lystbådehavn\n\nUnikke salgspunkter:\n- Historisk ejendom med kulturel baggrund\n- Exceptionelt udsigt og placering\n- Arkitektonisk perle med originale detaljer og håndværk\n- Egen strandgrund\n- Potentiale for indtægtskilder (udlejning/erhverv)\n- Flotte udendørsområder med sol hele dagen\n- Del af hyggelig by med historie som fiskerleje\n- Nærhed til natur og sommervillakvarter fra 1800-tallet\n- Perfekt forening af landlig idyl og moderne behov"
    },
    {
      "role": "assistant",
      "content": "Langs den nordsjællandske kyst står nogle klassiske ejendomme fra begyndelsen af 1900-tallet. De står som idealer for en tid, hvor håndværkere brugte år på at forfine sjæl og detaljer, vi ikke ser nybygget mere. Landstedet på Søbækvej er et af dem. Det er bygget af balletmester Hans Beck fra Det Kongelige Teater. Som elev af balletmester August Bournonville førte han den bournonvilleske ballettradition videre, den, vi ser på teatret i dag. Landstedet på Søbækvej står på en af de højest beliggende matrikler i Espegærde. Højt er godt, for selv om der er et par hundrede meter ned til den medfølgende strandgrund, så er her udsigt til vandet i Øresund og så langt som til Sverige. Øst, ja, det er dér, hvor Solen står op. Huset er bygget som landsted i 1900 som en af de første ejendomme i kvarteret. Grunden er kuperet og velsignet med mange haverum og gemmesteder, grønne havestier og en terrasse i flere niveauer, som stort set omfavner huset. Altså sol på kinderne hele dagen. Det er et højloftet og velrenoveret hus med ånd og sjæl og nyt stråtag lagt i 2020. Ud over hovedhuset rummer de 422 m2 også en tidligere hestestald og kuskens værelse, som i dag er 2 selvstændige boliger til enten teenagere, au pair, udlejning, erhverv eller Airbnb. Kom an, her er plads nok, tidligere med køkkenpersonale og heste og kusk, alt er bare så lækkert og lige til at flytte ind i. Espergærde begynder sin historie som et lille fiskerleje allerede i 1500-tallet. I 1800-tallet blev kysten attraktiv for landliggere, dem, der boede i byerne om vinteren og søgte naturen om sommeren. Gennem de sidste 150 år har byen udviklet sig til en hyggelig by lige syd for Helsingør. Med egen strandvej og lystbådehavn er stemningen af fiskerleje uberørt."
    }
  ]
}

Hvor “system” er vores usecase,

"Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format"

“user” er vores noter fra første ejendomsbesøg,

"Ejendommen:\n- Klassisk ejendom fra begyndelsen af 1900-tallet\n- Bygget som landsted i 1900\n- Tidligere ejer: Balletmester Hans Beck\n- Højloftet og velrenoveret hus\n- Nyt stråtag lagt i 2020\n- Grundareal: Kuperet, med haverum, havestier og flere niveauer terrasser\n- 422 m2 indbefatter hovedhus, tidligere hestestald, kuskeværelse\n- 2 selvstændige boliger for teenagere/au pair/udlejning/erhverv/Airbnb\n- Hovedhus omfavnet af terrasser, sol hele dagen\n\nBeliggenhed:\n- Søbækvej, Espegærde\n- Højtbeliggende matrikel\n- Udsigt til Øresund og Sverige\n- Østvendt (Solen står op)\n- Nærhed til medfølgende strandgrund\n- Tæt på Espergærde centrum, syd for Helsingør\n- Egen strandvej og lystbådehavn\n\nUnikke salgspunkter:\n- Historisk ejendom med kulturel baggrund\n- Exceptionelt udsigt og placering\n- Arkitektonisk perle med originale detaljer og håndværk\n- Egen strandgrund\n- Potentiale for indtægtskilder (udlejning/erhverv)\n- Flotte udendørsområder med sol hele dagen\n- Del af hyggelig by med historie som fiskerleje\n- Nærhed til natur og sommervillakvarter fra 1800-tallet\n- Perfekt forening af landlig idyl og moderne behov"

og “assistant” er vores ønskede ejendomsbeskrivelse

"Langs den nordsjællandske kyst står nogle klassiske ejendomme fra begyndelsen af 1900-tallet. De står som idealer for en tid, hvor håndværkere brugte år på at forfine sjæl og detaljer, vi ikke ser nybygget mere. Landstedet på Søbækvej er et af dem. Det er bygget af balletmester Hans Beck fra Det Kongelige Teater. Som elev af balletmester August Bournonville førte han den bournonvilleske ballettradition videre, den, vi ser på teatret i dag. Landstedet på Søbækvej står på en af de højest beliggende matrikler i Espegærde. Højt er godt, for selv om der er et par hundrede meter ned til den medfølgende strandgrund, så er her udsigt til vandet i Øresund og så langt som til Sverige. Øst, ja, det er dér, hvor Solen står op. Huset er bygget som landsted i 1900 som en af de første ejendomme i kvarteret. Grunden er kuperet og velsignet med mange haverum og gemmesteder, grønne havestier og en terrasse i flere niveauer, som stort set omfavner huset. Altså sol på kinderne hele dagen. Det er et højloftet og velrenoveret hus med ånd og sjæl og nyt stråtag lagt i 2020. Ud over hovedhuset rummer de 422 m2 også en tidligere hestestald og kuskens værelse, som i dag er 2 selvstændige boliger til enten teenagere, au pair, udlejning, erhverv eller Airbnb. Kom an, her er plads nok, tidligere med køkkenpersonale og heste og kusk, alt er bare så lækkert og lige til at flytte ind i. Espergærde begynder sin historie som et lille fiskerleje allerede i 1500-tallet. I 1800-tallet blev kysten attraktiv for landliggere, dem, der boede i byerne om vinteren og søgte naturen om sommeren. Gennem de sidste 150 år har byen udviklet sig til en hyggelig by lige syd for Helsingør. Med egen strandvej og lystbådehavn er stemningen af fiskerleje uberørt."

Selvom du måske ikke er bekendt med JSON-formatet, er der ingen grund til bekymring. Du kan nemt oprette dit datasæt ved hjælp af et regneark, da vi i næste step giver dig et script til nemt at omdanne din data til det rigtige format.

Gør følgende:

  1. Åben et nyt regneark og navngive celle A1 som “user” og celle B1 som “assistant”.
  2. I kolonnen under “assistant” indtastes dine ejendomsbeskrivelser. I “user”-kolonnen indtastes dine noter, som du ville formulere dem. Da du højst sandsynligt ikke har noterne mere, må du være kreativ og forestille dig hvordan dine noter så ud ved første besøg.
  3. Lav 50 til 100 gode eksempler.
  4. Gem som csv-fil.

Vær opmærksom på, at processen kan være tidskrævende, men investeringen vil betale sig tilbage i form af værdifuld tid sparet i det lange løb.

Eksempel på data opsat i regneark

Transformér din data til JSONL

JSONL er en filformat der står for JSON Lines. Det er en variation af JSON-formatet, hvor hver linje i filen er et gyldigt JSON-objekt. Dette er nyttigt for at behandle store mængder data, da det gør det muligt at læse og skrive en linje ad gangen, i stedet for at skulle indlæse hele datamængden på én gang. I vores tilfælde betyder det, at hver eksempel på interaktionen mellem user(noter) og assistant(ejendomsbeskrivelse), som du vil træne modellen på, skal være et separat JSON-objekt på sin egen linje i filen.

Det ser således ud:

{"messages": [{"role": "system", "content": "Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format" }, { "role": "user","content": "Ejendommen:\n- Klassisk ejendom fra begyndelsen af 1900-tallet\n- Bygget som landsted i 1900\n- Tidligere ejer: Balletmester Hans Beck\n- Højloftet og velrenoveret hus\n- Nyt stråtag lagt i 2020\n- Grundareal: Kuperet, med haverum, havestier og flere niveauer terrasser\n- 422 m2 indbefatter hovedhus, tidligere hestestald, kuskeværelse\n- 2 selvstændige boliger for teenagere/au pair/udlejning/erhverv/Airbnb\n- Hovedhus omfavnet af terrasser, sol hele dagen\n\nBeliggenhed:\n- Søbækvej, Espegærde\n- Højtbeliggende matrikel\n- Udsigt til Øresund og Sverige\n- Østvendt (Solen står op)\n- Nærhed til medfølgende strandgrund\n- Tæt på Espergærde centrum, syd for Helsingør\n- Egen strandvej og lystbådehavn\n\nUnikke salgspunkter:\n- Historisk ejendom med kulturel baggrund\n- Exceptionelt udsigt og placering\n- Arkitektonisk perle med originale detaljer og håndværk\n- Egen strandgrund\n- Potentiale for indtægtskilder (udlejning/erhverv)\n- Flotte udendørsområder med sol hele dagen\n- Del af hyggelig by med historie som fiskerleje\n- Nærhed til natur og sommervillakvarter fra 1800-tallet\n- Perfekt forening af landlig idyl og moderne behov"  }, {  "role": "assistant",  "content": "Langs den nordsjællandske kyst står nogle klassiske ejendomme fra begyndelsen af 1900-tallet. De står som idealer for en tid, hvor håndværkere brugte år på at forfine sjæl og detaljer, vi ikke ser nybygget mere. Landstedet på Søbækvej er et af dem. Det er bygget af balletmester Hans Beck fra Det Kongelige Teater. Som elev af balletmester August Bournonville førte han den bournonvilleske ballettradition videre, den, vi ser på teatret i dag. Landstedet på Søbækvej står på en af de højest beliggende matrikler i Espegærde. Højt er godt, for selv om der er et par hundrede meter ned til den medfølgende strandgrund, så er her udsigt til vandet i Øresund og så langt som til Sverige. Øst, ja, det er dér, hvor Solen står op. Huset er bygget som landsted i 1900 som en af de første ejendomme i kvarteret. Grunden er kuperet og velsignet med mange haverum og gemmesteder, grønne havestier og en terrasse i flere niveauer, som stort set omfavner huset. Altså sol på kinderne hele dagen. Det er et højloftet og velrenoveret hus med ånd og sjæl og nyt stråtag lagt i 2020. Ud over hovedhuset rummer de 422 m2 også en tidligere hestestald og kuskens værelse, som i dag er 2 selvstændige boliger til enten teenagere, au pair, udlejning, erhverv eller Airbnb. Kom an, her er plads nok, tidligere med køkkenpersonale og heste og kusk, alt er bare så lækkert og lige til at flytte ind i. Espergærde begynder sin historie som et lille fiskerleje allerede i 1500-tallet. I 1800-tallet blev kysten attraktiv for landliggere, dem, der boede i byerne om vinteren og søgte naturen om sommeren. Gennem de sidste 150 år har byen udviklet sig til en hyggelig by lige syd for Helsingør. Med egen strandvej og lystbådehavn er stemningen af fiskerleje uberørt."}]}

For at bruge det script, vi har forberedt for dig, skal Python være installeret på din computer. Hvis du allerede har Python installeret, kan du springe installationstrinnet over og fortsætte direkte til trin 3.

1.Åben terminalen og installer Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Installer Python:

brew install python

3. Åben VScode/Sublime/Cursor og lav en ny fil

4. Indsæt nedestående kode og gem som prep.py i samme lokation som din csv-fil.

import csv
import json
SYSTEM_PROMPT = "Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format"
with open('dindata.csv', mode='r', encoding='utf-8-sig') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    with open('output.jsonl', mode='w', encoding='utf-8') as jsonl_file:
        for row in csv_reader:
            
            messages = [
                {
                    "role": "system",
                    "content": (SYSTEM_PROMPT)
                },
                {"role": "user", "content": row['user']},
                {"role": "assistant", "content": row['assistant']}
            ]
          
            jsonl_file.write(json.dumps({"messages": messages}) + '\n')
          

5. Udskift SYSTEM_PROMPT med din egen usecase og dindata.csv med navnet på din træningsdata

6. Åben terminalen og kør:

python3 prep.py

Resultatet skulle gerne være 50-100 output som disse i en fil kaldet output.jsonl

{"messages": [{"role": "system", "content": "Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format"}, {"role": "user", "content": "Ejendommen:\\n- Sommerhus bygget i 1932\\n- Stil: Bindingsværk, røde mursten, skæve vinkler, udsigtsstue, pavillon på skrænt\\n- Beliggenhed: 1. række til vandet, ikke mange sommerhuse i området med denne placering\\n- Størrelse: 119 etagemeter fordelt på stueetage, 1. sal og anneks\\n- Grund: 1.741 m2, kuperet, privat sti ned til stranden\\n- Velholdt ejendom med uhindret udsigt over Kattegat\\n\\nBeliggenhed:\\n- Veddinge Bakker, nær Fårevejle\\n- En del af UNESCO-bevarede områder i Odsherred\\n- Cirka en times kørsel fra København\\n- Del af et populært sommerhusområde på Sjælland \\n\\nUnikke salgspunkter:\\n- Bedste sand- og badestrand i Danmark\\n- Storbakket landskab formet af istiden, med stejle skråninger ned mod Sejerø Bugt\\n- Populært sted for både cyklister og lystfiskere\\n- 1. række til vandet i Kattegat, højt beliggende med panorama udsigt \\n\\nAndet:\\n- Gårdbutikker og boder i området\\n- Udbredt fritidsaktiviteter såsom cykling, kajakroning og fiskeri\\n- Stedet har en dyb historie, formet af istiden."}, {"role": "assistant", "content": "Veddinge Bakker, suk, så taler vi uden sammenligning om den bedste sand- og badestrand i Danmark. Bakkerne ligger ved Fårevejle og er en del af de UNESCO-bevarede områder i Odsherred. Det ligger en time fra København og er ét af de mest populære sommerhusområder på Sjælland med gårdbutikker og boder. Veddinge Bakker er et storbakket landskab formet af istiden med stejle skråninger ned mod Sejerø Bugt. Lycrabrumbasserne med kliksko er vilde med at køre på cykel i bakkerne. Op og ned, pust og støn. Kajakfolket og lystfiskerne er vilde med vandet og ørrederne. Sommerhusfolket er vilde med det hele.\\n\\nSommerhuset på Tranelunden er bygget i 1932 så sommerhushyggeligt, som et sommerhus kan blive. Bindingsværk, røde mursten, skæve vinkler, udsigtsstue og en pavillon på kanten af skrænten, som var det kravlet op ad bakken. Okay, at det så ligger i 1. række til vandet i Kattegat, det er der ikke mange af de 200 sommerhuse i Veddinge Bakker, der gør. Her er 119 etagemeter sommerhus fordelt på stueetage, 1. sal og anneks. Den 1.741 m2 store grund er kuperet i terrænet med privat sti ned til stranden. Alt er velholdt, alt ligger højt med den mest mageløse udsigt over Kattegat. Højt er godt, højt er den dybe udsigt.\\n\\nVeddinge Bakker ligger ved Fårevejle og er en del af de UNESCO-bevarede områder i Odsherred. Det ligger en time fra København og er ét af de mest populære sommerhusområder på Sjælland med gårdbutikker og boder. Veddinge Bakker er et storbakket landskab formet af istiden med stejle skråninger ned mod Sejerø Bugt."}]}
{"messages": [{"role": "system", "content": "Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format"}, {"role": "user", "content": "Ejendommen: \\n- Klassisk ejendom på Annasvej 30, Hellerup\\n- Bygget i 1897\\n- 549 etagemeter, fordelt på 4 etager\\n- Isoleret, opvarmet strandanneks med 2 værelser og badeværelse\\n- Renoveret hovedhus med nye facader, tag og installationer\\n- Sydvendte terrasser med sol hele dagen\\n- Parkering på den 879 m2 store grund\\n\\nBeliggenhed: \\n- Beliggende ved bunden af Annasvej, med direkte adgang til Øresund\\n- Gode institutioner, skoler og gymnasier lige om hjørnet\\n- Tæt på kulturelle herligheder som badeanstalt, sandstrand, lystbådehavn, skov, park og Strandvejen med caféer, restauranter og specialbutikker\\n- Gå- og cykelafstand til det meste\\n\\nUnikke salgspunkter: \\n- Privilegeret beliggenhed med egen både- og badebro\\n- Beliggende i et nærværende, socialt nabolag med hyppige samvær på stranden\\n- Mulighed for at opleve solopgange over Øresund \\n\\nAndet: \\n- Bemærkninger om Annasvej som en eftertragtet, lukket vej i Hellerup\\n- Omtale af hyggeligt samvær og naboskab på vejen og stranden\\n- Husene i området generelt er store, smukke med høje priser, men naboskabet er jordnært."}, {"role": "assistant", "content": "Af sundvejene er Annasvej nok en af de, hvis ikke den mest eftertragtede vej i Hellerup. Bare spørg dem, der bor her. Åh, alene stednavnet Annasvej er så forførende, hvis man tør sige det i disse woketider. Men der skal altså en særlig kvindelist til for at få fraflyttere til at føle savnet og flytte tilbage. Bunden af vejen er lukket af gode grunde, for her ligger Øresund. Og helt sikkert næsten med fødderne i vandet står her en klassisk ejendom med egen både- og badebro. Det er en hyggelig vej, Annasvej. Det er en vej med nærvær og samvær på vejen og på den lille badestrand, hvor kvarterets naboer ofte mødes til et morgen- eller aftendyb med en kaffekop i hånden. Husene er store og smukke med prisskilte helt oppe i himlen, men samværet og naboskabet er helt nede på jorden. Det er, hvad kvindelist kan.\\n\\nEjendommen på Annasvej 30 er bygget i 1897. Med 549 etagemeter er det en stor ejendom med et isoleret, opvarmet strandanneks med 2 værelser og badeværelse. Et privilegium at falde i søvn til lyset, som Månen drysser ned i Øresund, for derefter at vågne op til solopgangene, som i 6 måneder vandrer fra Landskrona til Malmø og tilbage igen. Hovedhuset er renoveret med højt til loftet i udgravet kælder, nye facader, tag og installationer. Med masser af plads fordelt på 4 etager er huset oplagt til familien med børn. Der er sydvendte terrasser med sol hele dagen, og her er plads til parkering på den 879 m2 store grund.\\n\\nDe gode institutioner, skoler og gymnasier ligger lige om hjørnet. Ikke mange byer kun et vindpust fra København fører til kulturelle herlighedsværdier som egen badeanstalt, sandstrand, lystbådehavn, skov, park og strandvej med caféer, restauranter og lækre specielbutikker. Men Hellerup gør. Derfor er det heller ikke tilfældigt, at nogle af de mest eftertragtede ejendomme ligger på de små sundveje fra Strandvejen ned mod Øresund. Her er gå- og cykelafstand til det hele.\\n\\n"}]}
{"messages": [{"role": "system", "content": "Du er en virtuel assistent, der specialiserer sig i at transformere noter fra ejendomsbesigtigelser til detaljerede og indbydende ejendomsbeskrivelser, skrevet i Ivan Eltofts unikke stil og format"}, {"role": "user", "content": "Ejendommen:\\n- Historisk bygning fra oplysningstiden, navngivet Tusculum\\n- Bygget 1746 som landsted\\n- Ligger på en 3.423 m2 lang søbred, med søudsigt \\n- Har været ejet af 21 ejere gennem 276 år\\n- Bygget om og tilpasset flere gange, men altid med respekt for fortiden\\n- Er en 900 etagemeter stor privatbolig, der ikke nemt kan beskrives i en salgsopstilling\\n- Der findes en bog om Tusculum\\n\\nBeliggenhed:\\n- Ligger i Frederiksdal, 15 minutter fra København\\n- Placeret mellem Lyngby Sø og Bagsværd Sø, tæt på Furesøen\\n\\nUnikke salgspunkter:\\n- Få historiske bygninger fra oplysningstiden i Danmark\\n- De skiftende ejere har generelt ikke ønsket at flytte fra stedet\\n- Unik arkitektur, kunst og håndværk, man ikke ser nybygget mere\\n- Får ejeren til at føle sig en del af Danmarks kulturhistorie\\n\\nAndet:\\n- Statsministerboligen Marienborg og kunstmuseet Sophienholm, begge samtidige med Tusculum og også opført som landsteder med søudsigt, er naboer til Tusculum\\n- Der er nødvendigt med en interesse og forståelse for historie og arkitektur for at kunne sætte pris på ejendommen og dens bevaringsværdige karakter."}, {"role": "assistant", "content": "Historiske bygninger fra den spirende begyndelse af oplysningstiden er der ikke mange af i Danmark. Men dem, der står her endnu, fjerner vores blik fra navlen for at sende det ud i verden og ind i kulturhistorien. Tak for det, for det giver os en bedre forståelse af, hvem vi er. Som Tusculum i Frederiksdal, hvis navnefællesskab med ruinbyen Tusculum syd for Rom er landstedet, oplevelsen af naturen, skønheden, friheden og roen uden for byen for familier, som har succes i livet. Hvor Tusculum i Italien i dag er en ruinby, er Tusculum i Frederiksdal et af smukkeste eksempler på arkitektur, kunst og håndværk, vi ikke ser nybygget mere.\\n\\nDet er bygget som landsted i 1746 på en 3.423 m2 lang søbred med søudsigt, så armene kan brede sig. Ja, Frederiksdal er stadig på landet, men ikke længere væk end 15 minutter fra København. Med bare 21 ejere gennem 276 år er Tusculum åbenlyst en bolig, de skiftende ejerne ikke har lyst til at flytte fra. Med ubekymret adgang til økonomi og kærlighed til historien er her bygget om og om og til igen og igen, for tiderne skifter, men altid med forståelse for, at fortiden er en vigtig skygge i nutiden, at alt har sin tid, at det også er vigtigt at slippe en ny energi løs. Tusculum er i dag så stor og mageløs en privatbolig på godt 900 etagemeter, at det ikke giver mening at beskrive den i en salgsopstilling. Historien fylder, og generationer er her kun et øjeblik. Til gengæld er der skrevet en bog om Tusculum, hukommelsen er parkeret, og den er en fornøjelse at læse. Grundforståelse for historien og arkitekturen er nødvendig, også for at kunne blive ved med at skabe nye, bevaringsværdige bygninger.\\n\\nFrederiksdal ligger mellem Lyngby Sø og Bagsværd Sø tæt på Furesøen. Statsministerboligen Marienborg er nabo til Tusculum, det samme er kunstmuseet Sophienholm. Begge bygninger er samtidige med Tusculum, også opført som landsteder med søudsigt.\\n"}]}

Igangsæt finetuning

Når du har forberedt dine data i det korrekte JSONL-format, er du klar til det næste skridt, som er selve finetuning-processen.

1.I samme folder som prep.py, dindata.csv og output.jsonl, opret en ny fil

2. Indsæt nedestående kode og gem som finetune.py

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
  
MODELNAME = 'ivaneltoft' 
training_file_name = "output.jsonl"
training_response = openai.File.create(
    file=open(training_file_name, "rb"), purpose="fine-tune"
) 
training_file_id = training_response["id"]
print("Training file ID:", training_file_id) 
response = openai.FineTuningJob.create( 
    training_file=training_file_id,
    model="gpt-3.5-turbo",
    suffix=MODELNAME, 
) 
job_id = response["id"]
print("Job ID:", response["id"]) 
print("Status:", response["status"])

3. Udskift MODELNAME med et valgfrit navn

4. I terminalen skal du køre nedenstående kode (husk at erstatte “openai-key” med din faktiske API-nøgle)

export OPENAI_API_KEY="openai-key"

5. Start finetuning med følgende kommando:

python3 finetune.py

6. Når du ser følgende tekst i terminalen, er din finetuning sat i gang:

Training file ID:file-XXXXXX 
Job ID: ftjob-XXXXXX
Status: validating_files

Test af modellen

Nu hvor vores model har gennemgået finetuning, er det blevet tid til at se, hvordan den performer. En måde at teste din egen model er I OpenAI’s playground

  1. Vælg din finetunede model under model
  2. Sæt temperature til mellem 0.2-0.6
  3. Sæt maximum length til 2048
  4. Udfyld system med din system-prompt
  5. Indsæt dine noter i user
  6. Submit

Her er nogle vigtige overvejelser til at teste og forstå din models kapaciteter:

  • Temperaturens indflydelse: Temperaturen i en AI-model refererer til graden af tilfældighed i svarene. En lav temperatur (nærmere 0) vil resultere i mere konsistente og forudsigelige svar, mens en højere temperatur (nærmere 1) øger kreativiteten og variationen i svarene. Typisk anbefaler vi en temperatur på 0.2-0.6.
  • Nødvendigheden af konkrete eksempler: Hvis modellen ikke leverer tilfredsstillende resultater, kan det være nødvendigt at give den flere konkrete eksempler. Dette kan indebære at tilføje flere detaljerede ejendomsbeskrivelserbeskrivelser eller tilpasse de eksisterende eksempler for at dække et bredere spektrum af scenarier.
  • Brugen af genererede resultater: Det er vigtigt at anerkende, at modellens genererede beskrivelser muligvis ikke er perfekte i første omgang. Disse kan dog tjene som et solidt udgangspunkt, hvorfra du kan redigere og sammensætte dele til den endelige ejendomsbeskrivelse.

Resultat af vores finetunede model

Til at teste vores finetunede model har jeg valgt denne fine ejendom fra Adam Schnack.

Efter blot at have inputtet vores noter, genereres modellens ejendomsbeskrivelse.

Første afsnit fra vores AI-genererede output ser således ud:

Du kan se hele eksemplet her!

Den genererede ejendomsbeskrivelse viser en markant indflydelse fra Eltoft Nielsens stilistiske præferencer. Husk at resultatet blev opnået udelukkende ved at indføre noter som input, uden brug af yderligere prompts.

Der er tydeligt visse sproglige unøjagtigheder, hvilket understreger at det(indtil videre) er vigtigt at betragte AI som en assistent snarere end en erstatning for menneskelig arbejdskraft. Betragt det fra dette perspektiv: Med denne model kunne man hurtigt generere 10-20 ejendomsbeskrivelser på samme ejendom, vælge de mest tiltalende segmenter, foretage små korrektioner, og inden for blot 10 minutter have en komplet ejendomsbeskrivelse – i din egen stil og tone.

Et afgørende aspekt er også at den bemærkelsesværdige kvalitet af AI-modellens output blev opnået med en begrænset mængde træningsdata(60 eksempler). Dette antal er minimalt i forhold til de omfangsrige datasæt, der kunne anvendes.

Værd at bemærke er også, at mens resultaterne allerede er imponerende, kan modellens præcision af stil og tone forbedres markant ved at integrere en endnu større mængde træningsdata. En udvidelse af træningseksemplerne ville give AI’en mulighed for at lære og tilpasse sig mere komplekse mønstre og nuancer i inputdataen.

Sammenligning med Prompt Engineering

Et presserende spørgsmål rejser sig imidlertid: Er det nødvendigt at træne sin egen model, eller kan man klare sig med blot at bruge prompts?

Man kan uden tvivl opnå bemærkelsesværdige resultater ved hjælp af prompts, og ved første øjekast kan disse resultater ofte synes næsten overlegne.

Ved nærmere eftersyn bliver det dog tydeligt, at det at replikere stil og tone er vanskeligt. ChatGPT, som selvfølgelig også er trænet på et væld af ejendomsbeskrivelser, kan uden problemer formulere en imponerende beskrivelse af en ejendom. Du kan endda ofte få personlighed til at skinne igennem – det er bare sjældent det er din personlighed.

Adgangen til ChatGPT er allerede et værktøj for mange, og vil med tiden blive det for alle. Resultatet bliver content fyldt med beskrivelser – men uden nerve.

Det er værd at bemærke, at der findes forskellige niveauer af prompt engineering. Med den rette tilgang kan man ofte inkorporere brudstykker af stil og tone i outputtet.

Lad os prøve hvor vi:

  1. Instruerer om hvad ai-assistents job er i system prompt
  2. Giver en god instruktion på hvordan ejendomsbeskrivelsen skal være
  3. Giver et eksempel på Eltofts tidligere ejendomsbeskrivelser, så AI’en kan matche stil og tone.

#PROMTSTART#

Baseret på mine noter skal du skrive en ejendomsbeskrivelse, der fokuserer på at formidle en romantisk og nostalgisk tone, idet du fremhæver ejendommens historie og charme. Brug en sanselig og følelsesmæssig tilgang for at skabe en atmosfære af hjemlighed og idyl. Stilen skal være beskrivende og malerisk, med vægt på detaljer om arkitekturen og beliggenhed.

i mellem <eksempel></eksempel> får du et eksempel på din tone og stil du skal matche.

i mellem <noter></noter> får du mine noter du skal transformere

<eksempel>Her indsættes et eksempel på ejendomsbeskrivelse fra Eltoft Nielsen</eksempel>
<noter>Her indsættes vores noter</noter>

Ejendomsbeskrivelse:

#PROMPTSLUT#

Resultater med prompts og sammenligning med finetuning:

Lad os sammenligne prompt engineering af GPT3.5 og GPT4 med vores finetunede model.

Det er essentielt at holde sig for øje, at målet her ikke er at skabe den bedste ejendomsbeskrivelse. Målet er at at udvikle en model, der effektivt efterligner stilen og tonen fra Eltoft Nielsens unikke ejendomsbeskrivelser.

Vigtigt at nævne er, at vores finetunede model er baseret på GPT-3.5. Derfor ville en egentlig fair sammenligning være med GPT-3.5, hvis man kun kigger på de tekniske aspekter.. Da de fleste også har GPT4 til rådighed, må man naturligvis også sammenligne med denne.

Vi ser frem til udgangen af året, hvor finetuning af GPT-4 forventes at blive tilgængelig for alle. De resultater, vi forventer at se derfra, vil uden tvivl sætte nye standarder og overgå de nuværende præstationer betragteligt.

Link til resultater:

Selvom GPT-3.5 og GPT-4 kan skabe kompetente ejendomsbeskrivelser med et væld af detaljer, formår de ikke at indfange den unikke stemme, som en finetunet model byder på. De nærmer sig Ivan Eltofts stil med deres narrative kvaliteter, men savner hans karakteristiske følelsesdybde og personlige præg.

Den finetunede model har åbenlyst også plads til sproglige forbedringer, og Eltoft Nielsens egen beskrivelse havde givetvis været bedre, men formålet er at komme tættest på at replikere stil og tone, hvilket i høj grad lykkedes. Ved at generere 20 svar fra modellen, ville vi hurtigt kunne sammensætte noget der rammer plet.

I praksis kan prompt engineering generere beskrivelser, der er teknisk kompetente og overfladisk tiltalende, men de mangler ofte den unikke ‘stemme’, der gør en tekst mindeværdig. Selv med avancerede prompts og eksempler på ønsket stil og tone, er der en grænse for, hvor langt denne metode kan strække sig i forhold til at genskabe en specifik stils unikke flair.

Så selvom prompt engineering er et værdifuldt værktøj i værktøjskassen, især når man hurtigt skal generere indhold, er finetuning vejen frem for dem, der ønsker at bevare og fremhæve en distinkt, personlig stemme i deres tekster. Finetuning kræver en større investering i tid og ressourcer, men resultatet – en dybt personliggjort og stilistisk konsekvent tekst – kan være umådeligt værdifuldt, særligt fremadrettet hvor alle kan lave fantastiske(men overfladiske) beskrivelser med ChatGPT.

Konklusion

Potentialet i finetuning af GPT-3.5 strækker sig langt ud over enkelte brancher og åbner op for en verden af personaliseret indholdsskabelse. Som vi har set, giver denne teknologi fra OpenAI brugere mulighed for at forme og skræddersy AI-modeller til at efterligne specifikke skrivestile, hvilket skaber enestående og autentiske kommunikationsoplevelser.

Husk, at nøglen til succes med finetuning er tålmodighed og omhyggelighed; det tager tid at samle og forberede de rette data og justere indstillingerne for at opnå de bedste resultater. Men den indsats, du lægger i dette arbejde, vil blive belønnet med en AI, der kan assistere dig i at skabe konsistent og engagerende indhold, der resonerer med dit publikum.

Vi opfordrer dig til at dykke ned i de muligheder, finetuning tilbyder, og udforske, hvordan det kan forbedre og effektivisere din indholdsskabelse. Og hvis du støder på spørgsmål eller udfordringer undervejs, er vi her altid til at hjælpe dig.

Vi håber at du har fået modet til at finetune din egen model til at skabe tekster med et personligt præg.