Parameter tuning method and apparatus, and device

Through the division of high-dimensional parameter space and the application of machine learning models, the complexity of large-scale software parameter tuning is solved, efficient parameter configuration is achieved and tuning efficiency is improved.

WO2025044863A1PCT designated stage expired Publication Date: 2025-03-06HUAWEI TECH CO LTD

Patent Information

Application Number
PCT/CN2024/113660
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-30
Filing Date
2024-08-21
Publication Date
2025-03-06

AI Technical Summary

Technical Problem

When configuring software configuration parameters, large software such as big data engines and databases have a large number of different parameter combinations, resulting in complex and difficult parameter tuning.

Method used

Through the parameter tuning device, the configured software parameters and performance parameters are obtained, the high-dimensional parameter space is divided based on these parameters, multiple high-dimensional parameter subspaces are formed, and the machine learning model is called to learn these subspaces to determine appropriate software configuration parameters.

Benefits of technology

It realizes efficient determination of appropriate software configuration parameters, improves parameter tuning efficiency, and ensures the quality and learning efficiency of machine learning models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024113660_06032025_PF_FP_ABST
    Figure CN2024113660_06032025_PF_FP_ABST
Patent Text Reader

Abstract

A parameter tuning method and apparatus, and a device. In the present application, the parameter tuning apparatus divides a high-dimensional parameter space on the basis of one or more sets of software configuration parameters that have been configured for software, and corresponding software performance parameters, so as to form M high-dimensional parameter subspaces. The M high-dimensional parameter subspaces satisfy the similarity of data in any one of the high-dimensional parameter subspaces being greater than a similarity threshold, and the difference between the amounts of data included in any two high-dimensional parameter subspaces is not greater than an amount threshold. M machine learning models are called to respectively learn the M high-dimensional parameter subspaces. A target high-dimensional parameter subspace is selected from the M high-dimensional parameter subspaces. A machine learning model corresponding to the target high-dimensional parameter subspace is used to determine software configuration parameters to be configured, and the software configuration parameters are provided for a user. Realizing the high-dimensional parameter space by means of uniform division ensures that the machine learning models thoroughly learn the high-dimensional parameter subspaces, thereby improving the quality of the machine learning models and ensuring the efficiency of parameter tuning.
Need to check novelty before this filing date? Find Prior Art

Description

Parameter tuning method, device and equipment

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of the People's Republic of China on August 30, 2023, with application number 202311128697.6 and application name "A parameter tuning method, device and equipment", the entire contents of which are incorporated by reference into this application. Technical Field

[0003] The present application relates to the field of communication technology, and in particular to a parameter tuning method, apparatus, and device. Background Art

[0004] Some software running on computing devices often requires configuration parameters. Only after these parameters are configured can the software run. The configured parameters must be adapted to the computing device's performance and user needs to ensure optimal performance and meet user needs.

[0005] However, for some large-scale software, such as big data engines and databases, the number of software configuration parameters that need to be configured is usually very large. This leads to a large number of different software configuration parameter combinations. It is extremely complex and difficult for users or software operation and maintenance personnel to analyze the software configuration parameters, tune the software configuration parameters, and find appropriate software configuration parameters.

[0006] .

[0007] Summary of the Invention

[0008] The embodiments of the present application provide a parameter tuning method, apparatus, and device for efficiently determining appropriate software configuration parameters and improving parameter tuning efficiency.

[0009] In a first aspect, embodiments of the present application provide a parameter tuning method that can be performed by a parameter tuning device. In this method, the parameter tuning device can obtain one or more sets of software configuration parameters configured for the software and software performance parameters corresponding to the one or more sets of software configuration parameters. Each set of software configuration parameters has a corresponding software performance parameter. The software performance parameter corresponding to a set of software configuration parameters is used to characterize the performance of the software after the set of software configuration parameters is configured.

[0010] The parameter tuning device divides the high-dimensional parameter space based on one or more sets of software configuration parameters and corresponding software performance parameters obtained to form M high-dimensional parameter subspaces. The high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters.

[0011] The M high-dimensional parameter subspaces satisfy the following requirements: the similarity of data in 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 number threshold.

[0012] The parameter tuning device calls M machine learning models to learn M high-dimensional parameter subspaces respectively, and each machine learning model corresponds to a high-dimensional parameter subspace.

[0013] The parameter tuning device selects a target high-dimensional parameter subspace from M high-dimensional parameter subspaces, uses a 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.

[0014] Through the above method, the parameter tuning device can divide the high-dimensional parameter space into M high-dimensional parameter subspaces of relatively close size, thereby achieving uniform division of the high-dimensional parameter space. The M high-dimensional parameter subspaces formed by uniform division can ensure that the subsequent M machine learning models can fully learn the corresponding high-dimensional parameter subspaces, ensure the quality of the machine learning model, and ensure that a more appropriate set or sets of software configuration parameters can be determined later, thereby improving the efficiency of parameter tuning. In addition, the learning method of the M high-dimensional parameter subspaces by the M machine learning modules can improve the learning efficiency of the high-dimensional parameter space, accelerate the learning speed, and further improve the efficiency of parameter tuning.

[0015] In one possible implementation, when the parameter tuning device divides the high-dimensional parameter space based on the one or more groups of software configuration parameters and the corresponding software performance parameters, it can first use the one or more groups of software configuration parameters and the corresponding software performance parameters. Any element in the similarity matrix represents the degree of similarity between the two groups of software configuration parameters and the corresponding software performance parameters. Any element represents the degree of similarity between the two groups of parameters. Any group of parameters includes a group of software configuration parameters and its corresponding software performance parameters.

[0016] After generating the similarity matrix, the parameter tuning device calls the spectral clustering algorithm to divide the high-dimensional parameter space based on the similarity matrix.

[0017] Through the above method, the spectral clustering algorithm and the division of the high-dimensional parameter space by the similarity matrix can effectively ensure that multiple groups of parameters with high similarity are clustered together, thereby forming a high-dimensional parameter subspace.

[0018] In a possible implementation, when constructing the similarity matrix, the parameter tuning device may measure the similarity of one or more sets of software configuration parameters and corresponding software performance parameters using a kernel function to generate the similarity matrix.

[0019] Through the above method, with the help of kernel function, the similarity between one or more groups of software configuration parameters and corresponding software performance parameters can be measured relatively simply and efficiently, and a similarity matrix can be quickly generated.

[0020] In one possible implementation, when a parameter tuning device uses a kernel function to perform a similarity measurement on one or more sets of software configuration parameters and corresponding software performance parameters, it performs two separate measurements: one measurement for the similarity of the one or more sets of software configuration parameters, and the other measurement for the similarity of the software performance corresponding to the one or more sets of software configuration 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 corresponding to the one or more sets of software configuration parameters in the similarity matrix can be increased to emphasize the weight of the similarity measurement results for the software performance corresponding to the one or more sets of software configuration parameters.

[0021] Exemplarily, the parameter tuning device may measure the similarity of one or more sets of software configuration parameters using a kernel function to generate a first similarity matrix, where any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters.

[0022] The parameter tuning device can use a kernel function to measure the similarity of software performance corresponding to one or more sets of software configuration parameters to generate a second similarity matrix. Any element in the similarity matrix represents the similarity between the software performance corresponding to two sets of software configuration parameters.

[0023] The parameter tuning device performs weighted summation on 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.

[0024] Through the above method, when generating a similarity matrix, increasing the proportion of the similarity measurement results of the software performance corresponding to one or more groups of software configuration parameters in the similarity matrix, that is, setting a larger weight for the second similarity matrix can avoid submerging the software performance parameters in the subsequent learning of the high-dimensional parameter subspace, ensuring that the subsequent machine learning model's learning of the corresponding high-dimensional parameter subspace is supervised learning, and can accurately analyze the relationship between the software configuration parameters and the software performance parameters.

[0025] In one possible implementation, when the parameter tuning device calls M machine learning models to learn M high-dimensional parameter subspaces respectively, it can use manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; and call M machine learning models to learn the M high-dimensional parameter subspaces after dimensionality reduction respectively.

[0026] By reducing the dimensionality of M high-dimensional parameter subspaces using the above method, the amount of data required for machine learning models to learn these high-dimensional parameter subspaces can be reduced, thereby improving learning efficiency. Furthermore, there are many approaches to manifold learning, such as using LE to reduce the dimensionality of M high-dimensional parameter subspaces. This LE can reuse the similarity matrix generated by partitioning the high-dimensional parameter space, improving dimensionality reduction efficiency.

[0027] In one possible implementation, when the parameter tuning device uses the machine learning model corresponding to the target high-dimensional parameter subspace to determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace, it can use the conjugate direction method to determine 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.

[0028] Through the above method, the conjugate direction method can ensure that the optimal solution of the machine learning model corresponding to the target high-dimensional parameter subspace is quickly found from the target high-dimensional parameter subspace.

[0029] In a possible implementation, when the parameter tuning device selects a target high-dimensional parameter subspace from 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.

[0030] Through the above method, multi-armed bandit algorithms such as the Thompson sampling algorithm or the upper confidence bound algorithm can accurately evaluate the "potential" of the M high-dimensional parameter subspaces and find the target high-dimensional parameter subspace that is most likely to contain the optimal solution.

