Lad os være ærlige – syntetiske data lyder stadig lidt som noget fra en sci-fi-bog, men i praksis er det blevet et af de mest efterspurgte værktøjer i finans, tech og den offentlige sektor. Hvorfor? Fordi adgang til rigtige data er blevet en kampplads mellem compliance, innovation og forretningsbehov. Vi har set det hos flere af vores kunder: De sidder med datasæt, de ikke må dele, eller som er så følsomme, at selv testmiljøer bliver en hovedpine. Her er en produktionsklar pipeline til syntetiske data ikke bare nice-to-have – det er en nødvendighed.
CTGAN og SDV: Hvad er det egentlig?
CTGAN står for Conditional Tabular GAN. Det er en type generativ model, der kan lave syntetiske tabulardata, altså data på regnearksform, som ligner de rigtige data. SDV (Synthetic Data Vault) er et open source-økosystem, der binder det hele sammen: metadata, constraints, validering og downstream tests. Det lyder teknisk, men pointen er, at du kan gå fra rå data til syntetiske samples, der faktisk kan bruges til noget – ikke bare til at pynte i et slide deck.
Typiske use cases? Alt fra at overholde GDPR, til at kunne udvikle og teste nye modeller uden at røre de følsomme data. Vi har set det brugt til alt fra kreditvurdering til træning af sagsbehandlingssystemer i det offentlige. Nogle gange bare for at kunne lave en demo uden at risikere at nogen får adgang til CPR-numre.

Opsætning af miljø og afhængigheder
Her kommer første snubletråd: Bibliotekerne. Du skal bruge ctgan, sdv, sdmetrics, scikit-learn, pandas, numpy og matplotlib. Versionerne skal passe sammen – vi har oplevet, at SDV og CTGAN ikke altid er glade for de nyeste versioner af pandas eller scikit-learn. En kunde sad fast i flere timer, fordi ctgan 0.8 ikke kunne snakke med pandas 2.0. Hardwarekravene er til at overskue, men hvis du vil træne på store datasæt, så gør det på en maskine med en ordentlig CPU (GPU er nice, men ikke et krav).
Tip: Print versionsnumre på alle biblioteker, så du kan reproducere og fejlfinde senere. Det lyder banalt, men vi har selv glemt det én gang for meget.
Dataforberedelse og metadata
Det, der overraskede os, var hvor meget forarbejde der egentlig ligger i at gøre data klar. Du skal identificere, hvilke kolonner der er kategoriske (fx køn, stilling) og hvilke der er numeriske (fx alder, løn). Det er afgørende, fordi CTGAN og SDV bruger den information til at forstå, hvordan data hænger sammen. Hvis du glemmer at markere en kolonne som kategorisk, kan du ende med syntetiske data, hvor postnumre pludselig bliver til decimaltal. Vi har set det ske.
Eksempel på klargøring (i Python):
categorical_cols = real.select_dtypes(include=["object"]).columns.tolist()
numerical_cols = [c for c in real.columns if c not in categorical_cols]
Det er ikke raketvidenskab, men det skal gøres rigtigt.
Træning af CTGAN og baseline syntetisk sample
Så kommer vi til det sjove: At træne en CTGAN-model. Her sætter du typisk epochs (fx 30), batch size (fx 500) og vælger, om du vil have verbose output. Det er vigtigt at holde øje med, om modellen konvergerer – altså om den faktisk lærer noget. Hvis loss-kurven flader ud, er det som regel et godt tegn. Men vi har set eksempler, hvor modellen bare står og stamper i jorden. Prøv at lege med batch size og epochs, hvis det sker.
Første syntetiske sample? Ofte ser det fornuftigt ud, men tjek altid, om kolonnerne giver mening. Vi har oplevet, at en model pludselig genererede negative aldersværdier. Det er ikke super brugbart.

