worldbank/REaLTabFormer

Out of memory exception on tabular model with 25k rows and 37 columns

efstathios-chatzikyriakidis opened this issue · 3 comments

Hi @avsolatorio,

I have a case with ~25k rows and 37 columns. Mixed data types with categorical, numerical and also some have high cardinality while other low cardinality. Also some columns have large number of NAs.

When I train the tabular model I get a memory error as it needs more than 50GB, also bootstrap threshold estimation is very slow.

Do you have any insights on why this happens or how this can be solved, is there any hyperparameter I can use to solve this?

Thanks!

Regarding this as a follow up I am presenting the code I use:

training_execution_params = {
   "table_training":{
      "n_epochs":2,
      "n_bootstrap_rounds":100,
      "batch_size":8,
      "n_gradient_accumulation_steps":2
   }
}

table_training_params = training_execution_params['table_training']

parent_model = REaLTabFormer(model_type="tabular",
                             batch_size=table_training_params['batch_size'],
                             epochs=table_training_params['n_epochs'],
                             gradient_accumulation_steps=table_training_params['n_gradient_accumulation_steps'],
                             logging_steps=1000,
                             save_strategy="epoch",
                             checkpoints_dir = MODEL_RUN_DIRECTORY_PATH / f'{table_name}_checkpoints')
							 
trainer = parent_model.fit(df=entity_tables_dataframes[table_name],
                           num_bootstrap=table_training_params['n_bootstrap_rounds'],
                           device=get_device())

Hello @efstathios-chatzikyriakidis , I assume this is related to #60. And I think you've got a solution to this already with the hold-out validation dataset. :)

Yes, thank you!