[0031] 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 may also prompt the user to select a set of software configuration parameters from among them. The parameter tuning device detects the user's selection operation, determines the set of software configuration parameters selected by the user, and records the set of software configuration parameters. In an embodiment of the present application, the parameter tuning device may provide the user with one or more sets of software configuration parameters to be configured through a parameter collection device, and collect the set of software configuration parameters selected by the user through the parameter collection device.

[0032] Through the above method, the interaction between the parameter tuning device (through the parameter acquisition device) and the user can enable the parameter tuning device to promptly display one or more optional software configuration parameters to the user, and can also accurately obtain a set of software configuration parameters selected by the user.

[0033] In one possible implementation, the parameter tuning device may 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 the set of software configuration parameters. In an embodiment of the present application, the parameter tuning device may prompt the user to input software performance parameters corresponding to a set of software configuration parameters selected by the user through a parameter collection device, and collect the software performance parameters corresponding to the set of software configuration parameters input by the user through the parameter collection device.

[0034] Through the above method, the parameter tuning device (through the parameter acquisition device) interacts with the user to obtain the software performance parameters corresponding to the software configuration parameters in a timely manner.

[0035] In the second aspect, an embodiment of the present application further provides a parameter tuning device, which has the function of implementing the behavior in the method example of the first aspect above. The beneficial effects can be found in the description of the first aspect and will not be repeated here. The function can be implemented by hardware, or by hardware executing the corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the structure of the device includes a partitioning module, a learning module, and a screening module, which can perform the corresponding functions in the method example of the first aspect above. Please refer to the detailed description in the method example for details, which will not be repeated here.

[0036] In a third aspect, the present application further provides a computing device, comprising a processor and a memory, and may further comprise a communication interface, wherein the processor executes program instructions in the memory to perform the method provided in the first aspect or any possible implementation of the first aspect. 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 one or more sets of software configuration parameters and corresponding software performance parameters that have been configured for the software, or to send one or more sets of software configuration parameters to be configured.

[0037] In a fourth aspect, the present application provides a computing device system comprising at least one computing device. Each computing device comprises a memory and a processor. The processor of at least one computing device is configured to access code in the memory to execute the method provided in the first aspect or any possible implementation of the first aspect.

[0038] In a fifth aspect, the present application provides a computer-readable storage medium. When the computer-readable storage medium is executed by a computing device, the computing device performs the method provided in the first aspect or any possible implementation of the first aspect. The storage medium stores a program. The storage medium includes, but is not limited to, volatile memory, such as random access memory, and non-volatile memory, such as flash memory, a hard disk drive (HDD), and a solid state drive (SSD).

[0039] In a sixth aspect, the present application provides a computing device program product, comprising computer instructions that, when executed by a computing device, cause the computing device to perform the method provided in the aforementioned first aspect or any possible implementation of the first aspect. The computer program product may be a software installation package, and when the method provided in the aforementioned first aspect or any possible implementation of the first aspect is required, the computer program product may be downloaded and executed on the computing device.

[0040] In a seventh aspect, the present application also provides a computer chip, which is connected to a memory, and is used to read and execute a software program stored in the memory, and to execute the method described in the above-mentioned first aspect and various possible implementation methods of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] FIG1 is a schematic diagram of the structure of a parameter tuning system provided by the present application;

[0042] 2A to 2C are schematic diagrams of a deployment of a parameter tuning system provided by this application;

[0043] FIG3 is a flow chart of a parameter tuning method provided by the present application;

[0044] FIG4A is a schematic diagram of a display interface of software configuration parameters provided by the present application;

[0045] FIG4B is a schematic diagram of a configuration interface for software performance parameters provided by the present application;

[0046] FIG5 is a schematic structural diagram of a parameter tuning device provided by the present application;

[0047] 6 to 8 are schematic diagrams of the structure of a computing device provided in an embodiment of the present application;

[0048] FIG9 is a flowchart of another parameter tuning method provided in this application. DETAILED DESCRIPTION

[0049] Before describing a parameter tuning method provided in an embodiment of the present application, some concepts involved in the embodiment of the present application are first described:

[0050] (1) Software configuration parameters and software performance parameters.

[0051] In the embodiments of the present application, the parameters required for software operation are referred to as software configuration parameters, which are parameters that affect software performance. Parameters that can reflect software performance are referred to as software performance parameters.

[0052] Before software can run normally, its configuration parameters must be set. Only then can the software begin running and complete its tasks based on these configuration parameters. The performance of the software running with these configuration parameters can be characterized by software performance parameters. Software configuration parameters correspond to software performance parameters.

[0053] Different types of software require varying numbers and attributes of software configuration parameters. Software such as big data engines and databases often require hundreds or even thousands of configuration parameters to ensure proper operation. Configuring different software configuration parameters can result in different performance. Software performance is not only affected by the configuration parameters but also 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 can exhibit different performance. While computing device performance generally refers to the computing power of the device, software performance refers to the software's ability to perform tasks. This can be reflected in latency, the accuracy of the software's output, or the success rate.

[0054] When configuring software configuration parameters for software, the goal is to achieve optimal software configuration parameters for the software within the range allowed by the performance of the computing device on which the software runs.

[0055] In the embodiments of the present application, the parameter tuning method performed by the parameter tuning device is to tune the software configuration parameters to obtain a set of software configuration parameters that can effectively improve software performance. Since software operation typically has multiple software configuration parameters, for ease of description, the multiple software configuration parameters set for each software operation are referred to as a set of software configuration parameters.

[0056] Regarding software performance parameters, any parameter that can reflect software performance can be used as a software performance parameter. The embodiments of this application do not limit the specific method of generating the software performance parameters. For example, a specific software performance evaluation algorithm is set, and the software performance parameters can be obtained by the software performance evaluation algorithm based on the software's running state. For another example, the software performance parameters are set by the user of the software, that is, the user of the software.

[0057] In the parameter tuning method provided in the embodiment of the present application, the software performance parameters are the main basis for tuning the software configuration parameters. The embodiment of the present application does not limit the number of software performance parameters corresponding to each set of software configuration parameters. The number of software performance parameters is related to the generation method of the software performance parameters. In the embodiment of the present application, only one software performance parameter corresponding to each set of software configuration parameters is used as an example for explanation. In fact, in actual applications, each set of software configuration parameters can also correspond to multiple software performance parameters. In this case, the parameter tuning method is similar to the parameter tuning method when each set of software configuration parameters can also correspond to one software performance parameter, and the difference is only in the number of software performance parameters.

[0058] (2) Kernel function.

[0059] The kernel function is a function that takes a vector in the original space as input and returns the dot product of a vector in the feature space. The conversion function between the original space and the feature space is φ(x), where x is the vector in the original space.

[0060] The kernel function K(p,q) can be expressed as: K(p,q)=φ(p),φ(q).

[0061] With the help of kernel functions, data can be mapped to high-dimensional space (generally referring to feature space), so the comparison between data can be converted into comparison between dot products.

[0062] There are many types of kernel functions, such as the linear kernel function. The linear kernel function K(p,q) can be expressed as: K(p,q)=pTq+c, where c is a constant and T represents transpose.

[0063] For example, the polynomial kernel function K(p,q) can be expressed as: K(p,q)=(αpT q+c) d , where d represents the degree of the polynomial, c can be 0 or 1, and α is a hyperparameter.

[0064] Although the kernel function K(p,q) involves φ(p) and φ(q), when actually calculating K(p,q), we can use φ(p) and φ(q) to obtain K(p,q), or we can directly solve the kernel function K(p,q), such as directly using the expression of the linear kernel function to calculate K(p,q), which can directly guide the vector in the original space to the high-dimensional space.

[0065] (3) Machine learning.

[0066] Machine learning is the study of how computers acquire new knowledge or skills by simulating or implementing human learning behaviors. Machine learning studies and constructs specialized "models" that enable computing devices to learn from data and make predictions by running these models.

[0067] Simply put, the "model" studied and constructed by machine learning can be understood as a function, which is represented here as y = F(x). Machine learning constructs this function by learning data (the data learned can usually also be called sample data). After learning is completed, by inputting x into the function, y can be obtained, and y is the predicted result of x.

[0068] The process of learning data can be regarded as the process of constructing the function, such as adjusting the parameters of the function to ensure that the constructed function can conform to the potential laws of the sample data, and then the function can be extended to data outside the sample data.

[0069] It can be seen that the learning process determines the quality of the model. The higher the quality of the model, the stronger its predictive ability, that is, the output of the model (ie y) is more accurate.

[0070] In the embodiments of the present application, 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, naive Bayes theorem, K-nearest neighbors, learning vector quantization, support vector machine, and random forest.

[0071] (4) High-dimensional parameter space.

[0072] In the embodiment of the present application, the high-dimensional space composed of all the software configuration parameters that can be configured for the software and the software performance parameters corresponding to each software configuration space is called a high-dimensional parameter space. The size of the high-dimensional parameter space is related to the value range of each software configuration parameter.

[0073] A high-dimensional parameter space is a data space in which the data consists of sets of software configuration parameters and the corresponding software performance parameters. A high-dimensional parameter space can be viewed as a "data set" consisting of an infinite or large number of high-dimensional vectors. Any high-dimensional vector (x, y) represents a set of software configuration parameters and their 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 refers to the corresponding software performance parameters.

