A model acquisition method based on a cloud service system and a computing node
Patent Information
- Application Number
- CN202510198788.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-20
- Publication Date
- 2026-08-21
AI Technical Summary
[0004]上述过程中,在出现处理器替换的情况下,往往需要执行这多个基础模型以及这多个lora模型的切分或合并,模型内部的结构往往很复杂,使得该切分过程或合并过程需要耗费大量的时间成本,进而导致模型训练的时长过大,影响用户体验
[0032]本申请实施例中,在模型训练过程中,计算节点的多个第一处理器可获取某个模型,由于该模型可通过序列的方式呈现,且该序列包含多个第一序列,故这多个第一处理器可得到该序列所包含的多个第一序列,这多个第一处理器可分别将这多个第一序列存储到存储节点中。在计算节点中,当这多个第一处理器被替换为多个第二处理器时,这多个第二处理器中的任意一个第二处理器可先确定该序列中其需获取的一个第二序列,并从存储节点中读取该第二序列,该第二序列来自这多个第一序列中的至少一个第一序列。那么,这多个第二处理器可最终得到多个第二序列,以在后续中利用多个第二序列获取新模型。前述过程中,由于多个第一处理器会将其得到的多个第一序列存储于存储节点中,相当于将整个序列存储于存储节点,当多个第一处理器被替换为多个第二处理器时,多个第二处理器可自行确定其需获取的多个第二序列,并从存储节点所存储的整个序列读取多个第二序列,以利用多个第二序列继续进行模型训练,从而获取新模型。这样一来,多个第二处理器不需要执行模型的切分或合并,可以减少模型训练所需耗费的时长,从而提高用户体验。
Smart Images

