Frequently asked questions

Welke rechten heb ik nodig om Syntho te implementeren?

Syntho vereist een administratieve gebruiker voor de installatie. Als je Docker Voor de implementatie moet de gebruiker sudo rechten voor docker/docker-compose.

Hoe moet ik mijn databases voorzien voor het genereren van gegevens?

Het Syntho platform werkt met bron- en bestemmingsdatabases.

  • De source database slaat de invoergegevens op voor je gegevensgeneratietaak en kan read-only.

  • De destination database moet lege tabellen en kolommen hebben, die structureel identiek zijn aan de source database. Het vereist write access, omdat de gegenereerde gegevens ernaar toe worden geschreven.

De source en destination database kan op dezelfde server draaien of op verschillende servers worden gehost.

Hoe gaat Syntho om met beperkingen op mijn database?

Syntho gebruikt relevante metadata opgeslagen in uw source database voor het genereren van de destination database. Zo worden bijvoorbeeld foreign key constraints afgeleid om tabelrelaties in de gegenereerde database te reproduceren.

Syntho kan omgaan met scenario's waarbij de beperkingen van de destination database zijn ingeschakeld of uitgeschakeld.

Ik heb enkele niet-gevoelige tabellen die ik nog steeds in mijn doeldatabase wil opnemen. Wat moet ik daarmee doen?

Niet-gevoelige tabellen (bijv. 'definition tables' zoals taal- of producttabellen) kunnen ongewijzigd worden gekopieerd wanneer de gegevens naar de doeldatabase worden geschreven. Dit kan worden gedaan op de Job configuration paneel door de tabel te markeren als De-identify.

Ga voor meer informatie naar: Configure table settings > Table modes.

Hoeveel trainingsrecords heb ik nodig voor AI-generatie?

Om privacyrisico's te minimaliseren en het generalisatievermogen van het trainingsalgoritme te verbeteren, geldt als vuistregel een minimum van column-to-row ratio of 1:500 wordt aanbevolen. Als uw source tabel 6 kolommen heeft, moet deze minimaal 3000 rijen bevatten.

Ik heb nog geen gegevens. Kan ik ook gegevens vanaf nul genereren?

Ja. In sommige scenario's, waarin u nog geen gegevens hebt, kunt u gegevens vanuit het niets genereren om uw lege database te vullen. Dit kan op de volgende manier met het Syntho platform:

  1. Stel eerst een lege source database en destination database met de tabellen en kolommen die je wilt vullen. De brondatabase moet anders zijn dan de doeldatabase.

  2. Zorg ervoor dat primaire en foreign key-kolommen in je source database correct zijn geconfigureerd en al some key values in there.

  3. Op de Job configuration paneel, sleep alle tabellen onder De-identify.

  4. Gebruik de sneltoets CTRL + SHIFT + ALT + 0 en stel de waarde in onder het item "key_generation_method" naar "generate".

  5. Ga voor elke kolom naar de Column settings en selecteer Mocker of Calculated Column als de generatiemethode.

  6. Configureer de relevante Mocker en Calculated Columns instellingen.

  7. Selecteer de number of rows te genereren onder de Tabelinstellingen.

  8. Selecteer ten slotte Generate om uw database te genereren.

Wat kan ik doen om het hulpprogramma voor synthetische gegevens te verbeteren?