[0074] It's important to note that in a high-dimensional parameter space, the y in a high-dimensional vector doesn't necessarily represent a real, collected set of software configuration parameters corresponding to a software performance parameter. Instead, y represents one possible value of the software performance parameter. Extending this to a machine learning model, x in the high-dimensional vector represents an input to the model, and y in the high-dimensional vector represents an output.

[0075] In the embodiment of the present application, the one or more sets of software configuration parameters configured for the software and their corresponding software performance parameters collected by the parameter collection device belong to the high-dimensional parameter space and are "spatial points" in the high-dimensional parameter space.

[0076] The goal of the parameter tuning device is to find the optimal set or sets of software configuration parameters for the software configuration from the high-dimensional parameter space. The parameter tuning method performed by the parameter tuning device can be understood as an "optimal solution" solution method.

[0077] (5) Spectral Clustering.

[0078] Spectral graph clustering, also known as spectral clustering, is a simple clustering algorithm. It treats the data to be classified as nodes on a graph, where edges between closely spaced nodes have high weights, while edges between more distant nodes have low weights. The graph is then partitioned into multiple subgraphs, where the weights of edges between these subgraphs are minimized, while the weights of edges within the same subgraph are maximized.

[0079] The spectral clustering algorithm needs to first set an affinity matrix (such as the K matrix mentioned in the embodiment of this application) that can describe the similarity between data according to the data to be classified. XY), calculate the eigenvalues ​​and eigenvectors of the affinity matrix, and then select appropriate eigenvectors to illustrate these data.

[0080] (6) Manifold learning.

[0081] Manifold is a general term for geometric objects, encompassing curves and surfaces of various dimensions. Manifold learning is a dimensionality reduction method that allows a set of data from a high-dimensional space to be re-represented in a low-dimensional space.

[0082] In manifold learning, it is believed that the processed data is sampled from a manifold (the data can be regarded as points on the manifold), or there is a potential manifold for the processed data that can cover the processed data.

[0083] Since the points on the manifold do not have specific coordinates, in order to represent the points on the manifold, the points on the manifold can be placed in the ambient space and the coordinates in the ambient space are used to represent the points on the manifold.

[0084] Therefore, manifold learning can be summarized as follows: while maintaining certain geometric properties of the points on the manifold, find a set of corresponding intrinsic coordinates and expand the manifold as best as possible in a low-dimensional space. The intrinsic coordinates in this low-dimensional space are also called intrinsic features. The dimension of the surrounding space is called the observation dimension, and its representation is called natural coordinates, which is statistically called observation.

[0085] Common manifold learning methods include: isomap, locally linear embedding (LLE), Laplacian eigenmaps (LE), and locality preserving projection (LPP).

[0086] Taking LE as an example, the basic idea of ​​LE is to use an undirected weighted graph to describe a manifold and find a low-dimensional representation through graph embedding. In other words, while maintaining the local adjacency of the graph, the graph formed by the points on the manifold is mapped from a high-dimensional space to a low-dimensional space.

[0087] In the embodiments of the present application, when reducing the dimensionality of a high-dimensional parameter subspace or a high-dimensional parameter space, manifold learning can be used to achieve dimensionality reduction. The embodiments of the present application do not limit the specific method of manifold learning used, and any manifold learning method that can reduce the dimensionality of a high-dimensional parameter subspace or a high-dimensional parameter space is applicable to the embodiments of the present application.

[0088] (7) Eigen decomposition.

[0089] Eigendecomposition, also known as spectral decomposition, can decompose a matrix into the product of matrices constructed by its eigenvalues ​​and eigenvectors.

[0090] For example, if A is an N×N square matrix and has N linearly independent eigenvectors, then perform eigendecomposition on the matrix A: A=QΛQ -1

[0091] Where Q is an N×N square matrix, and the i-th column of Q is an eigenvector of A. Λ is a diagonal matrix, and the elements on its diagonal are the eigenvalues ​​corresponding to the eigenvectors.

[0092] (8), Thompson Sampling algorithm and Upper Confidence Bound algorithm.

[0093] The Thompson sampling algorithm is an algorithm that uses the Bayesian formula to evaluate which sample is most likely to be optimal during sampling. In the embodiments of the present application, the Thompson sampling algorithm can be used to evaluate the potential of M high-dimensional parameter subspaces and select the most promising high-dimensional parameter subspace. The so-called "potential" refers to the high probability that one or more sets of software configuration parameters exist within the high-dimensional parameter subspace that can significantly improve software performance.

[0094] The upper confidence bound algorithm adopts the idea of ​​statistics to calculate the average benefit corresponding to each "choice" (action, which can also be understood as the action of selecting multiple data) in all the experimental data, as well as their standard deviation, to calculate a confidence interval. The upper limit of the confidence bound is the maximum benefit that this choice can reap. Use this upper confidence bound as the estimated value of the report for each "choice". In the embodiment of the present application, the upper confidence bound algorithm can be used to evaluate the potential of M high-dimensional parameter subspaces (that is, each high-dimensional parameter subspace can be understood as a choice), and the most potential high-dimensional parameter subspace can be selected from them. Among them, the so-called "potential" refers to the probability that there is a group or multiple groups of software configuration parameters in the high-dimensional parameter subspace that can significantly improve software performance.

[0095] The Thompson sampling algorithm and the upper confidence bound algorithm are two specific algorithms in the multi-arm-bandit algorithm. Here, only the Thompson sampling algorithm and the upper confidence bound algorithm are used as examples for illustration. In the embodiment of the present application, other multi-arm-bandit algorithms can also be used when determining the target high-dimensional parameter subspace.

[0096] (9) Conjugate direction method.

[0097] The conjugate direction method is a general term for methods that use conjugate directions to find an optimal solution. Common conjugate direction methods include the conjugate gradient method and Powell's method.

[0098] Simply put, the process of seeking the optimal solution of the conjugate direction method is as follows: for high-dimensional space (such as the high-dimensional parameter space and high-dimensional parameter subspace mentioned in the embodiments of this application), n conjugate vectors can be selected as the "basis vectors" of the n-dimensional space. For functions defined in the high-dimensional space (such as the machine learning model mentioned in the embodiments of this application, which can be regarded as a special "function"), a straight line search is performed along each "basis vector". Then, a maximum of n searches can be performed to obtain the optimal solution of the function.

[0099] In an embodiment of the present application, the parameter tuning apparatus 200 obtains one or more sets of software configuration parameters and their corresponding software performance parameters configured for the software, and divides the high-dimensional parameter space into M high-dimensional parameter subspaces based on the one or more sets of software configuration parameters and their corresponding software performance parameters. The similarity of the data included in 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 no greater than a data threshold, where M is a positive integer.

[0100] The parameter tuning device 200 calls M machine learning models to learn M high-dimensional parameter subspaces respectively, and each machine learning model corresponds to a high-dimensional parameter subspace.

[0101] 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.

[0102] Because the parameter tuning device 200 divides the high-dimensional parameter space into M high-dimensional parameter subspaces of relatively similar sizes, it ensures that the amount of data learned by each subsequent machine learning model is the same. Each machine learning model can fully understand the relationship between each group of software configuration parameters in the corresponding high-dimensional parameter space and its corresponding software performance parameters, so that the machine learning model achieves higher quality, which facilitates the subsequent determination of one or more groups of software configuration parameters that can more effectively improve software performance.

[0103] As shown in FIG1 , which is a structural diagram of a parameter tuning system provided in an embodiment of the present application, the parameter tuning system 10 includes a parameter acquisition device 100 and a parameter tuning device 200 .

[0104] The parameter collection device 100 can collect software configuration parameters configured for the software and their corresponding software performance parameters.

[0105] For users, the parameter collection device 100 can provide users with one or more configurable sets of software configuration parameters. These sets of software configuration parameters can be transmitted to the parameter collection device 100 by the parameter tuning device 200. The parameter collection device 100 can also obtain one or more sets of software configuration parameters that have been configured for the software and record these sets of software configuration parameters.

[0106] After the software runs based on a set of software configuration parameters, the parameter collection device 100 may collect software performance parameters corresponding to the set of software configuration parameters.

[0107] The parameter collection device 100 transmits the collected one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200 .

[0108] The parameter tuning device 200 can execute the parameter tuning method provided in the embodiments of the present 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 one or more new sets of software configuration parameters that can improve software performance based on the one or more sets of software configuration parameters and their corresponding software performance parameters, and transmit the one or more sets of software configuration parameters to the parameter acquisition device 100.

[0109] In the embodiment of the present application, the parameter tuning device 200 needs to have some or all of the following functions:

[0110] Function 1: Uniformly divide the high-dimensional parameter space.

[0111] Parameter tuning apparatus 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 requirements: the similarity of the data within any high-dimensional parameter subspace is no greater than a similarity threshold, and the difference in the number of data within any two high-dimensional parameter subspaces is no greater than a number threshold. The specific values ​​of the similarity threshold and the number threshold depend on how parameter tuning apparatus 200 divides the high-dimensional parameter space.

[0112] By evenly dividing the high-dimensional parameter space, it can be ensured that the high-dimensional vectors can be evenly distributed in the M high-dimensional parameter subspaces, avoiding data skew in the M high-dimensional parameter subspaces (that is, the size differences of the high-dimensional parameter subspaces are more obvious), so as to ensure the learning effect of the subsequent machine learning model on the M high-dimensional parameter subspaces.