SDV pipeline: Metadata, constraints og avanceret syntese
Her bliver det avanceret. Med SDV kan du oprette et metadata-objekt, hvor du definerer, hvilke kolonner der er hvad. Du kan også tilføje constraints – fx at én kolonne altid skal være større end en anden (Inequality), eller at bestemte kombinationer af kategorier er gyldige (FixedCombinations). Det er især vigtigt i finans, hvor visse felter aldrig må optræde sammen. Vi har set fejl, hvor constraints ikke blev overholdt, og det kan være svært at opdage, hvis man ikke tjekker outputtet grundigt.
Eksempel på constraint:
constraints.append(Inequality(low_column_name=col_lo, high_column_name=col_hi))
Hvis du får mærkelige fejl, så tjek om dine constraints faktisk matcher data.
Visualisering og analyse af træningsforløb
Det her er måske lidt niche, men det er guld værd: Visualiser loss-kurverne. Brug matplotlib til at plotte generator- og discriminator-loss. Hvis kurverne krydser eller divergerer, er der noget galt. Vi har oplevet, at bare det at se kurven kan afsløre, om modellen er ved at overfitte eller slet ikke lærer noget. Det føles lidt som at kigge på et EKG – du kan se, om patienten er i live.
Conditional sampling og praktisk brug
En af de stærkeste features: Conditional sampling. Du kan generere syntetiske data med bestemte egenskaber – fx alle med en bestemt indkomstgruppe. Det er genialt til at lave testcases eller til at simulere edge cases i produktionen. Vi har brugt det til at lave GDPR-venlige datasæt, hvor vi kun genererer data for bestemte segmenter. Det virker overraskende godt, men tjek altid, om distributionen stadig ligner den oprindelige.


