AI Synthesizer (NnGenerator)

The AI Synthesizer uses deep neural networks to learn models of your data, which can be sampled to generate new synthetic rows that faithfully mimic the statistical properties of your data.

You assign the AI Synthesizer generator to the columns that you want to use to generate the model, then provide the configuration details for the model.

By default, the AI Synthesizer is not available. To enable the AI Synthesizer, set the environment setting TONIC_NN_GENERATOR_ENABLED to true. See Configuring environment settings.

For the AI Synthesizer, the replacement contains a link object for each column that is in the model.

The metadata object is populated from the NnMetadata object. The model configuration is provided in the nnModelConfig object outside of the links object.

For each column, you specify the type of data in that column (Categorical, Numeric, Location).

{
  "schema": "string",
  "table": "string",
  "column": "string",
  "metadata": {
    "generatorId": "NnGenerator",
    "encoding": "enum"
  },
}

Example replacement

The following example replacement configures a model based on three columns. Two contain categorical data, and the third contains numeric data.

The model does not contain event data.

{
  "name": "AI Synthesizer",
  "schema": "test",
  "table": "users",
  "links": [
    {
      "schema": "test",
      "table": "users",
      "column": "occupation",
      "metadata": {
        "generatorId": "NnGenerator",
        "encoding": "Categorical"
      }
    },
    {
      "schema": "test",
      "table": "users",
      "column": "gender",
      "metadata": {
        "generatorId": "NnGenerator",
        "encoding": "Categorical"
      }
    },
    {
      "generatorId": "NnGenerator",
      "schema": "test",
      "table": "users",
      "column": "salary",
      "metadata": {
        "generatorId": "NnGenerator",
        "encoding": "Numeric"
      }
    }
  ],
  "nnModelConfig": {
    "modelType": "VAE",
    "epochs": 300,
    "batchSize": 500,
    "earlyStopping": false,
    "recLossFactor": 2,
    "latentDim": 128,
    "maxCategoricalDim": 35,
    "encoderLayerSizes": [ 256,256,256 ],
    "decoderLayerSizes": [ 256,256,256 ]
  }
}

Last updated