IP Library Granted Patent US 12,646,007
Granted Patent B2
US 12,646,007 · App. 17/657,621 · Granted Jun 2, 2026

Augmentation of machine learning pipeline corpus for synthesizing new machine learning pipelines

Inventors: Ripon Saha (Pleasanton, CA); Mukul Prasad (San Jose, CA); Linyi Li (Urbana, IL)
Assignee: Fujitsu Limited
G06N20/20G06F8/427G06F8/65G06F9/547G06F11/3495G06N3/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,646,007
App. No.
17/657,621
Granted
Jun 2, 2026
Kind
B2
Abstract

According to an aspect of an embodiment, operations may include receiving an ML project stored in an ML corpus database. The operations may further include mutating a first ML pipeline, of a set of first ML pipelines associated with the received ML project, to determine a set of second ML pipelines. The mutation of the first ML pipeline may correspond to a substitution of a first ML model associated with the first ML pipeline with a second ML model associated with one of the set of predefined ML pipelines. The operations may further include selecting one or more ML pipelines from the set of second ML pipelines based on a performance score associated with each of the determined set of ML pipelines. The operations may further include augmenting the ML corpus database to include the selected one or more ML pipelines and the set of first ML pipeline.

Claims (88)

1 . A method, executed by a processor, comprising:

receiving a machine learning (ML) project from a plurality of ML projects stored in an ML corpus database,

wherein each of the plurality of ML projects includes a dataset and

a set of ML pipelines applicable on the dataset;

mutating a first ML pipeline, of a set of first ML pipelines associated with the received ML project, to determine a set of second ML pipelines, based on a set of predefined ML pipelines,

wherein the mutation of the first ML pipeline corresponds to a substitution of a first ML model, associated with the first ML pipeline, with

a second ML model associated with one of the set of predefined ML pipelines;

selecting one or more ML pipelines from the determined set of second ML pipelines based on a performance score associated with each of the determined set of second ML pipelines;

augmenting the ML corpus database to include the selected one or more ML pipelines and the set of first ML pipelines associated with the received ML project;

constructing an abstract syntax tree (AST) associated with the first ML pipeline;

determining a last application programming interface (API) call associated with a predict function in the first ML pipeline based on the constructed AST;

assigning the determined last API call as a target line; and

identifying one or more statements associated with the first ML model based on the assigned target line.

2 . The method according to claim 1 , further comprising:

extracting a set of meta-features from the dataset associated with each of the plurality of ML projects stored in the augmented ML corpus database;

extracting a set of ML pipeline components from the set of ML pipelines associated with each of the plurality of ML projects stored in the augmented ML corpus database; and

training a meta-learning model based on the extracted set of meta- features and the extracted set of ML pipeline components.

3 . The method according to claim 1 , wherein the performance score associated with each of the determined set of second ML pipelines corresponds to at least one of: an F1-score or an R2-score associated with the corresponding ML pipeline.

4 . The method according to claim 1 , wherein the selected one or more ML pipelines from the determined set of second ML pipelines includes one of:

an ML pipeline, from the determined set of second ML pipelines, associated with a maximum performance score, a first group of ML pipelines, from the determined set of second ML pipelines, that correspond to a performance score above a threshold, or a second group of ML pipelines, from the determined set of second ML pipelines, that correspond to a predefined number of top ML pipelines based on the performance score.

5 . The method according to claim 1 , further comprising:

identifying a code snippet of the first ML model associated with the first ML pipeline;

determining one or more input parameters associated with the identified code snippet;

selecting the second ML model from a set of predefined models associated with the set of predefined ML pipelines; and

instantiating the selected second ML model based on the substitution of the first ML model with the selected second ML model in the first ML pipeline.

6 . The method according to claim 5 , wherein the determined one or more input parameters associated with the identified code snippet comprises at least one of: a training dataset, a test dataset, and a set of hyper-parameters associated with the first ML model.

7 . The method according to claim 5 , further comprising:

selecting a predefined template associated with the second ML model, the selected predefined template is annotated with the one or more input parameters of the identified code snippet of the first ML model;

constructing a code snippet of the second ML model based on a parameterization of one or more function calls in the selected predefined template using the annotated one or more input parameters; and

replacing the identified code snippet of the first ML model with the constructed code snippet of the second ML model to instantiate the second ML model.

8 . The method according to claim 1 , wherein the one or more statements associated with the first ML model are identified based on an application of a backward program slicing from the assigned target line until a model declaration associated with the first ML model is reached.

9 . The method according to claim 1 , further comprising storing a line number of each of the one or more statements associated with the first ML model,

wherein the one or more statements correspond to at least one of: a model definition, a fit function call, or a predict function call.

10 . The method according to claim 1 , further comprising:

retrieving the assigned target line from the first ML pipeline;