[0113] Function 2: Dimensionality reduction of high-dimensional parameter space (or high-dimensional parameter subspace).

[0114] 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 a high-dimensional parameter subspace).

[0115] By reducing the dimension of the high-dimensional parameter space (or high-dimensional parameter subspace), the subsequent machine learning model can speed up the learning of the high-dimensional parameter subspace and improve learning efficiency.

[0116] Function three: machine learning function.

[0117] The parameter tuning device 200 can call M machine learning models and trigger the M machine learning models to learn M high-dimensional parameter subspaces respectively, wherein each machine learning model corresponds to a high-dimensional parameter subspace, and each machine learning model learns the corresponding M high-dimensional parameter subspaces.

[0118] With the help of machine learning models, the potential relationship between software configuration parameters and software performance parameters can be better understood, ensuring that one or more optimal sets of software configuration parameters can be found later. The parameter tuning device 200 can call multiple machine learning models, which can accelerate the learning efficiency of the entire high-dimensional parameter space. Each machine learning model only learns one of the high-dimensional parameter subspaces, which can ensure the quality of the machine learning model.

[0119] Function 4: Search function for M high-dimensional parameter subspaces.

[0120] The parameter tuning device 200 can search for a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces. The target high-dimensional parameter subspace is the high-dimensional parameter subspace with the greatest "potential" among the M high-dimensional parameter subspaces. The so-called "potential" means that the probability that there are one or more sets of software configuration parameters in the target high-dimensional parameter subspace that can maximize the improvement of software performance is the highest.

[0121] The parameter tuning device 200 may search for a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces by using an upper confidence bound (UCB) algorithm or a Thompson sampling method.

[0122] Function 5: Optimal solution screening function.

[0123] The parameter tuning device 200 can use the conjugate direction optimizer to find one or more sets of software configuration parameters that maximize the software performance parameters from the high-dimensional parameter subspace. Here, the maximum value of the software performance parameter is the maximum value that the software performance parameter can reach in the high-dimensional parameter subspace.

[0124] In an embodiment of the present application, after determining the target high-dimensional parameter subspace, the parameter tuning device 200 uses a conjugate direction optimizer to find a group or multiple groups of software configuration parameters from the target high-dimensional parameter subspace that maximizes the software performance parameters, that is, finds a group or multiple groups of software configuration parameters that can maximize the output of the machine learning model corresponding to the target high-dimensional parameter space.

[0125] The embodiment of the present application does not limit the deployment mode of the parameter acquisition device 100 and the parameter tuning device 200. The embodiment of the present application provides three deployment modes.

[0126] Method 1: Deploy close to the user side.

[0127] As shown in Figure 2A, the parameter collection device 100 and the parameter tuning device 200 are deployed near the user. The parameter collection device 100 and the parameter tuning device 200 can be deployed on a user's computing device to provide the user with parameter tuning capabilities. The computing device can be a laptop, a personal desktop computer, or a user's mobile terminal.

[0128] The parameter acquisition device 100 serves as the "front end" of the parameter tuning system 10, interacting with the user and providing the user with one or more optional software configuration parameters. It can also acquire one or more software configuration parameters set for the software and its software performance parameters.

[0129] The parameter tuning device 200 serves as the "backend" of the parameter tuning system 10. Based on the one or more sets of software configuration parameters and software performance parameters acquired from the parameter acquisition device 100, it outputs one or more new sets of software configuration parameters. The one or more sets of software configuration parameters are then provided to the user via the parameter acquisition device 100.

[0130] The parameter collection device 100 and the parameter tuning device 200 may be hardware devices, such as a processor, a module within a processor, or an accelerator card within the computing device. The parameter collection device 100 and the parameter tuning device 200 may also be software modules, such as software running on a processor or an accelerator card within the computing device.

[0131] Method 2: Distributed deployment.

[0132] The parameter collection device 100 can be deployed at a location close to the user, and the parameter tuning device 200 can be deployed at a location far away from the user.

[0133] As shown in FIG2B , the parameter collection device 100 is deployed on a computing device at the user side, interacts with the user, and collects one or more sets of software configuration parameters and their software performance parameters.

[0134] The parameter tuning device 200 is deployed on other computing devices or computing device clusters. The other computing devices may be servers with strong computing power. The computing device cluster includes multiple computing devices that work together to implement the functions of the parameter tuning device 200.

[0135] The parameter collection device 100 and the parameter tuning device 200 are connected via a network. The parameter collection device 100 can transmit one or more sets of collected software performance parameters and their corresponding software performance parameters to the parameter tuning device 200 via the network. The parameter tuning device 200 can transmit one or more sets of generated new software configuration parameters (i.e., one or more sets of software configuration parameters to be configured) to the parameter collection device 100 via the network.

[0136] Method 3: Deploy away from the user side.

[0137] As shown in Figure 2C, the parameter collection device 100 and the parameter tuning device 200 are deployed at a location far away from the user. The user can interact with the parameter collection device 100 through a user-side computing device to obtain one or more sets of software configuration parameters that can be configured for the software. The user can also use the user-side computing device to transmit one or more sets of software configuration parameters configured for the software and their corresponding software performance parameters to the data parameter device.

[0138] For example, the parameter acquisition device 100 and the parameter tuning device 200 can be deployed in the cloud to provide cloud services for tuning software configuration parameters. The parameter acquisition device 100 or the parameter tuning device 200 can be deployed in an edge data center, a cloud data center, or a terminal computing device. The parameter acquisition device 100 or the parameter tuning device 200 can also be deployed in a distributed manner in some or all of the environments of the edge data center, the cloud data center, and the terminal computing device.

[0139] The user can subscribe to the cloud service and install client software on the user's computing device for transmitting data with the parameter collection device 100. The user can use the client software to request one or more sets of available software configuration parameters from the parameter collection device 100, and can also use the client software to provide feedback to the parameter collection device 100 on one or more sets of configured software configuration parameters and their corresponding software performance parameters.

[0140] The parameter acquisition device 100 can provide one or more sets of software configuration parameters acquired from the parameter tuning device 200 to the user through the client software. 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.

[0141] The following describes a parameter tuning method provided in an embodiment of the present application with reference to FIG3 . The method includes:

[0142] Step 301: The parameter collection device 100 collects one or more sets of software configuration parameters and their corresponding software performance parameters.

[0143] The present application does not limit the manner in which the parameter acquisition device 100 performs step 301 , and several possible manners are listed below.

[0144] (1) The parameter collection device 100 can interact with the user through a visual interface to obtain one or more sets of software configuration parameters and their corresponding software performance parameters from the user. Here, the method of obtaining a set of software configuration parameters and their corresponding software performance parameters by the user is used as an example. A similar method can be used to collect each set of software configuration parameters and their corresponding software performance parameters.

[0145] First, for the user, the parameter acquisition device 100 can display a visual software configuration parameter interface to the user. The user can view one or more optional software configuration parameters by browsing the software configuration parameter display interface, and make a selection on the software configuration parameter display interface to select a set of software configuration parameters that need to be set for the software.

[0146] Afterwards, the parameter collection 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.

[0147] Afterwards, the set of software configuration parameters is set to the software, and the software runs based on the software configuration parameters. Here, the operation of configuring the set of software configuration parameters for the software can be performed by the parameter collection device 100 or by the user, such as the user configuring the selected set of software configuration parameters to the software.

[0148] After the software runs based on the software configuration parameters, the parameter collection device 100 can collect software performance parameters corresponding to the set of software configuration parameters.

[0149] Software performance parameters can be provided by the user to the parameter collection device 100. For example, a quantitative method for reflecting software performance can be pre-agreed with the user. Based on this quantitative method, the user determines a specific quantitative value according to the software's running state, and this quantitative value can serve as the software performance parameter. The parameter collection device 100 displays a visual software performance parameter input interface to the user, and the user can follow the prompts on this software performance parameter input interface to enter the software performance parameter corresponding to the set of software configuration parameters.

[0150] The software performance parameters may also be measured by the parameter acquisition device 100 itself. For example, the parameter acquisition device 100 may have 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 may call the algorithm to obtain the software performance parameters corresponding to the set of software configuration parameters.

[0151] FIG4A is a schematic diagram of an interface for displaying software configuration parameters according to an embodiment of the present application. In this interface, three groups of optional software configuration parameters are displayed, each of which is named. A user can view each group of software configuration parameters in this interface. A user selects a group of software configuration parameters by checking one or more groups of software configuration parameters.

[0152] As shown in Figure 4B, it is a schematic diagram of an input interface for software performance parameters provided in an embodiment of the present application. In this interface, a group of software configuration parameters selected by the user is displayed, and the user is prompted to enter the software performance parameters corresponding to the group of software configuration parameters.

[0153] (2) The parameter acquisition device 100 interacts with the user through emails, short messages, etc. to obtain one or more sets of software configuration parameters and their corresponding software performance parameters from the user.

[0154] The parameter collection device 100 can provide the user with an optional set of one or more software configuration parameters via email, short message, etc. After providing the user with an optional set of one or more software configuration parameters, the parameter collection device 100 can request the user for one or more sets of software configuration parameters that have been configured for the software and their corresponding software performance parameters via email, short message, etc.

[0155] Step 302 : The parameter collection device 100 sends the collected one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200 .

