A computer system comprising: one or more processors; and one or more computer-readable media having stored thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computer system to perform a method for extracting features from a client codebase for creation of custom machine learning models in a machine learning service, the method comprising: accessing a client codebase, wherein the client codebase includes a collection of source codes used to build a software program; extracting a set of features from the client codebase on a client computer system, wherein extracting the set of features comprises: compiling the client codebase; building a semantic model based on the compiled client codebase, wherein the semantic model is a model providing information about a semantic meaning of the software program; and analyzing the semantic model to obtain the set of features; selecting one or more features from the set of features; sending at least one of the selected features to a machine learning service for building one or more custom machine learning models, wherein the one or more custom machine learning models are machine learning models customized to the client codebase; receiving at least one of the custom machine learning models built by the machine learning service in response to sending the at least one of the selected features to the machine learning service; applying the received custom machine learning model to a client programming environment of the client computer system; and in response to the application of the received custom machine learning model to the client programming environment, automatically generating or completing a portion of source code. one or more processors; and one or more computer-readable media having stored thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computer system to perform a method for extracting features from a client codebase for creation of custom machine learning models in a machine learning service, the method comprising: accessing a client codebase, wherein the client codebase includes a collection of source codes used to build a software program; extracting a set of features from the client codebase on a client computer system, wherein extracting the set of features comprises: compiling the client codebase; building a semantic model based on the compiled client codebase, wherein the semantic model is a model providing information about a semantic meaning of the software program; and analyzing the semantic model to obtain the set of features; selecting one or more features from the set of features; sending at least one of the selected features to a machine learning service for building one or more custom machine learning models, wherein the one or more custom machine learning models are machine learning models customized to the client codebase; receiving at least one of the custom machine learning models built by the machine learning service in response to sending the at least one of the selected features to the machine learning service; applying the received custom machine learning model to a client programming environment of the client computer system; and in response to the application of the received custom machine learning model to the client programming environment, automatically generating or completing a portion of source code. accessing a client codebase, wherein the client codebase includes a collection of source codes used to build a software program; extracting a set of features from the client codebase on a client computer system, wherein extracting the set of features comprises: compiling the client codebase; building a semantic model based on the compiled client codebase, wherein the semantic model is a model providing information about a semantic meaning of the software program; and analyzing the semantic model to obtain the set of features; compiling the client codebase; building a semantic model based on the compiled client codebase, wherein the semantic model is a model providing information about a semantic meaning of the software program; and analyzing the semantic model to obtain the set of features; selecting one or more features from the set of features; sending at least one of the selected features to a machine learning service for building one or more custom machine learning models, wherein the one or more custom machine learning models are machine learning models customized to the client codebase; receiving at least one of the custom machine learning models built by the machine learning service in response to sending the at least one of the selected features to the machine learning service; applying the received custom machine learning model to a client programming environment of the client computer system; and in response to the application of the received custom machine learning model to the client programming environment, automatically generating or completing a portion of source code.