adding the retrieved target line into a queue including a set of statements associated with the first ML pipeline;

popping a first statement from the queue;

controlling an execution of a first set of operations to obtain a model slice associated with the first ML model from the first ML pipeline, wherein the first set of operations includes:

extracting one or more variables and objects from the first statement,

identifying a set of second statements that occur prior to the first statement in the first ML pipeline and include at least one of the extracted one or more variables and objects,

determining whether a third statement of the identified set of second statements occurs prior to a model definition associated with the first ML model,

adding the third statement to the queue based on the determination that the third statement occurs prior to the model definition,

adding the first statement to the model slice, and

popping a fourth statement from the queue as the first statement, based on a determination that the queue is not empty; and

obtaining the model slice to identify a code snippet of the first ML model associated with the first ML pipeline, based on an iterative execution of the first set of operations.

11 . One or more non-transitory computer-readable storage media configured to store instructions that, in response to being executed, cause an electronic device to perform operations, the operations comprising:

receiving a machine learning (ML) project from a plurality of ML projects stored in an ML corpus database,

wherein each of the plurality of ML projects includes a dataset and a set of ML pipelines applicable on the dataset;

mutating a first ML pipeline, of a set of first ML pipelines associated with the received ML project, to determine a set of second ML pipelines, based on a set of predefined ML pipelines,

wherein the mutation of the first ML pipeline corresponds to a substitution of a first ML model, associated with the first ML pipeline, with a second ML model associated with one of the set of predefined ML pipelines;

selecting one or more ML pipelines from the determined set of second ML pipelines based on a performance score associated with each of the determined set of second ML pipelines;

augmenting the ML corpus database to include the selected one or more ML pipelines and the set of first ML pipelines associated with the received ML project;

constructing an abstract syntax tree (AST) associated with the first ML pipeline;

determining a last application programming interface (API) call associated with a predict function in the first ML pipeline based on the constructed AST;

assigning the determined last API call as a target line; and

identifying one or more statements associated with the first ML model based on the assigned target line.

12 . The one or more non-transitory computer-readable storage media according to claim 11 , wherein the operations further comprise:

extracting a set of meta-features from the dataset associated with each of the plurality of ML projects stored in the augmented ML corpus database;

extracting a set of ML pipeline components from the set of ML pipelines associated with each of the plurality of ML projects stored in the augmented ML corpus database; and

training a meta-learning model based on the extracted set of meta-features and the extracted set of ML pipeline components.

13 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein the performance score associated with each of the determined set of second ML pipelines corresponds to at least one of an F1-score or an R2-score associated with the corresponding ML pipeline.

14 . The one or more non-transitory computer-readable storage media according to claim 11 , wherein the selected one or more ML pipelines from the determined set of second ML pipelines includes one of:

an ML pipeline, from the determined set of second ML pipelines, associated with a maximum performance score,

a first group of ML pipelines, from the determined set of second ML pipelines, that correspond to a performance score above a threshold, or

a second group of ML pipelines, from the determined set of second ML pipelines, that correspond to a predefined number of top ML pipelines based on the performance score.

15 . The one or more non-transitory computer-readable storage media according to claim 11 , wherein the operations further comprise:

identifying a code snippet of the first ML model associated with the first ML pipeline;

determining one or more input parameters associated with the identified code snippet;

selecting the second ML model from a set of predefined models associated with the set of predefined ML pipelines; and

instantiating the selected second ML model based on the substitution of the first ML model with the selected second ML model in the first ML pipeline.

16 . The one or more non-transitory computer-readable storage media according to claim 15 , wherein the determined one or more input parameters associated with the identified code snippet comprises at least one of: a training dataset, a test dataset, and a set of hyper-parameters associated with the first ML model.

17 . The one or more non-transitory computer-readable storage media according to claim 15 , wherein the operations further comprise:

selecting a predefined template associated with the second ML model, the selected predefined template is annotated with the one or more input parameters of the identified code snippet of the first ML model;

constructing a code snippet of the second ML model based on a parameterization of one or more function calls in the selected predefined template using the annotated one or more input parameters; and

replacing the identified code snippet of the first ML model with the constructed code snippet of the second ML model to instantiate the second ML model.

18 . An electronic device, comprising:

a memory storing instructions; and

a processor, coupled to the memory, that executes the instructions to perform a process comprising:

receiving a machine learning (ML) project from a plurality of ML projects stored in an ML corpus database,

wherein each of the plurality of ML projects includes a dataset and a set of ML pipelines applicable on the dataset;

mutating a first ML pipeline, of a set of first ML pipelines associated with the received ML project, to determine a set of second ML pipelines, based on a set of predefined ML pipelines,

wherein the mutation of the first ML pipeline corresponds to a substitution of a first ML model, associated with the first ML pipeline, with a second ML model associated with one of the set of predefined ML pipelines;