[0156] When the parameter collection 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 collection device 100 and the parameter tuning device 200 can interact directly to transmit the one or more sets of software configuration parameters and their corresponding software performance parameters.

[0157] When the parameter acquisition device 100 and the parameter tuning device 200 are deployed on different computing devices (such as using the distributed deployment method mentioned above), the parameter acquisition device 100 and the parameter tuning device 200 can interact through the network to transmit the one or more sets of software configuration parameters and their corresponding software performance parameters.

[0158] Step 303: The parameter tuning device 200 performs tuning based on the one or more sets of software configuration parameters and their corresponding software performance parameters to generate a new one or more sets of software configuration parameters.

[0159] When the parameter tuning device 200 executes step 303, it may specifically execute the following steps:

[0160] Step 3031: The parameter tuning device 200 divides the high-dimensional parameter space to generate M high-dimensional parameter subspaces, and the M high-dimensional parameter subspaces satisfy: the similarity of the data included in any high-dimensional parameter subspace is greater than the similarity threshold, and the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than the number threshold.

[0161] The embodiment of the present application does not limit the manner in which the parameter tuning device 200 performs step 3031. The following describes a method for dividing a high-dimensional parameter space provided by an embodiment of the present application.

[0162] Assume here that the n sets of software configuration parameters collected by parameter collection device 100 are X1, X2, X3, ..., Xn, respectively. X1, X2, X3, ..., or Xn can be considered as vectors containing multiple elements, each element being a software configuration parameter. The multiple software configuration parameters Y corresponding to the n sets of software configuration parameters are Y1, Y2, Y3, ..., Yn, respectively. Y1, Y2, Y3, ..., or Yn can be considered as scalars.

[0163] The n sets of software configuration parameters can be constructed into a matrix X, that is, X = [X1, X2, ..., Xn], and the n software performance parameters can be constructed into a vector Y, that is, Y = [Y1, Y2, ..., Yn].

[0164] Step 1: Use the kernel function K to measure the similarity of the n sets of software configuration parameters X and obtain the first similarity matrix K(X,X), where K(X,X) represents the similarity of any two sets of software configuration parameters. K(X,X) is an n*n matrix S1, and an element in the matrix S1 is the similarity of the two sets of software configuration parameters X. For example, an element s1 in the matrix S1 is ij is the similarity between one set of software configuration parameters Xi and another set of software configuration parameters Xj, where i and j are the row and column numbers of element s1 respectively.

[0165] Step 2: Use the kernel function K to measure the similarity of the n software performance parameters Y and obtain the second similarity matrix K(Y,Y), where K(Y,Y) represents the similarity of any two software performance parameters. K(Y,Y) is an n*n matrix S2, and an element in the matrix S2 is the similarity of the two software performance parameters. For example, an element s2 in the matrix S2 is ij is the similarity between the software performance parameter Yi and the software configuration parameter Yj, where i and j are the row and column numbers of the element s2 respectively.

[0166] Step 3: Perform weighted summation on K(X,X) and K(Y,Y) to obtain the similarity matrix K XY . That is:

[0167] K XY =ρK(X,X)+βK(Y,Y), where ρ and β are weights set for K(X,X) and K(Y,Y).

[0168] Step 4: Call the Spectral Clustering algorithm based on K XY The high-dimensional parameter space is divided into M high-dimensional parameter subspaces.

[0169] Specifically, ①, call the spectral clustering algorithm according to KXY Spectral clustering is performed on n groups of software configuration parameters and their corresponding software performance parameters, and the n groups of software configuration parameters and their corresponding software performance parameters are divided into two categories.

[0170] ② Based on the classification results in ①, i.e., the categories to which the n sets of software configuration parameters and their corresponding software performance parameters belong, a vector machine is trained. The vector machine takes as input a set of software configuration parameters and outputs the categories to which the n sets of software configuration parameters and their corresponding software performance parameters belong.

[0171] ③. Based on the vector machine trained in ②, the high-dimensional parameter space is divided into two spaces. For the convenience of explanation, each space formed after the binary division here is called a first-level subspace.

[0172] ④ For any first-level subspace, among the n groups of software configuration parameters and their corresponding software performance parameters, multiple groups of software configuration parameters and their corresponding software performance parameters belonging to the first-level subspace are clustered by calling the spectral clustering algorithm according to K XY Spectral clustering is performed to classify multiple software configuration parameters and their corresponding software performance parameters belonging to the first-level subspace into two categories. The execution method of ④ is similar to ①, the only difference is the number of software configuration parameters and their corresponding software performance parameters that need to be classified.

[0173] ⑤. Based on the classification results in ④, i.e., the categories to which the multiple sets of software configuration parameters and their corresponding software performance parameters belong in the first-level subspace, a vector machine is trained. The vector machine takes as input a set of software configuration parameters and their corresponding software performance parameters, and outputs the categories to which the set of software configuration parameters and their corresponding software performance parameters belong.

[0174] ⑥. Based on the vector machine trained in ⑤, the first-level subspace is further divided into two second-level subspaces.

[0175] Any secondary subspace can be divided into two parts. The method of dividing any secondary subspace into two parts is similar to the method of dividing any primary subspace into two parts. For details, please refer to the above content.

[0176] Any space formed after each bisection is bisected again until M spaces are finally formed, where the M spaces are M high-dimensional parameter subspaces.

[0177] As mentioned in the previous description, the n sets of software configuration parameters and their corresponding software performance parameters obtained by the parameter tuning device 200 are only some of the "spatial points" in the high-dimensional parameter space. Partitioning the high-dimensional parameter space is the division of all "spatial points" contained in the high-dimensional parameter space. Partitioning the high-dimensional parameter space is to draw a "dividing line" in the high-dimensional parameter space to separate different high-dimensional parameter subspaces. When using the spectral clustering algorithm to partition the high-dimensional parameter space, the n sets of software configuration parameters and their corresponding software performance parameters are first clustered, and the vector machine learns this clustering method. In this way, the trained vector machine can output the category to which any set of software configuration parameters and their corresponding software performance parameters are input. The trained vector machine has the function of drawing a "dividing line". In the above content, the binary division method is mentioned, that is, each division divides the space into two. This division method can highly ensure the uniformity of the rows in the divided space. After performing multiple binary divisions, M high-dimensional parameter subspaces of relatively similar sizes can be obtained.

[0178] The spectral clustering algorithm is used to partition the high-dimensional parameter space, ensuring that the resulting M high-dimensional parameter subspaces are uniformly sized, ensuring a successful partitioning. Furthermore, by utilizing a kernel function to measure the similarity between each set of software configuration parameters and the similarity between each software performance parameter, this ensures that highly similar software configuration parameters are concentrated in the same high-dimensional parameter subspace, and that highly similar software performance parameters belong to the same high-dimensional parameter subspace. Furthermore, different weights are assigned to K(X,X) and K(Y,Y) when forming Kxy, preventing the large number of software configuration parameters from overwhelming the performance parameters or underemphasizing their importance. Using the weighted Kxy to partition the high-dimensional parameter space fully accounts for the impact of software performance parameters, resulting in a more rational 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.

[0179] After the high-dimensional parameter space is evenly divided to obtain M high-dimensional parameter subspaces, step 3032 may be performed.

[0180] Step 3032: For any high-dimensional parameter subspace, the parameter tuning apparatus 200 performs dimensionality reduction on the high-dimensional parameter subspace based on the dimensionality parameter k. The dimension of the high-dimensional parameter subspace after dimensionality reduction satisfies the dimensionality parameter k.

[0181] The dimension of the high-dimensional parameter subspace is the dimension of the high-dimensional vector in the high-dimensional parameter subspace. Dimensionality reduction of the high-dimensional parameter subspace is to reduce the dimension of any high-dimensional vector in the high-dimensional parameter subspace.

[0182] There are many ways for the parameter tuning device 200 to reduce the dimension of the high-dimensional parameter subspace based on the dimensionality parameter so that the dimension of the reduced high-dimensional parameter subspace satisfies the dimensionality parameter.

[0183] For example, the dimension of any high-dimensional vector in the high-dimensional parameter subspace is l+k. For any high-dimensional vector in the high-dimensional parameter subspace, the parameter tuning device 200 can delete the first l elements included in the high-dimensional vector, and the dimension of the high-dimensional vector without the l elements is K.

[0184] For another example, for any high-dimensional vector in the high-dimensional parameter subspace, the parameter tuning device 200 can sum up the multiple elements included in the high-dimensional vector in pairs, and use the sum of the two elements as an element in the high-dimensional vector after dimensionality reduction. If the dimension of the high-dimensional vector formed after the pairwise summation is still greater than k, the multiple elements included in the high-dimensional vector formed after the pairwise summation can continue to be summed up in pairs until the dimension of the high-dimensional vector after the pairwise summation is equal to K.

[0185] In the embodiment of the present application, the parameter tuning device 200 can use manifold learning to reduce the dimension of the high-dimensional parameter subspace. Here, the parameter tuning device 200 uses LE to reduce the dimension of the high-dimensional parameter subspace as an example. First, the parameter tuning device 200 can be based on K XY Perform eigendecomposition to obtain multiple eigenvalues ​​and the eigenvectors corresponding to each eigenvalue. Next, select the eigenvectors corresponding to the k eigenvalues ​​with the largest eigenvalues ​​and use these k eigenvectors as basis vectors for the data space. Then, use these k basis vectors to map the high-dimensional parameter subspace to a k-dimensional data space. This k-dimensional data space becomes the reduced high-dimensional parameter subspace.

