While training a text classifier model with a few thousand samples completes in seconds, when using 100,000 or 1 million samples, CreateML's training time increases exponentially (to hours or days). During these hours/days, GPU usage is low and almost every CPU core is idle. When using the Swift APIs for model training, resource utilization does not increase. I'm using Xcode 16.2, macOS 15.2 on either an M2 Ultra 64 GB or an M3 Max 48 GB laptop (both using built-in SSD with ~500 GB free) running no other applications.
Is there a setting I've missed to allow training to take over more of my computing resources? Is this expected of CreateML (i.e., when looking to exploit a larger corpus, I should move to other tooling)? I'd love to speed up my iteration cycle time.
Hello,
It's difficult to say exactly based solely on the number of samples differing by orders of magnitude.
I'll speculate that complexity increases non-linearly but whether it's exponential growth is unclear.
The low resource utilization on GPU and CPU could suggest work done exclusively on ANE.
All that said, I think we'd need to take a closer look at the data to determine whether this was expected behavior or something amiss.
Please send us a bug report using the Feedback Assistant so our framework engineers can investigate and indicate where the training data can be obtained.