Er zijn verschillende manieren om de bruikbaarheid (ook wel 'kwaliteit' of 'getrouwheid' genoemd) van de gegenereerde synthetische data te verbeteren. Een lijst van mogelijke opties zijn onder andere:

  1. Zorg ervoor dat je gegevens voorbereid zijn volgens de vereisten voor datavoorbereiding zoals beschreven in de [Preparing your data(../configure-a-data-generation-job/configure-column-settings/ai-powered-generation/#preparing-your-data) sectie.

  2. Verhoog de waarde voor de Maximum rows used for training en overweeg om alle rijen mee te nemen. Als het maximum aantal rijen dat wordt gebruikt voor training is ingesteld op een lagere waarde dan het totale aantal invoerrijen, kun je de Take random sample parameter om een meer representatieve subset te krijgen.

  3. Als je meerdere gerelateerde tabellen moet synthetiseren, volg dan de instructies en beperkingen in de Synthesize table relationships with entity-table ranking functie.

Kan ik Syntho ook gebruiken voor data de-identificatie of pseudonimisering?

Ja. Naast de kernfunctionaliteit van Syntho, namelijk synthetiseren, kun je met Syntho ook de-identify je meest gevoelige kolommen. In de volgende sectie wordt beschreven hoe dit kan worden gedaan:

De-identify PII columns

Hoe kan ik mijn gegevensgeneratietaken versnellen?

Het Syntho platform en Syntho's generatieve AI modellen zijn geoptimaliseerd om je data zo snel en efficiënt mogelijk te genereren. Takenparallellisatie wordt bijvoorbeeld toegepast bij elke stap in het gegevensgeneratieproces, van het lezen van de source gegevens tot het schrijven van de destination gegevens.

Hier volgen enkele aanvullende tips om de snelheid van je taken voor het genereren van gegevens te verhogen:

  1. Verminder het aantal tabellen dat moet worden gegenereerd.

  2. Verminder het aantal rijen en kolommen met een hogeardinaliteit (d.w.z. kolommen met veel verschillende waarden) in uw tabellen.

  3. Als u met meerdere tabellen werkt, kunt u de Number of simultaneous connections om parallel schrijven toe te staan.

  4. Syntho wordt beperkt door de query- en schrijfprestaties van de database waarmee het verbonden is. Vooral de schrijfsnelheden van databases kunnen voor sommige databasetypes een significante impact hebben wanneer tabellen groter worden. Enkele opties om de beperkingen van de database schrijfsnelheden te verminderen zijn:

    1. Overweeg om een representatieve [subset ] (https://github.com/shahin-hu/Translations/blob/main/English/overview/broken-reference/README.md) van die grotere tabellen voor het synthetiseren.

    2. Overweeg om de gegenereerde data naar (Parquet) bestanden te schrijven in Azure Data Lake Storage of Amazon Simple Storage Service (S3).

    3. Verhoog de Write batch size kan een kleine invloed hebben op de schrijfsnelheid.

Hoe kan ik het geheugengebruik van mijn cluster optimaliseren?

Het Syntho platform biedt verschillende functies om het geheugengebruik tijdens het genereren van data te optimaliseren. Als u begrijpt hoe deze functies werken, kunt u het geheugen effectiever beheren en problemen zoals out-of-memory (OOM) fouten voorkomen.

  1. Batch Size: Het aantal datapunten dat in een enkele batch wordt verwerkt. Een hogere batchgrootte kan de snelheid van gegevensgeneratie verhogen, maar vereist meer geheugen. Pas de batchgrootte aan op basis van het beschikbare geheugen in je cluster om de optimale balans tussen prestaties en geheugengebruik te vinden.

  2. Parallel Connections (N): Deze parameter bepaalt het aantal tabellen dat parallel gelezen of geschreven kan worden. Door N te verhogen kunnen meerdere tabellen tegelijk worden verwerkt, wat het genereren van gegevens kan versnellen. Het verhoogt echter ook het geheugengebruik, dus pas deze parameter aan op basis van het beschikbare geheugen en de complexiteit van je databaseschema (rekening houdend met mogelijke relaties met vreemde sleutels).

  3. Training Rows (N): Het aantal rijen uit de brongegevens dat wordt gebruikt om het generatieve model te trainen. Het gebruik van meer rijen kan de kwaliteit van de gesynthetiseerde data verbeteren, maar vereist meer geheugen. Monitor het geheugengebruik en pas N aan om te voorkomen dat de geheugenlimieten worden overschreden.

  4. [Ray Dashboard(../deploy-syntho/logs-and-monitoring.md): Hiermee kunt u real-time geheugengebruik, CPU-gebruik en andere resource-metriek observeren. Controleer regelmatig het Ray dashboard om het geheugengebruik bij te houden en de nodige aanpassingen te doen aan de batchgrootte, parallelle verbindingen en trainingsrijen.

  5. [OOM Error Logs(../deploy-syntho/logs-and-monitoring.md): Fouten zoals "Workers (tasks/actors) killed due to memory pressure (OOM)" geven aan dat het cluster geen geheugen meer heeft. Als u OOM-fouten tegenkomt, verklein dan de batchgrootte, verlaag het aantal parallelle verbindingen of verlaag het aantal trainingsrijen om de geheugendruk te verminderen.

Last updated