Figure CN122614535A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of cloud technology, and in particular to a model acquisition method and computing node based on a cloud service system. Background Technology
[0002] With the rapid development of cloud technology, more and more users are choosing compute node clusters provided by cloud vendors to complete model training. Compute node clusters can provide users with a large number of processors, which can work together to complete model training to meet the user's model training needs.
[0003] In related technologies, the neural network model that a user needs to train can be split into multiple base models, and these base models are deployed on multiple processors. These processors can then use training data to train these base models, resulting in multiple low-rank adaptation (LOR) models. These LOA models are used to update the base models. In some cases, if multiple new processors are needed to replace the base models, the base models and LOA models need to be split or merged to obtain multiple new base models and new LOA models. These new base models and new LOA models are then deployed on these new processors, allowing them to continue training the base models.
[0004] In the process described above, when processor replacement occurs, it is often necessary to split or merge these multiple base models and multiple LoRa models. The internal structure of the models is often very complex, which makes the splitting or merging process consume a lot of time, resulting in excessive model training time and affecting user experience. Summary of the Invention
[0005] This application provides a model acquisition method and computing node based on a cloud service system, which can reduce the time required for model training and thus improve user experience.
[0006] The first aspect of this application provides a model acquisition method based on a cloud service system, wherein the cloud service system implementing the method includes storage nodes and computing nodes. The method includes:
[0007] After multiple first processors of a computing node collaboratively acquire a certain model, since each first processor can acquire multiple first models contained in the model, the multiple first processors can convert the multiple first models into multiple first sequences, and these multiple first sequences form a sequence obtained by converting the model.
[0008] For any one of the multiple first processors, the first processor may send a sequence storage request to the storage node, the sequence storage request indicating the first sequence obtained by the first processor. Then, the storage node may store the first sequence obtained by the first processor based on the sequence storage request. In this way, the storage node can ultimately store multiple first sequences obtained by multiple first processors.
[0009] In some cases, multiple second processors of a computing node replace multiple first processors. For any one of the multiple second processors, that second processor can determine from the sequence the second sequence it needs to acquire. In this way, the multiple second processors can determine their respective multiple second sequences from the sequence.
[0010] After multiple second processors determine the multiple second sequences to be acquired, each of the second processors can send a sequence acquisition request to the storage node. This request indicates the second sequence the processor needs to acquire. The storage node then returns the second sequence to the processor based on the acquisition request. In this way, the multiple second processors can ultimately acquire multiple second sequences, which can then be used to obtain a new model.
[0011] As can be seen from the above method, since multiple first processors store their obtained first sequences in storage nodes, it is equivalent to storing the entire sequence in the storage nodes. When multiple first processors are replaced by multiple second processors, the multiple second processors can independently determine the multiple second sequences they need to acquire and read the multiple second sequences from the entire sequence stored in the storage nodes. They can then use these multiple second sequences to continue model training, thereby obtaining a new model. In this way, multiple second processors do not need to perform model splitting or merging, which can reduce the time required for model training and thus improve the user experience.
[0012] In one possible implementation, the sequence is split into multiple first sequences based on a model training strategy. The number of these first sequences is determined based on a first degree of parallelism of the model training strategy, which includes at least one of pipelined parallelism, tensor parallelism, and data parallelism. In this implementation, the number of first processors is determined based on the first degree of parallelism of the model training strategy. Since the number of first processors equals the number of first sequences, this is equivalent to the sequence being split into multiple first sequences based on the model training strategy, and the number of these first sequences being determined based on the first degree of parallelism of the model training strategy. Therefore, the number of first processors can be determined based on the first parallelism strategy, thereby indirectly and accurately determining the number of first sequences (because one first processor can produce one first sequence).
[0013] In one possible implementation, the second processor determines the second sequence it needs to acquire from the sequence by: splitting the sequence into multiple second sequences based on a second degree of parallelism in the model training strategy, where the second degree of parallelism replaces the first degree of parallelism; and determining the second sequence from the multiple second sequences, where the order of the second sequences among the multiple second sequences is equal to the order of the second processor among the multiple second processors. In the aforementioned implementation, for any one of the multiple second processors, the second processor uses the second degree of parallelism in the model training strategy to split the sequence into multiple second sequences and determines its order among the multiple second processors. If the order of a certain second sequence among the multiple second sequences is equal to the order of the second processor among the multiple second processors, then that second sequence can be determined as the second sequence that the second processor needs to acquire. In this way, each of the multiple second processors can ultimately accurately determine its own second sequence, which is beneficial for each of the multiple second processors to accurately acquire multiple second sequences from the storage node subsequently.
[0014] In one possible implementation, the second parallelism is a positive integer multiple of the first parallelism, or the first parallelism is a positive integer multiple of the second parallelism. In the aforementioned implementation, when the first parallelism is less than or equal to the second parallelism, the second parallelism can be a positive integer multiple of the first parallelism. When the first parallelism is greater than or equal to the second parallelism, the first parallelism can be a positive integer multiple of the second parallelism.
[0015] In one possible implementation, the second sequence originating from at least one first sequence includes any of the following: when the second parallelism is less than the first parallelism, the second sequence consists of at least two first sequences; when the second parallelism is greater than the first parallelism, the second sequence is a part of a first sequence; when the second parallelism is equal to the first parallelism, the second sequence consists of a part of at least two first sequences. In the aforementioned implementation, when the first parallelism is greater than the second parallelism, the number of multiple first sequences is greater than the number of multiple second sequences, therefore any one of the multiple second sequences consists of at least two first sequences. When the first parallelism is less than the second parallelism, the number of multiple first sequences is less than the number of multiple second sequences, therefore any one of the multiple second sequences is a part of a first sequence. When the first parallelism is equal to the second parallelism, the number of multiple first sequences is equal to the number of multiple second sequences, therefore any one of the multiple second sequences consists of a part of at least two first sequences. Therefore, both multiple first sequences and multiple second sequences can form this sequence, regardless of their quantitative relationship. Multiple second sequences can originate from multiple first sequences, thus multiple second processors can successfully read multiple second sequences from multiple first sequences stored in the storage node.
[0016] In one possible implementation, when the second sequence consists of at least two first sequences, a sequence read request instructs the storage node to read at least two first sequences to obtain the second sequence and provide it to the second processor. When the second sequence is a part of a first sequence, the sequence read request instructs the storage node to read a portion of the first sequence to obtain the second sequence and provide it to the second processor. Similarly, when the second sequence consists of a part of at least two first sequences, the sequence read request instructs the storage node to read a portion of at least two first sequences to obtain the second sequence and provide it to the second processor. In the aforementioned implementation, for any one of the plurality of second processors, if the second sequence to be obtained by the second processor consists of at least two first sequences, the storage node can directly read these at least two first sequences as the second sequence and return the second sequence to the second processor. If the second sequence is a part of a first sequence, the storage node can directly read this portion of the first sequence as the second sequence and return it to the second processor. If the second sequence consists of a part of at least two first sequences, the storage node can directly read this portion of the at least two first sequences as the second sequence and return it to the second processor. In this way, multiple second processors can eventually obtain multiple second sequences from the storage nodes, that is, these multiple second sequences can be deployed on multiple second processors so that multiple second processors can successfully obtain the new model.
[0017] In one possible implementation, the model includes at least one of a neural network model and a low-rank adaptive LOA model for the neural network model, the parameters of which are used to update the parameters of the neural network model.
[0018] In one possible implementation, the compute node contains one or more physical servers, and the storage node contains one or more physical servers.
[0019] A second aspect of this application provides a computing node comprising a plurality of first processors and a plurality of second processors. The plurality of first processors run a plurality of first processing modules, and the plurality of second processors run a plurality of second processing modules. The plurality of first processing modules are used to acquire a model, the parameters of which are presented as a sequence, the sequence comprising a plurality of first sequences, and the plurality of first processors comprising a plurality of first sequences. For any one of the plurality of first processing modules, the first processing module is used to send a sequence storage request to a storage node, wherein the sequence storage request is used to instruct the storage node to store the first sequence contained in the first processing module. For any one of the plurality of second processing modules, the second processing module is used to determine a second sequence to be acquired from the sequence, wherein the plurality of second processing modules are used to replace the plurality of first processing modules, and the second sequence comes from at least one first sequence. The second processing module is further used to send a sequence acquisition request to the storage node, wherein the sequence acquisition request is used to instruct the storage node to provide a second sequence to the second processing module, and the plurality of second sequences contained in the plurality of second processing modules are used for the plurality of second processing modules to acquire a new model.
[0020] In one possible implementation, the sequence is split into multiple first sequences based on a model training strategy. The number of the multiple first sequences is determined based on a first degree of parallelism of the model training strategy, which includes at least one of a pipeline parallel strategy, a tensor parallel strategy, and a data parallel strategy.
[0021] In one possible implementation, the second processing module is used to: split the sequence into multiple second sequences based on a second degree of parallelism of the model training strategy, wherein the second degree of parallelism is used to replace the first degree of parallelism; and determine the second sequence to be acquired by the second processing module from the multiple second sequences, wherein the order of the second sequences in the multiple second sequences is equal to the order of the second processing modules in the multiple second processing modules.
[0022] In one possible implementation, the second degree of parallelism is a positive integer multiple of the first degree of parallelism, or the first degree of parallelism is a positive integer multiple of the second degree of parallelism.
[0023] In one possible implementation, the second sequence derived from at least one first sequence includes any of the following: when the second parallelism is less than the first parallelism, the second sequence consists of at least two first sequences; when the second parallelism is greater than the first parallelism, the second sequence is a part of a first sequence; when the second parallelism is equal to the first parallelism, the second sequence consists of a part of at least two first sequences.
[0024] In one possible implementation, where the second sequence consists of at least two first sequences, a sequence read request is used to instruct the storage node to read at least two first sequences to obtain the second sequence and provide the second sequence to the second processing module.
[0025] In the case where the second sequence is part of a first sequence, the sequence read request is used to instruct the storage node to read a part of the first sequence to obtain the second sequence and provide the second sequence to the second processing module;
[0026] In cases where the second sequence consists of a portion of at least two first sequences, a sequence read request is used to instruct the storage node to read a portion of at least two first sequences to obtain the second sequence and to provide the second sequence to the second processing module.
[0027] In one possible implementation, the model includes at least one of a neural network model and a low-rank adaptive LOA model for the neural network model, the parameters of which are used to update the parameters of the neural network model.
[0028] In one possible implementation, the compute node contains one or more physical servers, and the storage node contains one or more physical servers.
[0029] A third aspect of this application provides a computing device cluster, the computing device cluster including at least one computing device, each computing device including a processor and a memory: the memory is used to store instructions; the processor is used to cause the computing device cluster to perform the method described in the first aspect or any possible implementation of the first aspect according to the instructions.
[0030] A fourth aspect of this application provides a computer storage medium storing one or more instructions that, when executed by one or more computers, cause the one or more computers to perform the method described in the first aspect or any possible implementation of the first aspect.
[0031] A fifth aspect of this application provides a computer program product storing instructions that, when executed by a computer, cause the computer to perform the method described in the first aspect or any possible implementation of the first aspect.
[0032] In this embodiment, during model training, multiple first processors of a computing node can acquire a model. Since the model can be presented as a sequence, and the sequence contains multiple first sequences, these multiple first processors can obtain multiple first sequences contained in the sequence. These multiple first processors can store these multiple first sequences in a storage node. In the computing node, when these multiple first processors are replaced by multiple second processors, any one of these second processors can first determine the second sequence it needs to acquire from the sequence and read the second sequence from the storage node. This second sequence comes from at least one of the multiple first sequences. Therefore, these multiple second processors can ultimately obtain multiple second sequences, which can be used to acquire a new model in subsequent processes. In the aforementioned process, since the multiple first processors store the multiple first sequences they obtain in the storage node, it is equivalent to storing the entire sequence in the storage node. When the multiple first processors are replaced by multiple second processors, the multiple second processors can independently determine the multiple second sequences they need to acquire and read the multiple second sequences from the entire sequence stored in the storage node, using the multiple second sequences to continue model training, thereby acquiring a new model. In this way, multiple secondary processors do not need to perform model splitting or merging, which can reduce the time required for model training and thus improve the user experience. Attached Figure Description
[0033] Figure 1 A schematic diagram of the structure of the cloud service system provided in the embodiments of this application;
[0034] Figure 2 A schematic diagram of model training provided in an embodiment of this application;
[0035] Figure 3 A flowchart illustrating a model acquisition method based on a cloud service system provided in this application embodiment;
[0036] Figure 4 A schematic diagram of model training provided in an embodiment of this application;
[0037] Figure 5 Another schematic diagram illustrating model training provided in an embodiment of this application;
[0038] Figure 6 Another schematic diagram illustrating model training provided in an embodiment of this application;
[0039] Figure 7 A schematic diagram of the structure of a computing node provided in an embodiment of this application;
[0040] Figure 8A schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0041] Figure 9 A schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;
[0042] Figure 10 This is a schematic diagram illustrating the network connection of computer devices in a computer cluster provided in an embodiment of this application. Detailed Implementation
[0043] This application provides a model acquisition method and computing node based on a cloud service system, which can reduce the time required for model training and thus improve user experience.
[0044] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements, but may include other elements not explicitly listed or inherent to those processes, methods, products, or apparatuses.
[0045] With the rapid development of cloud technology, more and more users are choosing compute node clusters provided by cloud vendors to complete model training. Compute node clusters can provide users with a large number of processors, which can work together to complete model training to meet the user's model training needs.
[0046] In related technologies, the neural network model that a user needs to train can be split into multiple base models, and these base models are deployed on multiple processors, with one base model deployed on each processor. These multiple processors can then use training data to train these base models, resulting in multiple low-rank adaptive LoRa models. These LoRa models are used to update the base models. In some cases, if multiple new processors are needed to replace the base models, and if the number of new processors exceeds the number of base models, then the base models and LoRa models need to be split, resulting in a larger number of new base models and LoRa models. These new base models and LoRa models are then deployed on these new processors, allowing them to continue training the base models. If the number of new processors is less than the number of processors, then the multiple base models and multiple LoRa models need to be merged to obtain fewer new base models and fewer new LoRa models. These new base models and multiple new LoRa models are then deployed on the multiple new processors so that the multiple new processors can continue to perform training on the multiple base models.
[0047] In the process described above, when processor replacement occurs, it is often necessary to split or merge these multiple base models and multiple LoRa models. The internal structure of the models is often very complex, which makes the splitting or merging process consume a lot of time, resulting in excessive model training time and affecting user experience.
[0048] To address the aforementioned issues, this application provides a model acquisition method based on a cloud service system, which can be implemented through a cloud service system. Figure 1 A schematic diagram of the structure of the cloud service system provided in the embodiments of this application is shown below. Figure 1 As shown, a cloud service system includes the infrastructure that provides cloud services and a cloud management platform that manages this infrastructure. The cloud management platform and the infrastructure are described separately below:
[0049] A cloud management platform can centrally manage the infrastructure of the entire cloud service system (for example, creating computing and storage clusters to provide model training services according to a user's instructions; computing nodes in the computing clusters and storage nodes in the storage clusters can be used to train the user's model, etc.). The cloud management platform can also be open to users outside the cloud service system and respond to their requests. For example, the cloud management platform can provide various interfaces such as login and model training interfaces for user clients (e.g., the user's terminal device or browser on the terminal device, etc.) to access. The cloud management platform can authenticate a user's client through the login interface, allowing the user's client to log in after successful authentication. Similarly, the cloud management platform can allow user clients to send model training requests to the cloud management platform through the model training interface. Since the model training request indicates the neural network model the user needs to train, the cloud management platform can create at least one computing node and at least one storage node for the user. Then, the cloud management platform can call multiple processors on the computing nodes serving the user to train the neural network model. During the training of the neural network model, these multiple processors can each obtain multiple sub-LoRa models contained in the LoRa model (the parameters of the LoRa model are used to update the parameters of the neural network model). These LoRa models can be represented as LoRa sequences. That is, after obtaining a sub-LoRa model, any one of these processors can convert it into a sub-LoRa sequence contained in the LoRa sequence. Therefore, these multiple processors can obtain multiple sub-LoRa sequences contained in (divided) the LoRa sequence and store them in the storage node. In the computing node, when these multiple processors are replaced by multiple new processors, any one of these new processors can first determine a new sub-LoRa sequence from the LoRa sequence that it needs to obtain, and then read this new sub-LoRa sequence from the storage node. This new sub-LoRa sequence comes from at least one of the aforementioned sub-LoRa sequences. These multiple new processors can ultimately produce multiple new sub-LoRa sequences and convert them into multiple new sub-LoRa models. These multiple new sub-LoRa models can then be used to further train the neural network model, thereby obtaining the next LoRa model (the parameters of the next LoRa model can be used to further update the parameters of the neural network model).
[0050] It should be noted that the cloud management platform can convert the neural network model (also known as the most primitive base model) into a base sequence, divide the original sequence into multiple sub-base sequences (these multiple sub-base sequences correspond to the multiple sub-models obtained from the most primitive base model), and allocate these multiple sub-base sequences to multiple processors contained in the computing node. These multiple processors can store these multiple sub-base sequences to the storage node.
[0051] It should also be noted that since the training process of the original base model can involve multiple iterations, for the current iteration, the multiple processors can obtain the LoRa model obtained in the current iteration (hereinafter referred to as the current LoRa model). The current LoRa model can be used to update the original base model, thereby obtaining the base model obtained in the current iteration (hereinafter referred to as the current base model). The current LoRa model can be represented by the LoRa sequence obtained in the current iteration (hereinafter referred to as the current LoRa sequence). Any one of the multiple processors can obtain a sub-LoRa sequence of the current LoRa sequence during training. Therefore, the multiple processors can obtain multiple sub-LoRa sequences of the current LoRa sequence and store them in the storage node. Suppose that before the next iteration, under certain circumstances (e.g., changes in the processor resources of the computing node), the computing node replaces these multiple processors with multiple new processors. Therefore, each of these multiple new processors can determine a new sub-LoRa sequence that it needs to obtain from the current LoRa sequence. This new sub-LoRa sequence can come from at least one sub-LoRa sequence of the current LoRa sequence. Therefore, these multiple new processors can eventually obtain multiple new sub-LoRa sequences of the current LoRa sequence, and read multiple new sub-LoRa sequences of the current LoRa sequence from the storage nodes respectively.
[0052] Subsequently, each of these new processors determines a new sub-base sequence from the base sequence, which may come from at least one sub-base sequence. These new processors then read multiple new sub-base sequences from the storage node. In this way, these new processors can begin the next iteration, transforming these new sub-base sequences into multiple new sub-base models of the original base model, transforming the multiple new sub-LoRa sequences of the current LoRa sequence into multiple new sub-LoRa models of the current LoRa model, and training these new sub-base models using the multiple new sub-LoRa models of the current LoRa model to obtain the LoRa model for the next iteration, i.e., the next LoRa model.
[0053] It should be noted that for any one of the multiple iterations, all processors in that iteration can perform the above sequence storage operation, which will not be elaborated here.
[0054] It should also be noted that the basic sequence transformed from the most original basic model, and the multiple sub-basic sequences obtained from its division, usually only need to be stored in the storage node in the first round of iteration. In the second round of iteration, the third round of iteration, and subsequent rounds of iteration, the multiple processors can directly read the required sub-basic sequences from the storage node.
[0055] It should also be noted that since different iterations can yield different LoRa models, for any given iteration, multiple processors within that iteration can store the multiple sub-LoRa sequences contained in the LoRa sequence derived from the LoRa model obtained in that iteration into the storage node. This ensures that the storage node always contains the multiple sub-LoRa sequences contained in the LoRa sequence obtained in the current iteration (the latest iteration). Therefore, if a processor is replaced before the next iteration, after the current iteration completes, the new processor in the current iteration can determine the new sub-LoRa sequences it needs to obtain from the LoRa sequence obtained in the current iteration and retrieve them from the storage node.
[0056] For example, such as Figure 2 As shown ( Figure 2(This is a schematic diagram of model training provided in an embodiment of this application). A storage node stores a base sequence converted from a base model. A computing node includes processor 1 and processor 2. The base sequence can be divided into sub-base sequence 1 and sub-base sequence 2. Processor 1 can read sub-base sequence 1 from the storage node and convert it into sub-base model 1. Processor 2 can read sub-base sequence 2 from the storage node and convert it into sub-base model 2. In the first iteration, processor 1 can train sub-base model 1 to obtain sub-LoRa model 1 obtained in the first iteration and convert it into sub-LoRa sequence 1 obtained in the first iteration. Processor 2 can train sub-base model 2 to obtain sub-LoRa model 2 obtained in the first iteration and convert it into sub-LoRa sequence 2 obtained in the first iteration, and store them in the storage node. Sub-LoRa sequence 1 and sub-LoRa sequence 2 obtained in the first iteration constitute the LoRa sequence obtained in the first iteration. Suppose that before the second iteration, processors 1 and 2 are replaced by processors 3, 4 and 5. Processor 3 can read the new sub-basic sequence 1 and the new sub-lora sequence 1 obtained in the first iteration from the storage node. Processor 4 can read the new sub-basic sequence 2 and the new sub-lora sequence 2 obtained in the first iteration from the storage node. Processor 5 can read the new sub-basic sequence 3 and the new sub-lora sequence 3 obtained in the first iteration from the storage node. The new sub-basic sequence 1, the new sub-basic sequence 2 and the new sub-basic sequence 3 also constitute the basic sequence. The new sub-lora sequence 1, the new sub-lora sequence 2 and the new sub-lora sequence 3 obtained in the first iteration also constitute the lora sequence obtained in the first iteration. In this way, processor 3 can be trained using the new sub-basic model 1 obtained by transforming the new sub-basic sequence 1 and the new sub-LoRa model 1 obtained by transforming the new sub-LoRa sequence 1 obtained in the first iteration. Processor 4 can be trained using the new sub-basic model 2 obtained by transforming the new sub-basic sequence 2 and the new sub-LoRa model 2 obtained by transforming the new sub-LoRa sequence 2 obtained in the first iteration. Processor 5 can be trained using the new sub-basic model 3 obtained by transforming the new sub-basic sequence 3 and the new sub-LoRa model 3 obtained by transforming the new sub-LoRa sequence 3 obtained in the first iteration, thereby completing the second iteration.
[0057] The infrastructure includes computing clusters and storage clusters that provide cloud services to users. A computing cluster may contain multiple computing nodes, each of which occupies a certain amount of computing resources (e.g., a central processing unit (CPU) and a graphics processing unit (GPU), etc.), a certain amount of storage resources (e.g., memory and disk space), and a certain amount of network resources (e.g., network interface cards, etc.). Therefore, the computing cluster of a cloud service system possesses a large number of computing resources, providing sufficient computing power to provide model training services to users. Similarly, a storage cluster may also contain multiple storage nodes, each of which occupies a certain amount of computing resources, storage resources, and network resources, etc. Therefore, the storage cluster possesses a large number of storage resources, providing sufficient storage capacity to work in conjunction with the computing cluster to provide model training services to users.
[0058] Furthermore, for each computing node in the computing cluster, these computing nodes can be cloud instances in the infrastructure. These cloud instances can be presented in various ways. For example, they can be at least one physical server selected by the cloud management platform; they can be at least one bare-metal server selected by the cloud management platform; they can be virtual machines (VMs) created by the cloud management platform on at least one physical server using virtualization technology; they can also be containers (Docker) created by the cloud management platform on at least one physical server using virtualization technology; they can also be microVMs created by the cloud management platform on at least one physical server using virtualization technology, and so on. Similarly, the same applies to the storage nodes in multiple storage clusters that do not belong to the cloud service system, which will not be elaborated here.
[0059] Furthermore, for compute clusters and storage clusters, compute clusters and storage clusters are typically deployed in different sites. Multiple compute nodes in a compute cluster can be deployed in the same site or different sites, and multiple storage nodes in a storage cluster can also be deployed in the same site or different sites. These sites can be presented in various forms. For example, a site can be a region in the infrastructure, an availability zone in the infrastructure, a data center (DC) in the infrastructure, a room in the infrastructure, a rack in the infrastructure, and so on.
[0060] Based on the aforementioned cloud service system, during the training process of the neural network model, multiple processors on a computing node can obtain multiple sub-LoRa models contained in the LoRa model (the parameters of the LoRa model are used to update the parameters of the neural network model). Since the LoRa model can be represented as a LoRa sequence, any processor among these multiple processors, after obtaining a sub-LoRa model of the LoRa model, can convert that sub-LoRa model into a sub-LoRa sequence contained in the LoRa sequence. Therefore, these multiple processors can obtain multiple sub-LoRa sequences contained in the LoRa sequence and store them in the storage node. In the computing node, when these multiple processors are replaced by multiple new processors, any one of these new processors can first determine a new sub-LoRa sequence that it needs to obtain from the LoRa sequence and read the new sub-LoRa sequence from the storage node. This new sub-LoRa sequence comes from at least one of the aforementioned sub-LoRa sequences. Therefore, these multiple new processors can ultimately obtain multiple new sub-LoRa sequences and convert them into multiple new sub-LoRa models. These new sub-LoRa models can then be used to further train the neural network model, resulting in the next LoRa model (the parameters of the next LoRa model can be used to further update the parameters of the neural network model). In the aforementioned process, since multiple processors store their obtained sub-LoRa sequences in storage nodes, it's equivalent to storing the entire LoRa sequence in the storage nodes. When multiple processors are replaced by multiple new processors, these new processors can independently determine the multiple new sub-LoRa sequences they need to acquire and read these sequences from the entire LoRa sequence (i.e., the entire LoRa model) stored in the storage nodes. They can then use these new sub-LoRa sequences to continue training the neural network model. In this way, multiple new processors do not need to perform LoRa model splitting or merging, reducing the time required for model training and improving the user experience. To further understand the above model acquisition process, the following section combines... Figure 3To further explain this process, Figure 3 A flowchart illustrating a model acquisition method based on a cloud service system provided in this application embodiment is shown below. Figure 3 As shown, this method can be achieved through, as Figure 1 The cloud service system implementation shown includes storage nodes and computing nodes for model training. Multiple first processors on the computing nodes are used to acquire a model (e.g., a LoRa model obtained during the training of a neural network model, specifically the LoRa model obtained in the current iteration of the neural network model). The parameters of this model are presented as a sequence (e.g., a LoRa sequence obtained in the current iteration), which contains multiple first sequences (e.g., multiple sub-LoRa sequences obtained by dividing the LoRa sequence obtained in the current iteration). For any one of the multiple first processors, the first processor contains one of the multiple first sequences. The method includes:
[0061] 301. For any one of the plurality of first processors, the first processor sends a sequence storage request to the storage node, wherein the sequence storage request is used to instruct the storage node to store the first sequence contained in the first processor.
[0062] In this embodiment, after the multiple first processors of the computing node collaboratively acquire the model, since any one of the multiple first processors can acquire one of the multiple first models contained in the model (e.g., during the training of a neural network model, the multiple sub-LoRa models contained in the LoRa model obtained in the current iteration), the first processor can convert the first model into a corresponding first sequence. Since the other first processors among the multiple first processors can also perform similar operations, the multiple first processors can ultimately obtain multiple first sequences contained in the sequence obtained by the model conversion (e.g., the LoRa sequence obtained in the current iteration) (e.g., the multiple sub-LoRa sequences contained in the LoRa sequence obtained in the current iteration).
[0063] Therefore, any one of the multiple first processors can send a sequence storage request to the storage node, wherein the sequence storage request carries the first sequence obtained by the first processor. Then, the storage node can store the first sequence of the first processor based on the sequence storage request. Since the other first processors among the multiple first processors can also perform similar operations, the storage node can ultimately store multiple first sequences obtained by multiple first processors, which is equivalent to the storage node storing the sequence.
[0064] Specifically, since the number of multiple first models, multiple first sequences, and multiple first processors are usually equal, the number of multiple first processors is determined based on the first degree of parallelism of the model training strategy (which can be set by the user or by the cloud management platform, without restriction here). Therefore, the model is usually split into multiple first models based on the model training strategy, and the number of multiple first models is determined based on the first degree of parallelism of the model training strategy. Similarly, the sequence is also usually split into multiple first sequences based on the model training strategy, and the number of multiple first sequences is determined based on the first degree of parallelism of the model training strategy, which includes at least one of the following strategies: pipeline parallelism (PP), tensor parallelism (TP), and data parallelism (DP).
[0065] For example, such as Figure 4 As shown ( Figure 4 (This is a schematic diagram of model training provided in an embodiment of this application). Assume that the model training strategy for a certain neural network model includes TP strategy, PP strategy, and DP strategy, and the parallelism of the model training strategy (i.e., the aforementioned first parallelism) is TP=2 and PP=2, that is, the parallelism is 4. In this case, four processors can be selected in the computing nodes, namely processor 1, processor 2, processor 3, and processor 4. Assuming that the training of the neural network model has reached the current iteration, the neural network model, i.e., the base model, can be divided into sub-base model 1, sub-base model 2, sub-base model 3, and sub-base model 4. Sub-base model 1 is deployed on processor 1, sub-base model 2 on processor 2, sub-base model 3 on processor 3, and sub-base model 4 on processor 4.
[0066] In the current iteration, processor 1 can train sub-base model 1 to obtain sub-LoRa model 1 obtained in the current iteration; processor 2 can train sub-base model 2 to obtain sub-LoRa model 2 obtained in the current iteration; processor 3 can train sub-base model 3 to obtain sub-LoRa model 3 obtained in the current iteration; and processor 4 can train sub-base model 4 to obtain sub-LoRa model 4 obtained in the current iteration (these four sub-LoRa models are the aforementioned multiple first models). These four sub-LoRa models obtained in the current iteration constitute the LoRa model obtained in the current iteration.
[0067] Next, processor 1 can convert the sub-LoRa model 1 obtained in the current iteration into the sub-LoRa sequence 1 obtained in the current iteration (i.e. Figure 4In the sequence “1, 2, 3, 4”, “1, 2, 3, 4” represents some parameters of the first layer in the LoRa model obtained in the current iteration. Processor 2 can convert the sub-LoRa model 2 obtained in the current iteration into the sub-LoRa sequence 2 obtained in the current iteration (i.e., Figure 4 In the sequence “5, 6, 7, 8”, where “5, 6, 7, 8” represents some parameters of the first layer in the LoRa model obtained in the current iteration, processor 3 can convert the sub-LoRa model 3 obtained in the current iteration into the sub-LoRa sequence 3 obtained in the current iteration (i.e., Figure 4 In the sequence “9, 10, 11, 12”, where “9, 10, 11, 12” represents some parameters of the second layer in the LoRa model obtained in the current iteration, processor 4 can convert the sub-LoRa model 4 obtained in the current iteration into the sub-LoRa sequence 4 obtained in the current iteration (i.e., Figure 4 In the sequence “13, 14, 15, 16”, “13, 14, 15, 16” represents some parameters of the second layer in the LoRa model obtained in the current iteration. These four sub-LoRa sequences obtained in the current iteration constitute the LoRa sequence obtained in the current iteration.
[0068] Then, processor 1 can store the sub-LoRa sequence 1 obtained in the current iteration in the storage node, processor 2 can store the sub-LoRa sequence 2 obtained in the current iteration in the storage node, processor 3 can store the sub-LoRa sequence 3 obtained in the current iteration in the storage node, and processor 4 can store the sub-LoRa sequence 4 obtained in the current iteration in the storage node. In this way, the storage node is equivalent to storing the sub-LoRa sequences obtained in the current iteration.
[0069] 302. For any one of a plurality of second processors, the second processor determines from the sequence the second processor needs to acquire a second sequence, wherein the plurality of second processors are used to replace a plurality of first processors, and the second sequence comes from at least one first sequence.
[0070] In some cases, multiple second processors replace multiple first processors in a computing node. Since each of the multiple second processors has a virtual view of the sequence, for any one of the multiple second processors, that second processor can determine a second sequence to be acquired from the sequence based on the virtual view of the sequence. Since the other second processors besides that first processor can also perform similar operations, the multiple second processors can determine the multiple second sequences they each need to acquire from the sequence (e.g., multiple new sub-lora sequences contained in the lora sequence obtained in the current iteration).
[0071] It should be noted that since multiple first sequences constitute this sequence, and multiple second sequences also constitute this sequence, any one of the multiple second sequences can come from at least one first sequence.
[0072] Specifically, when the first parallelism of the model training strategy is adjusted to the second parallelism, multiple first replacers need to be replaced by multiple second processors. The number of second processors is determined based on the second parallelism. When the first parallelism is greater than the second parallelism, the number of first processors is greater than the number of second processors, meaning the number of first sequences is greater than the number of second sequences. Therefore, any one of the multiple second sequences consists of at least two first sequences. When the first parallelism is less than the second parallelism, the number of first processors is less than the number of second processors, meaning the number of first sequences is less than the number of second sequences. Therefore, any one of the multiple second sequences is a part of a first sequence. When the first parallelism is equal to the second parallelism, the number of first processors is equal to the number of second processors, meaning the number of first sequences is equal to the number of second sequences. Therefore, any one of the multiple second sequences consists of a part of at least two first sequences.
[0073] More specifically, when the first parallelism is less than or equal to the second parallelism, the second parallelism can be a positive integer multiple of the first parallelism. When the first parallelism is greater than or equal to the second parallelism, the first parallelism can be a positive integer multiple of the second parallelism. For example, when the first parallelism is 4 and the second parallelism is 8, the first parallelism is twice the second parallelism; when the first parallelism is 4 and the second parallelism is 4, the first parallelism is once the second parallelism, and so on.
[0074] More specifically, multiple second processors can determine the second sequence they need to acquire in the following ways:
[0075] For any one of the multiple second processors, a virtual view of the sequence is set within that second processor. Therefore, the second processor can determine the complete picture of the sequence. Then, referring to this virtual view, the second processor can utilize the second degree of parallelism of the model training strategy to split the sequence into multiple second sequences. Since there is a one-to-one correspondence between the multiple second sequences and the multiple second processors, the second processor can first determine its ranking among the multiple second processors, and then determine the second sequence whose ranking is equal to its ranking among the multiple second processors. This second sequence is the second sequence that the second processor needs to acquire.
[0076] Similar operations can be performed on the other second processors among the multiple second processors, so that the multiple second processors can eventually determine the second sequence they need to obtain.
[0077] As in the example above, such as Figure 5 As shown ( Figure 5 This is another schematic diagram illustrating model training provided in an embodiment of this application. Figure 5 Is Figure 4 Based on the above (derived from the previous iteration), let's assume that before the next iteration, the parallelism of the model training strategy is adjusted to a new parallelism (i.e., the aforementioned second parallelism), which is TP=2, PP=2, and DP=2, i.e., the new parallelism is 8. In this case, processors 5 to 12 of the computing nodes replace the original processors 1 to 4. Since processors 5 to 12 are all equipped with a virtual view of the LoRa sequence obtained in the current iteration (which can be provided to processors 5 to 12 by the cloud management platform, without restriction here), processors 5 to 12 can divide the LoRa sequence obtained in the current iteration into new sub-LoRa sequences 5 to 12 based on this virtual view.
[0078] Then, based on the processor's sorting and the sorting of the new sub-lora sequence, processor 5 can determine that it needs to obtain the new sub-lora sequence 5 obtained in the current iteration (i.e. Figure 5 In the sequence “1, 2”, processor 6 can determine that it needs to obtain the new sub-lora sequence 6 obtained in the current iteration (i.e., Figure 5 In the sequence “3, 4”, processor 7 can determine that it needs to obtain the new sub-lora sequence 7 obtained in the current iteration (i.e., Figure 5 In the sequence “5, 6”, processor 8 can determine that it needs to obtain the new sub-lora sequence 8 obtained in the current iteration (i.e., Figure 5 In the sequence “7, 8”, processor 9 can determine that it needs to obtain the new sub-lora sequence 9 obtained in the current iteration (i.e., Figure 5 In the "9, 10"), processor 10 can determine that it needs to obtain the new sub-lora sequence 10 obtained in the current iteration (i.e. Figure 5 In the context of "11, 12"), processor 11 can determine that it needs to obtain the new sub-lora sequence 11 obtained in the current iteration (i.e., Figure 5 In the context of "13, 14"), processor 12 can determine that it needs to obtain the new sub-lora sequence 12 obtained in the current iteration (i.e. Figure 5 (referring to "15, 16" in the original text). It should be noted that the new sub-lora sequences 5 to 12 are the aforementioned multiple second sequences.
[0079] Therefore, it can be seen that the new sub-lora sequence 5 is a part of sub-lora sequence 1, ..., the new sub-lora sequence 12 is a part of sub-lora sequence 4.
[0080] 303. The second processor sends a sequence retrieval request to the storage node, wherein the sequence retrieval request is used to instruct the storage node to provide a second sequence to the second processor, and the multiple second sequences contained in the multiple second processors are used for the multiple second processors to retrieve the new model.
[0081] After multiple second processors determine the multiple second sequences to be acquired, any one of the second processors can send a sequence acquisition request to the storage node, whereby the sequence acquisition request indicates the second sequence that the second processor needs to acquire. The storage node can then return the second sequence to the second processor based on the sequence acquisition request. Since the other second processors besides the first one can also perform similar operations, the multiple second processors can ultimately acquire multiple second sequences.
[0082] Based on this, multiple second processors can use multiple second sequences to obtain new models (e.g., the LoRa model obtained in the next iteration).
[0083] Specifically, multiple second processors can acquire multiple second sequences in the following ways:
[0084] For any one of the multiple second processors, if the second sequence to be acquired by the second processor consists of at least two first sequences, the storage node can directly read these at least two first sequences, concatenate them to obtain the second sequence, and then return the second sequence to the second processor. If the second sequence is a part of a first sequence, the storage node can directly read this part of the first sequence, use this part of the first sequence as the second sequence, and then return the second sequence to the second processor. If the second sequence consists of a part of at least two first sequences, the storage node can directly read this part of the at least two first sequences, concatenate it to obtain the second sequence, and then return the second sequence to the second processor.
[0085] Since the other second processors among the multiple second processors can also perform similar operations, the multiple second processors can ultimately obtain multiple second sequences.
[0086] Still as Figure 5In the example shown, since the new sub-lora sequence 5 is part of sub-lora sequence 1, ..., and the new sub-lora sequence 12 is part of sub-lora sequence 4, after the storage node confirms that processors 5 to 12 need to obtain the new sub-lora sequences 5 to 12, the storage node can read the new sub-lora sequence 5 and the new sub-lora sequence 6 from sub-lora sequence 1 respectively and return them to processors 5 and 6, ..., and read the new sub-lora sequence 11 and the new sub-lora sequence 12 from sub-lora sequence 4 respectively and return them to processors 11 and 12.
[0087] In another example, such as Figure 6 As shown ( Figure 6 (This is another schematic diagram of model training provided in an embodiment of this application). If, before the next iteration, the parallelism of the model training strategy is adjusted to a new parallelism of TP = 4, i.e., the new parallelism is 4. In this case, processors 5 to 8 of the computing nodes replace the original processors 1 to 4. At this time, processor 5 can determine that it needs to obtain the new sub-lora sequence 5 obtained in the current iteration (i.e., Figure 5 In the sequence “1, 2, 9, 10”, processor 6 can determine that it needs to obtain the new sub-lora sequence 6 obtained in the current iteration (i.e., Figure 5 In the sequence “3, 4, 11, 12”, processor 7 can determine that it needs to obtain the new sub-lora sequence 7 obtained in the current iteration (i.e., Figure 5 In the sequence “5, 6, 13, 14”, processor 8 can determine that it needs to obtain the new sub-lora sequence 8 obtained in the current iteration (i.e., Figure 5 (7, 8, 15, 16 in the original text). It should be noted that the new sub-lora sequences 5 to 8 are the aforementioned multiple second sequences.
[0088] Therefore, the new sub-LoRa sequence 5 is composed of a portion of sub-LoRa sequence 1 and a portion of sub-LoRa sequence 3, ..., and the new sub-LoRa sequence 8 is composed of a portion of sub-LoRa sequence 2 and a portion of LoRa sequence 4. Thus, after confirming that processors 5 to 8 need to obtain new sub-LoRa sequences 5 to 8, the storage node can extract a portion from sub-LoRa sequence 1 and sub-LoRa sequence 3 respectively to form the new sub-LoRa sequence 5 and return it to processor 5, ..., and extract a portion from sub-LoRa sequence 2 and sub-LoRa sequence 4 respectively to form the new sub-LoRa sequence 8 and return it to processor 8.
[0089] More specifically, multiple second processors can acquire new models in the following ways:
[0090] After obtaining multiple second sequences, multiple second processors can convert the multiple second sequences into multiple second models contained in the model (e.g., multiple new sub-LoRa models contained in the LoRa model obtained in the current iteration). Therefore, multiple second processors can use multiple second models to continue model training to obtain new models.
[0091] Still as Figure 5 In the example shown, after entering the next iteration, the neural network model, i.e. the base model, can be further divided into new sub-base models 5 to 12. New sub-base model 5 is deployed on processor 5, ..., and new sub-base model 12 is deployed on processor 12.
[0092] Then, processor 5 can also convert the new sub-lora sequence 5 into the new sub-lora model 5 obtained in the current iteration, ..., processor 12 can also convert the new sub-lora sequence 5 into the new sub-lora model 12 obtained in the current iteration.
[0093] Subsequently, processor 5 can use the new sub-LoRa model 5 obtained in the current iteration to train the new sub-base model 5, and obtain the sub-LoRa model 5 obtained in the next iteration, ..., processor 12 can use the new sub-LoRa model 12 obtained in the current iteration to train the new sub-base model 12, and obtain the sub-LoRa model 12 obtained in the next iteration, thus completing the next iteration. The eight sub-LoRa models obtained in the next iteration are the LoRa models obtained in the next iteration.
[0094] It should be understood that in this embodiment, the example of the model containing a LoRa model is used for illustration only. In practical applications, the model may also contain a base model and a LoRa model obtained in the current iteration. In this way, the sequence also contains a base sequence and a LoRa sequence obtained in the current iteration. A first model also contains a sub-base model and a sub-LoRa model obtained in the current iteration. A first sequence also contains a sub-base sequence and a sub-LoRa sequence obtained in the current iteration. A second model also contains a new sub-base model and a new sub-LoRa model obtained in the current iteration. A second sequence also contains a new sub-base sequence and a new sub-LoRa sequence obtained in the current iteration. The new model also contains the base model and the LoRa model carried in the next round.
[0095] It should also be understood that in this embodiment, during the training of the basic model, the current iteration can obtain not only the LoRa model obtained in the current iteration, but also the optimizer obtained in the current iteration. The processing of the optimizer can also refer to the processing of the LoRa model, which will not be elaborated here.
[0096] In this embodiment, during model training, multiple first processors of a computing node can acquire a model. Since the model can be presented as a sequence, and the sequence contains multiple first sequences, these multiple first processors can obtain multiple first sequences contained in the sequence. These multiple first processors can store these multiple first sequences in a storage node. In the computing node, when these multiple first processors are replaced by multiple second processors, any one of these second processors can first determine the second sequence it needs to acquire from the sequence and read the second sequence from the storage node. This second sequence comes from at least one of the multiple first sequences. Therefore, these multiple second processors can ultimately obtain multiple second sequences, which can be used to acquire a new model in subsequent processes. In the aforementioned process, since the multiple first processors store the multiple first sequences they obtain in the storage node, it is equivalent to storing the entire sequence in the storage node. When the multiple first processors are replaced by multiple second processors, the multiple second processors can independently determine the multiple second sequences they need to acquire and read the multiple second sequences from the entire sequence stored in the storage node, using the multiple second sequences to continue model training, thereby acquiring a new model. In this way, multiple secondary processors do not need to perform model splitting or merging, which can reduce the time required for model training and thus improve the user experience.
[0097] The above is a detailed description of the model acquisition method based on the cloud service system provided in the embodiments of this application. The computing nodes provided in the embodiments of this application will be introduced below. Figure 7 A schematic diagram of the structure of a computing node provided in an embodiment of this application, as shown below. Figure 7 As shown, a computing node includes multiple first processors and multiple second processors. The multiple first processors run multiple first processing modules, and the multiple second processors run multiple second processing modules. The multiple first processing modules are used to acquire models. The parameters of the models are presented through sequences, and the sequences contain multiple first sequences. The multiple first processors contain multiple first sequences.
[0098] For any one of the multiple first processing modules 701, the first processing module 701 is used to send a sequence storage request to the storage node, wherein the sequence storage request is used to instruct the storage node to store the first sequence contained in the first processing module 701;
[0099] For any one of the multiple second processing modules 702, the second processing module 702 is used to determine the second sequence that the second processing module needs to obtain from the sequence, wherein the multiple second processing modules are used to replace multiple first processing modules, and the second sequence comes from at least one first sequence;
[0100] The second processing module 702 is further configured to send a sequence retrieval request to the storage node, wherein the sequence retrieval request is used to instruct the storage node to provide a second sequence to the second processing module 702, and the multiple second sequences included in the multiple second processing modules are used for the multiple second processing modules to retrieve the new model.
[0101] In one possible implementation, the sequence is split into multiple first sequences based on a model training strategy. The number of the multiple first sequences is determined based on a first degree of parallelism of the model training strategy, which includes at least one of a pipeline parallel strategy, a tensor parallel strategy, and a data parallel strategy.
[0102] In one possible implementation, the second processing module 702 is used to: split the sequence into multiple second sequences based on a second degree of parallelism of the model training strategy, wherein the second degree of parallelism is used to replace the first degree of parallelism; and determine the second sequence to be acquired by the second processing module 702 from the multiple second sequences, wherein the order of the second sequences in the multiple second sequences is equal to the order of the second processing module 702 in the multiple second processing modules 702.
[0103] In one possible implementation, the second degree of parallelism is a positive integer multiple of the first degree of parallelism, or the first degree of parallelism is a positive integer multiple of the second degree of parallelism.
[0104] In one possible implementation, the second sequence derived from at least one first sequence includes any of the following: when the second parallelism is less than the first parallelism, the second sequence consists of at least two first sequences; when the second parallelism is greater than the first parallelism, the second sequence is a part of a first sequence; when the second parallelism is equal to the first parallelism, the second sequence consists of a part of at least two first sequences.
[0105] In one possible implementation, when the second sequence consists of at least two first sequences, a sequence read request is used to instruct the storage node to read at least two first sequences to obtain the second sequence and provide the second sequence to the second processing module 702; when the second sequence is a part of a first sequence, a sequence read request is used to instruct the storage node to read a part of the first sequence to obtain the second sequence and provide the second sequence to the second processing module 702; when the second sequence consists of a part of at least two first sequences, a sequence read request is used to instruct the storage node to read a part of at least two first sequences to obtain the second sequence and provide the second sequence to the second processing module 702.
[0106] In one possible implementation, the model includes at least one of a neural network model and a low-rank adaptive LOA model for the neural network model, the parameters of which are used to update the parameters of the neural network model.
[0107] In one possible implementation, the compute node contains one or more physical servers, and the storage node contains one or more physical servers.
[0108] It should be noted that the information interaction and implementation process between the modules / units of the above-mentioned device are based on the same concept as the method embodiments of this application, and the resulting technical effects are the same as those of the method embodiments of this application. For details, please refer to the description in the method embodiments shown above in the embodiments of this application, and will not be repeated here.
[0109] Please see Figure 8 , Figure 8 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application. Figure 8 As shown, the computing device 800 (which can be used to present the aforementioned cloud management platform) includes: a processor 801, a memory 802, a communication interface 803, and a bus 804. The processor 801, memory 802, and communication interface 803 are coupled via the bus (not shown in the figure). The memory 802 stores instructions. When the instructions in the memory 802 are executed, the computing device 800 executes the method performed by the cloud management platform in the above method embodiment.
[0110] The computing device 800 may be one or more integrated circuits configured to implement the methods described above, such as: one or more application-specific integrated circuits (ASICs), or one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs), or a combination of at least two of these forms of integrated circuits. Furthermore, when the units in the device can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of calling programs. Alternatively, these units may be integrated together to implement a system-on-a-chip (SOC).
[0111] The processor 801 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor can be a microprocessor or any conventional processor.
[0112] The memory 802 can be volatile memory or non-volatile memory, or it can include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0113] The memory 802 stores executable program code, and the processor 801 executes this executable program code to implement the functions of the aforementioned first processing module and second processing module, thereby realizing the model acquisition method based on the cloud service system. That is, the memory 802 stores instructions for executing the aforementioned model acquisition method based on the cloud service system.
[0114] The communication interface 803 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 800 and other devices or communication networks.
[0115] In addition to the data bus, the 804 bus can also include a power bus, a control bus, and a status signal bus. The bus can be a Peripheral Component Interconnect Express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a Unified Bus (Ubus or UB), a Compute Express Link (CXL) bus, a Cache Coherent Interconnect for Accelerators (CCIX) bus, etc. The bus can be divided into address bus, data bus, and control bus.
[0116] Please see Figure 9 , Figure 9 This is a schematic diagram of a computing device cluster provided in an embodiment of this application. Figure 9 As shown, the computing device cluster 900 includes at least one computing device 800.
[0117] like Figure 9 As shown, the computing device cluster 900 includes at least one computing device 800. The memory 802 of one or more computing devices 800 in the computing device cluster 900 may store the same instructions for executing the aforementioned model acquisition method based on the cloud service system.
[0118] In some possible implementations, the memory 802 of one or more computing devices 800 in the computing device cluster 900 may also store partial instructions for executing the model acquisition method based on the cloud service system described above. In other words, a combination of one or more computing devices 800 can jointly execute the model acquisition method based on the cloud service system described above.
[0119] It should be noted that the memory 802 in different computing devices 800 within the computing device cluster 900 can store different instructions, each used to execute a portion of the functions of the aforementioned cloud management platform. That is, the instructions stored in the memory 802 of different computing devices 800 can implement the functions of one or more modules, such as the first processing module and the second processing module.
[0120] In some possible implementations, one or more computing devices 800 in the computing device cluster 900 can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc.
[0121] Please see Figure 10 , Figure 10 This is a schematic diagram illustrating the network connection of computer devices in a computer cluster provided in an embodiment of this application. Figure 10 As shown, the two computing devices 800A and 800B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device.
[0122] In one possible implementation, the memory in computing device 800A stores instructions for performing the functions of modules such as the first processing module. Meanwhile, the memory in computing device 800B stores instructions for performing the functions of modules such as the second processing module.
[0123] It should be understood that Figure 10 The functions of computing device 800A shown can also be performed by multiple computing devices. Similarly, the functions of computing device 800B can also be performed by multiple computing devices.
[0124] This application also relates to a computer storage medium storing a program for signal processing, which, when run on a computer, causes the computer to perform actions such as... Figure 3 The steps performed by the cloud management platform in the illustrated embodiment.
[0125] This application also relates to a computer program product that stores instructions that, when executed by a computer, cause the computer to perform actions such as... Figure 3 The steps performed by the cloud management platform in the illustrated embodiment.
[0126] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0127] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
[0128] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0129] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0130] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
Claims
1. A model acquisition method based on a cloud service system, characterized in that, The cloud service system includes storage nodes and computing nodes. Multiple first processors on the computing nodes are used to acquire a model. The parameters of the model are presented as a sequence, which includes multiple first sequences. The multiple first processors contain the multiple first sequences. The method includes: For any one of the plurality of first processors, the first processor sends a sequence storage request to the storage node, wherein the sequence storage request is used to instruct the storage node to store the first sequence contained by the first processor; For any one of a plurality of second processors, the second processor determines a second sequence to be acquired from the sequence, wherein the plurality of second processors are used to replace the plurality of first processors, and the second sequence comes from at least one first sequence; The second processor sends a sequence retrieval request to the storage node, wherein the sequence retrieval request is used to instruct the storage node to provide the second sequence to the second processor, and the plurality of second sequences included in the plurality of second processors are used for the plurality of second processors to retrieve new models.
2. The method according to claim 1, characterized in that, The sequence is split into multiple first sequences based on the model training strategy. The number of the multiple first sequences is determined based on the first parallelism of the model training strategy. The model training strategy includes at least one of pipeline parallelism, tensor parallelism, and data parallelism.
3. The method according to claim 2, characterized in that, The second processor determines the second sequence it needs to obtain from the sequence by including: The second processor splits the sequence into multiple second sequences based on the second degree of parallelism of the model training strategy, wherein the second degree of parallelism is used to replace the first degree of parallelism; The second processor determines the second sequence that the second processor needs to acquire from the plurality of second sequences, wherein the order of the second sequence in the plurality of second sequences is equal to the order of the second processor in the plurality of second processors.
4. The method according to claim 3, characterized in that, The second degree of parallelism is a positive integer multiple of the first degree of parallelism, or the first degree of parallelism is a positive integer multiple of the second degree of parallelism.
5. The method according to claim 3 or 4, characterized in that, The second sequence is derived from at least one first sequence, including any one of the following: When the second parallelism is less than the first parallelism, the second sequence is composed of at least two first sequences; When the second parallelism is greater than the first parallelism, the second sequence is part of a first sequence; When the second degree of parallelism is equal to the first degree of parallelism, the second sequence consists of a portion of at least two first sequences.
6. The method according to claim 5, characterized in that, When the second sequence consists of at least two first sequences, the sequence read request is used to instruct the storage node to read the at least two first sequences to obtain the second sequence and provide the second sequence to the second processor; When the second sequence is part of a first sequence, the sequence read request is used to instruct the storage node to read a part of the first sequence to obtain the second sequence and provide the second sequence to the second processor; When the second sequence consists of a portion of at least two first sequences, the sequence read request is used to instruct the storage node to read a portion of the at least two first sequences to obtain the second sequence and provide the second sequence to the second processor.
7. The method according to any one of claims 1 to 6, characterized in that, The model includes at least one of a neural network model and a low-rank adaptive LOA model for the neural network model, wherein the parameters of the LOA model are used to update the parameters of the neural network model.
8. The method according to any one of claims 1 to 7, characterized in that, The computing node contains one or more physical servers, and the storage node contains one or more physical servers.
9. A computing node, characterized in that, The computing node includes multiple first processors and multiple second processors. The multiple first processors run multiple first processing modules, and the multiple second processors run multiple second processing modules. The multiple first processing modules are used to acquire a model. The parameters of the model are presented as a sequence, and the sequence includes multiple first sequences. The multiple first processors contain the multiple first sequences. For any one of the plurality of first processing modules, the first processing module is used to send a sequence storage request to the storage node, wherein the sequence storage request is used to instruct the storage node to store the first sequence contained in the first processing module; For any one of the plurality of second processing modules, the second processing module is used to determine a second sequence that the second processing module needs to obtain from the sequence, wherein the plurality of second processing modules are used to replace the plurality of first processing modules, and the second sequence comes from at least one first sequence; The second processing module is further configured to send a sequence retrieval request to the storage node, wherein the sequence retrieval request is configured to instruct the storage node to provide the second sequence to the second processing module, and the plurality of second sequences included in the plurality of second processing modules are used for the plurality of second processing modules to retrieve new models.
10. The computing node according to claim 9, characterized in that, The sequence is split into multiple first sequences based on the model training strategy. The number of the multiple first sequences is determined based on the first parallelism of the model training strategy. The model training strategy includes at least one of pipeline parallelism, tensor parallelism, and data parallelism.
11. The computing node according to claim 10, characterized in that, The second processing module is used for: Based on the second degree of parallelism of the model training strategy, the sequence is split into multiple second sequences, wherein the second degree of parallelism is used to replace the first degree of parallelism; The second sequence to be acquired by the second processing module is determined from the plurality of second sequences, wherein the order of the second sequence in the plurality of second sequences is equal to the order of the second processing module in the plurality of second processing modules.
12. The computing node according to claim 11, characterized in that, The second degree of parallelism is a positive integer multiple of the first degree of parallelism, or the first degree of parallelism is a positive integer multiple of the second degree of parallelism.
13. The computing node according to claim 11 or 12, characterized in that, The second sequence is derived from at least one first sequence, including any one of the following: When the second parallelism is less than the first parallelism, the second sequence is composed of at least two first sequences; When the second parallelism is greater than the first parallelism, the second sequence is part of a first sequence; When the second degree of parallelism is equal to the first degree of parallelism, the second sequence consists of a portion of at least two first sequences.
14. The computing node according to claim 13, characterized in that, When the second sequence consists of at least two first sequences, the sequence read request is used to instruct the storage node to read the at least two first sequences to obtain the second sequence and provide the second sequence to the second processing module; When the second sequence is part of a first sequence, the sequence read request is used to instruct the storage node to read a part of the first sequence to obtain the second sequence and provide the second sequence to the second processing module; When the second sequence consists of a portion of at least two first sequences, the sequence read request is used to instruct the storage node to read a portion of the at least two first sequences to obtain the second sequence and provide the second sequence to the second processing module.
15. The computing node according to any one of claims 9 to 14, characterized in that, The model includes at least one of a neural network model and a low-rank adaptive LOA model for the neural network model, wherein the parameters of the LOA model are used to update the parameters of the neural network model.
16. The computing node according to any one of claims 9 to 15, characterized in that, The computing node contains one or more physical servers, and the storage node contains one or more physical servers.
17. A computing device cluster, characterized in that, The computing device cluster includes at least one computing device, each computing device including a processor and memory: The memory is used to store instructions; The processor is configured to, according to the instructions, cause the computing device cluster to perform the method of any one of claims 1 to 8.
18. A computer storage medium, characterized in that, The computer storage medium stores one or more instructions that, when executed by one or more computers, cause the one or more computers to perform the method of any one of claims 1 to 8.
19. A computer program product, characterized in that, The computer program product stores instructions that, when executed by a computer, cause the computer to perform the method described in any one of claims 1 to 8.