[0186] Step 3032 reduces the dimensionality of the high-dimensional parameter subspace, reduces the amount of data contained in the high-dimensional parameter subspace, and increases the speed at which the machine learning model learns the high-dimensional parameter subspace, thereby ensuring the learning efficiency of the machine learning model. When manifold learning is used to reduce the dimensionality of a high-dimensional parameter subspace, valid data in the high-dimensional parameter subspace is retained while filtering out invalid data or data of relatively low importance. This ensures that the subsequent machine learning model can accurately learn the high-dimensional parameter subspace, thereby improving the quality of the machine learning model.

[0187] In the above description, the example of first executing step 3031 and then executing step 3032 is used for explanation. In practical applications, the high-dimensional parameter space may be first reduced in dimension based on the dimension parameter (the method of reducing the dimension of the high-dimensional parameter space based on the dimension parameter is similar to the method of reducing the dimension of the high-dimensional subspace in step 3032, and the details can be found in the above content, which will not be repeated here), and then the high-dimensional parameter space after the dimension reduction is divided (the method of evenly dividing the high-dimensional parameter space after the dimension reduction is similar to the method of evenly dividing the high-dimensional parameter space in step 3031, and the details can be found in the above content, which will not be repeated here).

[0188] It should be noted that step 3032 is optional. In practical applications, it is also possible to directly execute step 3033 without performing dimensionality reduction on the high-dimensional parameter space. Here, we only use step 3032 as an example for explanation, and for the sake of simplicity, the high-dimensional parameter subspace mentioned in subsequent steps refers to the high-dimensional parameter subspace after dimensionality reduction.

[0189] Step 3033: The parameter tuning device 200 assigns a corresponding high-dimensional parameter subspace to each machine learning model, triggering each machine learning model to learn the corresponding high-dimensional parameter subspace.

[0190] The machine learning model is a pre-configured machine learning model. The input of the machine learning model is a set of software configuration parameters represented by a high-dimensional vector in the high-dimensional parameter subspace, and the output is the software configuration parameters corresponding to the set of software configuration parameters. For each set of software configuration parameters input, the machine learning model will output the corresponding software configuration parameters.

[0191] The process of a machine learning model learning the data in the corresponding high-dimensional parameter subspace is an iterative process of continuously adjusting the parameters of the machine learning model itself using each set of software configuration parameters and their corresponding software configuration parameters. The so-called "iteration" means that each time the machine learning model inputs a set of software configuration parameters, it uses the output software configuration to adjust the parameters of the machine learning model itself. One iteration refers to the process of the machine learning model inputting a set of software configuration parameters and using the output software configuration to adjust the parameters of the machine learning model itself.

[0192] The parameter tuning device 200 can configure a convergence condition for the machine learning model. When the machine learning model is learning the data in the corresponding high-dimensional parameter subspace, the learning stops when the convergence condition is met. The specific content of the convergence condition is not limited in the embodiment of the present application. For example, the convergence condition can be the maximum number of iterations. When the machine learning model reaches the maximum number of iterations for learning the data in the corresponding high-dimensional parameter subspace, the learning stops. For another example. The convergence condition can also be the maximum learning time. When the machine learning model reaches the maximum learning time for learning the data in the corresponding high-dimensional parameter subspace, the learning stops. Any condition that can control the machine learning model to stop learning the high-dimensional vector in the corresponding high-dimensional parameter subspace can be used as a convergence condition.

[0193] In addition, the type of machine learning model is different, and the specific way in which the machine learning model learns the high-dimensional vectors in the corresponding high-dimensional parameter subspace is also different. Machine Learning Model This application does not limit the type of machine learning model, and the machine learning model can be linear regression, logistic regression, linear discriminant analysis, decision tree, naive Bayes theorem, K-nearest neighbors, learning vector quantization, support vector machine, and random forest.

[0194] 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.

[0195] After the M machine learning models learn the corresponding high-dimensional parameter subspace, any machine learning model can predict the corresponding software performance parameters for a set of software configuration parameters represented by any high-dimensional vector within the corresponding high-dimensional parameter subspace. A better learning effect of a machine learning model indicates higher quality, and the software performance parameters it predicts are more accurate and closer to the actual software performance parameters generated by the software running based on the set of software configuration parameters.

[0196] The probability that there are one or more sets of software configuration parameters that can maximize the software performance parameters in any of the M high-dimensional parameter subspaces is different, or in other words, the probability that there are one or more sets of software configuration parameters that can optimize the software performance in any of the high-dimensional parameter subspaces is different. Here, "the maximum value that the software performance parameters can reach" or "the optimal state that the software performance can reach" is subject to certain factors, which include but are not limited to: the quality of the current machine learning model, the distribution of the M high-dimensional parameter subspaces in the high-dimensional parameter space, and the computing power of the called algorithm (such as the conjugate method, spectral clustering algorithm, manifold learning, Thompson sampling algorithm, upper confidence bound algorithm, etc.). Therefore, the one or more sets of software configuration parameters that can maximize the software performance parameters mentioned in the embodiment of the present application refer to the one or more sets of software configuration parameters that can achieve the maximum value that the software performance parameters can reach or the "optimal state that the software performance can reach" under the constraints of these factors.

[0197] The purpose of parameter tuning device 200 in tuning software configuration parameters is to find one or more sets of software configuration parameters. To this end, parameter tuning device 200 needs to find, from the M high-dimensional parameter subspaces, the high-dimensional parameter subspace containing one or more sets of software configuration parameters that can significantly improve software performance. Parameter tuning device 200 needs to execute step 3034.

[0198] 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. The 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 with the highest probability of containing one or more sets of software configuration parameters that will maximize the improvement in software performance parameters.

[0199] The spectral clustering algorithm is used to partition the high-dimensional parameter space into M high-dimensional parameter subspaces. Since the high-dimensional parameter subspace is partitioned step by step using a binary partitioning method, the binary partitioning process of the high-dimensional parameter space 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-partitioned from top to bottom, splitting into two nodes until M leaf nodes are formed. Each leaf node represents a high-dimensional parameter subspace. The statistics of the M leaf nodes are evaluated using the UCB. The statistic of each leaf node is the probability, calculated based on the UCB, that one or more sets of software configuration parameters exist within the space represented by the leaf node that maximize the software performance parameters. This statistic can be understood as the "potential" of the space represented by the leaf node.

[0200] A leaf node with the largest statistic is selected from the M leaf nodes, and the high-dimensional parameter subspace represented by the leaf node is the target high-dimensional parameter subspace.

[0201] 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.

[0202] At this point, the parameter tuning apparatus 200 generates one or more new sets of software configuration parameters, and the parameter tuning apparatus 200 may execute step 304 .

[0203] Step 304: The parameter tuning device 200 transmits the generated one or more sets of software configuration parameters to the parameter collection device 100. The manner in which the parameter tuning device 200 transmits the generated one or more sets of software configuration parameters to the parameter collection device 100 is similar to the manner in which the parameter collection device 100 transmits the collected one or more sets of software configuration parameters and their corresponding software performance parameters to the parameter tuning device 200 in step 302. For details, please refer to the above description and will not be repeated here.

[0204] Step 305: The parameter collection device 100 displays the one or more sets of software configuration parameters to the user, and prompts the user to select a set of software configuration parameters to configure for the software.

[0205] In step 301, the manner in which the parameter acquisition device 100 displays the one or more sets of software configuration parameters to the user is listed. For details, please refer to the above description and will not be repeated here.

[0206] After the user selects a set of software configuration parameters and configures the software with the set of software configuration parameters, the parameter acquisition device 100 can continue to collect the set of software configuration parameters and their corresponding software performance parameters, and continue to execute steps 301 to 305. Steps 301 to 305 can be executed in a loop, and steps 301 to 305 can be executed in a loop. The parameter tuning method executed by the parameter tuning device 200 can learn and predict at the same time (i.e., predict a new set of one or more sets of software configuration parameters). The parameter tuning device 200 learns the acquired set of one or more sets of software configuration parameters and their corresponding software performance parameters, and outputs a new set of one or more sets of software configuration parameters; thereafter, the parameter tuning device 200 learns the subsequently acquired set of one or more sets of software configuration parameters and their corresponding software performance parameters, and outputs a new set of one or more sets of software configuration parameters. This cycle continues until the tuning stop condition is met.

[0207] The tuning stop condition can be set by the user. The embodiment of the present application does not limit the specific content of the tuning stop condition. For example, the tuning stop condition can be the number of times the user sets the recommendation of one or more sets of software configuration parameters, that is, the number of times the parameter tuning method is executed by the parameter tuning device 200.

[0208] For another example, the tuning stop condition may be an instruction initiated by the user to instruct to stop tuning. The embodiment of the present application does not limit the initiation method of the instruction. Taking the example that the parameter acquisition device 100 and the user can interact through a visual interface, a "stop tuning" option may be provided in the visual interface displayed to the user by the parameter acquisition device 100. The user clicks on "Stop tuning" to send an instruction to the parameter acquisition device 100 to instruct to stop tuning. After receiving the instruction, the parameter acquisition device 100 transmits the instruction to the parameter tuning device 200. After receiving the instruction, the parameter tuning device 200 stops executing the parameter tuning method.

