1. A system comprising: one or more computers; one or more data storage devices coupled to the one or more computers; the one or more data storage devices storing a repository of training functions and further storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising: receiving over a network predictive modeling training data from a client computing system; using the training data and a plurality of training functions obtained from the repository to train a plurality of predictive models, wherein the plurality of training functions includes two or more training functions for training predictive models of a same type, and wherein predictive models of the same type are trained with different hyper-parameter configurations; generating a score for each of the plurality of trained predictive models, where each score represents an estimation of the effectiveness of the respective trained predictive model; selecting a first trained predictive model from among the plurality of trained predictive models based on the generated scores; and providing access to the first trained predictive model over the network.