Predictive modeling of manufacturing process using set of inverted models
By using machine learning models to predict output data of the manufacturing process and determine input parameters, the problem of inefficient selection of the best input parameters in the prior art is solved, and faster and more efficient manufacturing process optimization is achieved.
Patent Information
- Application Number
- JP2024186995
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-05-21
- Filing Date
- 2024-10-23
- Publication Date
- 2025-02-12
- Estimated Expiration
- 2041-05-20
AI Technical Summary
During the existing manufacturing process, a lot of experiments are required when selecting the optimal input parameters, resulting in inefficiency and waste of resources, especially in the case of multiple input parameters, it is difficult to efficiently determine the optimization settings.
Using a set of machine learning models, including inverse models, determine input parameters by predicting output data from the manufacturing process, reduce physical experiments and simulations, and improve interpretability and efficiency using the combination and clustering techniques of multiple models.
By reducing the number of experiments and simulations, the efficiency of the manufacturing process is improved, engineering time is shortened, resource consumption is reduced, and the product can be optimized faster to meet the expected properties.
Smart Images

Figure 2025020187000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to predictive modeling, and more particularly, to predicting optimal input parameters for a manufacturing process using a set of models. [Background technology]
[0002] Manufacturing involves the production of a product using multiple steps that involve human labor, machines, or a combination of both. A manufacturing step may be associated with a setting that determines when, where, and how the step is performed, resulting in the product that is produced. Process engineers typically select and customize the settings based on their expertise in the domain. Setting selection often involves running many experiments with different settings to identify one or more optimal settings for the manufacturing process. Summary of the Invention
[0003] The following presents a simplified summary of the disclosure in order to provide a basic understanding of some aspects of the disclosure. This summary is not an extensive overview of the disclosure. It is not intended to identify key or critical elements of the disclosure, nor is it intended to delineate any scope of particular implementations of the disclosure or any scope of the claims. It is merely intended to present some concepts of the disclosure in a simplified form as a prelude to the more detailed description presented below.
[0004] In one aspect of the disclosure, a method includes receiving, by a processing device, expected output data for the manufacturing process defining attributes of an output of the manufacturing process; accessing a plurality of machine learning models including a first machine learning model and a second machine learning model that model the manufacturing process; determining input data for the manufacturing process using the first machine learning model based on the expected output data for the manufacturing process including a value for a first input and a value for a second input; combining the input data determined using the first machine learning model and the input data determined using the second machine learning model to generate a set of inputs for the manufacturing process including a plurality of candidate values for the first input and a plurality of candidate values for the second input; and storing, by the processing device, the set of inputs for the manufacturing process in a storage device.
[0005] In another aspect of the disclosure, a system includes a memory and a processing device coupled to the memory, the processing device receives expected output data for the manufacturing process defining attributes of an output of the manufacturing process, accesses a plurality of machine learning models including a first machine learning model and a second machine learning model that models the manufacturing process, determines input data for the manufacturing process including a value for a first input and a value for a second input based on the expected output data for the manufacturing process using the first machine learning model, combines the input data determined using the first machine learning model and the input data determined using the second machine learning model to generate a set of inputs for the manufacturing process including a plurality of candidate values for the first input and a plurality of candidate values for the second input, and stores the set of inputs for the manufacturing process in a storage device.
[0006] In one aspect of the disclosure, a non-transitory machine-readable storage medium stores instructions that, when executed, cause a processing device to perform operations including accessing output data for the manufacturing process associated with input data used by the manufacturing process; training a first machine learning model based on the input data and the output data; receiving, by the processing device, expected output data for the manufacturing process defining output attributes of the manufacturing process; accessing a plurality of machine learning models, including a first machine learning model and a second machine learning model, that model the manufacturing process; determining, using the first machine learning model, input data for the manufacturing process based on the expected output data for the manufacturing process, the input data including a first value for the first input attribute and a first value for the second input attribute; and combining the input data determined using the first machine learning model and the input data determined using the second machine learning model to generate a set of inputs for the manufacturing process including multiple values for the first input attribute and multiple values for the second input attribute.
[0007] The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a block diagram illustrating an example system architecture in accordance with certain embodiments. [Diagram 2] FIG. 1 illustrates an example computing device in accordance with certain embodiments. [Diagram 3] FIG. 1 is a block diagram illustrating an example system for training a machine learning model, in accordance with certain embodiments. [Figure 4] FIG. 1 is a flow diagram illustrating an example method for predicting input values for a manufacturing process using a set of machine learning models, in accordance with certain embodiments. [Diagram 5] FIG. 1 is a block diagram illustrating a computer system in accordance with certain embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Manufacturing processes continue to grow in complexity and often include a large number of steps. Each step may have a different configuration and be associated with a different process engineer with expertise in different areas. The different steps may be correlated and modeled using a computer-generated model. The computer-generated model is often a causal model that represents the causal relationship between manufacturing inputs and the corresponding manufacturing output. The model may take one or more manufacturing input settings as inputs and provide a prediction of the impact on the manufacturing output. The process engineer may manually select different inputs and simulate the impact on the manufacturing output using the model. The process engineer often has an intended output that he is trying to create and may hypothesize which inputs to change. The process engineer may then initiate computer simulations or physical experiments that identify the inputs that need to be modified to produce the intended output. This type of input / output modeling may be efficient when the manufacturing process involves one process engineer and a small number of inputs. As the number of inputs increases, the variability of the inputs increases, making the selection and experimentation process less efficient.
[0010] The techniques disclosed herein may address the above and other deficiencies by providing a technique for generating a set of models that can be used to predict manufacturing inputs based on expected manufacturing outputs (e.g., target attributes, intended results, end goals). The set of models includes one or more inversion models that provide output / input modeling (as opposed to input / output). The set of models may use manufacturing output data as model inputs and provide manufacturing input data as model outputs. The models are trained using manufacturing input data (e.g., configuration values) and manufacturing output data (e.g., product attribute values). In one example, the set of models may be a homogenous set that includes machine learning models based on a common model architecture but trained differently to create different model versions. Training may be based on variations in training data, hyperparameters, initialization values, other differences, or combinations of the foregoing.
[0011] Each trained machine learning model in the set receives the same manufacturing output data as model inputs, and each predicts a different set of inputs to the manufacturing process. Each set of inputs is selected to result in a product that satisfies the expected output data (e.g., target attributes of the manufactured item). The inputs derived using the different models may be combined to identify a range of values for each manufacturing input that is predicted to satisfy or conform to the expected manufacturing output (e.g., achieve the target attribute or intended result). In one example, the set of models is a feedforward neural network (FFNN), which together function as an ensemble learning technique. The output of the set of feedforward neural networks may be clustered into different groups, each group sharing similarities in a corresponding set of manufacturing inputs (e.g., a first group may focus on variability for a first manufacturing input, and a second group may focus on variability for a second manufacturing input).
[0012] The systems and methods described herein include techniques to improve the identification of manufacturing input data (e.g., configuration parameters) that result in a product with predefined attributes. In particular, aspects of the present disclosure can reduce the amount of physical experiments or computer simulations performed to identify an optimal set of inputs for a manufacturing process. Traditional process modeling may simulate a manufacturing process by having a model take manufacturing input data as model inputs and simulate the output of the manufacturing process. To identify optimal manufacturing inputs, a process engineer may select different combinations of inputs and run them as different simulations. The use of inverse models may allow the model to take the final result as input to the model and output a predicted set of manufacturing inputs that arrive at the final result. This can result in less experimentation or better results using the same amount of experimentation. The use of multiple models may result in multiple predicted sets of manufacturing inputs, each of which may serve as a candidate solution. The candidate solutions may be combined or clustered and displayed to the user to allow the user to detect patterns among the different candidate solutions. This can enable the technology to use machine learning in a way that provides a level of interpretability and explainability to predictive modeling. The techniques may provide insight into how manufacturing outputs are affected by changes to input data and may reduce the number of computer simulations or physical experiments performed to identify a particular solution. Aspects of the present disclosure may also result in significant reductions in process engineering time, resource consumption, processor overhead, and the like. In one example, predictive manufacturing inputs may result in faster process development and optimization (e.g., for semiconductor manufacturing). In another example, predictive manufacturing inputs may produce products more quickly and may optimize products (e.g., fit better within specifications) than traditional remedies.
[0013] Various aspects of the above-referenced technology are described in detail herein below, by way of example and not by way of limitation. The examples provided below consider a computing device integrated with a manufacturing process. In other examples, the computing device may be separate from the manufacturing process and may access data associated with the manufacturing process from a data store and may generate data that can later be used by the computing device or a user to configure the manufacturing process.
[0014] 1 is a block diagram illustrating an example system architecture 100, in accordance with certain embodiments. System architecture 100 includes a manufacturing process 110, an input 112, an output 114, and one or more computing devices 120A-Z.
[0015] The manufacturing process 110 may be any manufacturing process capable of providing or producing one or more products 116. The products 116 may be for use or sale and may be tangible or intangible objects, goods, services, other products, or combinations of the above. Tangible products may be touched by humans and may include physical products, objects, elements, goods, or other objects (e.g., etched wafers, microchips, electronic devices). Intangible products may be perceived directly or indirectly by humans without being touched and may include circuit designs, device layouts, manufacturing recipes, tool configurations, computer programs, services, other intangible elements, or combinations of the above.
[0016] The manufacturing process 110 may involve performing operations based on inputs 112 to provide outputs 114. The inputs 112 may include any inputs that the manufacturing process 110 uses to provide a product 116. The inputs 112 may include one or more input products that are modified, assembled, or combined during the manufacturing process 110. The outputs 114 may be anything that the manufacturing process 110 outputs and may include the product 116 as well as any by-products of the manufacturing process 110. Both the inputs 112 and the outputs 114 may be associated with data, for example, the inputs 112 may be associated with input data 122 (e.g., configuration data) and the outputs 114 may be associated with output data 124 (e.g., product attribute data).
[0017] The input data 122 may be any data that defines one or more inputs to the manufacturing process 110. The input data 122 may indicate one or more attributes of an input product, configuration, setting, or other data. The input data 122 may be the same as or similar to parameter data, setting data, configuration data, other data, or combinations of the foregoing. The input data 122 may include one or more values (e.g., parameter values, setting values, configuration values) that indicate how the manufacturing process is performed. In one example, the input data 122 may include one or more values corresponding to time (e.g., deposition time, etch time, oxidation time, implant time, cleaning time), energy (e.g., temperature, current, voltage, electromagnetic frequency), input rate (e.g., gas flow rate, wafer spin speed), distance (e.g., space between substrate and tool, feature width, height, depth), pressure (e.g., Pascal, bar), input substance (e.g., precursor, reactant, diluent), other attributes or properties, or combinations of the foregoing.
[0018] The output data 124 may be any data describing one or more outputs of the manufacturing process 110. The output data 124 may describe one or more attributes of the product 116, by-products, other outputs, or combinations of the foregoing. The output data 124 may include values indicative of actual attributes of the product 116 after the product 116 is created, or intended attributes of the product 116 before the product 116 is created. The attributes may correspond to one or more measurements of the product 116. The measurements may relate to dimensions (e.g., length, width, height, depth, thickness, radius, diameter, area, volume, size), material properties (e.g., reflectance, emissivity, absorptivity, conductivity, density, texture), uniformity (e.g., film thickness uniformity), location (e.g., relative or absolute location), other attributes, or combinations of the foregoing. In one example, the output data 124 may describe attributes of the product 116 in the form of N-point metrology, where N indicates the number of reference measurements for the product (e.g., 49-point metrology). The N-point metrology may provide critical dimensions (eg, transistor or via dimensions) for one or more electronic components of a semiconductor product.
[0019] Computing devices 120A-Z may include one or more computing devices associated with manufacturing process 110. Computing devices 120A-Z may include embedded systems, servers, workstations, personal computers, laptop computers, tablet computers, mobile phones, palm-sized computing devices, personal digital assistants (PDAs), and the like. In one example, computing devices 120A-Z may include computing devices implemented with x86 hardware (e.g., Intel® or AMD®). In another example, computing devices 120A-Z may include computing devices implemented with PowerPC®, SPARC®, or other hardware.
[0020] One or more of the computing devices 120A-Z may function as a manufacturing control device, a sensor device, a user device, other devices, or a combination of the foregoing. A manufacturing control device (e.g., a controller) may control a portion of a manufacturing process and may access, generate, or transmit input data 122, output data 124, or a combination of the foregoing. A sensor device (e.g., a sensor) may be capable of sensing an aspect of the manufacturing process 110 or an aspect of the product 116 and may involve a measurement component capable of measuring an attribute of the manufacturing process 110 or the product 116. In one example, a sensor device may include an image capture module or an audio capture module. A user device may be the same as or similar to a client device and may provide a user interface to a user (e.g., a process engineer). The user interface may present (e.g., display and / or announce) information to the user and may include one or more control elements that collect user input. One or more of the computing devices 120A-Z may use the set of machine learning models 121A-Z to determine input data 122A-Z for the manufacturing process 110.
[0021] The machine learning models 121A-Z may mathematically model the manufacturing process 110 and the relationships between the inputs 112 and the outputs 114. Each of the machine learning models 121A-Z may be a regression model that can be used to identify one or more points in a process space of the manufacturing process. The process space may represent the relationships between manufacturing inputs and outputs in a finite space. The process space may include an investigated portion of the process space and an uninvestigated portion of the process space. The investigated portion may correspond to points or regions in the process space that correspond to previous physical experiments, computer simulation experiments, or a combination of the foregoing. The uninvestigated portion of the process space may correspond to potential or theoretical experiments. The process space may include any number of dimensions, and the number of dimensions may be related to the number of attributes of the manufacturing inputs, manufacturing outputs, or a combination of the foregoing. The machine learning models 121A-Z may be used to approximate the process space and identify potential solutions in the process space. The potential solutions may be a set of one or more manufacturing inputs and may correspond to points, lines, surfaces, areas, volumes, or other regions in the process space.
[0022] Each of the machine learning models 121A-Z may be an artifact of a machine learning process that analyzes training data and creates a model that represents patterns and inferences drawn from the training data. A machine learning model may be the same as or similar to a mathematical model, a statistical model, a neural network, other mathematical representation, or a combination of the foregoing. Each of the machine learning models 121A-Z may include mathematical data for one or more mathematical functions, equations, expressions, operators, operands, coefficients, variables, weights, biases, links, other data, or combinations of the foregoing.
[0023] The mathematical data may represent relationships between the model inputs 112 and the model outputs 114. The relationships may be modeled using linear functions, non-linear functions, other mathematical functions, or combinations of the above. A linear function may represent a linear relationship between the model inputs and the model outputs and may be represented as a mathematical function whose graph is a straight line. A non-linear function may represent a non-linear relationship between the model inputs and the model outputs and may be represented as a polynomial function (e.g., a quadratic equation) that, when graphed, does not represent a straight line but instead includes one or more curves. Mapping the relationships between the inputs and outputs using a linear function may be advantageous because it makes it easier to perform extrapolations than with non-linear functions, which will be discussed in more detail in connection with FIG. 2.
[0024] The machine learning models 121A-Z may be neural networks that are trained and used as part of a deep learning process. A neural network may be referred to as a network, an artificial neural network (ANN), or other terms. In one example, the machine learning models 121A-Z may include one or more forward propagation neural networks (FFNNs). Each FFNN may include multiple layers, and data provided as model input may move unidirectionally "forward" between the multiple layers without any feedback loops (e.g., during inference, data proceeds from the input layer to the output layer). In other examples, the machine learning models 121A-Z may include one or more layers or features of a convolutional neural network (CNN), a multi-layer perceptron neural network (MLP), a fully connected neural network, a radial basis function neural network (RBF), a recurrent neural network (RNN), a modular neural network, a Kohonen self-organizing neural network, other networks, or combinations of the foregoing. In any example, the neural network may organize mathematical data into one or more layers.
[0025] Each layer of a neural network may perform a different transformation on the input to the layer. Data may be propagated from the first layer to the last layer, and may or may not traverse the layers more than once (typically once in the case of FFNN). The multiple layers may include an input layer (e.g., the first layer), an output layer (e.g., the last layer), and one or more intermediate layers (e.g., hidden layers). In one example, the neural network may include an intermediate layer that includes a nonlinear function, and the output layer may include one or more linear functions. For example, the output layer may include a linear activation function and may not have a nonlinear activation function (e.g., lacking, not having, or not having any mathematical nonlinearity).
[0026] A linear activation function may be the same as or similar to a transfer function and may define the output of an element given an input or set of inputs. In one example, the activation function may be a rectification function defined as f(x)=x+=max(0,x), which may accept negative and positive inputs and output values greater than or equal to zero and no negative values. The rectification function may be implemented by a rectified linear unit (ReLU), which may be the same as or similar to a ramp function, similar to half-wave rectification in electrical engineering. In other examples, the activation function may be a logistic sigmoid function, a hyperbolic tangent function, a threshold function, other functions, or a combination of the above.
[0027] Each of the machine learning models 121A-Z may function as a non-inverted model, an inverted model, or a combination of the above. A non-inverted model may model a manufacturing process, taking input data of the manufacturing process as model inputs and providing output data of the manufacturing process as model outputs (e.g., mapping manufacturing inputs to outputs). This allows the model to simulate the execution of a manufacturing process. In contrast, an inverted model may model a manufacturing process in reverse, using manufacturing output data 124 as model inputs 112 and providing manufacturing input data 122 as model outputs 114 (e.g., mapping manufacturing outputs to inputs). The use of an inverted model may be advantageous because the model may take a final result as an input to the model and provide a predicted set of inputs that will arrive at the final result. A set of one or more inverted models may be used to identify input data for the manufacturing process 110, as illustrated by model set 127.
[0028] The model set 127 may be a homogenous set of machine learning models, a heterogeneous set of machine learning models, or a combination of the above. A homogenous set of machine learning models may be a set where all of the machine learning models share a model architecture. In contrast, a heterogeneous set of machine learning models may be a set where there is at least one model in the set that is based on a different model architecture. The model architecture may correspond to a type of neural network, and each of the example neural networks listed above may have a different model architecture (e.g., FFNN, CNN, RNN). As shown in FIG. 1, the model set 127 may be a homogenous set of machine learning models, sometimes referred to as a model cluster, and each of the machine learning models 121A-Z may be a different version of the same machine learning model.
[0029] Different versions of the machine learning model may be created by using a common model architecture and training the model differently. Training the model differently may involve using different training techniques, different training data, other training differences, or a combination of the foregoing. The different training techniques may involve using different training parameters, different model initialization values, other differences, or a combination of the foregoing. The training parameters, sometimes referred to as hyperparameters, may be set before the training process begins to update or create the machine learning model. The training process is discussed in more detail in connection with FIGs. 2 and 3.
[0030] Each of the machine learning models 121A-Z may generate its own model output, or the collective outputs of the model set 127 may be combined. Each of the machine learning models 121A-Z may have access to the same model inputs 112, but may generate different model outputs 114. This is illustrated in FIG. 1, where the same output data 124 is provided to each of the machine learning models 121A-Z, and each of the machine learning models 121A-Z outputs respective data for the manufacturing process (e.g., input data 122A-Z). The combination of the model outputs 114 may result in combined data 126. The combined data 126 may correspond to one or more candidate solutions, and may be indicative of regions within the process space of the manufacturing process 110, as described in more detail below in connection with FIG. 2.
[0031] FIG. 2 illustrates a block diagram of an example computing device 120 including a technique for performing predictive modeling for a manufacturing process using a set of inverse models according to one or more aspects of the present disclosure. The computing device 120 may be the same as or similar to one or more of the computing devices 120A-Z of FIG. 1. The components and modules discussed herein may be implemented on the same computing device or on different computing devices. In an implementation, one or more of the components may reside on different computing devices (e.g., training on a first computing device and inference on another computing device). Without loss of generality, more or fewer components or modules may be included. For example, two or more of the components may be combined into a single component, or features of a component may be split into two or more components. In the example illustrated in FIG. 2, the computing device 120 may include a training component 210, an inference component 220, and a presentation component 230.
[0032] The training component 210 may enable the computing device 120 to analyze data of the manufacturing process and create one or more machine learning models. In one example, the training component 210 may include a data access module 212, a model creation module 214, and a storage module 216.
[0033] The data access module 212 may access data associated with a manufacturing process and store the data as training data 242. The training data 242 may be any data related to a manufacturing process and may be used to train one or more machine learning models. The training data 242 may include or be derived from input data for the manufacturing process (e.g., input data 122), output data for the manufacturing process (e.g., output data 124), other data, or a combination of the foregoing. The input data for the manufacturing process may be the same as described above with respect to the input data 122 and may include a set of values where one or more values are for time, temperature, pressure, voltage, gas flow, or other values. The output data for the manufacturing process may be the same as described above with respect to the output data 124 and may include one or more values indicative of values of layer thickness, layer uniformity, or structure width, other critical dimensions, or a combination of the foregoing. The data access module 212 may perform one or more processing operations on the data before, during, or after storing the data in the data store 240 as training data 242. Processing may be referred to as pre-processing or post-processing, and may involve one or more operations of aggregation, correlation, normalization, adding, removing, filtering, sanitizing, anonymizing, or other operations.
[0034] The training data 242 may include or be based on historical data, simulation data, augmented data, other data, or combinations of the foregoing. Historical data may be derived from one or more physical executions of a manufacturing process, which may be for commercial, test, experimental, research and development, other applications, or combinations of the foregoing. Simulation data may be derived from one or more computer simulations of a manufacturing process, or may be the output of one or more machine learning models (e.g., input / output models). Augmented data may be based on historical or simulation data that is manipulated to include variability that may or may not be present in the data being manipulated. The variability may modify the data using one or more mathematical transformations (e.g., rigid body transformation, noise addition, noise removal). Augmented data may be the same or similar to the synthetic data, or may be a modified form of the input data, output data, or combinations of the foregoing.
[0035] The training data 242 may include labeled data, unlabeled data, or a combination of the above. Labeled data may include primary data (e.g., samples) supplemented with auxiliary data (e.g., labels). The auxiliary data may be tags, annotations, links, labels, or other data. Unlabeled data may be data that is unlabeled (e.g., lacking a label, unlabeled, having no label). Unlabeled data may be stored without a label and may or may not remain unlabeled before being used to train a machine learning model. In one example, the training data 242 may be labeled data that includes manufacturing output data annotated to link with corresponding manufacturing input data. In another example, the manufacturing input data may be annotated with the corresponding manufacturing output data. In yet another example, there may be a combination of the above.
[0036] The model creation module 214 may enable the computing device 120 to analyze the training data 242 and create the machine learning model 121. The model creation module 214 may use a standardized, proprietary, open source, or other training framework to train the machine learning model. The model creation module 214 may configure the training framework to access training data 242 derived from a previous run (e.g., a physical or simulated run) of the manufacturing process. In one example, the training framework may be the same as or similar to Tensorflow™, Keras™, PyTorch™, Open Neural network Exchange (Onnx™), Cognitive Toolkit (CNTK), Azure Machine Learning Service, Create ML, other machine learning frameworks, or a combination of the foregoing.
[0037] The model creation module 214 may use a training framework to create a set of one or more models. The set of machine learning models may be a homogenous set of machine learning models that share a model architecture and comprise different versions of the model architecture. Each different version of the machine learning model may be trained using different training data, different hyperparameters, different initialization values, other differences, or a combination of the above. In one example, each machine learning model may be a forward propagation neural network that models a manufacturing process (e.g., output / input). Each forward propagation neural network may include multiple hidden layers and an output layer. The number of layers may vary between different versions of the machine learning model, and the hidden layer may include a polynomial function that represents the manufacturing process, and the output layer may include a linear activation function. In one example, the model creation module 214 may train the machine learning models using one or more Monte Carlo simulations. The Monte Carlo simulations may estimate a portion of the n-dimensional process space that is explored using physical experiments or computer-generated experiments. To better extrapolate outside the explored space, the machine learning models may be created to model the output / input relationship (e.g., an inverse model).
[0038] The storage module 216 may enable the computing device 120 to store the results of the training as the machine learning model 121 in the data store 240. The machine learning model 121 may be stored as one or more file objects (e.g., files, directories, links), database objects (e.g., records, tuples), other storage objects, or a combination of the above. The data store 240 may be a memory (e.g., random access memory), a drive (e.g., hard drive, flash drive), a database system, or another type of component or device that can store data. The data store 240 may include multiple storage components (e.g., multiple drives or multiple databases) that may span multiple computing devices (e.g., multiple server computers). The machine learning model 121 may be transmitted to one or more other data stores or computing devices and made accessible to the inference component 220.
[0039] The inference component 220 may enable the computing device 120 to generate predictions 248 using the machine learning models 121. The inference component 220 may be the same as or similar to an inference engine, may receive the machine learning models 121 and data of the instances as input, and may perform an inference. The inference may be the same as or similar to the predictions 248 and may correspond to one or more values. As discussed herein, the inference component 220 may receive manufacturing forecast output data (e.g., target attribute values) and output predicted manufacturing input data (e.g., process configuration values) in terms of the machine learning models 121. In one example, the inference component 220 may include a model access module 222, an input receiving module 224, a prediction module 248, and a combination module 228.
[0040] The model access module 222 may enable the computing device 120 to access a set of one or more machine learning models. The set may include a single machine learning model or multiple machine learning models that may or may not share a common model architecture. In one example, the model access module 222 may receive the set of one or more machine learning models from a local location (e.g., data store 240). This may occur when the computing device 120 creates the machine learning model, or when the machine learning model is created by another computing device and installed, packaged, downloaded, uploaded, or transmitted to the computing device 120. In another example, the model access module 222 may access the set of one or more machine learning models from a server on the same network or a different network (e.g., the Internet) through the computer network 130. This may enable a customer to receive models or updates to the models from a third party (e.g., a manufacturing tool creator or distributor). In either example, the machine learning model may include mathematical data for analyzing the model input from the input receiving module 224.
[0041] The input receiving module 224 may enable the computing device 120 to receive input data that can be used as model inputs 112 for the machine learning model 121. In one example, the input data may be based on user inputs provided by a user to the computing device (e.g., a process engineer inputs into the user device). In another example, the input data may be based on device inputs provided by a management device to the computing device 120. The management device may identify model inputs 112 or initiate one or more physical or computer simulation experiments. In either example, the input data may be used as the model inputs 112 or may be used to transform, identify, select, or derive the model inputs 112. The model inputs 112 may then be used by the prediction module 248.
[0042] The prediction module 248 may analyze the model inputs 112 in terms of the machine learning model 121 to determine model outputs. The model outputs may include one or more predictions 248, each including one or more sets of values. As described above, the sets of values may be manufacturing input values (e.g., parameter values) used to configure the manufacturing process. The prediction module 248 may function as an inference engine or may be integrated with a standardized, proprietary, or open source inference engine. In one example, the prediction module 248 may use a machine learning model to determine input data for a manufacturing process based on expected output data for the manufacturing process. The model outputs may include a value for a first input (e.g., time) and a value for a second input (e.g., energy). Determining the values for the first and second inputs may involve using a machine learning model that can predict model output values in unexplored areas of the process space.
[0043] Predicting model output values may involve interpolation, extrapolation, or a combination of the above using a machine learning model. Interpolation may involve determining points in the process space that are between points that have been investigated using experiments. Extrapolation may involve determining points in the process space that are beyond points that have been investigated using experiments. Interpolation or extrapolation may be performed using one or more tangents. A tangent may touch the curve at one or more curve points and may include one or more tangent points, tangent lines, tangent planes, tangent spaces, other n-dimensional tangents, or combinations of the above. In one example, a line may be a tangent to a curve y=f(x) at a point x=c on the curve where the line passes through a point (c,f(c)) on the curve and has a slope f'(c), where f' is the derivative of f. Similar definitions may apply to space curves and curves in n-dimensional Euclidean space. A tangent may include one or more curve points where the tangent passes through or touches the curve (e.g., simply touches the curve).
[0044] The extrapolation may be a linear extrapolation based on the mathematical function of the machine learning model. Extrapolation of a regression model outside the limits of the training set can be problematic, especially when there is nonlinearity in the model function or when the selected regression algorithm imposes constraints on the extrapolation (e.g., Gaussian process regression). However, using an inverted model, the prediction module 248 may project tangentially and linearly to the model input space boundary while preserving potential nonlinear relationships derived from the explored portion of the process space. In one example, the machine learning model may be a neural network that includes a nonlinear activation in the hidden layer and a linear activation function in the output layer. The linear activation function may enable more efficient and accurate linear extrapolation. This is advantageous because it may enable the practitioner of the manufacturing process to leverage existing experiments to more efficiently identify a portion of the unexplored portion of the process space that contains a solution (e.g., a set of configurations that result in a product that satisfies a target attribute).
[0045] The combination module 228 may combine the outputs of multiple different machine learning models to identify regions of the process space where one or more solutions may exist. The output of each machine learning model may represent a particular point in an n-dimensional process space. One or more of the n dimensions may correspond to input parameters, and the particular point may correspond to a value in each of the dimensions and therefore to a set of input values (e.g., n values for the n input dimensions). For example, a point in a three-dimensional process space may include values for each of the x, y, and z axes, with each axis corresponding to a different manufacturing input. The combination module 228 may combine the outputs of multiple machine learning models to identify a region in the process space, which may be referred to as a solution space. The region in the process space may include multiple predicted points (e.g., a distribution of points) rather than point estimates, and may correspond to a region of unexplored space where a solution may exist. In general, a point in the process space may be a particular predicted solution, and a region in the process space may include multiple predicted solutions. The combination module 228 may combine multiple predicted solutions into a combined set (e.g., combined data 126). The combination set may include a combination value for each of the inputs, which may be a range of values (e.g., values 1.04x to 2.03x), a set of values (e.g., 22 nm, 14 nm, 10 nm, 7 nm, 5 nm), a reference value with a variance value (e.g., start, middle, or end values with size values), other values, or a combination of the above.
[0046] The combination module 228 may identify regions in the process space by analyzing model outputs of a set of machine learning models to identify regions. The dimensionality of the regions may depend on the dimensionality of the process space and may correspond to lines, areas, volumes, or other multi-dimensional regions. In a simple example, the model outputs of the set of machine learning models may be represented as a point cloud in an unexplored region of an n-dimensional process space (e.g., 3D space). The combination module 228 may analyze the point cloud and identify regions that may have any shape (e.g., sphere, cube, pyramid, torus). The identified regions may represent a solution space and may include some or all of the model output points. The region (e.g., solution space) may correspond to a finite or infinite number of points, and each point may be a candidate solution. An advantage of the combination module 228 is that the identified regions may be significantly smaller than the process space and may be in an unexplored space, an explored space, or a combination of the above. In one example, the combination module 228 may identify regions in the process space by using an ensemble technique.
[0047] Ensemble techniques may be the same as or similar to ensemble learning or ensemble methods, and may use a set of machine learning models to obtain better predictive performance than any individual machine learning model in the set. Ensemble techniques may combine the output of multiple machine learning models. Machine learning models may be referred to as weak learners if they are based on fewer features, trained on less data, have lower accuracy, higher variability, other aspects, or combinations of the foregoing. Each weak learner may approximate the output without overfitting the training data.
[0048] The techniques disclosed herein may use one or more different types of ensemble techniques, such as bagging, boosting, stacking, other techniques, or a combination of the foregoing. Bagging may involve treating each model output of the set with equal weight. To promote model distribution, bagging may involve training each model of the set using a randomly selected subset of the training dataset. In one example, the set of models may be a homogenous set of models trained in parallel to be different from each other, and the model outputs may be combined using an averaging process (e.g., deterministic averaging). Boosting may involve incrementally assembling the combined inputs (e.g., identified regions) by training each new model instance to highlight training instances that previous models misclassified. Boosting produces better accuracy than bagging, but may be more likely to overfit the training data. In one example, boosting may involve a homogenous set of models trained sequentially, and one or more models may depend on one or more previous models (e.g., base models and intermediate models). Stacking may involve training a learning technique to combine the predictions of several other learning techniques. All other algorithms are trained using available data, and then a combiner algorithm is trained to make a final prediction using all the predictions of the other algorithms as additional inputs. In one example, stacking may involve a heterogeneous set of models, where the models may be trained in parallel, and the model outputs may be combined using another model (e.g., a meta-model, an aggregate model, a combination model) that outputs a prediction based on different constituent predictions. In other examples, the ensemble technique may involve Bayesian Model Combination (BMC), Bayesian Model Averaging (BMA), other techniques, or a combination of the above.
[0049] The combination module 228 may additionally or alternatively perform an unsupervised machine learning task to group model outputs into multiple regions (e.g., multiple solution spaces). The unsupervised machine learning task may group points based on features (e.g., corresponding input values), which may be the same as or similar to clustering, and both the number of groups and the group boundaries may be selected based on feature patterns. Each group may correspond to an identified region (e.g., solution space) and may be referred to as a cluster, set, classification, set, subset, other terms, or combinations of the foregoing. Each group may have a centroid and centroid variance that defines the group and indicates a region in the process space. The clustering may be performed based on a clustering technique that is the same as or similar to K-means, K-medoids, fuzzy C-means, hierarchical, Gaussian mixtures, hidden Markov models, other techniques, or combinations of the foregoing. The combination module 228 may then store one or more points, regions, or other data in the data store 240 as regions 249.
[0050] The presentation component 230 may access the data of the reasoning component 220 and present the data to a user. In one example, the presentation component 230 may include a solution space presentation module 232, a selection module 234, and a start module 236.
[0051] The solution space presentation module 232 may enable the computing device 120 to provide a user interface that displays one or more solution spaces. The user interface may be a graphical user interface that includes one or more graphs, each of which may include one or more dimensions (e.g., x, y, and z dimensions). Each dimension may correspond to a manufacturing input, and the location of a point or area relative to the dimension may indicate a value for the manufacturing input. The graphs may display experimental points, predicted points, or a combination of the above. For example, the graphs may represent a process space (e.g., available manufacturing input values) and may display points (e.g., experimental points) corresponding to respective physical experiments, and points (e.g., predicted points) based on model outputs. The predicted points may be between the experimental points if based on interpolation, or may exceed the experimental points if based on extrapolation. The graphs may highlight points or areas using one or more of lines (e.g., dividing lines, borders, outlines), colors (e.g., red points, red areas), formatting (e.g., bold lines, underlines, italics), other highlighting, or combinations of the above.
[0052] When a point in the solution space corresponds to four or more dimensions (e.g., a vector with four or more values), it may be difficult to visualize the corresponding set of input values using a single graph. The user interface may then provide multiple graphs, each representing the same point or region but displaying along different dimensions. For example, a single point may correspond to a value along an x dimension (e.g., a temperature value), a value along a y dimension (e.g., a pressure value), a value along a z dimension (e.g., a distance value), and a value along a t dimension (e.g., a time value). A first graph may visually represent the point along the x and y dimensions (e.g., a graph with an x-axis and a y-axis), and a second graph may visually represent the point along the z and t dimensions (e.g., a graph with a z-axis and a t-axis).
[0053] The selection module 234 may enable the computing device 120 to select one or more points or regions in the solution space. The selection may be based on user input, device input, other input, or a combination of the above. In one example, the selection module 234 may receive a user input of a user (e.g., a process engineer) that identifies one or more points or regions in the solution space. In another example, the selection module 234 may receive a device input of a management device (e.g., a manufacturing controller) that identifies one or more points or regions in the solution space. The selection module 234 may then present one or more details regarding the selection (e.g., projected input values), store the selection, or otherwise make the selection available to the initiation module 236.
[0054] The initiation module 236 may enable the computing device 120 to initiate an experiment in terms of a solution (e.g., a point in a solution space). The experiment may be a physical experiment that causes one or more manufacturing devices to modify a physical product, or it may be a computer simulation experiment that models the effects of a manufacturing process on one or more products. The initiation module 236 may analyze the selections and determine input data for the manufacturing process and provide the data to one or more computing devices that will perform the experiment.
[0055] FIG. 3 is a block diagram illustrating a system 300 for training and selecting machine learning models. The system 300 may perform data partitioning 310 of the input data 122 and output data 124 of the manufacturing process 110 to generate a training set 302, a validation set 304, and a test set 306. For example, the training set 302 may be a 60% superset of available data from the manufacturing process, the validation set 304 may be 20% of the superset, and the test set may be 20% of the superset. The system 300 may generate multiple feature sets for each of the training set, validation set, and test set. For example, the input data 122 and output data 124 of the manufacturing process may represent data for 100 runs using 20 manufacturing inputs (e.g., process parameters, hardware parameters, etc.). Both the first data set and the second data set may include all 20 manufacturing inputs, but the first data set may include data from runs 1-50 and the second data set may include data from runs 51-100.
[0056] At block 312, the system 300 may perform model training using the training set 302 in association with the training component 210 of FIG. 2. The system 300 may train multiple models using multiple feature sets of the training set 302 (e.g., a first feature set of the training set 302, a second feature set of the training set 302, etc.). For example, the system 300 may train a machine learning model using a first feature set of the training set (e.g., annotated manufacturing output data) and generate a second trained machine learning model using a second feature set of the training set. In some embodiments, the first trained machine learning model and the second trained machine learning model may be used to generate a third trained machine learning model (e.g., which may be a better predictor than the first or second trained machine learning model itself). In some embodiments, the feature sets used to compare the models may overlap. In some embodiments, hundreds of models may be generated, including models based on the same training set or different training sets.
[0057] At block 314, the system 300 performs model validation using the validation set 304. The system 300 may validate each trained model using a corresponding feature set in the validation set 304. For example, the system 300 may validate a first trained machine learning model using a first feature set in the validation set and a second trained machine learning model using a second feature set in the validation set. In some embodiments, the system 300 may validate hundreds of models (e.g., models with various permutations of features, combinations of models, etc.) generated at block 312.
[0058] In block 314, the system 300 may additionally or alternatively determine the accuracy of each of the one or more trained models and may determine whether one or more of the trained models have an accuracy that meets the threshold accuracy. In response to a determination that none of the trained models have an accuracy that meets the threshold accuracy, the flow returns to block 312, and the system 300 performs model training using a different feature set of the training set. In response to a determination that one or more of the trained models have an accuracy that meets the threshold accuracy, the flow proceeds to block 316. The system 300 may discard trained machine learning models that have an accuracy lower than the threshold accuracy (e.g., based on a validation set).
[0059] At block 316, the system 300 may perform model selection to determine which of the one or more trained models that meet the accuracy threshold (e.g., the selected model 308 based on the validation of block 314) has the highest accuracy. In response to a determination that two or more of the trained models that meet the accuracy threshold have the same accuracy, flow may return to block 312, where the system 300 performs model training using a further refined training set corresponding to the further refined feature set to determine the trained model with the highest accuracy.
[0060] At block 318, the system 300 performs model testing using the test set 306 to test the selected model 308. The system 300 may test the first trained machine learning model using the first feature set of the test set to determine that the first trained machine learning model meets a threshold accuracy (e.g., based on the first feature set of the test set 306). In response to the accuracy of the selected model 308 not meeting the threshold accuracy (e.g., the selected model 308 is overfitted to the training set 302 and / or the validation set 304 and is not applicable to other data sets such as the test set 306), the flow proceeds to block 312, where the system 300 performs model training (e.g., retraining) using a different training corresponding to a different feature set. In response to a determination that the selected model 308 has an accuracy based on the test set 306 that meets the threshold accuracy, the flow proceeds to block 320. At least in block 312, the model may learn patterns in the input data 122 and the output data 124 to make predictions, and in block 318, the system 300 may apply the model to the remaining data (e.g., the test set 306) to test the predictions.
[0061] At block 320, the system 300 analyzes the expected output data 124 using the trained machine learning model (e.g., the selected model 308) to provide predicted input data for the manufacturing process. In some embodiments, the flow may proceed to block 312 (e.g., via a feedback loop, not shown), where the model output is used to execute the manufacturing process, and the resulting model output, manufacturing output, or a combination of the foregoing may be used to update the trained model via model training (e.g., model retraining). In some embodiments, in response to receiving additional training data (e.g., ground truth feedback or corresponding manufacturing process attributes), the flow may proceed to block 310 to retrain the trained machine learning model based on the additional data and the original data.
[0062] In some embodiments, one or more of the actions of blocks 310-320 may be performed in various orders and / or involve other actions not presented or described herein. In some embodiments, one or more of the actions of blocks 310-320 may not be present. For example, in some embodiments, one or more of the data partitioning of block 310, the model validation of block 314, the model selection of block 316, or the model testing of block 318 may not be performed.
[0063] 4 illustrates a flow diagram of one example method 400 for performing predictive modeling to identify inputs to a manufacturing process according to one or more embodiments of the present disclosure. Method 400, and each of its individual functions, routines, subroutines, or operations, may be performed by one or more processors of a computing device that executes the method. In a particular implementation, method 400 may be performed by a single computing device. Alternatively, method 400 may be performed by two or more computing devices, each computing device performing one or more individual functions, routines, subroutines, or operations of the method.
[0064] For ease of explanation, the methods of the present disclosure are illustrated and described as a series of actions. However, actions according to the present disclosure may occur in various orders and / or simultaneously, and with other actions not presented or described herein. Moreover, not all illustrated actions are required to implement a method according to the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that a method may alternatively be represented as a series of interrelated states, such as by a state diagram or events. Furthermore, it should be appreciated that the methods disclosed herein may be stored on an article of manufacture to facilitate communication and transfer of such methods to a computing device. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any computer-readable device or storage medium. In one implementation, the method 400 may be performed by the inference component 220 as shown in FIG. 2.
[0065] Method 400 may be performed by a processing device of a server device or a client device and may begin at block 402. At block 402, the processing device may receive expected output data for a manufacturing process. The expected output data may define attributes of the output of a future run of the manufacturing process. In one example, the expected output data for the manufacturing process may include one or more values indicative of a layer thickness, a layer uniformity, or a structure width of a product to be output by the manufacturing process.
[0066] At block 404, the processing device may access multiple machine learning models that model the manufacturing process. The multiple machine learning models may include multiple inverted machine learning models, each receiving a predicted output of the manufacturing process as a model input and generating different input data for the manufacturing process as a model output. In one example, the multiple machine learning models may be a homogenous set of machine learning models that share a model architecture and are trained using different hyperparameters, different initialization values, or different training data. The machine learning models may be trained using data from multiple previous runs of the manufacturing process. The training process may involve accessing input data and output data of the manufacturing process from the same data source or different data sources. The output data may be annotated with labels indicating the corresponding input data used by the manufacturing process. The annotated output data may be referred to as training data, and each machine learning model may be trained based on the same or different training data.
[0067] In one example, the multiple machine learning models may be feedforward neural networks (FFNNs). Each feedforward neural network may model a manufacturing process and may output a set of inputs to configure the manufacturing process. Each feedforward neural network may include an input layer, an output layer, and multiple hidden layers that collectively function to mathematically model the manufacturing process. The multiple hidden layers may include polynomial functions, and the output layer may not have any polynomial functions and may include one or more linear activation functions to enable more efficient and accurate extrapolation.
[0068] At block 406, the processing device may determine input data for the manufacturing process based on expected output data for the manufacturing process using the first machine learning model. The determining may involve executing an inference engine that linearly extrapolates the expected output data for the manufacturing process to identify input data for the manufacturing process. In one example, the input data for the manufacturing process may include a set of configuration values for the manufacturing process including values for at least one of time, temperature, pressure, voltage, or gas flow.
[0069] At block 408, the processing device may combine the input data determined using the first machine learning model and the input data determined using the second machine learning model to create a set of inputs for the manufacturing process. The set of inputs may include a plurality of candidate values for a first input of the manufacturing process and a plurality of candidate values for a second input of the manufacturing process. Each machine learning model of the plurality of machine learning models may create a value for the first input and a value for the second input, and the combination may create a range of values for the first input and a range of values for the second input. In one example, the combination may involve combining outputs of the plurality of machine learning models using an ensemble technique. The combination may additionally or alternatively involve clustering different inputs for the manufacturing process into a plurality of groups, the first group including model outputs of the first set of machine learning models and the second group including model outputs of the second set of machine learning models.
[0070] At block 410, the processing device may store the set of inputs for the manufacturing process in a storage device. The stored data may be transmitted to one or more computing devices that present the stored data to a user using a user interface. The stored data may include a plurality of candidate input sets, each of which may include input values for the manufacturing process that correspond to expected output data for the manufacturing process. The user interface may receive a user selection of an input set of the plurality of candidate input sets and may enable execution of the manufacturing process to begin using the selected input values. In response to completion of the operations described above with reference to block 410, the method may end.
[0071] 5 is a block diagram illustrating a computer system 500 according to certain embodiments. In some embodiments, the computer system 500 may be connected to other computer systems (e.g., via a network such as a local area network (LAN), an intranet, an extranet, or the Internet). The computer system 500 may operate in the capacity of a server or a client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment. The computer system 500 may be provided by a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a web appliance, a server, a network router, a switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions that the device should take. Furthermore, the term "computer" is intended to include any collection of computers that, individually or together, execute a set (or sets) of instructions to perform one or more of the methods described herein.
[0072] In a further aspect, the computer system 500 may include a processing device 502, a volatile memory 504 (e.g., random access memory (RAM)), a non-volatile memory 506 (e.g., read only memory (ROM) or electrically erasable programmable ROM (EEPROM)), and a data storage device 516, which may communicate with each other via a bus 508.
[0073] The processing device 502 may be provided by one or more processors, such as a general-purpose processor (e.g., a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, a microprocessor implementing other types of instruction sets, or a combination of instruction set types, etc.) or a special-purpose processor (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Digital Signal Processor (DSP), or a network processor, etc.).
[0074] The computer system 500 may further include a network interface device 522. The computer system 500 may also include a video display unit 510 (e.g., an LCD), an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generating device 520.
[0075] In some implementations, the data storage device 516 may include a non-transitory computer-readable storage medium 524 that may store instructions 526 encoding any one or more of the methods or functions described herein, including instructions for implementing the methods described herein, encoding the training component 210, the inference component 220, or the presentation component 230 of FIG. 2.
[0076] The instructions 526 may also reside, completely or partially, within the volatile memory 504 and / or within the processing device 502 during execution by the computer system 500, and thus the volatile memory 504 and the processing device 502 may also constitute machine-readable storage media.
[0077] Although computer-readable storage medium 524 is shown as a single medium in the illustrative example, the term "computer-readable storage medium" is intended to include a single medium or multiple media (e.g., centralized or distributed databases and / or associated caches and servers) that store one or more sets of executable instructions. The term "computer-readable storage medium" is also intended to include any tangible medium that can store or encode computer-executable instructions that cause a computer to perform any one or more of the methods described herein. The term "computer-readable storage medium" is intended to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0078] The methods, components, and features described herein may be implemented by discrete hardware components or may be integrated into the functionality of other hardware components, such as an ASIC, FPGA, DSP, or similar device. In addition, the methods, components, and features may be implemented by firmware modules or functional circuits within a hardware device. Further, the methods, components, and features may be implemented in any combination of hardware devices and computer program components, or in a computer program.
[0079] Unless specifically indicated otherwise, terms such as "receive," "determine," "select," "preprocess," "measure," "report," "update," "input," "train," "create," "add," "fail," "perform," "implement," "generate," "use," "compare," "flip," "shift," "rotate," "zoom," and the like refer to acts and processes performed or realized by a computer system that manipulate and convert data represented as physical (electronic) quantities in the registers and memory of the computer system into other data similarly represented as physical quantities in the memory or registers of the computer system, or in other such information storage, transmission, or display devices. Additionally, terms such as "first," "second," "third," "fourth," and the like, as used herein, refer to labels distinguishing between different elements and may not have an ordinal meaning according to their numerical designations.
[0080] The examples described herein also relate to an apparatus for performing the operations described herein. The apparatus may be specially constructed to perform the methods described herein, or may include a general-purpose computer system that is selectively programmed by a computer program stored in the computer system. Such a computer program may be stored on any computer-readable tangible storage medium.
[0081] The methods and examples described herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used in accordance with the teachings described herein, or it may prove convenient to construct more specialized apparatus to perform the methods described herein and / or their respective functions, routines, subroutines, or operations. Example structures for a variety of these systems are set forth in the description above.
[0082] The above description is for purposes of illustration and not limitation. Although the present disclosure has been described with reference to certain examples and implementations, it will be recognized that the present disclosure is not limited to the described examples and implementations. The scope of the present disclosure should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims
1. receiving, by a processing device, expected output data for a manufacturing process, the expected output data defining attributes of an output of the manufacturing process; accessing a plurality of machine learning models, including a first machine learning model and a second machine learning model, that model the manufacturing process; determining input data for the manufacturing process based on the expected output data for the manufacturing process using the first machine learning model, the input data including a value for a first input and a value for a second input; combining the input data determined using the first machine learning model with the expected output data and input data determined using the second machine learning model to generate a set of inputs for the manufacturing process including a plurality of candidate values for the first input and a plurality of candidate values for the second input; storing, by the processing device, the set of inputs to the manufacturing process in a storage device.
2. 2. The method of claim 1 , wherein the plurality of machine learning models comprises a plurality of inverse machine learning models, each of the plurality of inverse machine learning models receiving the expected output of the manufacturing process as a model input and generating different input data for the manufacturing process as a model output.
3. 3. The method of claim 2, further comprising clustering the different inputs to the manufacturing process into a plurality of groups, a first group including a set of inputs that includes the value for the first input and the value for the second input.
4. The method of claim 1 , wherein the input data for the manufacturing process comprises a set of configuration values including values for at least one of time, temperature, pressure, voltage, or gas flow.
5. The method of claim 1 , wherein the expected output data for the manufacturing process includes one or more values indicative of a layer thickness, a layer uniformity, or a product feature width output by the manufacturing process.
6. 2. The method of claim 1 , wherein each machine learning model of the plurality of machine learning models creates a value for the first input and a value for the second input, and the combining creates a range of values for the first input and a range of values for the second input.
7. 2. The method of claim 1 , wherein the plurality of machine learning models comprises a homogenous set of machine learning models, the machine learning models of the homogenous set sharing a model architecture and being trained using different hyperparameters, different initialization values, or different training data.
8. The method of claim 1 , wherein the combining comprises combining outputs of the multiple machine learning models using ensemble techniques.
9. 2. The method of claim 1, wherein the plurality of machine learning models comprises a plurality of feedforward neural networks (FFNNs), each of the plurality of feedforward neural networks modeling the manufacturing process and determining a set of inputs to configure the manufacturing process.
10. 2. The method of claim 1 , wherein the first machine learning model comprises a feedforward neural network, the feedforward neural network comprising an output layer and a number of hidden layers for modeling the manufacturing process, the hidden layers comprising polynomial functions, and the output layer comprising a linear activation function.
11. 2. The method of claim 1 , wherein determining the input data for the manufacturing process using the first machine learning model comprises executing an inference engine that linearly extrapolates the expected output data of the manufacturing process to identify the input data for the manufacturing process.
12. providing for display a plurality of candidate input sets, each including input values for the manufacturing process corresponding to the expected output data for the manufacturing process; receiving a user selection of an input set of the plurality of candidate input sets; The method of claim 1 , further comprising: initiating execution of the manufacturing process using the input values.
13. Memory, a processing device communicatively coupled to the memory, the processing device comprising: receiving expected output data for a manufacturing process, the expected output data defining attributes of an output of the manufacturing process; accessing a plurality of machine learning models, including a first machine learning model and a second machine learning model, that model the manufacturing process; determining input data for the manufacturing process based on the expected output data for the manufacturing process using the first machine learning model, the input data including a value for a first input and a value for a second input; combining the input data determined using the first machine learning model with the expected output data and input data determined using the second machine learning model to generate a set of inputs for the manufacturing process including a plurality of candidate values for the first input and a plurality of candidate values for the second input; The system stores the set of inputs to the manufacturing process in a storage device.
14. 14. The system of claim 13, wherein the plurality of machine learning models comprises a plurality of feedforward neural networks (FFNNs), each of the plurality of feedforward neural networks modeling the manufacturing process and determining a set of inputs to configure the manufacturing process.
15. 14. The system of claim 13, wherein each machine learning model of the plurality of machine learning models creates a value for the first input and a value for the second input, and the combining creates a range of values for the first input and a range of values for the second input.
16. 14. The system of claim 13, wherein the plurality of machine learning models comprises a homogenous set of machine learning models, the machine learning models of the homogenous set sharing a model architecture and being trained using different hyperparameters, different initialization values, or different training data.
17. A non-transitory machine-readable storage medium storing instructions that, when executed, cause a processing device to: accessing output data of a manufacturing process associated with input data used by the manufacturing process; training a homogenous set of machine learning models based on the output data and the input data, the homogenous set including a first inverted machine learning model trained using first hyperparameters and a second inverted machine learning model trained using second hyperparameters; selecting, by a processing device, output data and input data for the manufacturing process, the selected output data defining output attributes of the manufacturing process; determining a set of inputs for the manufacturing process based on the selected output data for the manufacturing process using the first inverse machine learning model, the set of inputs including a configuration value for a first input and a configuration value for a second input; comparing, by the processing device, the selected input data for the manufacturing process with the set of inputs determined using the first inverse machine learning model; A non-transitory machine-readable storage medium for performing operations including:
18. 20. The non-transitory machine-readable storage medium of claim 17, wherein the homogenous set of machine learning models comprises multiple inverse machine learning models, the multiple inverse machine learning models sharing a model architecture and being trained using different initialization values, different training data, and different hyper-parameters.
19. 20. The non-transitory machine-readable storage medium of claim 17, wherein the first inverse machine learning model and the second inverse machine learning model each include a feedforward neural network (FFNN), the feedforward neural network models the manufacturing process and determines a set of inputs to configure the manufacturing process.
20. 20. The non-transitory machine-readable storage medium of claim 19, wherein the feedforward neural network includes an output layer and multiple hidden layers for modeling the manufacturing process, the multiple hidden layers including polynomial functions and the output layer including a linear activation function.
Citation Information
Patent Citations
Method and apparatus for control of feedback of process using neural network
JP1995175876A
Optimum manufacture, control, and indication condition generating device
JP1996006605A
Quantity-of-state estimating method for production process
JP1999202903A
System and method for inverse inference for manufacturing process chain
JP2020068038A
Process abnormal state diagnosing device and abnormal state diagnosing method
WO2018235807A1