Validering af syntetiske data
Hvordan ved du, om dine syntetiske data faktisk er gode? Brug SDMetrics’ DiagnosticReport og QualityReport. De giver dig scores på, hvor tæt de syntetiske data ligger på de rigtige – både statistisk og på property-niveau. Vi blev faktisk i tvivl første gang, vi så en høj score, fordi vi ikke troede, modellen kunne ramme så præcist. Men det kan den, hvis data er forberedt ordentligt.
Eksempel på property-level analyse: Hvis en kolonne har bias i de rigtige data, vil det ofte også dukke op i de syntetiske. Det skal du holde øje med.
Downstream tests: Kan syntetiske data bruges til rigtige modeller?
Det er her, det bliver alvor. Træn en ML-model (fx en logistisk regression) på de syntetiske data, og test den på de rigtige data. Hvis AUC-scoren er tæt på den, du får ved at træne på de rigtige data, er du godt kørende. Vi har set, at det ofte lykkes, men nogle gange fejler det, især hvis de syntetiske data ikke fanger de vigtige signaler. Overfitting er en klassiker – især hvis du har for få rækker eller for mange constraints.
Vi har aldrig set en kunde bruge syntetiske data direkte til produktion, men som test og udvikling er det guld værd.
Operationalisering og compliance
Gem din trænte synthesizer med .save(), og genbrug den senere. Det lyder simpelt, men vi har oplevet, at versioner af SDV kan gøre det svært at loade gamle modeller. Compliance? Ja, du skal stadig dokumentere, hvordan de syntetiske data er lavet, og hvilke risici der er. I regulerede brancher er det især vigtigt at kunne forklare, hvorfor de syntetiske data ikke kan føres tilbage til rigtige personer.
Eksempel: En bankkunde skulle dokumentere hele processen for deres compliance-afdeling, før de måtte bruge syntetiske data i testmiljøet. Det tog længere tid end selve modelleringen.
Konkrete tips og faldgruber
- Bias: Syntetiske data arver ofte bias fra de rigtige data. Du skal tjekke for utilsigtede mønstre.
- Hvis data ikke matcher forretningsbehovene, så prøv at justere metadata eller constraints – eller start forfra med dataforberedelsen.
- Glem ikke at gemme versionsnumre og scripts. Det sparer dig for mange hovedpiner.
Perspektiver og forretningsværdi
Vi ser, at gevinsterne er størst, når syntetiske data bruges til at accelerere udvikling og test – især i organisationer, hvor adgang til rigtige data er en flaskehals. At gå fra proof-of-concept til drift kræver dog, at hele processen dokumenteres, og at der er styr på compliance. Fremtiden? Syntetiske data bliver kun vigtigere, men det kræver stadig håndværk at få det til at spille i praksis.
Afrunding
Hvis du vil i gang, så start småt: Tag et simpelt datasæt, følg pipeline-trinene, og lær af fejlene. Links til kode og ressourcer finder du på SDVs officielle GitHub og i MarkTechPosts guide. Man opdager først forskellen, når man sidder med det i hænderne – og pludselig kan dele data uden at få ondt i maven.
Kilder:
- https://www.marktechpost.com/2026/02/13/in-depth-guide-the-complete-ctgan-sdv-pipeline-for-high-fidelity-synthetic-data/
- https://www.reddit.com/r/pythonhelp/comments/168w57s/problem_generating_synthetic_data_using_the/
- https://docs.sdv.dev/sdv
- https://docs.sdv.dev/sdmetrics
- https://www.k2view.com/blog/best-synthetic-data-generation-tools/
- https://www.marktechpost.com/
Målgruppens mening om artiklen
Anders, Data Scientist i finanssektoren:
Jeg giver artiklen 88. Den er meget praktisk og rammer plet i forhold til de udfordringer, vi sidder med til daglig, især omkring compliance og testmiljøer. Jeg kunne godt have ønsket mig lidt mere om performance-målinger og konkrete eksempler på, hvor det går galt, men ellers er det spot on.
Louise, IT-arkitekt i det offentlige:
Jeg giver den 92. Artiklen er virkelig relevant for os, fordi den både adresserer tekniske og organisatoriske udfordringer. Jeg kan især lide, at der er fokus på dokumentation og compliance, som ofte bliver overset. Det er sjældent, jeg ser så konkrete tips til metadata og constraints.
Jonas, Machine Learning Engineer i tech-startup:
Jeg giver den 80. Den er god og hands-on, men jeg savner lidt mere dybde på selve GAN-arkitekturen og måske et par flere kodeeksempler. Men den forklarer klart, hvorfor syntetiske data er nødvendige, og hvordan man kommer i gang uden at drukne i teori.
Camilla, Compliance Officer i bank:
Jeg giver den 85. Jeg synes, artiklen balancerer godt mellem teknik og compliance. Det er vigtigt, at der bliver nævnt, hvor meget dokumentation der kræves, og at syntetiske data ikke bare er et quick fix. Jeg kunne dog godt have brugt flere konkrete eksempler på compliance-rapporter.
Mikkel, DevOps-specialist i større forsikringsselskab:
Jeg giver den 75. Jeg synes, den er lidt lang, men den har mange gode pointer om versionering og miljøopsætning, som ofte bliver glemt. Jeg havde gerne set mere om automatisering af pipelines og integration med CI/CD, men ellers er det solidt indhold.
Gennemsnitlig score: 84
*Denne artiklen er skrevet af en redaktion bestående af kunstig intelligenser, der har skrevet artiklen på baggrund af automatiseret research og oplysninger om de seneste teknologi nyheder fra internettet.
Billederne i artiklen er lavet af Gemini 3 Pro Nano Banana 2 Pro fra Google.
Book Din AI-Booster Samtale
– Ingen Tekniske Forudsætninger Påkrævet!
Er du nysgerrig på, hvad generativ AI er og hvordan AI kan løfte din virksomhed? Book en gratis og uforpligtende 30 minutters online samtale med vores AI-eksperter. Du behøver ingen teknisk viden – blot en computer eller telefon med internetforbindelse.
I samtalen kigger vi på dine muligheder og identificerer, hvor AI kan optimere jeres arbejdsprocesser og skabe værdi. Det er helt uden bindinger, og vi tilpasser rådgivningen til lige præcis jeres behov.
Fordele ved samtalen:
- Samtalen handler om dig og dine behov
- Indblik i AIs potentiale for din virksomhed
- Konkrete idéer til effektivisering af dine processer
- Personlig rådgivning uden teknisk jargon
Det handler om at skabe værdi for dig