[0209] Based on the same inventive concept as the method embodiment, the present embodiment further provides a parameter tuning device for executing the method performed by parameter tuning device 200 in the method embodiment described above. As shown in FIG5 , parameter tuning device 500 includes a partitioning module 501, a learning module 502, and a screening module 503. Specifically, in parameter tuning device 500, each module is connected via a communication path.

[0210] Partitioning module 501 is configured to partition the high-dimensional parameter space based on one or more sets of software configuration parameters configured for the software and the corresponding software performance parameters, forming M high-dimensional parameter subspaces. The software performance parameters corresponding to a set of software configuration parameters are used to characterize the performance of the software after the set of software configuration parameters are configured. The high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters. The M high-dimensional parameter subspaces satisfy the 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 no greater than a number threshold. M is a positive integer.

[0211] The learning module 502 is used to call M machine learning models to learn M high-dimensional parameter subspaces respectively, and each machine learning model corresponds to a high-dimensional parameter subspace.

[0212] The screening module 503 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 user with one or more sets of software configuration parameters to be configured.

[0213] As a possible implementation method, when partitioning the high-dimensional parameter space, the partitioning module 501 constructs a similarity matrix based on one or more groups of software configuration parameters and corresponding software performance parameters. Any element in the similarity matrix represents the degree of similarity between two groups 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.

[0214] As a possible implementation, when generating the similarity matrix, the partitioning module 501 measures the similarity of one or more groups of software configuration parameters and corresponding software performance parameters using a kernel function to generate the similarity matrix.

[0215] As a possible implementation, when generating a similarity matrix using a kernel function, the partitioning module 501 uses the kernel function to measure the similarity of one or more sets of software configuration parameters to generate a first similarity matrix, where any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters. The partitioning module 501 uses the kernel function to measure the similarity of software performance corresponding to one or more sets of software configuration parameters to generate a second similarity matrix, where any element in the similarity matrix represents the degree of similarity between the software performance corresponding to two sets of software configuration parameters. The partitioning module 501 performs a weighted summation of the first similarity matrix and the second similarity matrix to generate a similarity matrix, where the weight of the second similarity matrix is ​​greater than the weight of the first similarity matrix.

[0216] As a possible implementation, when learning M high-dimensional parameter subspaces, the learning module 502 uses manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; and calls M machine learning models to learn the M high-dimensional parameter subspaces after dimension reduction.

[0217] As a possible implementation, the screening module 503 determines, from the target high-dimensional parameter subspace, by means of a conjugate direction method, one or more sets of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace.

[0218] As a possible implementation, the screening module 503 calls the Thompson sampling algorithm or the upper confidence bound algorithm to select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.

[0219] The division of modules in the embodiments of the present application is illustrative and is merely a logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional modules in the various embodiments of the present application may be integrated into a single processor, or may exist physically separately, or two or more modules may be integrated into a single module. The aforementioned integrated modules may be implemented in the form of hardware or software functional modules.

[0220] If the integrated module is implemented in the form of 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 the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including a number of instructions for enabling a terminal device (which can be a personal computer, mobile phone, or network device, etc.) or a processor to execute all or part of the steps of the method of each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc., various media that can store program code.

[0221] The present application further provides a computing device 600 as shown in Figure 6. The computing device 600 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.

[0222] Among them, the processor 602 can be a central processing unit (CPU), or it can be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0223] The memory 604 can be a dynamic random access memory (DRAM). In addition to DRAM, the memory 604 can also be other random access memories, such as static random access memory (SRAM). In addition, the memory 604 can also be a read-only memory (ROM). As for the read-only memory, for example, it can be a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), etc. The memory 604 can also be a flash memory medium (FLASH), a hard disk drive (HDD) or a solid state drive (SSD). The memory 604 stores computer program instructions, and the processor 602 executes the computer program instructions to execute the steps performed by the parameter tuning device in the method described in Figure 3 above. The memory 604 can also include software modules required for other running processes such as the operating system (such as multiple modules in the parameter tuning device 500). The operating system can be LINUX TM ,UNIX TM ,WINDOWS TM wait.

[0224] The present application also provides a computing device system, comprising at least one computing device 700 as shown in FIG7 . The computing device 700 comprises a bus 701, a processor 702, a communication interface 703, and a memory 704. The processor 702, the memory 704, and the communication interface 703 communicate with each other via the bus 701. The at least one computing device 700 in the computing device system communicates with each other via a communication path.

[0225] The specific types of the processor 702 and the memory 704 can be found in the description of the processor 602 and the memory 604, which will not be described here. The processor 702 executes the computer program instructions stored in the memory 704 to execute part or all of the steps performed by the parameter tuning device in the method described in FIG3. The memory may also include other software modules required for running processes such as the operating system. The operating system may be LINUX TM ,UNIX TM ,WINDOWS TM wait.

[0226] At least one computing device 700 in the computing device system establishes communication with each other via a communication network, and each computing device 700 runs any one or multiple modules in the parameter tuning apparatus 500 .

[0227] In the above description, the parameter tuning system deployment method mentioned that the parameter acquisition device and the parameter tuning device can be deployed on the user's computing device. From the hardware implementation, the parameter tuning device and the parameter acquisition device can be the processor of the computing device, a partial module of the processor, or an accelerator card of the computing device.

[0228] As shown in Figure 8, it is a structural diagram of a computing device deployed with an accelerator card provided in an embodiment of the present application. The computing device 800 includes a bus 801, a processor 802, a communication interface 803 and a memory 804, and an accelerator card 805.

[0229] The functions and types of the bus 801, processor 802, communication interface 803 and memory 804 are similar to those of the bus 601, processor 602, communication interface 603 and memory 604 in the computing device shown in Figure 6. Please refer to the above description for details and will not be repeated here.

[0230] The difference is that in the computing device shown in FIG8 , the processor 802 no longer executes the steps performed by the parameter tuning device in the method described in FIG3 . Instead, the accelerator card 805 executes the steps performed by the parameter tuning device in the method described in FIG3 .

[0231] The accelerator card 805 includes a data processing unit (DPU) 8051 and a memory 8052. The DPU 8051 and the memory 8052 are connected via a system bus, which can be a peripheral component interconnect express (PCIe) bus, or a bus of a compute express link (CXL), a universal serial bus (USB) protocol, or other protocols. Among them, the DPU 8051 can also be replaced by other processors with processing functions, such as ASCI, FPGA, etc. The type of memory 8052 is similar to that of the memory 604. For details, please refer to the above description. The memory 8052 can store the computer program instructions and data necessary for the accelerator card 805 to execute the parameter tuning method.

[0232] DPU 8051 is the primary computing unit and core unit of accelerator card 805. It performs the primary functions of accelerator card 805. For example, some functions of a computing device (such as a processor) can be offloaded to DPU 8051, which then processes data and performs tasks assigned to accelerator card 805 by the computing device. DPU 8051 executes the methods required by the parameter tuning device in the embodiment shown in Figure 3 by invoking computer program instructions stored in memory 8052.

[0233] The following describes the execution process of the parameter tuning method in the computing device 800 by taking the parameter acquisition device deployed on the processor 802 of the computing device 800 and the parameter tuning device as the accelerator card 805 of the computing device 800 as an example.

[0234] The computing device 800 deployed with the accelerator card 805 can provide the user with a parameter tuning function. This parameter tuning function can be enabled by default. That is, as long as the user performs a software configuration parameter selection operation, such as selecting a software configuration parameter in the interface shown in FIG4A, the computing device 800 will automatically execute the parameter tuning method. The computing device 800 automatically executes the embodiment shown in FIG9. The parameter tuning function can also be controlled by the user to be enabled or disabled. The user can enable the parameter tuning function according to actual needs. For example, in the software configuration parameter interface displayed to the user by the computing device 800, an "Enable Parameter Tuning" option is provided. When the user clicks on the option to enable parameter tuning, the processor 802 of the computing device 800 issues an instruction to enable the parameter tuning function. After receiving the instruction, the processor 802 of the computing device 800 notifies the accelerator card 805 to enable the parameter tuning function. In this case, the computing device 800 executes the embodiment shown in FIG9.

[0235] In step 901, the processor 802 on the computing device 800 first collects one or more software configuration parameters and corresponding software performance parameters configured for the software, and writes the one or more software configuration parameters and corresponding software performance parameters into a register. The register may be internal to the processor 802 or a register connected to the processor 802.

[0236] In 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 register to a parameter memory. The parameter memory is connected to the accelerator card 805 in the computing device 800, and the accelerator card 805 can extract data from the parameter memory. This embodiment of the application does not limit the type of the parameter memory; any memory capable of data storage is applicable to this embodiment of the application. The parameter memory can be a portion of the aforementioned volume of memory 804.

[0237] Step 903: The accelerator card 805 of the computing device 800 obtains a set or multiple software configuration parameters and their corresponding software performance parameters stored in the parameter memory.

[0238] Step 904: The accelerator card 805 of the computing device 800 generates one or more new sets of software configuration parameters based on the one or more software configuration parameters and their corresponding software performance parameters. The manner in which the accelerator card 805 of the computing device 800 performs step 904 can be specifically described in step 303 of the embodiment shown in FIG. 3 , and will not be further described here.