selecting one or more ML pipelines from the determined set of second ML pipelines based on a performance score associated with each of the determined set of second ML pipelines;

augmenting the ML corpus database to include the selected one or more ML pipelines and the set of first ML pipelines associated with the received ML project;

constructing an abstract syntax tree (AST) associated with the first ML pipeline;

determining a last application programming interface (API) call associated with a predict function in the first ML pipeline based on the constructed AST;

assigning the determined last API call as a target line; and

identifying one or more statements associated with the first ML model based on the assigned target line.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2022
From: LI, LINYI
To: FUJITSU LIMITED
Reel/Frame 060424/0531 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2022
From: SAHA, RIPON; PRASAD, MUKUL
To: FUJITSU LIMITED
Reel/Frame 059534/0445 →
Continuity (2)
Provisional Application 63260908 · Sep 3, 2021
Related Publication 20230080439A1 · Mar 16, 2023
References Cited (24)
US 10824940B1 · Rybakov · 2020 [cited by examiner]
US 20200234162A1 · Jayaraman et al. · 2020 [cited by applicant]
US 20200265324A1 · Ferreira Moreno · 2020 [cited by examiner]
US 20200272909A1 · Parmentier · 2020 [cited by examiner]
US 20200401950A1 · Han · 2020 [cited by examiner]
US 20220413814A1 · Mukherjee · 2022 [cited by examiner]
CN 110110858A · 2019 [cited by applicant]
CN 111506396A · 2020 [cited by applicant]
EP 3779806A1 · 2021 [cited by examiner]
JP 2020530634A · 2020 [cited by applicant]
JP 20212315A · 2021 [cited by applicant]
D. Laadan et al.: “RankML: a meta learning-based approach for pre-ranking machine learning pipelines”, arvix.org, Cornell University Library, Nov. 20, 2019, 8 pages. [cited by applicant]
M. Mukesh et al.: “Eve: a virtual data scientist (D3M/Eve)”, Technical Report of the Air Force Research Laboratory, No. AFRL-RI-RS-TR-2019-077, Apr. 2019 (Retrieved from the Internet: URL:https;//apps.dtic.mil/pdfs/AD10… [cited by applicant]
Z. Shang et al.: “Democratizing Data Science Through Interactive Curation of ML Pipelines,” Designing Interactive Systems Conference, Jun. 25, 2019, pp. 1171-1188. [cited by applicant]
European Patent Office (EPO) Extended European Search Report with CF Form 1507 mailed in connection with counterpart European Patent Application No. 22188261, on Dec. 5, 2022, 8 pages. *** cited documents XP058451066 an… [cited by applicant]
Matthias Feurer, Aaron Klein, Katharina Eggensperger, Jost Springenberg, Manuel Blum, and Frank Hutter, “Efficient and robust automated machine learning,” In Advances in Neural Information Processing Systems, 2015, 9 pa… [cited by applicant]
Randal S Olson, Nathan Bartley, Ryan J Urbanowicz, and Jason H Moore. 2016. “Evaluation of a tree-based pipeline optimization tool for automating data science,” In Proceedings of the 2016 on Genetic and Evolutionary Com… [cited by applicant]
Cambronero José P., and Martin C. Rinard. “AL: autogenerating supervised learning programs.” Proceedings of the ACM on Programming Languages vol. 3, No. OOPSLA, Article 175 (2019):1-28. [cited by applicant]
José Cambronero, Jürgen Cito, Martin Rinard (2020). AMS: Generating AutoML search spaces from weak specifications. In Proceedings of ESEC/FSE 2020, pp. 763-774. [cited by applicant]
Gao X., Saha, R.K., Prasad, M.R. and Roychoudhury, A., Oct. 2020, Fuzz testing based data augmentation to improve robustness of deep neural networks. In 2020 IEEE/ACM 42nd International Conference on Software Engineerin… [cited by applicant]
Taylor Luke, and Geoff Nitschke. “Improving deep learning with generic data augmentation.” In 2018 IEEE Symposium Series on Computational Intelligence (SSCI), IEEE, 2018, pp. 1542-1547. [cited by applicant]
Wei Jason, and Kai Zou. “EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks.” In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9… [cited by applicant]
Chinese Office Action issued Nov. 29, 2025 for corresponding Chinese Patent Application No. 202211064368.5, 21 pages, with English Translation. ***Please note US-2020272909-A1 and US-2020401950-A1 were previously cited … [cited by applicant]
Japanese Office Action mailed Apr. 14, 2026 for corresponding Japanese Patent Application No. 2022-136537, with Partial English Translation, 3 pages. Jul. 28, 2025. ***Please note US-2020/027909-A1 and NPL Laadan, Doron… [cited by applicant]