After spikeinterface preprocessing steps, data type is float32. I tried to spre.astype(recording, dype=np.int16), but units from kilosort 4 have strange amplitude and locations, as mentioned here: SpikeInterface/spikeinterface#3625
so currently, in preprocess_raw, preprocessed data will be still be saved in float32. until this bug is fixed, we just have to reserve more disk space...