Construct multi-input data using Gluon DataSet and DataLoder

hi, I used to use symbol api and NDArrayIter to load multi-input data to model but recently want to switch to Gluon interface, below is an example of how I am currently constructing ndArrayIter:
X_train = mx.io.NDArrayIter(data={‘pluids’: np.array(train[‘pluids’].values.tolist(), dtype=int),
‘valid_len’: train[‘valid_len’].values,
‘bkidx’: train[‘bkidx’].values,
‘timeidx’: train[‘timeidx’].values},
label={‘output_label’: train[‘label’].values},
batch_size=batch_size,
shuffle=True)
Now I want to convert this to GluonDataLoader so that I can use Gluon API to train the model. I found there is a DataIterLoader given in documentation of how to convert NDArrayIter to GluonDataLoader but I noticed after the conversion all metadata likes the datadesc are gone and also the sequence of the input data are changed. Can someone help me figure out what is the correct way to construct a GluonDataLoader with multiple input data?