Load_dataset vs custom torch dataset

I am new to HF and recently followed a fine tuning example where I tuned an NLP model for my own local csv data. In that example I had to put the data into a custom torch dataset to be fed to the trainer. I am looking at other examples of fine-tuning and I am seeing usage of a HF class called “load_dataset” for local data where it appears to just take the data and do the transform for you. There appears to be no need to write my own Torch DataSet class. I am seeing that load_dataset can handle images and audio too. If I am reading the code and the doc correctly, why would I ever need to write my own torch dataset for fine-tuning? Thanks