Parameter tuning method, device and equipment
By partitioning the high-dimensional parameter space using a parameter tuning device and applying machine learning models, the complexity of parameter tuning for large-scale software configurations has been solved, enabling efficient and accurate parameter selection and improving software performance.
Patent Information
- Application Number
- CN202410801612.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-30
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2043-08-30
AI Technical Summary
Tuning the configuration parameters of large software such as big data engines and databases is complex and difficult. Existing methods are inefficient and cannot efficiently determine suitable configuration parameters.
The high-dimensional parameter space is divided by a parameter tuning device. A similarity matrix is generated using a machine learning model and a spectral clustering algorithm. The multi-armed slot machine algorithm is called to select the optimal high-dimensional parameter subspace. The optimal solution is determined by combining the conjugate direction method, and the parameters to be configured are provided.
It enables efficient and accurate determination of software configuration parameters, improves the efficiency and quality of parameter tuning, ensures the learning effect of machine learning models, and reduces learning time.
Smart Images

Figure CN119536835B_ABST
Abstract
Description
[0001] This application is a divisional application. The original application has the application number 202311128697.6 and the original application date is August 30, 2023. The entire contents of the original application are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technology, and in particular to a parameter optimization method, apparatus, and device. Background Technology
[0003] Software running on computing devices typically requires configuration parameters before it can function. These parameters must be tailored to the computing device's performance and the user's needs to ensure optimal performance and meet those requirements.
[0004] However, for some large software, such as big data engines and databases, the number of software configuration parameters required is usually very large. This results in a large number of different combinations of software configuration parameters. It is extremely complex and difficult for users or software maintenance personnel to analyze and optimize the software configuration parameters to find suitable software configuration parameters. Summary of the Invention
[0005] This application provides a parameter tuning method, apparatus, and device to efficiently determine suitable software configuration parameters and improve parameter tuning efficiency.
[0006] Firstly, embodiments of this application provide a parameter tuning method, which can be executed by a parameter tuning device. In this method, the parameter tuning device can obtain one or more sets of software configuration parameters configured for software, and corresponding software performance parameters. Each set of software configuration parameters has corresponding software performance parameters. The software performance parameters corresponding to a set of software configuration parameters are used to characterize the software's performance after configuring that set of software configuration parameters.
[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, forming M high-dimensional parameter subspaces. The high-dimensional parameter space is a high-dimensional space constructed from all software configuration parameters that can be configured to the software and their corresponding software performance parameters.
[0008] The M high-dimensional parameter subspaces satisfy the following: the similarity of data within any high-dimensional parameter subspace is greater than a similarity threshold, and the difference in the number 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 from M high-dimensional parameter subspaces, with each machine learning model corresponding to a high-dimensional parameter subspace.
[0010] The parameter tuning device 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 from the target high-dimensional parameter subspace, and provides the user with one or more sets of software configuration parameters to be configured.
[0011] Using the above method, the parameter tuning device can divide the high-dimensional parameter space into M high-dimensional parameter subspaces of relatively similar size, achieving a uniform partition of the high-dimensional parameter space. The uniform partitioning into M high-dimensional parameter subspaces ensures that the subsequent M machine learning models can fully learn from their corresponding high-dimensional parameter subspaces, guaranteeing the quality of the machine learning models and ensuring the determination of one or more suitable sets of software configuration parameters, thus improving the efficiency of parameter tuning. Furthermore, the different learning methods of the M machine learning modules on the M high-dimensional parameter subspaces can improve the learning efficiency of the high-dimensional parameter space, accelerate the learning speed, and further enhance the efficiency of parameter tuning.
[0012] In one possible implementation, when the parameter tuning device partitions the high-dimensional parameter space based on one or more sets of software configuration parameters and corresponding software performance parameters, it can first use one or more sets of software configuration parameters and corresponding software performance parameters. Any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters. Any element represents the degree of similarity between two sets of parameters. Any set of parameters includes a set 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 partition the high-dimensional parameter space based on the similarity matrix.
[0014] By using the above methods, the spectral clustering algorithm and the similarity matrix to partition the high-dimensional parameter space can effectively ensure that multiple sets of parameters with high similarity are clustered together, thereby forming a high-dimensional parameter subspace.
[0015] In one possible implementation, when constructing the similarity matrix, the parameter tuning device can use a kernel function to measure the similarity of one or more sets of software configuration parameters and corresponding software performance parameters to generate a similarity matrix.
[0016] Using the above method and kernel functions, it is possible to measure the similarity of one or more sets of software configuration parameters and their corresponding software performance parameters in a relatively simple and efficient way, and quickly generate a similarity matrix.
[0017] In one possible implementation, when the parameter tuning device performs similarity measurements on one or more sets of software configuration parameters and their corresponding software performance parameters using kernel functions, it executes two measurements: one for the similarity of the software configuration parameters and the other for the similarity of the software performance parameters corresponding to those parameters. A similarity matrix is then generated based on the results of these two measurements. The weight of the similarity measurement results for the software performance parameters corresponding to those parameters can be increased in the similarity matrix to emphasize their importance.
[0018] For example, the parameter tuning device can use a kernel function to measure the similarity of one or more sets of software configuration parameters and generate a first similarity matrix, where any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters.
[0019] The parameter tuning device can use kernel functions to measure the similarity of software performance corresponding to one or more sets of software configuration parameters, and generate a second similarity matrix. Any element in the similarity matrix represents the degree of similarity between the software performance corresponding to two sets of software configuration parameters.
[0020] The parameter tuning device performs a weighted summation of the first similarity matrix and the second similarity matrix to generate a similarity matrix, wherein the weight of the second similarity matrix is greater than the weight of the first similarity matrix.
[0021] By using the above method, when generating the similarity matrix, increasing the weight of the similarity measurement results of software performance corresponding to one or more sets of software configuration parameters in the similarity matrix, that is, setting a larger weight for the second similarity matrix can prevent the software performance parameters from being overwhelmed when learning the high-dimensional parameter subspace in the subsequent process, ensuring that the subsequent learning of the corresponding high-dimensional parameter subspace by the machine learning model is supervised learning, and can accurately analyze the relationship between software configuration parameters and 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 dimensionality of the M high-dimensional parameter subspaces; and call M machine learning models to learn the M high-dimensional parameter subspaces after dimensionality reduction respectively.
[0023] By employing the methods described above, dimensionality reduction of the M high-dimensional parameter subspaces can reduce the amount of data required for machine learning models to learn from these subspaces, thereby improving learning efficiency. Furthermore, there are various manifold learning methods; for example, LE (manifold learning) can be used to reduce the dimensionality of the M high-dimensional parameter subspaces. In this way, LE can reuse the similarity matrix generated during the partitioning of the high-dimensional parameter space, further improving dimensionality reduction efficiency.
[0024] In one possible implementation, when the parameter tuning device determines one or more sets 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, it can use the conjugate direction method to determine one or more sets of software configuration parameters from the target high-dimensional parameter subspace that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.
[0025] Using the methods described above, the conjugate direction method can guarantee the rapid finding of the optimal solution of the machine learning model corresponding to the target high-dimensional parameter subspace.
[0026] In one possible implementation, when the parameter tuning device selects the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, it calls the Thompson sampling algorithm or the upper confidence bound algorithm to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.
[0027] Using the methods described above, multi-armed slot machine 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 may contain the optimal solution.
[0028] In one possible implementation, when the parameter tuning device provides the user with one or more sets of software configuration parameters to be configured, it can also prompt the user 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 the embodiments of this application, the parameter tuning device can provide the user with one or more sets of software configuration parameters to be configured through a parameter acquisition device, and acquire the set of software configuration parameters selected by the user through the parameter acquisition device.
[0029] Through the above method, the interaction between the parameter tuning device (via the parameter acquisition device) and the user enables the parameter tuning device to promptly display one or more sets of optional software configuration parameters to the user, and can also accurately obtain the set of software configuration parameters selected by the user.
[0030] In one possible implementation, the parameter tuning device can prompt the user to input software performance parameters corresponding to a set of software configuration parameters selected by the user, and obtain the software performance parameters corresponding to that set of software configuration parameters. In this embodiment, the parameter tuning device can prompt the user to input software performance parameters corresponding to a 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 methods, the interaction between the parameter tuning device (via the parameter acquisition device) and the user can promptly obtain the software performance parameters corresponding to the software configuration parameters.
[0032] Secondly, embodiments of this application also provide a parameter tuning device, which has the function of implementing the behavior in the method example of the first aspect described 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 corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the device structure includes a partitioning module, a learning module, and a filtering module. These modules can perform the corresponding functions in the method example of the first aspect described above, as detailed in the method example, and will not be repeated here.
[0033] Thirdly, this application also provides a computing device, which includes a processor and a memory, and may further include a communication interface. The processor executes program instructions stored in the memory to perform the method provided in the first aspect or any possible implementation thereof. The memory is coupled to the processor and stores program instructions and data necessary for determining parameter tuning. The communication interface is used to communicate with other devices, such as a set or more sets of software configuration parameters and corresponding software performance parameters already configured for software, or to send a set or more sets of software configuration parameters to be configured.
[0034] Fourthly, this application provides a computing device system including 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 code in the memory to execute the methods provided in the first aspect or any possible implementation thereof.
[0035] Fifthly, this application provides a computer-readable storage medium that, when executed by a computing device, performs the method provided in the first aspect or any possible implementation thereof. The storage medium stores a program. The storage medium includes, but is not limited to, volatile memory, such as random access memory, and non-volatile memory, such as flash memory, hard disk drive (HDD), and solid-state drive (SSD).
[0036] Sixthly, this application provides a computing device program product, which includes computer instructions that, when executed by a computing device, enable the computing device to perform the methods provided in the first aspect or any possible implementation thereof. The computer program product can be a software installation package, which can be downloaded and executed on a computing device when the methods provided in the first aspect or any possible implementation thereof are required.
[0037] In a seventh aspect, this application also provides a computer chip connected to a memory, the chip being used to read and execute a software program stored in the memory, and to execute the methods described in the first aspect and various possible implementations of the first aspect. Attached Figure Description
[0038] Figure 1 A schematic diagram of the structure of a parameter tuning system provided in this application;
[0039] Figures 2A to 2C This application provides a deployment diagram of a parameter tuning system.
[0040] Figure 3 A flowchart of a parameter tuning method provided in this application;
[0041] Figure 4A A schematic diagram of a software configuration parameter display interface 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] Figures 6-8 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0045] Figure 9A flowchart of another parameter tuning method provided in this application. Detailed Implementation
[0046] Before describing the parameter tuning method provided in the embodiments of this application, some concepts involved in the embodiments of this application will be explained first:
[0047] (1) Software configuration parameters and software performance parameters.
[0048] In this embodiment, the parameters required for software operation are referred to as software configuration parameters, which are a type of parameter that affects software performance. Parameters that reflect software performance are referred to as software performance parameters.
[0049] Before software can run normally, its configuration parameters need to be set. Only then can the software start running based on these configuration parameters and complete its tasks. The performance of the software during operation based on these configuration parameters can be characterized by software performance parameters. Software configuration parameters and software performance parameters are corresponding.
[0050] Different types of software require varying numbers and attributes of configuration parameters. Software like big data engines and databases typically require hundreds or even thousands of configuration parameters to ensure their operation. Different configuration parameters result in different performance characteristics for the software. Furthermore, software performance is not only related to configuration parameters but is also constrained by the performance of the computing device on which it runs. Even with the same configuration parameters, the same software running on different computing devices will exhibit different performance. The performance of the computing device usually refers to its computing power, while software performance refers to its ability to execute related tasks, specifically reflected in latency or the accuracy and success rate of its output.
[0051] When configuring software parameters, the goal is to achieve the best possible software configuration within the performance limits of the computing device on which the software runs.
[0052] In this embodiment, 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 software performance. Since there are usually multiple software configuration parameters for software operation, for ease of explanation, the multiple software configuration parameters set for each software operation are referred to as a set of software configuration parameters.
[0053] Regarding software performance parameters, any parameter that can reflect software performance can be used as a software performance parameter. This application does not limit the specific method of generating these parameters. For example, a specific software performance evaluation algorithm can be set, and the software performance parameters can be obtained by the algorithm based on the software's running state. Another example is that the software performance parameters are set by the software user.
[0054] In the parameter tuning method provided in this application embodiment, software performance parameters are the primary basis for tuning software configuration parameters. This application embodiment does not limit the number of software performance parameters corresponding to each group of software configuration parameters; the number of software performance parameters depends on how they are generated. This application embodiment only illustrates the example of one software performance parameter per group of software configuration parameters. In fact, in practical applications, each group of software configuration parameters can also correspond to multiple software performance parameters. In this case, the parameter tuning method is similar to the method when each group of software configuration parameters can also correspond to one software performance parameter; the only difference is the number of software performance parameters.
[0055] (2) Kernel function.
[0056] A kernel function is a function that takes a vector in the original space as input and returns the dot product of vectors in the feature space. The transformation function from the original space to the feature space is φ(x), where x represents a vector in the original space.
[0057] The kernel function K(p,q) can be expressed as: K(p,q)=φ(p),φ(q).
[0058] By using kernel functions, data can be mapped to a high-dimensional space (generally referring to the feature space), and then comparisons between data can be transformed into comparisons between dot products.
[0059] There are many types of kernel functions, such as linear kernel functions. A linear kernel function K(p,q) can be expressed as: K(p,q)=pT q+c, where c is a constant and T indicates transpose.
[0060] For example, a polynomial kernel, 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 the kernel function K(p,q) involves φ(p) and φ(q), in the actual calculation of K(p,q), K(p,q) can be obtained using φ(p) and φ(q), or the kernel function K(p,q) can be solved directly. For example, K(p,q) can be calculated directly using the expression of the linear kernel function. This can directly guide the vector in the original space to the higher-dimensional space.
[0062] (3) Machine learning.
[0063] Machine learning is a specialized method of "learning" that studies how computers acquire new knowledge or skills by simulating or replicating human learning behavior. Machine learning researches and builds a special type of "model" that allows computing devices to learn from data and make predictions by running that model.
[0064] In simple terms, the "model" that machine learning researches and builds can be understood as a function, which is represented here as y = F(x). Machine learning builds this function by learning from data (usually the data being learned can also be called sample data). After learning is complete, by inputting x into this function, y can be obtained, which is the prediction result of x.
[0065] The learning process of data can be viewed as the construction process of the function, such as adjusting the parameters of the function to ensure that the constructed function can conform to the potential patterns of the sample data, and thus the function can be extended to data beyond the sample data.
[0066] It is evident that the learning process determines the quality of the model. The higher the quality of the model, the stronger its predictive ability, which means that the model's output (i.e., y) is more accurate.
[0067] In this application embodiment, the model constructed using machine learning is referred to as a machine learning model. There are many types of machine learning models, such as linear regression, logistic regression, linear discriminant analysis, decision tree, Bayes theorem, K-nearest neighbors, learning vector quantization, support vector machine, and random forest.
[0068] (4) High-dimensional parameter space.
[0069] In this embodiment, the high-dimensional space comprised of all sets of software configuration parameters that can be configured to the software and the corresponding software performance parameters is called the high-dimensional parameter space. The size of this 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 the software configuration parameters and their corresponding software performance parameters are the data. A high-dimensional parameter space can be viewed as a "data set" composed of an infinite number or a vast number of high-dimensional vectors. Any high-dimensional vector (x, y) represents a set of software configuration parameters and its corresponding software performance parameters, and is a "spatial point" in this high-dimensional parameter space. Here, x refers to a set of software configuration parameters, and y is its corresponding software performance parameter.
[0071] It should be noted that in a high-dimensional parameter space, the y in a given high-dimensional vector does not necessarily represent the actual, collected set of software configuration parameters corresponding to the software performance parameter; rather, y represents one possible value for the software performance parameter. Extending this to machine learning models, x in this high-dimensional vector is an input to the machine learning model, and y in this high-dimensional vector is an output of the machine learning model.
[0072] In this embodiment of the application, the set or more sets of software configuration parameters and their corresponding software performance parameters collected by the parameter acquisition device belong to the high-dimensional parameter space and are "spatial points" in the high-dimensional parameter space.
[0073] The goal of a parameter tuning device is to find one or more sets of optimal software configuration parameters in a high-dimensional parameter space. The parameter tuning method performed by the parameter tuning device can be understood as a method for finding the "optimal solution".
[0074] (5) Spectral Clustering Algorithm.
[0075] Spectral graph clustering, also known as spectral clustering, is a simple clustering algorithm. It treats the data to be classified as nodes in a graph, where edges between closer nodes have higher weights and edges between farther nodes have lower weights. The graph is then divided into multiple subgraphs, where the weights of edges between subgraphs should be as small as possible, while the weights of edges within the same subgraph should be as large as possible.
[0076] Spectral clustering algorithms first require setting an affinity matrix (such as the K mentioned in the embodiments of this application) that can describe the similarity between data based on 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] Manifolds are a general term for geometric objects, encompassing curves and surfaces of various dimensions. Manifold learning is a dimensionality reduction method that allows data from a high-dimensional space to be represented in a low-dimensional space.
[0079] In manifold learning, it is assumed that the data being processed is sampled from a manifold (data can be viewed as points on that manifold), or that there exists a potential manifold that can cover the data being processed.
[0080] Since points on a manifold do not have specific coordinates, in order to represent points on a manifold, we can put the points on the manifold into the ambient space and use the coordinates in the ambient space to represent the points on the manifold.
[0081] Therefore, manifold learning can be summarized as follows: while preserving certain geometric properties of points on the manifold, find a set of corresponding intrinsic coordinates and unfold the manifold as well as possible in a low-dimensional space. These intrinsic coordinates in the low-dimensional space are also called intrinsic features, and the dimension of the outer space is called the observation dimension. Its representation is called natural coordinates, which is statistically known as observation.
[0082] Common manifold learning methods include: isomap, locally linear embedding (LLE), Laplacian eigenmaps (LE), and locality-preserving projection (LPP).
[0083] Taking Graph Embedding (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, while preserving the local adjacency relationships 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 this embodiment, dimensionality reduction for high-dimensional parameter subspaces or high-dimensional parameter spaces can be achieved using manifold learning. This embodiment does not limit the specific manifold learning method used; any manifold learning method capable of reducing the dimensionality of high-dimensional parameter subspaces or high-dimensional parameter spaces is applicable to this embodiment.
[0085] (7) Eigen decomposition.
[0086] Eigenvalue decomposition, also known as spectral decomposition, is a process that decomposes a matrix into a product of matrices constructed from its eigenvalues and eigenvectors.
[0087] For example, if A is an N×N square matrix with N linearly independent eigenvectors, then the eigenvalue decomposition of matrix A is as follows:
[0088] A = QΛQ -1
[0089] Here, Q is an N×N square matrix, and its i-th column 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 and Upper Confidence Bound.
[0091] The Thompson sampling algorithm is an algorithm that uses Bayes' theorem to evaluate which sample is more likely to be optimal during sampling. In the embodiments of this application, the Thompson sampling algorithm can be used to evaluate the potential of M high-dimensional parameter subspaces and select the high-potential high-dimensional parameter subspace from them. Here, "potential" refers to the high probability that there is a set of one or more sets of software configuration parameters within the high-dimensional parameter subspace that can significantly improve software performance.
[0092] The upper confidence bound algorithm employs statistical thinking to calculate the average payoff and standard deviation for each "choice" (action, which can also be understood as an action involving multiple data points) across all experimental data. This results in a confidence interval, with the upper bound representing the maximum payoff achievable with that choice. This upper confidence bound is used as the estimated return for each "choice." In this embodiment, the upper confidence bound algorithm can be used to evaluate the potential of M high-dimensional parameter subspaces (i.e., each high-dimensional parameter subspace can be understood as a choice), selecting the most promising high-dimensional parameter subspace. Here, "potential" refers to the high probability that one or more sets of software configuration parameters within the high-dimensional parameter subspace can significantly improve software performance.
[0093] Thompson's sampling algorithm and the upper confidence bound algorithm are two specific algorithms in the multi-arm-bandit algorithm. Here, Thompson's sampling algorithm and the upper confidence bound algorithm are only used as examples for illustration. In the embodiments of this 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 finding unconstrained optimal solutions along conjugate directions. It is a general term encompassing all methods that utilize conjugate directions to find optimal solutions. Common conjugate direction methods include the conjugate gradient method and Powell's method.
[0096] In simple terms, the process of finding the optimal solution using the conjugate direction method is as follows: For a high-dimensional space (such as the high-dimensional parameter space and high-dimensional parameter subspace mentioned in the embodiments of this application), n conjugate vectors can be selected as the "basis vectors" of the n-dimensional space. For a function defined in the high-dimensional space (such as the machine learning model mentioned in the embodiments of this application, which can be regarded as a special "function"), a straight line search is performed along each "basis vector". Then, the optimal solution of the function can be obtained in at most n searches.
[0097] In this embodiment, the parameter tuning device 200 acquires one or more sets of software configuration parameters and their corresponding software performance parameters that have been configured for the software. Based on these one or more sets of software configuration parameters and their corresponding software performance parameters, the high-dimensional parameter space is divided into M high-dimensional parameter subspaces. Wherein, the similarity of data included in any high-dimensional parameter subspace 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 data threshold, and M is a positive integer.
[0098] The parameter tuning device 200 calls M machine learning models to learn from M high-dimensional parameter subspaces respectively, with each machine learning model corresponding 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 similar size, it ensures that the amount of data learned by each subsequent machine learning model is the same. Each machine learning model can fully understand the relationship between each set of software configuration parameters and their corresponding software performance parameters in the corresponding high-dimensional parameter space, so that the machine learning model achieves high quality, which makes it easier to determine one or more sets of software configuration parameters that can more effectively improve software performance.
[0101] like Figure 1 The diagram shown is a structural schematic of a parameter tuning system provided in an embodiment of this application. The parameter tuning system 10 includes a parameter acquisition device 100 and a parameter tuning device 200.
[0102] The parameter acquisition device 100 can acquire the software configuration parameters that have been configured to the software and their corresponding software performance parameters.
[0103] For the user, the parameter acquisition device 100 can provide the user with one or more sets of configurable software configuration parameters, which can be transmitted from the parameter tuning device 200 to the parameter acquisition device 100. The parameter acquisition device 100 can also acquire one or more sets of software configuration parameters already configured for the software and record these software configuration parameters.
[0104] After the software runs based on a set of software configuration parameters, the parameter acquisition device 100 can acquire the software performance parameters corresponding to the set of software configuration parameters.
[0105] The parameter acquisition device 100 transmits 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 embodiments of this application. After obtaining one or more sets of software configuration parameters and their corresponding software performance parameters from the parameter acquisition device 100, the parameter tuning device 200 can output a new set of one or more sets of software configuration parameters that can improve software performance based on the set of one or more sets of software configuration parameters and their corresponding software performance parameters, and transmit the set of one or more sets of software configuration parameters to the parameter acquisition device 100.
[0107] In this embodiment of the application, the parameter tuning device 200 needs to have some or all of the following functions:
[0108] Function 1: Uniformly divide the high-dimensional parameter space.
[0109] The parameter tuning device 200 can divide a high-dimensional parameter space into M high-dimensional parameter subspaces of similar size. These M high-dimensional parameter subspaces satisfy the following conditions: the similarity of data included in any high-dimensional parameter subspace is no greater than a similarity threshold, and the difference in the number of data included in any two high-dimensional parameter subspaces is no greater than a quantity threshold. The specific values of the similarity threshold and the quantity threshold are related to the method by which the parameter tuning device 200 divides the high-dimensional parameter space.
[0110] By uniformly 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 (i.e., significant differences in the size of the high-dimensional parameter subspaces), so as to ensure the learning effect of the subsequent machine learning model on the M high-dimensional parameter subspaces.
[0111] Function 2: Dimensionality reduction of high-dimensional parameter spaces (or high-dimensional parameter subspaces).
[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 high-dimensional vectors in the high-dimensional parameter space (or high-dimensional parameter subspace).
[0113] By reducing the dimensionality of the high-dimensional parameter space (or high-dimensional parameter subspace), the learning speed of subsequent machine learning models on the high-dimensional parameter subspace can be accelerated, thereby improving learning efficiency.
[0114] Function 3: 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. 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] By leveraging machine learning models, we can better understand the potential relationships between software configuration parameters and software performance parameters, ensuring that we can subsequently find one or more optimal sets of software configuration parameters. The parameter tuning device 200 can call multiple machine learning models, which can accelerate the learning efficiency of the entire high-dimensional parameter space. Moreover, each machine learning model only learns from one high-dimensional parameter subspace, which can guarantee 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 of having one or more sets of software configuration parameters that can maximize the improvement of software performance is the highest in the target high-dimensional parameter subspace.
[0119] The parameter tuning device 200 can search for the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces by means of the Upper Confidence Bound (UCB) algorithm or the Thompson sampling method.
[0120] Function 5: Optimal solution filtering function.
[0121] The parameter tuning device 200 can use a conjugate direction optimizer to find one or more sets of software configuration parameters from a high-dimensional parameter subspace that maximize the software performance parameters. Here, the maximum value of the software performance parameters is the maximum value that the software performance parameters can achieve within this high-dimensional parameter subspace.
[0122] In this embodiment of the 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, to find one or more sets of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter space.
[0123] This application does not limit the deployment method of the parameter acquisition device 100 and the parameter tuning device 200. This application provides three deployment methods.
[0124] Method 1: Deploy close to the user side.
[0125] like Figure 2A As shown, the parameter acquisition device 100 and the parameter tuning device 200 are deployed close to the user. These devices can be deployed on a user-side computing device to provide parameter tuning functionality. The computing device can be a laptop, a personal desktop computer, or the user's mobile terminal, etc.
[0126] The parameter acquisition device 100, as the "front end" of the parameter tuning system 10, interacts with the user, provides the user with one or more sets of optional software configuration parameters, and can also acquire one or more sets of software configuration parameters and software performance parameters that have been set for the software.
[0127] The parameter tuning device 200, acting as the "back end" of the parameter tuning system 10, outputs a new set of software configuration parameters based on one or more sets of software configuration parameters and their software performance parameters acquired from the parameter acquisition device 100. These software configuration parameters are then provided to the user through the parameter acquisition device 100.
[0128] The parameter acquisition device 100 and the parameter tuning device 200 can be hardware devices, such as the parameter acquisition device 100 or the parameter tuning device 200 being a processor, a module within the processor, or an accelerator card in the computing device. The parameter acquisition device 100 and the parameter tuning device 200 can also be software modules, such as the parameter acquisition device 100 or the parameter tuning device 200 being software running on the processor or accelerator card in the computing device.
[0129] Method 2: Distributed deployment.
[0130] The parameter acquisition device 100 can be deployed close to the user. The parameter tuning device 200 can be deployed far from the user.
[0131] like Figure 2B As shown, the parameter acquisition device 100 is deployed on the user's computing device, interacts with the user, and collects one or more sets of software configuration parameters and software performance parameters.
[0132] The parameter tuning device 200 is deployed on other computing devices or a cluster of computing devices, which can be servers with high computing power. The computing device cluster includes multiple computing devices that work together to achieve the functions of the parameter tuning device 200.
[0133] The parameter acquisition device 100 and the parameter tuning device 200 are connected via a network. The parameter acquisition device 100 can transmit one or more sets of acquired software performance parameters to the parameter tuning device 200 via the network. The parameter tuning device 200 can transmit one or more sets of newly generated software configuration parameters (i.e., one or more sets of software configuration parameters to be configured) to the parameter acquisition device 100 via the network.
[0134] Method 3: Deployment away from the user side.
[0135] like Figure 2C As shown, the parameter acquisition device 100 and the parameter tuning device 200 are deployed in a location far from the user. The user can interact with the parameter acquisition device 100 through a computing device on the user side to obtain one or more sets of software configuration parameters that can be configured for the software. The user can also transmit one or more sets of software configuration parameters and their corresponding software performance parameters that have been configured for the software to the data parameter device through the computing device on the user side.
[0136] For example, parameter acquisition device 100 and parameter tuning device 200 can be deployed in the cloud to provide cloud services for tuning software configuration parameters. Parameter acquisition device 100 or parameter tuning device 200 can be deployed in edge data centers, cloud data centers, or on terminal computing devices. Parameter acquisition device 100 or parameter tuning device 200 can also be distributed and deployed in some or all of the environments of edge data centers, cloud data centers, and terminal computing devices.
[0137] Users can subscribe to the cloud service and install client software on their computing devices for transmitting data with the parameter acquisition device 100. Users can use this client software to request one or more sets of available software configuration parameters from the parameter acquisition device 100, and also to provide feedback to the parameter acquisition device 100 with one or more sets of configured software configuration parameters and their corresponding software performance parameters.
[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 via client software. It can also send one or more sets of software configuration parameters and their corresponding software performance parameters transmitted from the client software to the parameter tuning device 200.
[0139] The following is combined with, for example Figure 3 This application provides a parameter tuning method according to an embodiment, which includes:
[0140] Step 301: The parameter acquisition device 100 acquires one or more sets of software configuration parameters and their corresponding software performance parameters.
[0141] This application does not limit the way in which the parameter acquisition device 100 performs step 301. Several possible ways are listed below.
[0142] (i) The parameter acquisition 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. Here, we will only take the method of obtaining one set of software configuration parameters and their corresponding software performance parameters as an example. A similar method can be used to acquire each set of software configuration parameters and their corresponding software performance parameters.
[0143] First, for users, the parameter acquisition device 100 can display a visual software configuration parameter interface. Users can browse the software configuration parameter display interface to view one or more sets of optional software configuration parameters, and then select the set of software configuration parameters that need to be set for the software.
[0144] Subsequently, the parameter acquisition device 100 detects that the user has selected one or more sets of software configuration parameters and determines the set of software configuration parameters selected by the user.
[0145] Then, the set of software configuration parameters is set for the software, and the software runs based on these parameters. This configuration of the software parameters can be performed by the parameter acquisition device 100 or by the user, such as when the user sets a selected set of software configuration parameters for the software.
[0146] After the software runs based on the software configuration parameters, the parameter acquisition device 100 can collect the software performance parameters corresponding to the set of software configuration parameters.
[0147] Software performance parameters can be provided by the user to the parameter acquisition device 100. For example, a quantification method for reflecting software performance may be pre-agreed upon with the user. Based on this quantification method, the user determines specific quantified values according to the software's state during operation, and these quantified values can serve as software performance parameters. The parameter acquisition device 100 displays a visual input interface for software performance parameters to the user. The user can input the software performance parameters corresponding to the set of software configuration parameters according to the prompts on the input interface.
[0148] Software performance parameters can also be measured by the parameter acquisition device 100 itself. For example, the parameter acquisition device 100 has a built-in algorithm for generating software performance parameters. When the software is running based on the software configuration parameters, the parameter acquisition device 100 can call the algorithm to obtain the software performance parameters corresponding to the set of software configuration parameters.
[0149] like Figure 4A The diagram illustrates an interface for displaying software configuration parameters according to an embodiment of this application. The interface displays three sets of selectable software configuration parameters, each with a name. Users can view each set of software configuration parameters on this interface. Users can select a set of software configuration parameters by checking one or more boxes.
[0150] like Figure 4B The above is a schematic diagram of an input interface for software performance parameters provided in an embodiment of this application. The interface displays a set of software configuration parameters that the user has selected and prompts the user to enter the software performance parameters corresponding to the set of software configuration parameters.
[0151] (ii) The parameter acquisition device 100 interacts with the user via email, SMS, or other means to obtain one or more sets of software configuration parameters and their corresponding software performance parameters from the user.
[0152] The parameter acquisition device 100 can provide users with one or more optional sets of software configuration parameters via email, SMS, or other means. After providing users with one or more optional sets of software configuration parameters, the parameter acquisition device 100 can request users from the user via email, SMS, or other means the one or more sets of software configuration parameters that have been configured to the software and their corresponding software performance parameters.
[0153] Step 302: The parameter acquisition device 100 sends one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200.
[0154] When the parameter acquisition device 100 and the parameter tuning device 200 are deployed on the same computing device (such as the aforementioned deployment method close to the user side), the parameter acquisition device 100 and the parameter tuning device 200 can interact directly to transmit one or more sets of software configuration parameters and their corresponding software performance parameters.
[0155] When the parameter acquisition device 100 and the parameter tuning device 200 are deployed on different computing devices (such as using the aforementioned distributed deployment method), the parameter acquisition device 100 and the parameter tuning device 200 can interact through the network to transmit one or more sets of software configuration parameters and their corresponding software performance parameters.
[0156] Step 303: The parameter tuning device 200 tunes the software configuration parameters and their corresponding software performance parameters to generate a new set of software configuration parameters.
[0157] When performing step 303, the parameter tuning device 200 may specifically perform the following steps:
[0158] Step 3031: The parameter tuning device 200 divides the high-dimensional parameter space to generate M high-dimensional parameter subspaces. The M high-dimensional parameter subspaces satisfy the following: 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] This application does not limit the way the parameter tuning device 200 performs step 3031. The following describes a method for partitioning a high-dimensional parameter space provided by this application.
[0160] Here, it is assumed that the parameter acquisition device 100 acquires n sets of software configuration parameters, namely X1, X2, X3...Xn, where X1, X2, X3... or Xn can be regarded as a vector containing multiple elements, where each element is a software configuration parameter. The multiple software configuration parameters Y corresponding to these n sets of software configuration parameters are Y1, Y2, Y3...Yn, where Y1, Y2, Y3... or Yn can be regarded as scalars.
[0161] The n sets of software configuration parameters can be constructed into a matrix X, i.e., X = [X1, X2, ..., Xn]. The n software performance parameters can be constructed into a vector Y, i.e., Y = [Y1, Y2, ..., Yn].
[0162] Step 1: Use kernel function K to measure the similarity of the n sets of software configuration parameters X, obtaining the first similarity matrix K(X,X). K(X,X) represents the similarity between any two sets of software configuration parameters. K(X,X) is an n*n matrix S1, where each element of matrix S1 represents the similarity between the two sets of software configuration parameters X. For example, an element s1 in matrix S1... ij Let be 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 kernel function K to measure the similarity of the n software performance parameters Y, obtaining a second similarity matrix K(Y,Y). K(Y,Y) represents the similarity between any two software performance parameters, and K(Y,Y) is an n*n matrix S2, where each element of matrix S2 represents the similarity between the two software performance parameters. For example, an element s2 in matrix S2... ij Let be 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 element s2, respectively.
[0164] Step 3: Perform a weighted summation of 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 the weights set for K(X,X) and K(Y,Y).
[0166] Step 4: Call the Spectral Clustering algorithm, based on K... XY Divide the high-dimensional parameter space into M high-dimensional parameter subspaces.
[0167] Specifically, ①, call the spectral clustering algorithm based on KXY Perform spectral clustering on n sets of software configuration parameters and their corresponding software performance parameters, and divide the n sets of software configuration parameters and their corresponding software performance parameters into two categories.
[0168] ② Based on the classification results in ①, that is, the categories to which the n sets of software configuration parameters and their corresponding software performance parameters belong, train a vector machine. The input of this vector machine is a set of software configuration parameters, and its output is the category to which the set 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 ease of explanation, each space formed after this division is called a first-level subspace.
[0170] ④ For any first-level subspace, among the n sets of software configuration parameters and their corresponding software performance parameters belonging to that first-level subspace, call the spectral clustering algorithm based on K... XY Perform spectral clustering to classify multiple sets of software configuration parameters and their corresponding software performance parameters belonging to this first-level subspace into two categories. ④ The execution method is similar to ①, the only difference being the number of sets of software configuration parameters and their corresponding software performance parameters that need to be classified.
[0171] ⑤ Based on the classification results in ④, that is, the categories to which the multiple sets of software configuration parameters and their corresponding software performance parameters belonging to this first-level subspace belong, train a vector machine. The input of this vector machine is a set of software configuration parameters and their corresponding software performance parameters, and its output is the category to which the set 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 second-level subspace can be bisected. The method for bisecting any second-level subspace is similar to the method for bisecting any first-level subspace. For details, please refer to the aforementioned content.
[0174] Each space formed after a binary split is further split into M spaces, which are M high-dimensional parameter subspaces.
[0175] As mentioned earlier, the n sets of software configuration parameters and their corresponding software performance parameters acquired by the parameter tuning device 200 are only a portion of the "spatial points" in the high-dimensional parameter space. Dividing the high-dimensional parameter space involves dividing all the "spatial points" contained within it. Dividing the high-dimensional parameter space involves drawing "dividing lines" to separate different high-dimensional parameter subspaces. When using the Spectral Clustering algorithm to divide the high-dimensional parameter space, the n sets of software configuration parameters and their corresponding software performance parameters are first clustered, allowing the vector machine to learn this clustering method. Thus, the trained vector machine only needs to input any set of software configuration parameters and their corresponding software performance parameters to output its category. The trained vector machine possesses the function of drawing "dividing lines." Furthermore, the bisection method was mentioned earlier, meaning that each partition divides the space in half. This partitioning method can ensure a high degree of uniformity in the resulting space. After performing multiple bisections, M high-dimensional parameter subspaces of relatively similar sizes can be obtained.
[0176] The use of Spectral Clustering to partition the high-dimensional parameter space ensures that the resulting M high-dimensional parameter subspaces are of uniform size, guaranteeing a high success rate for space partitioning. Furthermore, by employing kernel functions to measure the similarity of software configuration parameters and performance parameters across groups, highly similar configuration parameters and performance parameters are grouped into the same high-dimensional parameter subspace. Moreover, different weights are assigned to K(X,X) and K(Y,Y) when forming Kxy, preventing the large number of configuration parameters from overwhelming performance parameters or failing to highlight their importance. Using weighted Kxy to partition the high-dimensional parameter space fully considers the impact of performance parameters, resulting in a more reasonable partitioning of the high-dimensional parameter space. This further ensures that the machine learning model can learn from the high-dimensional parameter subspace, improving the quality of the machine learning model.
[0177] After uniformly dividing the high-dimensional parameter space into M high-dimensional parameter subspaces, step 3032 can be executed.
[0178] Step 3032: For any high-dimensional parameter subspace, the parameter tuning device 200 performs dimensionality reduction on the high-dimensional parameter subspace based on the dimension parameter k. The dimension of the dimensionality-reduced high-dimensional parameter subspace satisfies the dimension parameter k.
[0179] The dimension of this high-dimensional parameter subspace is the dimension of the high-dimensional vectors in this high-dimensional parameter subspace. Dimension reduction of this high-dimensional parameter subspace is equivalent to reducing the dimension of any high-dimensional vector in the high-dimensional parameter subspace.
[0180] The parameter tuning device 200 reduces the dimensionality of the high-dimensional parameter subspace based on the dimension parameter. There are many ways to make the dimension of the reduced high-dimensional parameter subspace satisfy the dimension parameter.
[0181] For example, if the dimension of any high-dimensional vector in the high-dimensional parameter subspace is l+k, the parameter tuning device 200 can delete the first l elements of the high-dimensional vector. The dimension of the high-dimensional vector after removing the l elements is K.
[0182] For example, for any high-dimensional vector in the high-dimensional parameter subspace, the parameter tuning device 200 can sum the multiple elements included in the high-dimensional vector pairwise, and use the sum of the two elements as one element of the high-dimensional vector after dimensionality reduction. If the dimension of the high-dimensional vector formed after pairwise summation is still greater than k, the multiple elements included in the high-dimensional vector formed after pairwise summation can continue to be summed pairwise until the dimension of the high-dimensional vector after pairwise summation is equal to K.
[0183] In this embodiment, the parameter tuning device 200 can utilize manifold learning to reduce the dimensionality of the high-dimensional parameter subspace. Here, we will illustrate this using the parameter tuning device 200's use of LE to reduce the dimensionality of the high-dimensional parameter subspace as an example. First, the parameter tuning device 200 can, based on K... XY Eigen decomposition is performed to obtain multiple eigenvalues and their corresponding eigenvectors. Then, the eigenvectors corresponding to the k largest eigenvalues are selected and used as basis vectors for the data space. Finally, these k basis vectors are used to map the high-dimensional parameter subspace to a k-dimensional data space, which is the dimensionality-reduced high-dimensional parameter subspace.
[0184] Step 3023 reduces the dimensionality of the high-dimensional parameter subspace, decreasing the amount of data it contains. This improves the speed at which the machine learning model learns from the high-dimensional parameter subspace, ensuring its learning efficiency. Using manifold learning to reduce the dimensionality of the high-dimensional parameter subspace preserves valid data while filtering out invalid or less important data, ensuring the machine learning model can accurately learn from it and improving its quality.
[0185] The foregoing explanation uses the example of executing step 3031 first, followed by step 3032. In practical applications, one can first reduce the dimensionality of the high-dimensional parameter space based on the dimensionality parameter (the method of reducing the dimensionality of the high-dimensional parameter space based on the dimensionality parameter is similar to the method of reducing the dimensionality of the high-dimensional subspace in step 3032; see the foregoing for details, which will not be repeated here), and then partition the dimensionality-reduced high-dimensional parameter space (the method of uniformly partitioning the dimensionality-reduced high-dimensional parameter space is similar to the method of uniformly partitioning the high-dimensional parameter space in step 3031; see the foregoing for details, which will not be repeated here).
[0186] It should be noted that step 3032 is optional. In practical applications, the dimensionality reduction of the high-dimensional parameter space can be omitted, and step 3033 can be executed directly. This explanation only uses the execution of step 3032 as an example, and for the sake of brevity, the high-dimensional parameter subspace mentioned in subsequent steps refers to the dimensionality-reduced high-dimensional parameter subspace.
[0187] Step 3033: The parameter tuning device 200 assigns a corresponding high-dimensional parameter subspace to each machine learning model and triggers each machine learning model to learn the corresponding high-dimensional parameter subspace.
[0188] The machine learning model is a pre-configured model. Its input is a set of software configuration parameters represented by high-dimensional vectors in the high-dimensional parameter subspace, and its output is the corresponding software configuration parameters. For each set of input software configuration parameters, the machine learning model outputs the corresponding software configuration parameters.
[0189] The process by which a machine learning model learns from data in its corresponding high-dimensional parameter subspace is an iterative process of continuously adjusting the machine learning model's own parameters using various sets of software configuration parameters and their corresponding software configuration parameters. The term "iteration" refers to the process by which the machine learning model adjusts its own parameters using the output software configuration parameters each time it is input into a set of software configuration parameters. One iteration is the process by which the machine learning model adjusts its own parameters using the output software configuration parameters each time it is input into a set of software configuration parameters.
[0190] The parameter tuning device 200 can configure convergence conditions for the machine learning model. When the machine learning model learns from the data in the corresponding high-dimensional parameter subspace, it stops learning if the convergence condition is met. The specific content of the convergence condition is not limited in this embodiment. For example, the convergence condition can be the maximum number of iterations; the machine learning model stops learning after reaching the maximum number of iterations in learning from the data in the corresponding high-dimensional parameter subspace. Alternatively, the convergence condition can be the maximum learning time; the machine learning model stops learning after reaching the maximum learning time in the corresponding high-dimensional parameter subspace. Any condition that can control the machine learning model to stop learning from the high-dimensional vectors in the corresponding high-dimensional parameter subspace can be used as a convergence condition.
[0191] Furthermore, different types of machine learning models employ different methods to learn high-dimensional vectors in their corresponding high-dimensional parameter subspaces. This application does not limit the type of machine learning model; such models can be linear regression, logistic regression, linear discriminant analysis, decision tree, Bayes theorem, K-nearest neighbors, learning vector quantization, support vector machine, or random forest.
[0192] When the machine learning model is a random forest, the C4.5 algorithm can be used to learn the corresponding high-dimensional parameter subspace. When the machine learning model is a linear regression, the kernel function method can be used to learn the corresponding high-dimensional parameter subspace.
[0193] After the M machine learning models learn from their corresponding high-dimensional parameter subspaces, each model can predict the corresponding software performance parameters for any set of software configuration parameters represented by any high-dimensional vector within the high-dimensional parameter subspace. If the machine learning model performs well, its quality is higher, and its predicted software performance parameters are more accurate and closer to the actual software performance parameters generated after the software runs based on that set of software configuration parameters.
[0194] The probability of the existence of one or more sets of software configuration parameters that maximize software performance parameters differs within any of the M high-dimensional parameter subspaces. In other words, the probability of the existence of one or more sets of software configuration parameters that achieve optimal software performance differs within any high-dimensional parameter subspace. Here, the "maximum value of the software performance parameters" or the "optimal state of software performance" is constrained by certain factors, including but not limited to: the quality of the current machine learning model, the distribution of the M high-dimensional parameter subspaces within the high-dimensional parameter space, and the computational power of the invoked algorithm (such as conjugate methods, spectral clustering algorithms, manifold learning, Thompson sampling algorithms, upper confidence bound algorithms, etc.). Therefore, the set of one or more sets of software configuration parameters that maximize software performance parameters mentioned in the embodiments of this application refers to one or more sets of software configuration parameters that, under the constraints of these factors, enable the "maximum value of the software performance parameters" or the "optimal state of software performance."
[0195] The purpose of the parameter tuning device 200 in tuning the software configuration parameters is to find one or more sets of software configuration parameters. To this end, the parameter tuning device 200 needs to find, from the M high-dimensional parameter subspaces, a high-dimensional parameter subspace containing one or more sets of software configuration parameters that can significantly improve software performance. 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 a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces. This target high-dimensional parameter subspace is the most promising high-dimensional parameter subspace among the M high-dimensional parameter subspaces. It is the high-dimensional parameter subspace among the M high-dimensional parameter subspaces with the highest probability of containing one or more sets of software configuration parameters that maximize the improvement of software performance parameters.
[0197] Based on the premise of using Spectral Clustering to divide a high-dimensional parameter space into M high-dimensional parameter subspaces, and employing a binary search approach to progressively divide the high-dimensional parameter space, this binary search process can be represented by a binary tree. In this binary tree, the root node represents the high-dimensional parameter space. Starting from the root node, each node is binary searched from top to bottom, splitting it into two nodes, until finally forming M leaf nodes, each leaf node representing a high-dimensional parameter subspace. The statistical measure of the M leaf nodes is evaluated using UCB. The statistical measure of each leaf node is the probability, calculated based on UCB, that there exists one or more sets of software configuration parameters within the space represented by that leaf node that maximize the software performance parameters. This statistical measure can be understood as the "potential" of the space represented by that leaf node.
[0198] From the M leaf nodes, select the leaf node with the largest statistic. The high-dimensional parameter subspace represented by this 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 has generated one or more new sets of software configuration parameters, and the parameter tuning device 200 can execute step 304.
[0201] Step 304: The parameter tuning device 200 transmits one or more sets of generated software configuration parameters to the parameter acquisition device 100. The method by which the parameter tuning device 200 transmits one or more sets of generated software configuration parameters to the parameter acquisition device 100 is similar to that in step 302, where the parameter acquisition device 100 sends one or more sets of acquired software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200. For details, please refer to the foregoing description, which will not be repeated here.
[0202] Step 305: The parameter acquisition device 100 displays 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 the software.
[0203] In step 301, the methods by which the parameter acquisition device 100 displays one or more sets of software configuration parameters to the user are listed. For details, please refer to the foregoing description, which will not be repeated here.
[0204] After the user selects a set of software configuration parameters and configures the software accordingly, the parameter acquisition device 100 can continue to acquire the set of software configuration parameters and their corresponding software performance parameters, and continue executing steps 301 to 305. Steps 301 to 305 can be executed cyclically. The parameter tuning method executed by the parameter tuning device 200 can learn and predict simultaneously (i.e., predict a new set or more sets of software configuration parameters). The parameter tuning device 200 learns from the acquired set or more sets of software configuration parameters and their corresponding software performance parameters, and outputs a new set or more sets of software configuration parameters; then, it learns from the subsequently acquired set or more sets of software configuration parameters and their corresponding software performance parameters, and outputs a new set or more sets of software configuration parameters, and so on, until the tuning stop condition is met.
[0205] The tuning stop condition can be set by the user. This application embodiment does not limit the specific content of the tuning stop condition. For example, the tuning stop condition can be the number of times a user-set set of one or more sets of software configuration parameters are recommended, that is, the number of times the parameter tuning device 200 executes the parameter tuning method.
[0206] For example, the tuning stop condition can be a user-initiated instruction to stop tuning. This application embodiment does not limit the method of initiating this instruction. Taking the interaction between the parameter acquisition device 100 and the user through a visual interface as an example, the visual interface displayed by the parameter acquisition device 100 to the user can provide a "Stop Tuning" option. The user sends an instruction to the parameter acquisition device 100 to stop tuning by clicking "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 embodiments, this application also provides a parameter tuning device for executing the method performed by the parameter tuning device 200 in the above method embodiments. For example... Figure 5 As shown, the parameter tuning device 500 includes a partitioning module 501, a learning module 502, and a filtering module 503. Specifically, in the parameter tuning device 500, the modules are connected through 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 and corresponding software performance parameters configured to the software, forming M high-dimensional parameter subspaces. Each set of software configuration parameters corresponds to a set of software performance parameters that characterizes the software's performance after configuring the set of parameters. The high-dimensional parameter space is a high-dimensional space constructed from all software configuration parameters that can be configured to the software and their corresponding software performance parameters. The M high-dimensional parameter subspaces satisfy the following conditions: the similarity of data within any high-dimensional parameter subspace is greater than a similarity threshold, and the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than a quantity threshold. M is a positive integer.
[0209] Learning module 502 is used to call M machine learning models to learn from M high-dimensional parameter subspaces respectively, with each machine learning model corresponding to a high-dimensional parameter subspace.
[0210] The filtering module 503 is used to select a target high-dimensional parameter subspace from M high-dimensional parameter subspaces, use 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, and provide the user with one or more sets of software configuration parameters to be configured.
[0211] As one possible implementation, when partitioning the high-dimensional parameter space, the partitioning module 501 constructs a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters. Any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters. Then, the spectral clustering algorithm is called to partition the high-dimensional parameter space based on the similarity matrix.
[0212] As one possible implementation, when generating the similarity matrix, the segmentation module 501 uses a kernel function to measure the similarity of one or more sets of software configuration parameters and corresponding software performance parameters to generate the similarity matrix.
[0213] As one possible implementation, when generating the similarity matrix using a kernel function, the segmentation module 501 uses the kernel function to measure the similarity of one or more sets of software configuration parameters, generating a first similarity matrix. Each element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters. The segmentation module 501 then uses the kernel function to measure the similarity of the software performance corresponding to one or more sets of software configuration parameters, generating a second similarity matrix. Each element in the similarity matrix represents the degree of similarity between the software performance corresponding to two sets of software configuration parameters. Finally, the segmentation module 501 performs a weighted sum of the first and second similarity matrices to generate a new similarity matrix, where the weight of the second similarity matrix is greater than the weight of the first similarity matrix.
[0214] As one possible implementation, when learning M high-dimensional parameter subspaces, the learning module 502 uses manifold learning to reduce the dimensionality of the M high-dimensional parameter subspaces; and calls M machine learning models to learn the M high-dimensional parameter subspaces after dimensionality reduction respectively.
[0215] As one possible implementation, the screening module 503 uses the conjugate direction method to determine one or more sets of software configuration parameters from the target high-dimensional parameter subspace that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.
[0216] As one possible implementation, the screening module 503 calls the Thompson sampling algorithm or the upper confidence bound algorithm to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.
[0217] The module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processor, exist as separate physical entities, or be integrated into a single module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0218] If the integrated module is implemented as a software functional 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 this application, in essence, 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. This computer software product is stored in a storage medium and includes several instructions to cause a terminal device (which may be a personal computer, mobile phone, or network device, etc.) or processor to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0219] This application also provides, for example Figure 6 The computing device 600 shown 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] The processor 602 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0221] Memory 604 can be dynamic random access memory (DRAM). Besides DRAM, memory 604 can also be other types of random access memory, such as static random access memory (SRAM). Alternatively, memory 602 can be read-only memory (ROM). For example, read-only memory can be programmable read-only memory (PROM) or erasable programmable read-only memory (EPROM). Memory 604 can also be flash memory, hard disk drive (HDD), or solid-state drive (SSD). Memory 604 stores computer program instructions, which processor 602 executes to perform the aforementioned tasks. Figure 3 The described method includes the steps performed by the parameter tuning device. The memory 604 may also include other software modules required for running processes, such as an operating system (e.g., multiple modules in the parameter tuning device 500). The operating system may be LINUX. TM UNIX TM WINDOWS TM wait.
[0222] This application also provides a computing device system, the computing device system including at least one such as Figure 7 The computing device 700 shown includes a bus 701, a processor 702, a communication interface 703, and a memory 704. The processor 702, memory 704, and 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 processor 702 and memory 704 can be found in the relevant descriptions of processor 602 and memory 604, and will not be repeated here. Processor 702 executes the computer program instructions stored in memory 604 to perform the aforementioned tasks. Figure 3 The described method may include some or all of the steps performed by the parameter tuning device. The memory may also include other software modules required for the running processes, such as the 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 each computing device 700 runs any one or any multiple modules of the parameter tuning device 500.
[0225] The aforementioned description of the parameter tuning system deployment method mentions that the parameter acquisition device and the parameter tuning device can be deployed on the user-side computing device. From a hardware implementation perspective, the parameter tuning device and the parameter acquisition device can be the processor of the computing device, a part of the processor module, or an accelerator card of the computing device.
[0226] like Figure 8 The diagram shown is a schematic diagram of a computing device with an accelerator card deployed according to an embodiment of this application. The computing device 800 includes a bus 801, a processor 802, a communication interface 803, a memory 804, and an accelerator card 805.
[0227] Regarding the functions and types of bus 801, processor 802, communication interface 803, and memory 804... 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 can be found in the foregoing description, which will not be repeated here.
[0228] The difference is that, in Figure 8 In the computing device shown, processor 802 no longer executes step 5, which was described above. Figure 3 The steps described in the method, which are performed by the parameter tuning device, are instead performed by the accelerator card 805. Figure 3 The steps performed by the parameter tuning device in the described method.
[0229] Accelerator card 805 includes a data processing unit (DPU) 8051 and a memory 8052. DPU 8051 and memory 8052 are connected via a system bus. This system bus can be a Peripheral Component Interconnect Express (PCIe) bus, a Compute Express Link (CXL) bus, a Universal Serial Bus (USB) protocol bus, or a bus using other protocols. DPU 8051 can also be replaced with other processors with processing capabilities, such as ASICs or FPGAs. The type of memory 8052 is similar to that of memory 604, as detailed above. Memory 8052 stores the necessary computer program instructions and data during the parameter tuning process performed by accelerator card 805.
[0230] The DPU8051 is the main processing unit of the accelerator card 805 and its core unit, undertaking the main functions of the accelerator card 805. For example, some functions of computing devices (such as processors) can be offloaded to the DPU8051, which processes data and executes tasks assigned to the accelerator card 8055 by the computing device. The DPU8051 executes tasks by calling computer program instructions stored in the memory 8052. Figure 3 The embodiments shown include some methods that the parameter tuning device needs to perform.
[0231] The following example illustrates the execution flow of the parameter tuning method within the computing device 800, with the parameter acquisition device deployed on the processor 802 of the computing device 800 and the parameter tuning device being the accelerator card 805 of the computing device 800.
[0232] The computing device 800, equipped with the accelerator card 805, can provide users with parameter tuning capabilities. This parameter tuning capability can be enabled by default, meaning that as long as the user performs a software configuration parameter selection operation, such as in... Figure 4A The interface shown indicates that software configuration parameters have been selected. The computing device 800 will automatically execute the parameter tuning method, and the computing device 800 will automatically execute the following... Figure 9 The illustrated embodiment. This parameter tuning function can also be user-controlled, allowing the user to enable it according to actual needs. For example, in the software configuration parameter interface displayed by the computing device 800, an option to "Enable Parameter Tuning" is provided. By clicking this option, the processor 802 of the computing device 800 issues a command to enable the parameter tuning function. Upon receiving this command, the processor 802 notifies the accelerator card 805 to enable the parameter tuning function. In this case, the computing device 800 executes the following... Figure 9 The example shown.
[0233] Step 901: The processor 802 on the computing device 800 first collects one or more software configuration parameters and their corresponding software performance parameters that have been configured for the software, and writes the one or more software configuration parameters and their corresponding software performance parameters into a register. This register can be the processor 802 inside the processor 802, or it can be a register connected to the processor 802.
[0234] Step 902: The processor 802 on the computing device 800 transfers one or more software configuration parameters and their corresponding software performance parameters stored in the registers to a parameter memory. This parameter memory is connected to the accelerator card 805 in the computing device 800, and the accelerator card 805 can retrieve data from it. This application embodiment does not limit the type of parameter memory; any memory capable of data storage is applicable to this application embodiment. The parameter memory can be a portion of the aforementioned memory 804.
[0235] Step 903: The accelerator card 805 of the computing device 800 obtains a set or more 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 sets of software configuration parameters based on a set of one or more software configuration parameters and their corresponding software performance parameters. For details on how the accelerator card 805 of the computing device 800 performs step 904, please refer to the aforementioned... Figure 3 Step 303 in the illustrated embodiment will not be repeated here.
[0237] Step 905: The accelerator card 805 of the computing device 800 writes one or more sets of generated software configuration parameters into the register.
[0238] Step 906: The processor 802 of the computing device 800 reads one or more sets of software configuration parameters from the registers and provides the new set of one or more sets of software configuration parameters to the user.
[0239] Optionally, the accelerator card 805 of the computing device 800 can also construct a software configuration parameter database to store one or more new sets of software configuration parameters generated each time the parameter tuning method is executed. The software configuration parameter database can be deployed in persistent storage, such as an SSD or SCM, which can persistently store data. See the following steps for details:
[0240] Step 907: The accelerator card 805 of the computing device 800 will generate one or more new sets of software configuration parameters and write them to the software configuration parameter database.
[0241] The accelerator card 805 of the computing device 800 can be configured with a cache. After each execution of the parameter tuning method, a new set of one or more sets of software configuration parameters will be generated and cached in the cache. When the amount of data in the cache becomes large and reaches the data volume 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 and migrates them into the registers for use by the user.
[0243] For example, when a user pauses the parameter tuning function of the computing device 800, the processor 802 of the computing device 800 may provide the user with one or more sets of software configuration parameters, which 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 parameter tuning method, i.e., historical software configuration parameters).
[0244] For 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 one or more 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. Then, the set or more sets of software configuration parameters stored in the register are provided to the user.
[0245] The descriptions of the processes corresponding to the above-mentioned figures each have their own emphasis. For parts of a process that are not described in detail, please refer to the relevant descriptions of other processes.
[0246] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented, in whole or in part, in the form of a computer program product. A computer program product includes computer program instructions, which, when loaded and executed on a computer, generate, in whole or in part, the product according to the embodiments of 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. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. 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 integrates one or more available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., SSD).
[0248] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A parameter tuning method, characterized in that, include: A similarity matrix is constructed based on one or more sets of collected software configuration parameters and corresponding software performance parameters. Any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters. The spectral clustering algorithm is invoked to divide the high-dimensional parameter space based on the similarity matrix, forming M high-dimensional parameter subspaces. The high-dimensional parameter space is a high-dimensional space constructed from all software configuration parameters that can be configured to the software and their corresponding software performance parameters. The M high-dimensional parameter subspaces satisfy the following: the similarity of data within any high-dimensional parameter subspace 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. M machine learning models are invoked to learn the M high-dimensional parameter subspaces respectively, with each machine learning model corresponding to one of the high-dimensional parameter subspaces; Select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, use 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, and provide the one or more sets of software configuration parameters to be configured to the user.
2. The method as described in claim 1, characterized in that, The construction 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 using kernel functions to measure the similarity of one or more sets of software configuration parameters and their corresponding software performance parameters.
3. The method as described in claim 2, characterized in that, The method of using kernel functions to measure the similarity of one or more sets of software configuration parameters and corresponding software performance parameters includes: A kernel function is used to measure the similarity of one or more sets of software configuration parameters, generating a first similarity matrix. Any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters. By using kernel functions to measure the similarity of software performance corresponding to one or more sets of software configuration parameters, a second similarity matrix is generated. Any element in the similarity matrix represents the degree of similarity between the software performance corresponding to two sets of software configuration parameters. The first similarity matrix and the second similarity matrix are 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.
4. The method according to any one of claims 1 to 3, characterized in that, The step of calling M machine learning models to learn the M high-dimensional parameter subspaces includes: The M high-dimensional parameter subspaces are reduced in dimensionality using manifold learning; The M machine learning models are invoked to learn the M high-dimensional parameter subspaces after dimensionality reduction.
5. The method according to any one of claims 1 to 3, characterized in that, The step of determining one or more sets 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: Using the conjugate direction method, determine one or more sets of software configuration parameters from the target high-dimensional parameter subspace that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.
6. The method according to any one of claims 1 to 3, characterized in that, The step of selecting a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces includes: The target high-dimensional parameter subspace is selected from the M high-dimensional parameter subspaces by calling the Thompson sampling algorithm or the upper confidence bound algorithm.
7. A parameter tuning device, characterized in that, include: The partitioning module is used to construct a similarity matrix based on one or more sets of collected software configuration parameters and corresponding software performance parameters, call the spectral clustering algorithm, and partition the high-dimensional parameter space based on the similarity matrix to form M high-dimensional parameter subspaces. Each element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and their corresponding software performance parameters. The high-dimensional parameter space is a high-dimensional space constructed from all software configuration parameters that can be configured to the software and their corresponding software performance parameters. The M high-dimensional parameter subspaces satisfy the following: the similarity of data within any high-dimensional parameter subspace 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. The learning module is used to call M machine learning models to learn the M high-dimensional parameter subspaces respectively, with each machine learning model corresponding to one of the high-dimensional parameter subspaces; The filtering module is used to select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, use 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, and provide the one or more sets of software configuration parameters to be configured to the user.
8. The apparatus as claimed in claim 7, characterized in that, The partitioning module is used for: The similarity matrix is generated by using kernel functions to measure the similarity of one or more sets of software configuration parameters and their corresponding software performance parameters.
9. The apparatus as claimed in claim 8, characterized in that, The partitioning module is used for: A kernel function is used to measure the similarity of one or more sets of software configuration parameters, generating a first similarity matrix. Any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters. By using kernel functions to measure the similarity of software performance corresponding to one or more sets of software configuration parameters, a second similarity matrix is generated. Any element in the similarity matrix represents the degree of similarity between the software performance corresponding to two sets of software configuration parameters. The first similarity matrix and the second similarity matrix are 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.
10. The apparatus according to any one of claims 7 to 9, characterized in that, The learning module is used for: The M high-dimensional parameter subspaces are reduced in dimensionality using manifold learning; The M machine learning models are invoked to learn the M high-dimensional parameter subspaces after dimensionality reduction.
11. The apparatus according to any one of claims 7 to 9, characterized in that, The filtering module is used for: Using the conjugate direction method, determine one or more sets of software configuration parameters from the target high-dimensional parameter subspace that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.
12. The apparatus according to any one of claims 7 to 9, characterized in that, The filtering module is used for: The target high-dimensional parameter subspace is selected from the M high-dimensional parameter subspaces by calling the Thompson sampling algorithm or the upper confidence bound algorithm.
13. A computing device, characterized in that, The computing device includes a processor and memory; The memory is used to store computer program instructions; The processor executes computer program instructions in the memory to perform the method as described in any one of claims 1 to 6.
14. A computer-readable storage medium, characterized in that, When the computer-readable storage medium is executed by a computing device, the computing device performs the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
High-dimensional data set visualization method and device, electronic equipment and storage medium
CN115600268A
Distributed similarity learning for high-dimensional image features
US20150146973A1