[0239] Step 905: The accelerator card 805 of the computing device 800 writes the generated one or more sets of software configuration parameters into registers.

[0240] Step 906: The processor 802 of the computing device 800 reads one or more sets of software configuration parameters from the register, and provides the new one or more sets of software configuration parameters to the user.

[0241] Optionally, the accelerator card 805 of the computing device 800 may further 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 may be deployed in a persistent storage device, such as an SSD or SCM, which can store data persistently. Specifically, the following steps are performed:

[0242] Step 907: The accelerator card 805 of the computing device 800 generates one or more new sets of software configuration parameters and writes them into the software configuration parameter database.

[0243] The accelerator card 805 of the computing device 800 may be provided with a cache. Each time the parameter tuning method is executed, one or more new sets of software configuration parameters are generated and cached in the cache. If the cache contains a large amount of data and reaches a data volume threshold, the accelerator card 805 of the computing device 800 will persist the cache to the software configuration parameter database.

[0244] Step 908: The processor 802 of the computing device 800 selects one or more sets of software configuration parameters from the software configuration parameter database, migrates them to the register, and provides them to the user.

[0245] For example, when the user pauses enabling the parameter tuning function of the computing device 800, the one or more sets of software configuration parameters provided to the user by the processor 802 of the computing device 800 may be a software configuration parameter database (the software configuration parameter database stores one or more sets of software configuration parameters generated by the previous execution of the parameter tuning method, that is, historical software configuration parameters).

[0246] For another example, when the user enables the parameter tuning function of the computing device 800, in addition to the accelerator card 805 of the computing device 800 being able to generate a new set or sets of software configuration parameters and write them into the register, the processor 802 of the computing device 800 can also select one or more sets of software configuration parameters from the software configuration parameter database and write them into the register. Afterwards, the set or sets of software configuration parameters stored in the register are provided to the user.

[0247] The descriptions of the processes corresponding to the above figures have different focuses. For parts that are not described in detail in a certain process, please refer to the relevant descriptions of other processes.

[0248] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes computer program instructions that, when loaded and executed on a computer, fully or partially generate the process or functions described in FIG. 3 of the embodiment of the present invention.

[0249] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line, or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., an SSD).

[0250] Obviously, those skilled in the art may make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include these modifications and variations.

Claims

1. A parameter tuning method, characterized in that: include: The high-dimensional parameter space is divided based on one or more groups of software configuration parameters configured for the software and the corresponding software performance parameters to form M high-dimensional parameter subspaces, wherein the software performance parameters corresponding to a group of software configuration parameters are used to characterize the performance of the software after the group of software configuration parameters are configured, and the high-dimensional parameter space is a high-dimensional space constructed by all software configuration parameters that can be configured for the software and the corresponding software performance parameters; the M high-dimensional parameter subspaces satisfy: the similarity of data in any of the high-dimensional parameter subspaces is greater than a similarity threshold, the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than a number threshold, and M is a positive integer; Calling M machine learning models to learn the M high-dimensional parameter subspaces respectively, each machine learning model corresponds to one of the high-dimensional parameter subspaces; Select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace using a machine learning model corresponding to the target high-dimensional parameter subspace, and provide the one or more sets of software configuration parameters to be configured to a user.

2. The method according to claim 1, characterized in that The partitioning of the high-dimensional parameter space based on one or more sets of software configuration parameters configured for the software and corresponding software performance parameters includes: Building a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters, wherein any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters; A spectral graph clustering algorithm is called to partition the high-dimensional parameter space based on the similarity matrix.

3. The method according to claim 2, characterized in that The constructing of a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters includes: The similarity matrix is ​​generated by measuring the similarity of one or more groups of software configuration parameters and corresponding software performance parameters with the help of a kernel function.

4. The method according to claim 3, characterized in that The similarity measurement of one or more groups of software configuration parameters and corresponding software performance parameters by means of a kernel function includes: Using a kernel function to measure the similarity of one or more groups of software configuration parameters, a first similarity matrix is ​​generated, wherein any element in the similarity matrix represents the similarity between two groups of software configuration parameters; Using a kernel function, similarity measurement is performed on software performance corresponding to one or more groups of software configuration parameters to generate a second similarity matrix, wherein any element in the similarity matrix represents the similarity between software performance corresponding to two groups of software configuration parameters; The first similarity matrix and the second similarity matrix are configured to be weighted and summed to generate the similarity matrix, wherein the weight of the second similarity matrix is ​​greater than the weight of the first similarity matrix.

5. The method according to any one of claims 1 to 4, characterized in that: The calling of the M machine learning models to respectively learn the M high-dimensional parameter subspaces includes: Using manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; The M machine learning models are called to respectively learn the M high-dimensional parameter subspaces after dimensionality reduction.

6. The method according to any one of claims 1 to 5, characterized in that: The step of determining one or more groups of software configuration parameters to be configured from the target high-dimensional parameter subspace using the machine learning model corresponding to the target high-dimensional parameter subspace includes: By means of the conjugate direction method, one or more groups of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace are determined from the target high-dimensional parameter subspace.

7. The method according to any one of claims 1 to 6, characterized in that: The selecting a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces comprises: The Thompson sampling algorithm or the upper confidence bound algorithm is called to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.

8. A parameter tuning device, characterized in that: include: A partitioning module is used to partition the high-dimensional parameter space based on one or more sets of software configuration parameters configured for the software and the corresponding software performance parameters to form M high-dimensional parameter subspaces, wherein the software performance parameters corresponding to a set of software configuration parameters are used to characterize the performance of the software after the set of software configuration parameters are configured, and the high-dimensional parameter space is all the software that can be configured for the software. A high-dimensional space constructed by configuring parameters and corresponding software performance parameters; the M high-dimensional parameter subspaces satisfy: the similarity of data in any of the high-dimensional parameter subspaces is greater than a similarity threshold, the difference in the number of data included in any two high-dimensional parameter subspaces is not greater than a number threshold, and M is a positive integer; A learning module, used for calling M machine learning models to learn the M high-dimensional parameter subspaces respectively, each machine learning model corresponds to one of the high-dimensional parameter subspaces; A screening module is used to select a target high-dimensional parameter subspace from the M high-dimensional parameter subspaces, determine one or more sets of software configuration parameters to be configured from the target high-dimensional parameter subspace using a machine learning model corresponding to the target high-dimensional parameter subspace, and provide the one or more sets of software configuration parameters to be configured to a user.

9. The device according to claim 8, characterized in that The partitioning module is used for: Building a similarity matrix based on one or more sets of software configuration parameters and corresponding software performance parameters, wherein any element in the similarity matrix represents the degree of similarity between two sets of software configuration parameters and corresponding software performance parameters; A spectral graph clustering algorithm is called to partition the high-dimensional parameter space based on the similarity matrix.

10. The device according to claim 9, characterized in that The partitioning module is used for: The similarity matrix is ​​generated by measuring the similarity of one or more groups of software configuration parameters and corresponding software performance parameters with the help of a kernel function.

11. The device according to claim 10, characterized in that The partitioning module is used for: Using a kernel function to measure the similarity of one or more groups of software configuration parameters, a first similarity matrix is ​​generated, wherein any element in the similarity matrix represents the similarity between two groups of software configuration parameters; Using a kernel function, similarity measurement is performed on software performance corresponding to one or more groups of software configuration parameters to generate a second similarity matrix, wherein any element in the similarity matrix represents the similarity between software performance corresponding to two groups of software configuration parameters; The first similarity matrix and the second similarity matrix are configured to be weighted and summed to generate the similarity matrix, wherein the weight of the second similarity matrix is ​​greater than the weight of the first similarity matrix.

12. The device according to any one of claims 8 to 11, characterized in that: The learning module is used to: Using manifold learning to reduce the dimensions of the M high-dimensional parameter subspaces; The M machine learning models are called to respectively learn the M high-dimensional parameter subspaces after dimensionality reduction.

13. The device according to any one of claims 8 to 12, characterized in that: The screening module is used to: By means of the conjugate direction method, one or more groups of software configuration parameters that maximize the output of the machine learning model corresponding to the target high-dimensional parameter subspace are determined from the target high-dimensional parameter subspace.

14. The device according to any one of claims 8 to 13, characterized in that: The screening module is used to: The Thompson sampling algorithm or the upper confidence bound algorithm is called to select the target high-dimensional parameter subspace from the M high-dimensional parameter subspaces.

15. A computing device, characterized in that: The computing device includes a processor and a memory; The memory is used to store computer program instructions; The processor executes and calls the computer program instructions in the memory to perform the method according to any one of claims 1 to 7.

16. A computer-readable storage medium, characterized in that: When the computer-readable storage medium is executed by a computing device, the computing device executes the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Software system performance optimization method based on generative countermeasure network

    CN109388565A

  • Cluster configuration automatic optimization method and system based on machine learning

    CN112445746A

  • Parameter configuration method and device

    CN114756607A

  • Low-cost high-dimensional multi-target software configuration parameter tuning method and system

    CN116107664A

  • Parameter tuning method, device and equipment

    CN117348942A

Cited By

  • Modern agricultural intelligent greenhouse ecological regulation and control system

    CN121386998A

  • A modern agricultural wisdom greenhouse ecological regulation system

    CN121386998B