Use Case: AI-generated synthetic data
Last updated
Last updated
Het onderstaande diagram illustreert een workflow voor AI-gegenereerde synthetische data. Op deze pagina vindt u gedetailleerde informatie over elke stap in het diagram.
Voordat u begint met het gebruik van AI-gegenereerde synthetische gegevens, moet u eerst de onderstaande video bekijken, die een korte inleiding geeft in de methoden voor het genereren van gegevens.
Voor deze belangrijke use case wordt een enkele tabel, genaamd censusdie verzamelde volkstellingsgegevens bevat, moet worden gesynthetiseerd met behulp van Syntho's AI-generatie. Maximale privacy, naast het genereren van zeer realistische gegevens die statistisch de originele dataset weerspiegelen, is cruciaal voor AI en analytics. De eerste stap bestaat uit het creëren van een werkruimte in Syntho, gekoppeld aan een volkstellingsdatabase. Eenmaal opgezet, zal deze workspace de census tabel. Hieronder worden de kolommen van de tabel en een voorbeeld van de gegevens in de tabel weergegeven.
Maak een workspace zoals beschreven in de [Create a workspace(../../setup-workspaces/create-a-workspace/) gedeelte.
De werkruimte moet bestaan uit een source en een destination database. De destination database moet exact dezelfde, maar lege tabellen en kolommen hebben als de source database, met schrijftoegang.
Datatypen op elkaar afstemmen: Zorg ervoor dat de gegevenstypen van kolommen in zowel de bron- als de doeldatabase hun inhoud nauwkeurig weergeven. Bijvoorbeeld, date kolommen moeten van het type Date, integer kolommen van het type Integeren decimal kolommen van het type Decimal/Float.
Voor het genereren van AI-gebaseerde synthetische gegevens, moet je ervoor zorgen dat je gegevens geschikt zijn om te synthetiseren. Syntho verwacht dat uw gegevens worden opgeslagen in een entity table die specifieke richtlijnen volgt:
Een minimum aan column-to-row ratio of 1:500 voor privacy en algoritmische generalisatie. Streef met 15 kolommen naar minstens 7.500 rijen; onze voorbeelddatabase overtreft dit met 48.842 rijen (zie onderstaande afbeelding).
Beschrijf elke entiteit in een enkele rij, zodat rij-onafhankelijkheid zonder sequentiële informatie wordt gegarandeerd.
Gebruik generic column names om te voorkomen dat gevoelige informatie wordt blootgelegd, specifieke patiëntidentificatoren, zoals "patiënt_medicijnen" vervangen door een patiëntenkolom met de namen.
Verwijder kolommen die van anderen zijn afgeleid om de modellering te verbeteren en de kwaliteit van synthetische gegevens te verhogen.
Onze voorbeeldtabel voldoet volledig aan deze criteria.
Plaats voor het synthetiseren de census tafel onder de synthesize tabelmodus. Hoewel Syntho tabellen standaard in de juiste modi zet, kun je dit wijzigen via slepen en neerzetten.
Onder Column settings > Generation Methodkiezen AI-powered generation voor Syntho's ML-modellen om gegevens te synthetiseren. Dit is ook de standaard generatiemethode, voor alle tabellen geplaatst onder synthesize.
Deze functie helpt gevoelige of zeldzame waarnemingen te verbergen, zoals specifieke beroepen in de census tabel, door ze te vervangen door een door de gebruiker gedefinieerde waarde, waardoor de privacy van de gegevens wordt verbeterd. Pas de rare category protection threshold en replacement value in Column settings > Encoding type > Advanced settings.
Rare category protection threshold: Alle kolomwaarden die even vaak of minder vaak voorkomen dan de beschermingsdrempel voor zeldzame categorieën, worden automatisch vervangen.
Rare category replacement value: Alle kolomwaarden die even vaak of minder vaak voorkomen dan de beschermingsdrempel voor zeldzame categorieën, worden automatisch vervangen door deze vervangende waarde.
Beroepen die bijvoorbeeld voorkomen in as frequently or less than 15wordt vervangen door het teken sterretje of "*". Het nummer en de vervangingswaarde zijn vrijwillig en kunnen op verzoek van de gebruiker worden gedefinieerd (zie onderstaande afbeelding).
Optional: Bij tabellen met AI-gegenereerde synthetische gegevens is het handmatig labelen en vervangen van PII-kolommen optioneel.
Clarification: De PII-scanner biedt een startpunt voor het detecteren van PII. Gebruikers moeten aanvullende controles uitvoeren om andere gevoelige gegevens te identificeren en af te handelen die mogelijk niet door de scanner worden gedetecteerd.
In de PII tabkunt u nieuwe kolommen toevoegen aan de lijst met PII-kolommen, handmatig of met behulp van Syntho's PII scanner. U hebt de optie om kolommen die PII bevatten handmatig te labelen door de kolomnaam te selecteren en optioneel een mocker te kiezen om toe te passen. Als u klikt op "Confirm" markeert de kolom als een kolom met PII en bevestigt de mocker selectie.
U kunt ook automatisch PII detecteren met de PII-scanner. Start een scan om PII te detecteren in alle databasekolommen op het tabblad PII in het venster Job Configuration paneel. Merk op dat de scanner zowel Shallow en Deep scanmodi:
De shallow scan beoordeelt kolommen met behulp van reguliere expressieregels om PII te identificeren, geoptimaliseerd voor snelheid maar met variabele nauwkeurigheid.
De deep scan onderzoekt zowel metagegevens als gegevens binnen kolommen voor een grondige identificatie van PII.
Je kunt mockers gebruiken om PII-kolommen te vervangen. Zo niet, dan worden die PII-kolommen behandeld als categoriale kolommen en verwerkt door Syntho's "Zeldzame categoriebescherming".
In de jobinstellingen, onder tabelinstellingen, kunt u instellingen op generatorniveau aanpassen, inclusief het maximum aantal rijen voor training om de snelheid te optimaliseren. Als u deze instelling als None gebruikt alle rijen. De Take random sample optie maakt bemonstering mogelijk:
On: Willekeurige rijen worden geselecteerd voor training.
Off: De bovenste rijen uit de database worden gebruikt.
Om het genereren van gegevens te starten, kun je het volgende doen:
Op de Job Configuration paneel, drag de bijbehorende tabel onder Synthesize.
Sleep andere tabellen onder De-identify of Exclude.
Op de Job configuration paneel, selecteer Generate.
Op de Job configuration summary paneel, stel de opwekkingsparameters in zoals gewenst.
Selecteer ten slotte Start generating.
Voordat je het generatieproces start, heb je de mogelijkheid om modelparameters aan te passen. Hier is een overzicht:
Read batch size: Het aantal rijen dat van elke brontabel wordt gelezen per batch.
Write batch size: Het aantal rijen dat per batch in elke bestemmingstabel wordt ingevoegd.
N connections: Geeft het aantal verbindingen op.
Gebruikers moeten handmatig TRUNCATE hun tafels in de DESTINATION database voordat elke nieuwe taak voor het genereren van gegevens wordt gestart. Als trunceren wordt belemmerd door bestaande beperkingen, dan moeten deze beperkingen tijdelijk worden uitgeschakeld voor het trunceren en daarna weer worden ingeschakeld. Bijvoorbeeld, om het truncatie proces te vergemakkelijken wanneer foreign key beperkingen dit verhinderen, gebruik de volgende SQL commando's: Schakel eerst de beperkingen uit door SET FOREIGN_KEY_CHECKS = 0;
uit te voeren, en vervolgens TRUNCATE de tabel en activeer tenslotte de beperkingen opnieuw met SET FOREIGN_KEY_CHECKS = 1;
. Deze volgorde zorgt ervoor dat tabellen goed worden voorbereid voor het genereren van gegevens zonder dat de beperkingen worden geschonden.
SDMetrics is een open-source Python Bibliotheek ontworpen voor het evalueren van synthetische gegevens in tabelvorm om te bepalen hoe goed deze de wiskundige eigenschappen van echte gegevens nabootst, bekend als de getrouwheid van synthetische gegevens, door middel van selectieve metrische evaluatie, gedetailleerde uitleg van resultaten, visualisatie van scores en mogelijkheden om rapporten te delen.
Voor volledige statistieken en informatie, bekijk de SDMetrics documentatie door op deze link te klikken.
In het onderstaande notitieblok vergelijken we enkele echte en synthetische demodata met behulp van SDMetrics op basis van het originele SDMetrics-notitieblok. Je vindt er ook een deelbaar rapport, dat je kunt gebruiken om enkele inzichten te ontdekken en visuele grafieken te maken.