Parameter tuning method, device and equipment
By dividing the high-dimensional parameter space into multiple subspaces and using machine learning models for learning, the problem of low efficiency of software configuration parameter tuning in the prior art is solved, and efficient parameter tuning is achieved.
Patent Information
- Application Number
- CN202410801612.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-30
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2043-08-30
AI Technical Summary
The prior art is difficult to efficiently determine suitable software configuration parameters, especially in large software such as big data engines and databases, where the number of parameters is large and complex, resulting in low tuning efficiency.
Through parameter tuning methods and devices, the high-dimensional parameter space is divided into high-dimensional parameter subspaces with relatively close sizes, and each subspace is learned using a machine learning model to determine appropriate software configuration parameters.
It realizes efficient determination of appropriate software configuration parameters, improves parameter tuning efficiency, and ensures the quality and learning efficiency of machine learning models.
Smart Images

Figure CN119536835A_ABST
Abstract
Description
[0001] This application is a divisional application. The application number of the original application is 202311128697.6, and the original application date is August 30, 2023. The entire contents of the original application are incorporated into this application by reference. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a parameter tuning method, device and equipment. Background Art
[0003] Some software running on a computing device usually needs to be configured with software configuration parameters. Only after the software configuration parameters are configured can the software run. The software configuration parameters configured for the software need to be adapted to the performance of the computing device and the needs of the user, so as to ensure that the software achieves the best performance and meets the needs of the user.
[0004] However, for some large software, such as big data engines and databases, the number of software configuration parameters that need to be configured is usually very large, which leads to a large number of combinations of different software configuration parameters. It is extremely complex and difficult for users or software operation and maintenance personnel to analyze the software configuration parameters, optimize the software configuration parameters, and find appropriate software configuration parameters. Summary of the invention
[0005] The embodiments of the present application provide a parameter tuning method, apparatus, and device for efficiently determining appropriate software configuration parameters and improving parameter tuning efficiency.
[0006] In a first aspect, an embodiment of the present application provides a parameter tuning method, which can be performed by a parameter tuning device, in which the parameter tuning device can obtain one or more sets of software configuration parameters configured for the software and software performance parameters corresponding to the one or more sets of software configuration parameters. Each set of software configuration parameters has a corresponding software performance parameter. The software performance parameters corresponding to a set of software configuration parameters are used to characterize the performance of the software after the set of software configuration parameters is configured.
[0007] The parameter tuning device divides the high-dimensional parameter space based on one or more sets of software configuration parameters and corresponding software performance parameters obtained to form M high-dimensional parameter subspaces. The high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters.
[0008] The M high-dimensional parameter subspaces satisfy: the similarity of data in any high-dimensional parameter subspace is greater than a similarity threshold, and the difference in quantity of data included in any two high-dimensional parameter subspaces is not greater than a quantity threshold.
[0009] The parameter tuning device calls M machine learning models to learn M high-dimensional parameter subspaces respectively, and each machine learning model corresponds to a high-dimensional parameter subspace.
[0010] The parameter tuning device selects a target high-dimensional parameter subspace from M high-dimensional parameter subspaces, determines one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace using a machine learning model corresponding to the target high-dimensional parameter subspace, and provides one or more sets of software configuration parameters to be configured to a user.
[0011] Through the above method, the parameter tuning device can divide the high-dimensional parameter space into M high-dimensional parameter subspaces of relatively similar sizes, thereby achieving uniform division of the high-dimensional parameter space. The M high-dimensional parameter subspaces formed by uniform division can ensure that the subsequent M machine learning models can fully learn the corresponding high-dimensional parameter subspaces, ensure the quality of the machine learning model, and ensure that a more suitable set or sets of software configuration parameters can be determined later, thereby improving the efficiency of parameter tuning. In addition, the learning method of the M high-dimensional parameter subspaces by the M machine learning modules can improve the learning efficiency of the high-dimensional parameter space, speed up the learning speed, and further improve the efficiency of parameter tuning.
[0012] In one possible implementation, when the parameter tuning device divides the high-dimensional parameter space based on the one or more groups of software configuration parameters and the corresponding software performance parameters, it can first use the one or more groups of software configuration parameters and the corresponding software performance parameters. Any element in the similarity matrix represents the degree of similarity between the two groups of software configuration parameters and the corresponding software performance parameters. Any element represents the degree of similarity between the two groups of parameters. Any group of parameters includes a group of software configuration parameters and its corresponding software performance parameters.
[0013] After generating the similarity matrix, the parameter tuning device calls the spectral clustering algorithm to divide the high-dimensional parameter space based on the similarity matrix.
[0014] Through the above method, the spectral clustering algorithm and the division of the high-dimensional parameter space by the similarity matrix can effectively ensure that multiple groups of parameters with high similarity are clustered together, thereby forming a high-dimensional parameter subspace.
[0015] In a possible implementation, when constructing a similarity matrix, the parameter tuning device may measure the similarity of one or more groups of software configuration parameters and corresponding software performance parameters by means of a kernel function to generate a similarity matrix.
[0016] Through the above method, with the help of kernel functions, the similarity between one or more groups of software configuration parameters and corresponding software performance parameters can be measured relatively simply and efficiently, and a similarity matrix can be quickly generated.
[0017] In a possible implementation, when the parameter tuning device uses a kernel function to perform similarity measurement on one or more sets of software configuration parameters and corresponding software performance parameters, two measurements are performed respectively, one measurement is a similarity measurement on one or more sets of software configuration parameters, and the other measurement is a similarity measurement on the software performance corresponding to one or more sets of software configuration parameters. Then, a similarity matrix is generated based on the results of the two measurements. Among them, the proportion of the results of the similarity measurement on the software performance corresponding to one or more sets of software configuration parameters in the similarity matrix can be increased to highlight the proportion of the results of the similarity measurement on the software performance corresponding to the one or more sets of software configuration parameters.
[0018] Exemplarily, the parameter tuning device may measure the similarity of one or more groups of software configuration parameters by means of a kernel function to generate a first similarity matrix, wherein any element in the similarity matrix represents the degree of similarity between two groups of software configuration parameters.
[0019] The parameter tuning device can use a kernel function to measure the similarity of software performance corresponding to one or more sets of software configuration parameters to generate a second similarity matrix. Any element in the similarity matrix represents the similarity between the software performance corresponding to two sets of software configuration parameters.
[0020] The parameter tuning device performs weighted summation on the first similarity matrix and the second similarity matrix configuration to generate a similarity matrix, wherein the weight of the second similarity matrix is greater than the weight of the first similarity matrix.
[0021] Through the above method, when generating a similarity matrix, increasing the proportion of the similarity measurement results of the software performance corresponding to one or more groups of software configuration parameters in the similarity matrix, that is, setting a larger weight for the second similarity matrix can avoid submerging the software performance parameters in the subsequent learning of the high-dimensional parameter subspace, ensuring that the subsequent machine learning model learns the corresponding high-dimensional parameter subspace in supervised learning, and can accurately analyze the relationship between the software configuration parameters and the software performance parameters.
[0022] In one possible implementation, when the parameter tuning device calls M machine learning models to learn M high-dimensional parameter subspaces respectively, it can use manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; and calls M machine learning models to learn the M high-dimensional parameter subspaces after the dimension reduction.
[0023] By using the above method, by reducing the dimensionality of M high-dimensional parameter subspaces, the amount of data required for the machine learning model to learn the high-dimensional parameter subspace can be reduced, thereby improving the learning efficiency. In addition, there are many ways to learn manifolds, for example, LE can be used to reduce the dimensionality of M high-dimensional parameter subspaces. In this way, LE can reuse the similarity matrix generated when the high-dimensional parameter space is divided, thereby improving the dimensionality reduction efficiency.
[0024] In one possible implementation, when the parameter tuning device uses the machine learning model corresponding to the target high-dimensional parameter subspace to determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace, it can use the conjugate direction method to determine from the target high-dimensional parameter subspace one or more sets of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.
[0025] Through the above method, the conjugate direction method can ensure that the optimal solution of the machine learning model corresponding to the target high-dimensional parameter subspace is quickly found from the target high-dimensional parameter subspace.
[0026] In a possible implementation, when the parameter tuning device selects a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, the Thompson sampling algorithm or the upper confidence bound algorithm is called to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.
[0027] Through the above method, multi-armed bandit algorithms such as the Thompson sampling algorithm or the upper confidence bound algorithm can accurately evaluate the "potential" of the M high-dimensional parameter subspaces and find the target high-dimensional parameter subspace that is most likely to contain the optimal solution.
[0028] In a possible implementation, when the parameter tuning device provides the user with one or more sets of software configuration parameters to be configured, the user may also be prompted to select a set of software configuration parameters from them. The parameter tuning device detects the user's selection operation, determines the set of software configuration parameters selected by the user, and records the set of software configuration parameters. In an embodiment of the present application, the parameter tuning device may provide the user with one or more sets of software configuration parameters to be configured through a parameter collection device, and collect the set of software configuration parameters selected by the user through the parameter collection device.
[0029] Through the above method, the interaction between the parameter tuning device (through the parameter acquisition device) and the user can enable the parameter tuning device to promptly display one or more optional sets of software configuration parameters to the user, and can also accurately obtain a set of software configuration parameters selected by the user.
[0030] In a possible implementation, the parameter tuning device may prompt the user to input the software performance parameters corresponding to the set of software configuration parameters selected by the user, and obtain the software performance parameters corresponding to the set of software configuration parameters. In an embodiment of the present application, the parameter tuning device may prompt the user to input the software performance parameters corresponding to the set of software configuration parameters selected by the user through a parameter acquisition device, and acquire the software performance parameters corresponding to the set of software configuration parameters input by the user through the parameter acquisition device.
[0031] Through the above method, the interaction between the parameter tuning device (through the parameter acquisition device) and the user can timely obtain the software performance parameters corresponding to the software configuration parameters.
[0032] In the second aspect, the embodiment of the present application further provides a parameter tuning device, which has the function of implementing the behavior in the method example of the first aspect above. The beneficial effects can be found in the description of the first aspect and will not be repeated here. The function can be implemented by hardware, or by hardware executing the corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the structure of the device includes a division module, a learning module, and a screening module, which can perform the corresponding functions in the method example of the first aspect above. Please refer to the detailed description in the method example for details, which will not be repeated here.
[0033] In a third aspect, the present application also provides a computing device, the computing device includes a processor and a memory, and may also include a communication interface, the processor executes program instructions in the memory to execute the method provided by the first aspect or any possible implementation of the first aspect. The memory is coupled to the processor, which stores the necessary program instructions and data in the process of determining parameter tuning. The communication interface is used to communicate with other devices, such as one or more sets of software configuration parameters and corresponding software performance parameters that have been configured for the software, or to send one or more sets of software configuration parameters to be configured.
[0034] In a fourth aspect, the present application provides a computing device system, which includes at least one computing device. Each computing device includes a memory and a processor. The processor of at least one computing device is used to access the code in the memory to execute the method provided by the first aspect or any possible implementation of the first aspect.
[0035] In a fifth aspect, the present application provides a computer-readable storage medium, and when the computer-readable storage medium is executed by a computing device, the computing device executes the method provided in the aforementioned first aspect or any possible implementation of the first aspect. The storage medium stores a program. The storage medium includes but is not limited to a volatile memory, such as a random access memory, a non-volatile memory, such as a flash memory, a hard disk drive (HDD), and a solid state drive (SSD).
[0036] In a sixth aspect, the present application provides a computing device program product, the computing device program product comprising computer instructions, when executed by a computing device, the computing device performs the method provided in the aforementioned first aspect or any possible implementation of the first aspect. The computer program product may be a software installation package, and when it is necessary to use the method provided in the aforementioned first aspect or any possible implementation of the first aspect, the computer program product may be downloaded and executed on a computing device.
[0037] In a seventh aspect, the present application further provides a computer chip, wherein the chip is connected to a memory, and the chip is used to read and execute a software program stored in the memory, and to execute the method described in the above-mentioned first aspect and various possible implementation methods of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 A schematic diagram of the structure of a parameter tuning system provided in this application;
[0039] Figure 2A to Figure 2C A schematic diagram of the deployment of a parameter tuning system provided for this application;
[0040] Figure 3 A flow chart of a parameter tuning method provided in this application;
[0041] Figure 4A A schematic diagram of a display interface of software configuration parameters provided in this application;
[0042] Figure 4B A schematic diagram of a configuration interface for software performance parameters provided in this application;
[0043] Figure 5 A schematic diagram of the structure of a parameter tuning device provided in this application;
[0044] Figure 6 to Figure 8 A schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0045] Fig. 9A flowchart of another parameter tuning method provided in this application. DETAILED DESCRIPTION
[0046] Before describing a parameter tuning method provided in an embodiment of the present application, some concepts involved in the embodiment of the present application are described first:
[0047] (1) Software configuration parameters and software performance parameters.
[0048] In the embodiment of the present application, the parameters required for software operation are referred to as software configuration parameters, which are a type of parameters that affect software performance. Parameters that can reflect software performance are referred to as software performance parameters.
[0049] Before the software runs normally, it is necessary to set software configuration parameters for it. After that, the software can start running based on the software configuration parameters and complete related tasks. The performance of the software during the running process based on the software configuration parameters can be characterized by the software performance parameters. The software configuration parameters correspond to the software performance parameters.
[0050] Different types of software require different numbers of software configuration parameters and parameter attributes. For software such as big data engines and databases, the number of software configuration parameters set for such software is usually hundreds or thousands to ensure the operation of such software. Configuring different software configuration parameters for software will result in different performance. The performance of software is not only related to the software configuration parameters, but also constrained by the performance of the computing device where the software is located. The same software running on different computing devices will show different performance even if the software is configured with the same software configuration parameters. Among them, the performance of a computing device usually refers to the computing power of the computing device, and the performance of software refers to the ability of the software to perform related tasks, which can be specifically reflected in the software's latency, or the accuracy or success rate of the software's output results.
[0051] When configuring software configuration parameters for software, the goal is to achieve optimal software configuration parameters for the software within the range allowed by the performance of the computing device on which the software runs.
[0052] In the embodiment of the present application, the parameter tuning method performed by the parameter tuning device is to tune the software configuration parameters to obtain a set of software configuration parameters that can effectively improve the software performance. Since there are usually multiple software configuration parameters for software operation, for the convenience of description, the multiple software configuration parameters set for each software operation are referred to as a set of software configuration parameters.
[0053] For software performance parameters, any parameter that can reflect software performance can be used as software performance parameters, and the embodiments of the present application do not limit the specific generation method of the software performance parameters. For example, a specific software performance evaluation algorithm is set, and the software performance parameters can be obtained by the software performance evaluation algorithm based on the running state of the software. For another example, the software performance parameters are set by the user of the software, that is, the user of the software.
[0054] In the parameter tuning method provided in the embodiment of the present application, the software performance parameters are the main basis for tuning the software configuration parameters. The embodiment of the present application does not limit the number of software performance parameters corresponding to each group of software configuration parameters, and the number of software performance parameters is related to the generation method of the software performance parameters. In the embodiment of the present application, only one software performance parameter corresponding to each group of software configuration parameters is used as an example for explanation. In fact, in actual applications, each group of software configuration parameters may also correspond to multiple software performance parameters. In this case, the parameter tuning method is similar to the parameter tuning method when each group of software configuration parameters may also correspond to one software performance parameter, and the difference is only in the number of software performance parameters.
[0055] (2) Kernel function.
[0056] The kernel function is a function that takes the vector in the original space as the input vector and returns the dot product of the vector in the feature space. The conversion function from the original space to the feature space is φ(x), where x refers to the vector in the original space.
[0057] The kernel function K(p,q) can be expressed as: K(p,q)=φ(p),φ(q).
[0058] With the help of kernel functions, data can be mapped to high-dimensional space (generally referring to feature space), so the comparison between data can be converted into comparison between dot products.
[0059] There are many types of kernel functions, such as linear kernel function. The linear kernel function K(p,q) can be expressed as: K(p,q)=pT q+c, where c is a constant and T represents transpose.
[0060] For example, the polynomial kernel function K(p,q) can be expressed as: K(p,q)=(αpT q+c) d , where d represents the degree of the polynomial, c can be 0 or 1, and α is a hyperparameter.
[0061] Although φ(p) and φ(q) are involved in the kernel function K(p,q), when actually calculating K(p,q), we can use φ(p) and φ(q) to obtain K(p,q), or we can directly solve the kernel function K(p,q), such as directly using the expression of the linear kernel function to calculate K(p,q), which can directly guide the vector in the original space to the high-dimensional space.
[0062] (3) Machine learning.
[0063] Machine learning is a method of learning that studies how computers can acquire new knowledge or skills by simulating or implementing human learning behaviors. Machine learning studies and builds a special "model" that enables computing devices to learn from data and make predictions by running the model.
[0064] Simply put, the "model" studied and constructed by machine learning can be understood as a function, which is represented here as y=F(x). Machine learning constructs this function by learning from data (the data learned can usually also be called sample data). After learning is completed, by inputting x into the function, y can be obtained, and y is the prediction result of x.
[0065] The process of learning data can be regarded as the process of constructing the function, such as adjusting the parameters of the function to ensure that the constructed function can conform to the potential rules of the sample data, and then the function can be extended to data outside the sample data.
[0066] It can be seen that the learning process determines the quality of the model. The higher the quality of the model, the stronger its predictive ability, that is, the output of the model (ie y) is more accurate.
[0067] In the embodiments of the present application, the model constructed by machine learning is called a machine learning model. There are many types of machine learning models, such as linear regression, logistic regression, linear discriminant analysis, decision tree, naive Bayes theorem, K-nearest neighbors, learning vector quantization, support vector machine, and random forest.
[0068] (4) High-dimensional parameter space.
[0069] In the embodiment of the present application, the high-dimensional space composed of all the software configuration parameters that can be configured to the software and the software performance parameters corresponding to each software configuration space is called a high-dimensional parameter space. The size of the high-dimensional parameter space is related to the value range of each software configuration parameter.
[0070] A high-dimensional parameter space is a data space, in which each set of software configuration parameters and the software performance parameters corresponding to each set of software configuration space are the data. The high-dimensional parameter space can be regarded as a "data set" composed of an infinite number or a large number of high-dimensional vectors. Any high-dimensional vector (x, y) represents a set of software configuration parameters and its corresponding software performance parameters, which is a "spatial point" in the high-dimensional parameter space. Among them, x refers to a set of software configuration parameters, and y refers to its corresponding software performance parameters.
[0071] It should be noted that in the high-dimensional parameter space, the software performance parameters corresponding to a set of real and collected software configuration parameters represented by y in a certain high-dimensional vector are not necessarily, and y represents a possible value of the software performance parameters. Extended to the machine learning model, x in the high-dimensional vector is an input of the machine learning model, and y in the high-dimensional vector is an output of the machine learning model.
[0072] In the embodiment of the present application, one or more sets of software configuration parameters configured for the software and their corresponding software performance parameters collected by the parameter collection device belong to the high-dimensional parameter space and are "spatial points" in the high-dimensional parameter space.
[0073] The goal of the parameter tuning device is to find the optimal one or more sets of software configuration parameters that can be used for software configuration from the high-dimensional parameter space. The parameter tuning method performed by the parameter tuning device can be understood as an "optimal solution" solution method.
[0074] (5) Spectral Clustering.
[0075] The spectral graph clustering algorithm can also be called the spectral clustering algorithm. The spectral graph clustering algorithm is a simple clustering algorithm. The spectral graph clustering algorithm regards the data to be classified as nodes on a graph. In the graph, the edges between nodes that are closer have high weights, and the edges between nodes that are farther away have lower weights. The graph is divided into multiple subgraphs. The weights of the edges between the multiple subgraphs need to be as small as possible, and the edges within the same subgraph need to be as large as possible.
[0076] The spectral clustering algorithm needs to first set an affinity matrix (such as K mentioned in the embodiment of the present application) that can describe the similarity between the data according to the data to be classified. XY), calculate the eigenvalues and eigenvectors of the affinity matrix, and then select appropriate eigenvectors to illustrate these data.
[0077] (6) Manifold learning.
[0078] Manifold is a general term for general geometric objects, covering curves and surfaces of various dimensions. Manifold learning is a dimensionality reduction method that can re-represent a set of data in a high-dimensional space in a low-dimensional space.
[0079] In manifold learning, it is believed that the processed data is sampled from a manifold (the data can be regarded as points on the manifold), or there is a potential manifold for the processed data that can cover the processed data.
[0080] Since the points on the manifold do not have specific coordinates, in order to represent the points on the manifold, the points on the manifold can be placed in the ambient space and the coordinates in the ambient space are used to represent the points on the manifold.
[0081] Therefore, manifold learning can be summarized as: while maintaining certain geometric properties of points on the manifold, find a set of corresponding intrinsic coordinates to expand the manifold as best as possible in a low-dimensional space. The intrinsic coordinates in this low-dimensional space are also called intrinsic features. The dimension of the peripheral space is called the observation dimension, and its representation is called natural coordinates, which is statistically called observation.
[0082] Common manifold learning methods include: isomap, locally linear embedding (Locally LinearEmbedding, LLE), Laplacian eigenmaps (Laplacian Eigenmaps, LE), and locality preserving projection (LocalityPreservingProjection, LPP).
[0083] Taking LE as an example, the basic idea of LE is to use an undirected weighted graph to describe a manifold and find a low-dimensional representation through graph embedding. That is, under the premise of maintaining the local adjacency relationship of the graph, the graph formed by the points on the manifold is mapped from a high-dimensional space to a low-dimensional space.
[0084] In the embodiment of the present application, when reducing the dimension of a high-dimensional parameter subspace or a high-dimensional parameter space, the dimension reduction can be achieved by manifold learning. The embodiment of the present application does not limit the specific method of manifold learning adopted, and any manifold learning method that can reduce the dimension of a high-dimensional parameter subspace or a high-dimensional parameter space is applicable to the embodiment of the present application.
[0085] (7) Eigen decomposition.
[0086] Eigendecomposition, also known as spectral decomposition, can decompose a matrix into the product of matrices constructed by its eigenvalues and eigenvectors.
[0087] For example, if A is an N×N square matrix and A has N linearly independent eigenvectors, then perform eigendecomposition on matrix A:
[0088] A=QΛQ -1
[0089] Where Q is an N×N square matrix, and the i-th column of Q is an eigenvector of A. Λ is a diagonal matrix, and the elements on its diagonal are the eigenvalues corresponding to the eigenvectors.
[0090] (8), Thompson Sampling algorithm and Upper Confidence Bound algorithm.
[0091] The Thompson sampling algorithm is an algorithm that uses the Bayesian formula to evaluate which sample is most likely to be optimal during sampling. In the embodiment of the present application, the Thompson sampling algorithm can be used to evaluate the potential of M high-dimensional parameter subspaces, and the most potential high-dimensional parameter subspace can be selected from them. Among them, the so-called "potential" refers to the probability that there is a group or multiple groups of software configuration parameters in the high-dimensional parameter subspace that can significantly improve the performance of the software.
[0092] The upper confidence bound algorithm adopts the idea of statistics to calculate the average benefits corresponding to each "choice" (action, which can also be understood as the action of selecting multiple data) in all the data that have been experimented, as well as their standard deviations, so as to calculate a confidence interval. The upper limit of the confidence limit is the maximum benefit that this choice can reap. Use this confidence upper bound as the estimated value of the report of each "choice". In the embodiment of the present application, the upper confidence bound algorithm can be used to evaluate the potential of M high-dimensional parameter subspaces (that is, each high-dimensional parameter subspace can be understood as a choice), and the most potential high-dimensional parameter subspace is selected from them. Among them, the so-called "potential" refers to the probability that there is a group or multiple groups of software configuration parameters in the high-dimensional parameter subspace that can significantly improve the performance of the software.
[0093] The Thompson sampling algorithm and the upper confidence bound algorithm are two specific algorithms in the multi-arm-bandit algorithm. Here, only the Thompson sampling algorithm and the upper confidence bound algorithm are used as examples for illustration. In the embodiments of the present application, other multi-arm-bandit algorithms can also be used when determining the target high-dimensional parameter subspace.
[0094] (9) Conjugate direction method.
[0095] The conjugate direction method refers to a method for seeking an unconstrained optimal solution along the conjugate direction. The conjugate direction method is a general term for such methods that seek the optimal solution with the help of the conjugate direction. Common conjugate direction methods include: Conjugate Gradient Method (ConjugateGradient) and Powell's Method (Powell's Method).
[0096] Simply put, the process of seeking the optimal solution of the conjugate direction method is as follows: for high-dimensional space (such as the high-dimensional parameter space and high-dimensional parameter subspace mentioned in the embodiments of the present application), n conjugate vectors can be selected as the "basis vectors" of the n-dimensional space. For functions defined in the high-dimensional space (such as the machine learning model mentioned in the embodiments of the present application, which can be regarded as a special "function"), a straight line search is performed along each "basis vector". Then, a maximum of n searches can be performed to obtain the optimal solution of the function.
[0097] In the embodiment of the present application, the parameter tuning device 200 obtains one or more sets of software configuration parameters and corresponding software performance parameters configured for the software, and divides the high-dimensional parameter space into M high-dimensional parameter subspaces according to the one or more sets of software configuration parameters and corresponding software performance parameters. Among them, the similarity of the data included in any high-dimensional parameter subspace is greater than the similarity threshold, the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than the data threshold, and M is a positive integer.
[0098] The parameter tuning device 200 calls M machine learning models to learn M high-dimensional parameter subspaces respectively, and each machine learning model corresponds to a high-dimensional parameter subspace.
[0099] The parameter tuning device 200 selects a target high-dimensional parameter subspace from M high-dimensional parameter subspaces, uses the machine learning model corresponding to the target high-dimensional parameter subspace to determine one or more sets of software configuration parameters to be configured, and provides the one or more sets of software configuration parameters to be configured to the user.
[0100] Because the parameter tuning device 200 divides the high-dimensional parameter space into M high-dimensional parameter subspaces of relatively similar sizes, it ensures that the amount of data learned by each subsequent machine learning model is the same, and each machine learning model can fully understand the relationship between each group of software configuration parameters in the corresponding high-dimensional parameter space and its corresponding software performance parameters, so that the machine learning model achieves a higher quality, which facilitates the subsequent determination of one or more groups of software configuration parameters that are more effective in improving software performance.
[0101] like Figure 1 , which is a schematic diagram of the structure of a parameter tuning system provided in an embodiment of the present application, the parameter tuning system 10 includes a parameter acquisition device 100 and a parameter tuning device 200 .
[0102] The parameter collection device 100 can collect software configuration parameters that have been configured for the software and their corresponding software performance parameters.
[0103] For users, the parameter collection device 100 can provide users with one or more configurable software configuration parameters, which can be transmitted to the parameter collection device 100 by the parameter tuning device 200. The parameter collection device 100 can also obtain one or more software configuration parameters that have been configured for the software and record the software configuration parameters.
[0104] After the software runs based on a set of software configuration parameters, the parameter collection device 100 can collect software performance parameters corresponding to the set of software configuration parameters.
[0105] The parameter collection device 100 transmits the collected one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200 .
[0106] The parameter tuning device 200 can execute the parameter tuning method provided in the embodiment of the present application. After the parameter tuning device 200 obtains one or more sets of software configuration parameters and their corresponding software performance parameters from the parameter acquisition device 100, it can output a new set of one or more sets of software configuration parameters that can improve software performance based on the one or more sets of software configuration parameters and their corresponding software performance parameters, and transmit the one or more sets of software configuration parameters to the parameter acquisition device 100.
[0107] In the embodiment of the present application, the parameter tuning device 200 needs to have some or all of the following functions:
[0108] Function 1: Evenly divide the high-dimensional parameter space.
[0109] The parameter tuning device 200 can divide the high-dimensional parameter space into M high-dimensional parameter subspaces of similar size, and the M high-dimensional parameter subspaces satisfy: the similarity of the data included in any high-dimensional parameter subspace is not greater than the similarity threshold, and the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than the number threshold. The specific values of the similarity threshold and the number threshold are related to the way in which the parameter tuning device 200 divides the high-dimensional parameter space.
[0110] By evenly dividing the high-dimensional parameter space, it can be ensured that the high-dimensional vectors can be evenly distributed in the M high-dimensional parameter subspaces, avoiding data skew in the M high-dimensional parameter subspaces (that is, the size differences of the high-dimensional parameter subspaces are more obvious), so as to ensure the learning effect of the subsequent machine learning model on the M high-dimensional parameter subspaces.
[0111] Function 2: Reduce the dimension of high-dimensional parameter space (or high-dimensional parameter subspace).
[0112] The parameter tuning device 200 can reduce the dimension of a high-dimensional parameter space (or a high-dimensional parameter subspace) and reduce the dimension of a high-dimensional vector in the high-dimensional parameter space (or a high-dimensional parameter subspace).
[0113] By reducing the dimension of the high-dimensional parameter space (or high-dimensional parameter subspace), the subsequent machine learning model can speed up the learning of the high-dimensional parameter subspace and improve the learning efficiency.
[0114] Function three: machine learning function.
[0115] The parameter tuning device 200 can call M machine learning models and trigger the M machine learning models to learn M high-dimensional parameter subspaces respectively, wherein each machine learning model corresponds to a high-dimensional parameter subspace, and each machine learning model learns the corresponding M high-dimensional parameter subspaces.
[0116] With the help of machine learning models, the potential relationship between software configuration parameters and software performance parameters can be better understood, ensuring that a better set or sets of software configuration parameters can be found later. The parameter tuning device 200 can call multiple machine learning models, which can speed up the learning efficiency of the entire high-dimensional parameter space, and each machine learning model only learns one of the high-dimensional parameter subspaces, which can ensure the quality of the machine learning model.
[0117] Function 4: Search function for M high-dimensional parameter subspaces.
[0118] The parameter tuning device 200 can search for a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces. The target high-dimensional parameter subspace is the high-dimensional parameter subspace with the greatest "potential" among the M high-dimensional parameter subspaces. The so-called "potential" means that the probability that there are one or more sets of software configuration parameters in the target high-dimensional parameter subspace that can maximize the software performance improvement is the highest.
[0119] The parameter tuning device 200 can search for a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces by using an upper confidence bound algorithm (UCB) or a Thompson sampling method.
[0120] Function 5: Optimal solution screening function.
[0121] The parameter tuning device 200 can use the conjugate direction optimizer to find one or more sets of software configuration parameters that maximize the software performance parameters from the high-dimensional parameter subspace. The maximum value of the software performance parameter here is the maximum value that the software performance parameter can reach in the high-dimensional parameter subspace.
[0122] In an embodiment of the present application, after determining the target high-dimensional parameter subspace, the parameter tuning device 200 uses a conjugate direction optimizer to find one or more sets of software configuration parameters from the target high-dimensional parameter subspace that maximize the software performance parameters, that is, finds one or more sets of software configuration parameters that can maximize the output of the machine learning model corresponding to the target high-dimensional parameter space.
[0123] The embodiment of the present application does not limit the deployment mode of the parameter collection device 100 and the parameter tuning device 200. The embodiment of the present application provides three deployment modes.
[0124] Method 1: Deployment close to the user side.
[0125] like Figure 2A As shown, the parameter collection device 100 and the parameter tuning device 200 are deployed at a location close to the user. The parameter collection device 100 and the parameter tuning device 200 can be deployed on a computing device on the user side to provide the user with a parameter tuning function. The computing device can be a laptop, a personal desktop computer, or a user's mobile terminal, etc.
[0126] The parameter collection device 100 serves as the "front end" of the parameter tuning system 10, interacts with the user, provides the user with one or more optional sets of software configuration parameters, and can also collect one or more sets of software configuration parameters set for the software and its software performance parameters.
[0127] The parameter tuning device 200, as the "backend" of the parameter tuning system 10, outputs a new set of one or more software configuration parameters based on one or more sets of software configuration parameters and software performance parameters obtained from the parameter acquisition device 100, and provides the one or more sets of software configuration parameters to the user through the parameter acquisition device 100.
[0128] The parameter collection device 100 and the parameter tuning device 200 may be hardware devices, such as the parameter collection device 100 or the parameter tuning device 200 may be a processor in the computing device, a partial module in the processor, or an accelerator card in the computing device. The parameter collection device 100 and the parameter tuning device 200 may also be software modules, such as the parameter collection device 100 or the parameter tuning device 200 may be software running on a processor or an accelerator card in the computing device.
[0129] Method 2: Distributed deployment.
[0130] The parameter collection device 100 may be deployed at a location close to the user, and the parameter tuning device 200 may be deployed at a location far from the user.
[0131] like Figure 2B As shown, the parameter collection device 100 is deployed on a computing device at the user side, interacts with the user, and collects one or more sets of software configuration parameters and its software performance parameters.
[0132] The parameter tuning device 200 is deployed on other computing devices or computing device clusters, and the other computing devices may be servers with strong computing power. The computing device cluster includes multiple computing devices, and the multiple computing devices cooperate to implement the functions of the parameter tuning device 200.
[0133] The parameter collection device 100 and the parameter tuning device 200 are connected via a network, and the parameter collection device 100 can transmit the collected one or more groups and their software performance parameters to the parameter tuning device 200 via the network. The parameter tuning device 200 can transmit the generated new one or more groups of software configuration parameters (i.e., one or more groups of software configuration parameters to be configured) to the parameter collection device 100 via the network.
[0134] Method 3: Deploy away from the user side.
[0135] like Figure 2C As shown, the parameter acquisition device 100 and the parameter tuning device 200 are deployed at a location far away from the user. The user can interact with the parameter acquisition device 100 through the computing device on the user side to obtain one or more sets of software configuration parameters that can be configured for the software, and can also transmit one or more sets of software configuration parameters configured for the software and their corresponding software performance parameters to the data parameter device through the computing device on the user side.
[0136] For example, the parameter collection device 100 and the parameter tuning device 200 can be deployed in the cloud to provide cloud services for tuning software configuration parameters. The parameter collection device 100 or the parameter tuning device 200 can be deployed in an edge data center, a cloud data center, or a terminal computing device. The parameter collection device 100 or the parameter tuning device 200 can also be deployed in a distributed manner in part or all of the environments of the edge data center, the cloud data center, and the terminal computing device.
[0137] The user can subscribe to the cloud service and install the client software for transmitting data with the parameter collection device 100 on the computing device at the user side. The user can request one or more sets of available software configuration parameters from the parameter collection device 100 through the client software, and can also feedback one or more sets of configured software configuration parameters and their corresponding software performance parameters to the parameter collection device 100 through the client software.
[0138] The parameter acquisition device 100 can provide one or more sets of software configuration parameters acquired from the parameter tuning device 200 to the user through the client software. One or more sets of software configuration parameters and their corresponding software performance parameters transmitted from the client software can also be sent to the parameter tuning device 200.
[0139] The following is combined with Figure 3 A parameter tuning method provided in an embodiment of the present application is described, and the method includes:
[0140] Step 301: The parameter collection device 100 collects one or more sets of software configuration parameters and their corresponding software performance parameters.
[0141] The present application does not limit the manner in which the parameter acquisition device 100 performs step 301 , and several possible manners are listed below.
[0142] (I) The parameter collection device 100 can interact with the user through a visual interface to obtain one or more sets of software configuration parameters and their corresponding software performance parameters from the user. Here, only the method in which the user obtains a set of software configuration parameters and their corresponding software performance parameters is used as an example for explanation. Each set of software configuration parameters and their corresponding software performance parameters can be collected in a similar manner.
[0143] First, for users, the parameter acquisition device 100 can display a visual software configuration parameter interface to the user. The user can view one or more optional groups of software configuration parameters by browsing the software configuration parameter display interface, and make a selection on the software configuration parameter display interface to select a group of software configuration parameters that need to be set for the software.
[0144] Afterwards, after the parameter collection device 100 detects the user's selection operation on the one or more groups of software configuration parameters, it determines the group of software configuration parameters selected by the user.
[0145] Afterwards, the set of software configuration parameters is set to the software, and the software runs based on the software configuration parameters. Here, the operation of configuring the set of software configuration parameters for the software can be performed by the parameter collection device 100 or by the user, such as the user configuring the selected set of software configuration parameters to the software.
[0146] After the software runs based on the software configuration parameters, the parameter collection device 100 can collect software performance parameters corresponding to the set of software configuration parameters.
[0147] The software performance parameters may be provided by the user to the parameter acquisition device 100. For example, a quantitative method for reflecting software performance is agreed upon with the user in advance, and based on the quantitative method, the user determines a specific quantitative value according to the state of the software during operation, and the quantitative value can be used as the software performance parameter. The parameter acquisition device 100 displays a visual software performance parameter input interface to the user, and the user can input the software performance parameters corresponding to the set of software configuration parameters according to the prompts of the software performance parameter input interface.
[0148] The software performance parameters may also be measured by the parameter acquisition device 100. For example, the parameter acquisition device 100 has a built-in algorithm for generating software performance parameters, and the parameter acquisition device 100 may call the algorithm to obtain the software performance parameters corresponding to the set of software configuration parameters when the software is running based on the software configuration parameters.
[0149] like Figure 4A As shown, a schematic diagram of an interface for displaying software configuration parameters provided by an embodiment of the present application is shown. In this interface, three groups of optional software configuration parameters are displayed, and each group of software configuration parameters is named. The user can view each group of software configuration parameters in this interface. The user selects a group of software configuration parameters by checking one or more groups of software configuration parameters.
[0150] like Figure 4B The above is a schematic diagram of a software performance parameter input interface provided in an embodiment of the present application. In this interface, a group of software configuration parameters selected by the user is displayed, and the user is prompted to enter the software performance parameters corresponding to the group of software configuration parameters.
[0151] (ii) The parameter collection device 100 interacts with the user through emails, short messages, etc. to obtain one or more sets of software configuration parameters and their corresponding software performance parameters from the user.
[0152] The parameter collection device 100 can provide the user with an optional one or more sets of software configuration parameters via email, short message, etc. After providing the user with an optional one or more sets of software configuration parameters, the parameter collection device 100 can request the user for one or more sets of software configuration parameters that have been configured for the software and their corresponding software performance parameters via email, short message, etc.
[0153] Step 302 : the parameter collection device 100 sends the collected one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200 .
[0154] When the parameter collection device 100 and the parameter tuning device 200 are deployed on the same computing device (such as the deployment method close to the user side mentioned above), the parameter collection device 100 and the parameter tuning device 200 can interact directly with each other, thereby transmitting the one or more sets of software configuration parameters and their corresponding software performance parameters.
[0155] When the parameter collection device 100 and the parameter tuning device 200 are deployed on different computing devices (such as using the distributed deployment method mentioned above), the parameter collection device 100 and the parameter tuning device 200 can interact through the network to transmit the one or more sets of software configuration parameters and their corresponding software performance parameters.
[0156] Step 303: The parameter tuning device 200 performs tuning based on the one or more sets of software configuration parameters and their corresponding software performance parameters to generate a new one or more sets of software configuration parameters.
[0157] When the parameter tuning device 200 executes step 303, the following steps may be specifically performed:
[0158] Step 3031: The parameter tuning device 200 divides the high-dimensional parameter space to generate M high-dimensional parameter subspaces, and the M high-dimensional parameter subspaces satisfy: the similarity of the data included in any high-dimensional parameter subspace is greater than the similarity threshold, and the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than the number threshold.
[0159] The embodiment of the present application does not limit the manner in which the parameter tuning device 200 performs step 3031. The following describes a method for dividing a high-dimensional parameter space provided by an embodiment of the present application.
[0160] It is assumed here that the n groups of software configuration parameters collected by the parameter collection device 100 are X1, X2, X3...Xn, wherein X1, X2, X3...or Xn can be regarded as a vector containing multiple elements, wherein each element is a software configuration parameter. The multiple software configuration parameters Y corresponding to the n groups of software configuration parameters are Y1, Y2, Y3...Yn, wherein Y1, Y2, Y3...or Yn can be regarded as a scalar.
[0161] The n groups of software configuration parameters can be constructed into a matrix X, that is, X = [X1, X2, ..., Xn]. The n software performance parameters can be constructed into a vector Y, that is, Y = [Y1, Y2, ..., Yn].
[0162] Step 1: Use kernel function K to measure the similarity of the n sets of software configuration parameters X to obtain the first similarity matrix K(X,X), where K(X,X) represents the similarity of any two sets of software configuration parameters, K(X,X) is an n*n matrix S1, and an element in the matrix S1 is the similarity of the two sets of software configuration parameters X. For example, an element s1 in the matrix S1 ij is the similarity between a set of software configuration parameters Xi and another set of software configuration parameters Xj, where i and j are the row number and column number of element s1 respectively.
[0163] Step 2: Use the kernel function K to measure the similarity of the n software performance parameters Y to obtain a second similarity matrix K(Y,Y), where K(Y,Y) represents the similarity of any two software performance parameters, and K(Y,Y) is an n*n matrix S2, where an element in the matrix S2 is the similarity of the two software performance parameters. For example, an element s2 in the matrix S2 ij is the similarity between the software performance parameter Yi and the software configuration parameter Yj, where i and j are the row number and column number of the element s2 respectively.
[0164] Step 3: Perform weighted summation on K(X,X) and K(Y,Y) to obtain the similarity matrix K XY . That is:
[0165] K XY =ρK(X,X)+βK(Y,Y), where ρ and β are weights set for K(X,X) and K(Y,Y).
[0166] Step 4: Call the Spectral Clustering algorithm based on K XY The high-dimensional parameter space is divided into M high-dimensional parameter subspaces.
[0167] Specifically, ①, call the spectral clustering algorithm according to KXY Spectral clustering is performed on n groups of software configuration parameters and their corresponding software performance parameters, and the n groups of software configuration parameters and their corresponding software performance parameters are divided into two categories.
[0168] ②. According to the classification result in ①, that is, the categories to which the n groups of software configuration parameters and their corresponding software performance parameters belong, train a vector machine. The input of the vector machine is a group of software configuration parameters, and its output is the category to which the group of software configuration parameters and their corresponding software performance parameters belong.
[0169] ③. Based on the vector machine trained in ②, the high-dimensional parameter space is divided into two spaces. For the convenience of explanation, each space formed after the binary division is called a first-level subspace.
[0170] ④ For any first-level subspace, among the n groups of software configuration parameters and their corresponding software performance parameters, multiple groups of software configuration parameters and their corresponding software performance parameters belonging to the first-level subspace are clustered by calling the spectral graph clustering algorithm according to K XY Spectral clustering is performed to classify multiple groups of software configuration parameters and their corresponding software performance parameters belonging to the first-level subspace into two categories. The execution method of ④ is similar to that of ①, and the only difference is that the number of groups of software configuration parameters and their corresponding software performance parameters that need to be classified is different.
[0171] ⑤. According to the classification result in ④, that is, the categories to which the multiple groups of software configuration parameters and their corresponding software performance parameters belong to the first-level subspace, a vector machine is trained. The input of the vector machine is a group of software configuration parameters and their corresponding software performance parameters, and the output is the category to which the group of software configuration parameters and their corresponding software performance parameters belong.
[0172] ⑥. Based on the vector machine trained in ⑤, the first-level subspace is further divided into two second-level subspaces.
[0173] Any secondary subspace can be divided into two parts. The method of dividing any secondary subspace into two parts is similar to the method of dividing any primary subspace into two parts. For details, please refer to the above content.
[0174] Any space formed after each binary division is binary divided again until M spaces are finally formed, where the M spaces are M high-dimensional parameter subspaces.
[0175] In the above description, it has been mentioned that the n groups of software configuration parameters and the corresponding software performance parameters obtained by the parameter tuning device 200 are only some of the "space points" in the high-dimensional parameter space, and the division of the high-dimensional parameter space is the division of all the "space points" contained in the high-dimensional parameter space. The division of the high-dimensional parameter space is to draw a "dividing line" in the high-dimensional parameter space to divide different high-dimensional parameter subspaces. When the high-dimensional parameter space is divided by the spectral clustering algorithm (SpectralClustering), the n groups of software configuration parameters and the corresponding software performance parameters are first clustered, so that the vector machine learns this clustering method, so that the trained vector machine can output the category to which it belongs as long as any group of software configuration parameters and the corresponding software performance parameters are input. The trained vector machine has the function of drawing a "dividing line". In the above content, the binary division method is mentioned, that is, each division divides the space into two. This division method can highly guarantee the uniformity of the divided space. After performing multiple binary divisions, M high-dimensional parameter subspaces of relatively close size can be obtained.
[0176] The spectral clustering algorithm is called to divide the high-dimensional parameter space in a way that ensures that the sizes of the M high-dimensional parameter subspaces obtained in the end are uniform, ensuring the success rate of space division. In addition, since the kernel function is used in the division process to measure the similarity of each group of software configuration parameters and the similarity of each software performance parameter, it can ensure that the software configuration parameters with high similarity are concentrated in the same high-dimensional parameter subspace, and the software performance parameters with high similarity belong to the same high-dimensional parameter subspace. In addition, different weights are configured for K(X,X) and K(Y,Y) when forming Kxy to avoid the situation where the software performance parameters are submerged or the importance of the software performance parameters cannot be highlighted due to the large number of software configuration parameters in each group. The high-dimensional parameter space is divided by using the weighted Kxy, which fully considers the influence of the software performance parameters. The division of the high-dimensional parameter space is more reasonable, further ensuring that the machine learning model can learn the high-dimensional parameter subspace and improve the quality of the machine learning model.
[0177] After the high-dimensional parameter space is evenly divided to obtain M high-dimensional parameter subspaces, step 3032 may be performed.
[0178] Step 3032: For any high-dimensional parameter subspace, the parameter tuning device 200 reduces the dimension of the high-dimensional parameter subspace based on the dimension parameter k. The dimension of the high-dimensional parameter subspace after the dimension reduction satisfies the dimension parameter k.
[0179] The dimension of the high-dimensional parameter subspace is the dimension of the high-dimensional vector in the high-dimensional parameter subspace. Dimensionality reduction of the high-dimensional parameter subspace is to reduce the dimension of any high-dimensional vector in the high-dimensional parameter subspace.
[0180] There are many ways for the parameter tuning device 200 to reduce the dimension of the high-dimensional parameter subspace based on the dimensionality parameter so that the dimension of the high-dimensional parameter subspace after the dimensionality reduction satisfies the dimensionality parameter.
[0181] For example, the dimension of any high-dimensional vector in the high-dimensional parameter subspace is l+k. For any high-dimensional vector in the high-dimensional parameter subspace, the parameter tuning device 200 can delete the first l elements included in the high-dimensional vector, and the dimension of the high-dimensional vector without the l elements is K.
[0182] For another example, for any high-dimensional vector in the high-dimensional parameter subspace, the parameter tuning device 200 can sum up the multiple elements included in the high-dimensional vector in pairs, and use the sum of the two elements as an element in the high-dimensional vector after dimensionality reduction. If the dimension of the high-dimensional vector formed after the pairwise summation is still greater than k, the multiple elements included in the high-dimensional vector formed after the pairwise summation can continue to be summed up in pairs until the dimension of the high-dimensional vector after the pairwise summation is equal to K.
[0183] In the embodiment of the present application, the parameter tuning device 200 can use manifold learning to reduce the dimension of the high-dimensional parameter subspace. Here, the parameter tuning device 200 uses LE to reduce the dimension of the high-dimensional parameter subspace as an example. First, the parameter tuning device 200 can be based on K XY Perform eigen decomposition to obtain multiple eigenvalues and the eigenvectors corresponding to each eigenvalue. Then, select the eigenvectors corresponding to the k eigenvalues with the largest eigenvalues and use the k eigenvectors as the basis vectors of the data space. Then, use the k basis vectors to map the high-dimensional parameter subspace to the k-dimensional data space, and the k-dimensional data space is the high-dimensional parameter subspace after dimensionality reduction.
[0184] Through step 3023, the dimension of the high-dimensional parameter subspace can be reduced, the amount of data contained in the high-dimensional parameter subspace can be reduced, the speed at which the machine learning model learns the high-dimensional parameter subspace can be improved, and the learning efficiency of the machine learning model can be ensured. When the high-dimensional parameter subspace is reduced in dimension by manifold learning, the valid data in the high-dimensional parameter subspace can be retained, and invalid data or data of relatively low importance can be filtered out, thereby ensuring that the subsequent machine learning model can accurately learn the high-dimensional parameter subspace and improve the quality of the machine learning model.
[0185] In the above description, the example of first executing step 3031 and then executing step 3032 is used for explanation. In practical applications, the high-dimensional parameter space can also be first reduced in dimension based on the dimension parameter (the method of reducing the dimension of the high-dimensional parameter space based on the dimension parameter is similar to the method of reducing the dimension of the high-dimensional subspace in step 3032, which can be specifically referred to in the above content and will not be repeated here), and then the high-dimensional parameter space after dimension reduction is divided (the method of uniformly dividing the high-dimensional parameter space after dimension reduction is similar to the method of uniformly dividing the high-dimensional parameter space in step 3031, which can be specifically referred to in the above content and will not be repeated here).
[0186] It should be noted that step 3032 is an optional step. In practical applications, the high-dimensional parameter space may not be reduced in dimension, and step 3033 may be directly executed. Here, the execution of step 3032 is used as an example for explanation, and for the sake of simplicity, the high-dimensional parameter subspaces mentioned in the subsequent steps all refer to the high-dimensional parameter subspaces after dimension reduction.
[0187] Step 3033: The parameter tuning device 200 assigns a corresponding high-dimensional parameter subspace to each machine learning model, triggering each machine learning model to learn the corresponding high-dimensional parameter subspace.
[0188] The machine learning model is a pre-configured machine learning model, the input of which is a set of software configuration parameters represented by the high-dimensional vector in the high-dimensional parameter subspace, and the output of which is the software configuration parameters corresponding to the set of software configuration parameters. For each set of software configuration parameters input, the machine learning model will output the corresponding software configuration parameters.
[0189] The process of a machine learning model learning the data in the corresponding high-dimensional parameter subspace is an iterative process of continuously adjusting the parameters of the machine learning model itself by using each set of software configuration parameters and their corresponding software configuration parameters. The so-called "iteration" means that each time the machine learning model inputs a set of software configuration parameters, it uses the output software configuration to adjust the parameters of the machine learning model itself. One iteration refers to the process of the machine learning model inputting a set of software configuration parameters and using the output software configuration to adjust the parameters of the machine learning model itself.
[0190] The parameter tuning device 200 can configure a convergence condition for the machine learning model. When the machine learning model is learning the data in the corresponding high-dimensional parameter subspace, the learning stops when the convergence condition is met. The specific content of the convergence condition is not limited in the embodiment of the present application. For example, the convergence condition can be the maximum number of iterations. When the machine learning model reaches the maximum number of iterations for learning the data in the corresponding high-dimensional parameter subspace, the learning stops. Another example. The convergence condition can also be the maximum learning time. When the machine learning model reaches the maximum learning time for learning the data in the corresponding high-dimensional parameter subspace, the learning stops. Any condition that can control the machine learning model to stop learning the high-dimensional vector in the corresponding high-dimensional parameter subspace can be used as a convergence condition.
[0191] In addition, the types of machine learning models are different, and the specific ways in which machine learning models learn high-dimensional vectors in the corresponding high-dimensional parameter subspace are also different. Machine Learning Model This application does not limit the type of machine learning model, and the machine learning model can be linear regression, logistic regression, linear discriminant analysis, decision tree, naive Bayes theorem, K-nearest neighbors, learning vector quantization, support vector machine, and random forest.
[0192] When the machine learning model is a random forest, the C4.5 algorithm can be called to learn the corresponding high-dimensional parameter subspace. When the machine learning model is a linear regression, the kernel function method can be called to learn the corresponding high-dimensional parameter subspace.
[0193] After the M machine learning models learn the corresponding high-dimensional parameter subspace, any machine learning model can predict the corresponding software performance parameters for a set of software configuration parameters represented by any high-dimensional vector in the corresponding high-dimensional parameter subspace. If the learning effect of the machine learning model is better, the quality of the machine learning model is higher, and the software performance parameters predicted by it are more accurate and closer to the actual software performance parameters generated after the software runs based on the set of software configuration parameters.
[0194] The probability that there are one or more sets of software configuration parameters that can maximize the software performance parameters in any of the M high-dimensional parameter subspaces is different, or in other words, the probability that there are one or more sets of software configuration parameters that can optimize the software performance in any high-dimensional parameter subspace is different. Here, "the maximum value that the software performance parameters can reach" or "the optimal state that the software performance can reach" is subject to certain factors, including but not limited to: the quality of the current machine learning model, the distribution of the M high-dimensional parameter subspaces in the high-dimensional parameter space, and the computing power of the called algorithm (such as the conjugate method, spectral clustering algorithm, manifold learning, Thompson sampling algorithm, upper confidence bound algorithm, etc.). Therefore, the one or more sets of software configuration parameters that can maximize the software performance parameters mentioned in the embodiment of the present application refer to a set of one or more sets of software configuration parameters that can achieve the maximum value of the software performance parameters or "the optimal state that the software performance can reach" under the constraints of these factors.
[0195] The purpose of the parameter tuning device 200 to tune the software configuration parameters is to find the one or more sets of software configuration parameters. To this end, the parameter tuning device 200 needs to find the high-dimensional parameter subspace containing the one or more sets of software configuration parameters that can significantly improve the software performance from the M high-dimensional parameter subspaces. The parameter tuning device 200 needs to execute step 3034.
[0196] Step 3034: The parameter tuning device 200 uses the Thompson sampling algorithm or the upper confidence bound algorithm to determine the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces. The target high-dimensional parameter subspace is the most potential high-dimensional parameter subspace among the M high-dimensional parameter subspaces. It is the high-dimensional parameter subspace with the highest probability of containing one or more sets of software configuration parameters that maximize the improvement of software performance parameters among the M high-dimensional parameter subspaces.
[0197] Based on the premise that the high-dimensional parameter space is divided into M high-dimensional parameter subspaces by the spectral clustering algorithm, the high-dimensional parameter subspace is divided step by step by means of binary division. The binary division process of the high-dimensional parameter space can be represented by a binary tree. In the binary tree, the root node represents the high-dimensional parameter space. Starting from the root node, each node is binary divided from top to bottom, split into two nodes, until M leaf nodes are finally formed. Each leaf node represents a high-dimensional parameter subspace. The statistics of the M leaf nodes are evaluated with the help of UCB. The statistics of each leaf node are the probability that one or more sets of software configuration parameters exist in the space represented by the leaf node to maximize the software performance parameters, calculated based on UCB. This statistic can be understood as the "potential" of the space represented by the leaf node.
[0198] A leaf node with the largest statistic is selected from the M leaf nodes, and the high-dimensional parameter subspace represented by the leaf node is the target high-dimensional parameter subspace.
[0199] Step 3035: The parameter tuning device 200 uses the conjugate direction method to find the optimal solution of the machine learning model corresponding to the target high-dimensional parameter subspace from the target high-dimensional parameter subspace. The optimal solution is one or more sets of software configuration parameters that maximize the improvement of software performance parameters.
[0200] At this point, the parameter tuning device 200 generates a new set or sets of software configuration parameters, and the parameter tuning device 200 may execute step 304 .
[0201] Step 304: The parameter tuning device 200 transmits the generated one or more sets of software configuration parameters to the parameter acquisition device 100. The manner in which the parameter tuning device 200 transmits the generated one or more sets of software configuration parameters to the parameter acquisition device 100 is similar to the manner in which the parameter acquisition device 100 sends the collected one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200 in step 302. For details, please refer to the above description, which will not be repeated here.
[0202] Step 305: The parameter collection device 100 displays the one or more sets of software configuration parameters to the user, and prompts the user to select a set of software configuration parameters to configure for the software.
[0203] In step 301, the manner in which the parameter collection device 100 displays the one or more groups of software configuration parameters to the user is listed. For details, please refer to the above description, which will not be repeated here.
[0204] After the user selects a set of software configuration parameters and configures the set of software configuration parameters for the software, the parameter collection device 100 can continue to collect the set of software configuration parameters and the corresponding software performance parameters, and continue to execute steps 301 to 305. Steps 301 to 305 can be executed cyclically, and steps 301 to 305 are executed cyclically. The parameter tuning method executed by the parameter tuning device 200 can learn and predict (that is, predict a new set or sets of software configuration parameters). The parameter tuning device 200 learns the acquired set or sets of software configuration parameters and the corresponding software performance parameters, and outputs a new set or sets of software configuration parameters; then, the subsequently acquired set or sets of software configuration parameters and the corresponding software performance parameters are learned, and then a new set or sets of software configuration parameters are output, and the cycle is repeated until the tuning stop condition is met.
[0205] The tuning stop condition may be set by the user. The embodiment of the present application does not limit the specific content of the tuning stop condition. For example, the tuning stop condition may be the number of times a user sets one or more groups of software configuration parameters to be recommended, that is, the number of times the parameter tuning method is executed by the parameter tuning device 200.
[0206] For another example, the tuning stop condition may be an instruction initiated by the user to instruct to stop tuning. The embodiment of the present application does not limit the initiation method of the instruction. Taking the example that the parameter acquisition device 100 and the user can interact through a visual interface, a "stop tuning" option may be provided in the visual interface displayed by the parameter acquisition device 100 to the user. The user clicks on the "stop tuning" to send an instruction to the parameter acquisition device 100 to instruct to stop tuning. After receiving the instruction, the parameter acquisition device 100 transmits the instruction to the parameter tuning device 200. After receiving the instruction, the parameter tuning device 200 stops executing the parameter tuning method.
[0207] Based on the same inventive concept as the method embodiment, the present application embodiment further provides a parameter tuning device, which is used to execute the method executed by the parameter tuning device 200 in the above method embodiment. Figure 5 As shown, the parameter tuning device 500 includes a division module 501, a learning module 502, and a screening module 503. Specifically, in the parameter tuning device 500, each module is connected via a communication path.
[0208] The partitioning module 501 is used to partition the high-dimensional parameter space based on one or more sets of software configuration parameters configured for the software and the corresponding software performance parameters to form M high-dimensional parameter subspaces, wherein the software performance parameters corresponding to a set of software configuration parameters are used to characterize the performance of the software after the set of software configuration parameters are configured, and the high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters; the M high-dimensional parameter subspaces satisfy: the similarity of data in any high-dimensional parameter subspace is greater than the similarity threshold, and the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than the number threshold. M is a positive integer.
[0209] The learning module 502 is used to call M machine learning models to learn M high-dimensional parameter subspaces respectively, and each machine learning model corresponds to a high-dimensional parameter subspace.
[0210] The screening module 503 is used to select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace using a machine learning model corresponding to the target high-dimensional parameter subspace, and provide the user with one or more sets of software configuration parameters to be configured.
[0211] As a possible implementation, when partitioning the high-dimensional parameter space, the partitioning module 501 constructs a similarity matrix based on one or more groups of software configuration parameters and corresponding software performance parameters, and any element in the similarity matrix represents the degree of similarity between two groups of software configuration parameters and corresponding software performance parameters; thereafter, the spectral clustering algorithm is called to partition the high-dimensional parameter space based on the similarity matrix.
[0212] As a possible implementation, when generating a similarity matrix, the partitioning module 501 measures similarity of one or more groups of software configuration parameters and corresponding software performance parameters by means of a kernel function to generate a similarity matrix.
[0213] As a possible implementation, when generating a similarity matrix with the help of a kernel function, the partitioning module 501 measures the similarity of one or more sets of software configuration parameters with the help of the kernel function to generate a first similarity matrix, and any element in the similarity matrix represents the similarity between two sets of software configuration parameters. The partitioning module 501 measures the similarity of software performance corresponding to one or more sets of software configuration parameters with the help of a kernel function to generate a second similarity matrix, and any element in the similarity matrix represents the similarity between two sets of software performance corresponding to software configuration parameters. The partitioning module 501 performs weighted summation on the first similarity matrix and the second similarity matrix configuration to generate a similarity matrix, wherein the weight of the second similarity matrix is greater than the weight of the first similarity matrix.
[0214] As a possible implementation, when learning the M high-dimensional parameter subspaces, the learning module 502 uses manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; and calls M machine learning models to learn the M high-dimensional parameter subspaces after the dimension reduction.
[0215] As a possible implementation, the screening module 503 determines, by means of a conjugate direction method, from the target high-dimensional parameter subspace, one or more sets of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.
[0216] As a possible implementation, the screening module 503 calls the Thompson sampling algorithm or the upper confidence bound algorithm to select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.
[0217] The division of modules in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. In addition, each functional module in each embodiment of the present application may be integrated into a processor, or may exist physically separately, or two or more modules may be integrated into one module. The above-mentioned integrated modules may be implemented in the form of hardware or in the form of software functional modules.
[0218] If the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions to enable a terminal device (which can be a personal computer, mobile phone, or network device, etc.) or a processor (processor) to execute all or part of the steps of the method of each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.
[0219] This application also provides Figure 6 The computing device 600 shown in FIG. 6 includes a bus 601 , a processor 602 , a communication interface 603 , and a memory 604 . The processor 602 , the memory 604 , and the communication interface 603 communicate with each other via the bus 601 .
[0220] Among them, the processor 602 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0221] The memory 604 may be a dynamic random access memory (DRAM). In addition to DRAM, the memory 604 may also be other random access memories, such as static random access memory (SRAM). In addition, the memory 602 may also be a read-only memory (ROM). As for the read-only memory, for example, it may be a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), etc. The memory 604 may also be a flash memory medium (FLASH), a hard disk drive (HDD), or a solid state drive (SSD). The memory 604 stores computer program instructions, and the processor 602 executes the computer program instructions to execute the aforementioned Figure 3 The memory 604 may also include other software modules required for running processes such as an operating system (such as multiple modules in the parameter tuning device 500). The operating system may be LINUX TM ,UNIX TM ,WINDOWS TM wait.
[0222] The present application also provides a computing device system, wherein the computing device system includes at least one Figure 7 The computing device 700 shown in FIG. 700 includes a bus 701, a processor 702, a communication interface 703, and a memory 704. The processor 702, the memory 704, and the communication interface 703 communicate with each other via the bus 701. At least one computing device 700 in the computing device system communicates with each other via a communication path.
[0223] The specific types of the processor 702 and the memory 704 can be found in the related descriptions of the processor 602 and the memory 604, which will not be described in detail here. The processor 702 executes the computer program instructions stored in the memory 604 to perform the aforementioned Figure 3 The memory may also include software modules required for running processes such as an operating system. The operating system may be LINUX TM ,UNIX TM ,WINDOWS TM wait.
[0224] At least one computing device 700 in the computing device system establishes communication with each other through a communication network, and any one or multiple modules in the parameter tuning apparatus 500 are run on each computing device 700.
[0225] In the above description, the parameter tuning system deployment method mentioned that the parameter acquisition device and the parameter tuning device can be deployed on the computing device on the user side. From the hardware implementation, the parameter tuning device and the parameter acquisition device can be the processor of the computing device, a part of the processor module or the accelerator card of the computing device.
[0226] like Figure 8 The figure shows a schematic diagram of the structure of a computing device provided in an embodiment of the present application and equipped with an acceleration card. The computing device 800 includes a bus 801, a processor 802, a communication interface 803, a memory 804, and an acceleration card 805.
[0227] The functions and types of bus 801, processor 802, communication interface 803 and memory 804 are similar to those of Figure 6 The functions and types of the bus 801, processor 802, communication interface 803 and memory 804 in the computing device shown are similar, and the details can be found in the above description, which will not be repeated here.
[0228] The difference is that in Figure 8 In the computing device shown, the processor 802 no longer executes 5 to execute the aforementioned Figure 3 The steps in the method described above are performed by the parameter tuning device, but the accelerator card 805 performs the aforementioned Figure 3 The steps performed by the parameter tuning device in the described method.
[0229] The accelerator card 805 includes a data processing unit (DPU) 8051 and a memory 8052. The DPU 301 is connected to the memory 302 via a system bus, which can be a peripheral component interconnect express (PCIe) bus, or a compute express link (CXL), a universal serial bus (USB) protocol, or other bus protocols. Among them, the DPU 301 can also be replaced by other processors with processing functions, such as ASCI, FPGA, etc. The type of memory 8052 is similar to that of the memory 604. For details, please refer to the above description. The memory 8052 can store the necessary computer program instructions and data in the process of the accelerator card 805 executing the parameter tuning method.
[0230] DPU8051 is the main computing unit of the accelerator card 805 and the core unit of the accelerator card 805. DPU8051 undertakes the main functions of the accelerator card 805. For example, some functions of the computing device (such as the processor) can be offloaded to DPU8051, which processes data and executes the tasks assigned to the accelerator card 805 by the computing device. DPU8051 executes the following by calling the computer program instructions in the memory 8052: Figure 3 Some methods to be performed by the parameter tuning device in the illustrated embodiment.
[0231] The following describes the execution process of the parameter tuning method in the computing device 800 by taking the case where the parameter acquisition device is deployed on the processor 802 of the computing device 800 and the parameter tuning device is the accelerator card 805 of the computing device 800 as an example.
[0232] The computing device 800 deployed with the accelerator card 805 can provide the user with a parameter tuning function, which can be enabled by default, that is, as long as the user performs a selection operation of the software configuration parameters, such as in Figure 4A The software configuration parameters are selected in the interface shown in FIG. 8 , and the computing device 800 automatically executes the parameter tuning method. The computing device 800 automatically executes the following Fig. 9 The embodiment shown. The parameter tuning function can also be controlled by the user to be in an on state, and the user can enable the parameter tuning function according to actual needs. For example, in the software configuration parameter interface displayed to the user by the computing device 800, an "enable parameter tuning" option is provided. The user clicks on the option to enable parameter tuning, and the processor 802 of the computing device 800 issues an instruction to enable the parameter tuning function. After receiving the instruction, the processor 802 of the computing device 800 notifies the accelerator card 805 to enable the parameter tuning function. In this case, the computing device 800 executes as shown. Fig. 9 The embodiment shown.
[0233] Step 901: The processor 802 on the computing device 800 first collects a set of one or more software configuration parameters configured for the software and the corresponding software performance parameters, and writes the set of one or more software configuration parameters and the corresponding software performance parameters into a register. The register may be a processor 802 inside the processor 802 or a register connected to the processor 802.
[0234] Step 902: The processor 802 on the computing device 800 transfers a set or multiple software configuration parameters and corresponding software performance parameters stored in the register to a parameter memory, which is connected to the accelerator card 805 in the computing device 800, and the accelerator card 805 can extract data from the parameter memory. The embodiment of the present application does not limit the type of the parameter memory, and any memory that can have a data storage function is applicable to the embodiment of the present application. The parameter memory can be a part of the aforementioned volume memory 804.
[0235] Step 903: The accelerator card 805 of the computing device 800 obtains a group or multiple software configuration parameters and their corresponding software performance parameters stored in the parameter memory.
[0236] Step 904: The accelerator card 805 of the computing device 800 generates a new set of one or more software configuration parameters based on the set of one or more software configuration parameters and the corresponding software performance parameters. The manner in which the accelerator card 805 of the computing device 800 performs step 904 may be specifically referred to in the foregoing description. Figure 3 Step 303 in the illustrated embodiment will not be described in detail here.
[0237] Step 905: The accelerator card 805 of the computing device 800 writes the generated one or more sets of software configuration parameters into registers.
[0238] Step 906: The processor 802 of the computing device 800 reads one or more sets of software configuration parameters from the register, and provides the new one or more sets of software configuration parameters to the user.
[0239] Optionally, the accelerator card 805 of the computing device 800 may also construct a software configuration parameter database to store a new set or sets of software configuration parameters generated each time the parameter tuning method is executed. The software configuration parameter database may be deployed in a persistent storage device, which may be a storage device such as an SSD or SCM that can store data persistently. Specifically, the following steps can be seen:
[0240] Step 907: The accelerator card 805 of the computing device 800 generates one or more new sets of software configuration parameters and writes them into the software configuration parameter database.
[0241] The accelerator card 805 of the computing device 800 may be provided with a cache, and each time the parameter tuning method is executed, a new set or sets of software configuration parameters are generated and cached in the cache. If the amount of data in the cache is large and has reached a data amount threshold, the accelerator card 805 of the computing device 800 will persist the cache to the software configuration parameter database.
[0242] Step 908: The processor 802 of the computing device 800 selects one or more sets of software configuration parameters from the software configuration parameter database, migrates them to the register, and provides them to the user.
[0243] For example, when the user pauses enabling the parameter tuning function of the computing device 800, the one or more sets of software configuration parameters provided to the user by the processor 802 of the computing device 800 may be a software configuration parameter database (the software configuration parameter database stores one or more sets of software configuration parameters generated by the previous execution of the parameter tuning method, that is, historical software configuration parameters).
[0244] For another example, when the user enables the parameter tuning function of the computing device 800, in addition to the accelerator card 805 of the computing device 800 being able to generate a new set or sets of software configuration parameters and write them into the register, the processor 802 of the computing device 800 can also select one or more sets of software configuration parameters from the software configuration parameter database and write them into the register, and then provide the set or sets of software configuration parameters stored in the register to the user.
[0245] The descriptions of the processes corresponding to the above-mentioned figures have different emphases. For parts that are not described in detail in a certain process, please refer to the relevant descriptions of other processes.
[0246] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes computer program instructions, which, when loaded and executed on a computer, generate all or part of the embodiments according to the present invention. Figure 3 The process or function described.
[0247] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line, or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., an SSD).
[0248] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A parameter tuning method, characterized in that: include: The high-dimensional parameter space is divided to form M high-dimensional parameter subspaces, where the high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters; the M high-dimensional parameter subspaces satisfy: the similarity of data in any of the high-dimensional parameter subspaces is greater than a similarity threshold, the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than a number threshold, and M is a positive integer; Calling M machine learning models to learn the M high-dimensional parameter subspaces respectively, each machine learning model corresponds to one of the high-dimensional parameter subspaces; Select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace using a machine learning model corresponding to the target high-dimensional parameter subspace, and provide the one or more sets of software configuration parameters to be configured to a user.
2. The method according to claim 1, characterized in that The dividing of the high-dimensional parameter space includes: Building a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters, wherein any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters; A spectral graph clustering algorithm is called to partition the high-dimensional parameter space based on the similarity matrix.
3. The method according to claim 2, characterized in that The constructing of a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters includes: The similarity matrix is generated by measuring the similarity of one or more groups of software configuration parameters and corresponding software performance parameters with the help of a kernel function.
4. The method according to claim 3, characterized in that The similarity measurement of one or more groups of software configuration parameters and corresponding software performance parameters by means of a kernel function includes: Using a kernel function to measure the similarity of one or more groups of software configuration parameters, a first similarity matrix is generated, wherein any element in the similarity matrix represents the similarity between two groups of software configuration parameters; Using a kernel function, similarity measurement is performed on software performance corresponding to one or more groups of software configuration parameters to generate a second similarity matrix, wherein any element in the similarity matrix represents the similarity between software performance corresponding to two groups of software configuration parameters; The first similarity matrix and the second similarity matrix are configured to be weighted and summed to generate the similarity matrix, wherein the weight of the second similarity matrix is greater than the weight of the first similarity matrix.
5. The method according to any one of claims 1 to 4, characterized in that: The calling of the M machine learning models to respectively learn the M high-dimensional parameter subspaces includes: Using manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; The M machine learning models are called to respectively learn the M high-dimensional parameter subspaces after dimensionality reduction.
6. The method according to any one of claims 1 to 5, characterized in that: The step of determining one or more groups of software configuration parameters to be configured from the target high-dimensional parameter subspace using the machine learning model corresponding to the target high-dimensional parameter subspace includes: By means of the conjugate direction method, one or more groups of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace are determined from the target high-dimensional parameter subspace.
7. The method according to any one of claims 1 to 6, characterized in that: The selecting a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces comprises: The Thompson sampling algorithm or the upper confidence bound algorithm is called to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.
8. A parameter tuning device, characterized in that: include: A partitioning module is used to partition the high-dimensional parameter space to form M high-dimensional parameter subspaces, where the high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters; the M high-dimensional parameter subspaces satisfy: the similarity of data in any of the high-dimensional parameter subspaces is greater than a similarity threshold, the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than a number threshold, and M is a positive integer; A learning module, used for calling M machine learning models to learn the M high-dimensional parameter subspaces respectively, each machine learning model corresponds to one of the high-dimensional parameter subspaces; A screening module is used to select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace using a machine learning model corresponding to the target high-dimensional parameter subspace, and provide the one or more sets of software configuration parameters to be configured to a user.
9. The device according to claim 8, characterized in that The partitioning module is used for: Building a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters, wherein any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters; A spectral graph clustering algorithm is called to partition the high-dimensional parameter space based on the similarity matrix.
10. The device according to claim 9, characterized in that The partitioning module is used for: The similarity matrix is generated by measuring the similarity of one or more groups of software configuration parameters and corresponding software performance parameters with the help of a kernel function.
11. The device according to claim 10, characterized in that The partitioning module is used for: Using a kernel function to measure the similarity of one or more groups of software configuration parameters, a first similarity matrix is generated, wherein any element in the similarity matrix represents the similarity between two groups of software configuration parameters; Using a kernel function, similarity measurement is performed on software performance corresponding to one or more groups of software configuration parameters to generate a second similarity matrix, wherein any element in the similarity matrix represents the similarity between software performance corresponding to two groups of software configuration parameters; The first similarity matrix and the second similarity matrix are configured to be weighted and summed to generate the similarity matrix, wherein the weight of the second similarity matrix is greater than the weight of the first similarity matrix.
12. The device according to any one of claims 8 to 11, characterized in that: The learning module is used to: Using manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; The M machine learning models are called to respectively learn the M high-dimensional parameter subspaces after dimensionality reduction.
13. The device according to any one of claims 8 to 12, characterized in that: The screening module is used to: By means of the conjugate direction method, one or more groups of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace are determined from the target high-dimensional parameter subspace.
14. The device according to any one of claims 8 to 13, characterized in that: The screening module is used to: The Thompson sampling algorithm or the upper confidence bound algorithm is called to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.
15. A computing device, characterized in that: The computing device includes a processor and a memory; The memory is used to store computer program instructions; The processor executes and calls the computer program instructions in the memory to perform the method according to any one of claims 1 to 7.
16. A computer-readable storage medium, characterized in that: When the computer-readable storage medium is executed by a computing device, the computing device executes the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
High-dimensional multi-mode evolution optimization method based on random embedding technology
CN111553475A
Cluster configuration automatic optimization method and system based on machine learning
CN112445746A
Method and system for target-based hyper-parametric tuning
CN115398419A
High-dimensional data set visualization method and device, electronic equipment and storage medium
CN115600268A
Apparatus and method for selecting optimal parameter of support vector machine
KR101722871B1