Data processing method, storage medium, and computer program product
Patent Information
- Application Number
- CN202611007235.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-07
- Publication Date
- 2026-10-09
AI Technical Summary
[0005]然而,在上述架构下,存在联邦学习的性能低的问题
[0011]本申请实施例提供的数据处理方法、存储介质及计算机程序产品,第一验收节点接收第一集合发送的第一数据,所述第一数据包含与第一集合关联的第一模型的梯度数据和第一时间戳,所述第一集合包含一个或多个客户端;对所述第一数据进行校验,得到校验结果;在所述校验结果表征校验通过的情况下,向第一同步节点发送所述第一数据;而第一同步节点接收一个或多个第二同步节点发送的一个或多个第二数据,每个第二数据至少包含第二集合对应的第一模型的梯度数据和第二时间戳,所述第二集合包含一个或多个客户端;基于所述第一数据和所述一个或多个第二数据,确定满足第一条件的同步节点,所述第一条件表征具有记账权;在确定的同步节点为所述第一同步节点的情况下,对所述第一数据和所述一个或多个第二数据进行聚合处理,得到第三数据,并将所述第三数据存储至第一区块,所述第一区块部署在区块链上,所述第三数据用于所述第一集合和所述一个或多个第二集合调整本地第一模型的参数。本申请实施例提供的技术方案,在联邦学习中引入区块链的架构下,客户端可以通过组队的方式进行模型训练并上报对应的梯度数据和时间戳,而同步节点间可以基于不同组合上传的时间戳,协商拥有本轮周期的记账权的同步节点,以便通过拥有记账权的同步节点进行数据聚合。上述方案中,一方面,基于客户端组队的机制,能够大大提高客户端侧梯度数据的训练效率,另一方面,基于时间戳的共识机制,能够提高同步节点间协作的效率,以进一步促进客户端间进行组队并上传质量更优的梯度数据的意愿。如此,能够有效缩短训练周期并提高数据质量,从而提高了联邦学习的性能。
Smart Images

Figure CN122886836A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of blockchain technology, and in particular to a data processing method, storage medium, and computer program product. Background Technology
[0002] As artificial intelligence (AI) technology develops across various industries, the importance placed on user privacy and data security is constantly increasing. Therefore, how to address data fragmentation, data security, and data isolation while adhering to stricter privacy regulations is a current hot research topic in the field of AI.
[0003] Federated learning is a method that allows multiple participants to exchange model gradient data on an aggregation server without directly interacting with the data. This achieves collaborative training while protecting user privacy and data security. However, using an aggregation server introduces centralization issues. Furthermore, if a participant maliciously uses low-quality data for model training, the quality of the aggregated gradient data will degrade, potentially affecting the quality of training data on other nodes.
[0004] To address the aforementioned issues, related technologies have proposed an architecture that incorporates blockchain into federated learning. This architecture can effectively solve the centralization problem of aggregation servers. Furthermore, the immutability and traceability of blockchain can help reduce the use of low-quality data.
[0005] However, under the above architecture, federated learning suffers from low performance. Summary of the Invention
[0006] To address the related technical problems, embodiments of this application provide a data processing method, a storage medium, and a computer program product.
[0007] The technical solution of this application embodiment is implemented as follows: This application provides a data processing method applied to a first synchronization node, including: Receive first data sent by the first acceptance node, the first data including gradient data and first timestamp of the first model associated with the first set, the first set including one or more clients; Receive one or more second data sent by one or more second synchronization nodes, each second data containing at least gradient data and a second timestamp of the first model corresponding to the second set, the second set containing one or more clients; Based on the first data and the one or more second data, a synchronization node that meets the first condition is determined, wherein the first condition indicates that it has the right to record transactions. When the determined synchronization node is the first synchronization node, the first data and the one or more second data are aggregated to obtain third data, and the third data is stored in the first block. The first block is deployed on the blockchain, and the third data is used to adjust the parameters of the local first model for the first set and the one or more second sets.
[0008] This application also provides a data processing method applied at a first acceptance node, including: Receive first data sent by a first set, the first data including gradient data and a first timestamp of a first model associated with the first set, the first set including one or more clients; The first data is validated to obtain the validation result; If the verification result indicates that the verification is successful, the first data is sent to the first synchronization node.
[0009] This application embodiment also provides a storage medium storing a computer program thereon, wherein when the computer program is executed by a processor, it implements the steps of any of the methods described above for the first synchronization node side, or implements the steps of any of the methods described above for the first acceptance node side.
[0010] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the methods described above for the first synchronization node side, or implements the steps of any of the methods described above for the first acceptance node side.
[0011] The data processing method, storage medium, and computer program product provided in this application embodiment include: a first acceptance node receiving first data sent by a first set, the first data including gradient data and a first timestamp of a first model associated with the first set, the first set including one or more clients; verifying the first data to obtain a verification result; if the verification result indicates that the verification is successful, sending the first data to a first synchronization node; the first synchronization node receiving one or more second data sent by one or more second synchronization nodes, each second data including at least gradient data and a second timestamp of the first model corresponding to the second set, the second set including one or more clients; determining a synchronization node that meets a first condition based on the first data and the one or more second data, the first condition indicating that it has the right to record transactions; if the determined synchronization node is the first synchronization node, aggregating the first data and the one or more second data to obtain third data, and storing the third data in a first block, the first block being deployed on a blockchain, the third data being used by the first set and the one or more second sets to adjust the parameters of the local first model. The technical solution provided in this application, under the blockchain architecture introduced in federated learning, allows clients to train models and report corresponding gradient data and timestamps through team formation. Synchronization nodes can negotiate the accounting rights for the current cycle based on different combinations of uploaded timestamps, enabling data aggregation through the node holding the accounting rights. In this solution, on one hand, the client-teaming mechanism significantly improves the training efficiency of gradient data on the client side; on the other hand, the timestamp-based consensus mechanism improves the efficiency of collaboration between synchronization nodes, further encouraging clients to team up and upload higher-quality gradient data. This effectively shortens the training cycle and improves data quality, thereby enhancing the performance of federated learning. Attached Figure Description
[0012] Figure 1 This is a flowchart illustrating the first data processing method according to an embodiment of this application; Figure 2 This is a schematic diagram of a synchronization node determination process according to an embodiment of this application; Figure 3 This is a flowchart illustrating the second data processing method according to an embodiment of this application; Figure 4 This is a schematic diagram of a federated learning architecture as an application example of this application; Figure 5 This is a schematic diagram of the structure of a first data processing device according to an embodiment of this application; Figure 6 This is a schematic diagram of the structure of a second type of data processing device according to an embodiment of this application; Figure 7 This is a schematic diagram of the structure of the first synchronization node in an embodiment of this application; Figure 8 This is a structural schematic diagram of the first acceptance node in an embodiment of this application; Figure 9 This is a schematic diagram of the structure of the data processing system according to an embodiment of this application. Detailed Implementation
[0013] The present application will now be described in further detail with reference to the accompanying drawings and embodiments.
[0014] Introducing blockchain into federated learning increases the complexity of the process. At the same time, the consensus and data processing mechanisms of blockchain can reduce the performance of federated learning, especially in consortium blockchain scenarios where performance is a greater concern.
[0015] Based on this, in various embodiments of this application, in the scenario of introducing blockchain into federated learning, clients can team up for training to quickly obtain gradient data. Synchronization nodes negotiate the right to record transactions in each cycle based on the timestamps of the gradient data reported by the clients, and aggregate the data through the synchronization nodes with the right to record transactions. This allows subsequent clients to adjust the parameters of their local models based on the aggregated data. In this process, the client-teaming mechanism can significantly improve the efficiency of client training on gradient data, while the consensus mechanism based on gradient data timestamps can significantly improve consensus efficiency, thereby further encouraging clients to team up for training and upload higher-quality gradient data. Thus, these mechanisms effectively shorten the training cycle (which can also be understood as the time it takes for the loss function to reach the threshold and the model parameters to reach the convergence target) and improve data quality, thereby improving the performance of federated learning.
[0016] This application provides a data processing method applied to a first synchronization node, such as... Figure 1 As shown, the method includes: Step 101: Receive the first data sent by the first acceptance node. The first data includes gradient data and a first timestamp of the first model associated with the first set. The first set includes one or more clients. Step 102: Receive one or more second data sent by one or more second synchronization nodes, each second data containing at least gradient data of the first model corresponding to the second set and a second timestamp, the second set containing one or more clients; Step 103: Based on the first data and the one or more second data, determine the synchronization node that meets the first condition, where the first condition indicates that it has the right to record transactions; Step 104: If the determined synchronization node is the first synchronization node, aggregate the first data and the one or more second data to obtain third data, and store the third data in the first block. The first block is deployed on the blockchain, and the third data is used to adjust the parameters of the local first model for the first set and the one or more second sets.
[0017] In practical applications, under the architecture of federated learning, there may be a first synchronization node, a first acceptance node, a first set, one or more second synchronization nodes, one or more second acceptance nodes, one or more second sets, and one or more blocks on the blockchain.
[0018] In practical applications, the first synchronization node can be understood as a node deployed between the blockchain and the first acceptance node, capable of data interaction with at least the first acceptance node and one or more second synchronization nodes. The first acceptance node can be understood as a node deployed between the first set and the first synchronization node, capable of data interaction with clients in the first set and verification of the data in the first set. The first synchronization node and the first acceptance node have a corresponding relationship, as do the first set and the first acceptance node. Similarly, the second synchronization node can be understood as a node deployed between the blockchain and a second acceptance node, capable of data interaction with at least the second acceptance node and the first synchronization node. The second acceptance node can be understood as a node deployed between the second set and the second synchronization node, capable of data interaction with clients in the second set and verification of the data in the second set. The second synchronization node and the second acceptance node have a corresponding relationship, as do the second set and the second acceptance node.
[0019] In practical applications, in step 101, the first synchronization node can receive the first data. The first data can be understood as the data after the first acceptance node has verified (or accepted). Specifically, the first data may include the gradient data obtained after joint training by all clients in the first set and the first timestamp. The first timestamp can be understood as the timestamp corresponding to when the first set reported the gradient data. In addition, the first data may also include the identification information (specifically, ID) of each client in the first set.
[0020] For example, if the first data passes the verification of the first acceptance node, the first acceptance node can perform structured processing on the verified first data to obtain gradient data in JSON format (specifically, the hash value of the gradient data). Then, it uploads the hash value and the first timestamp of the gradient data in JSON format to the first synchronization node, and simultaneously uploads the gradient data in JSON format to the storage node.
[0021] In practical applications, each of the one or more second synchronization nodes can receive second data sent by the corresponding second acceptance node. This second data can be understood as data verified by the second acceptance node. Specifically, the second data may include gradient data obtained after joint training by all clients in the corresponding second set and a second timestamp. The second timestamp can be understood as the timestamp corresponding to when the second set reported the gradient data. Additionally, the second data may also include identification information (specifically, an ID) for each client in the second set.
[0022] For example, if the second data passes the verification of the second acceptance node, the second acceptance node can perform structured processing on the verified second data to obtain gradient data in JSON format (specifically, the hash value of the gradient data). Then, it uploads the hash value and second timestamp of the gradient data in JSON format to the second synchronization node, and simultaneously uploads the gradient data in JSON format to the storage node.
[0023] It should be noted that if the first acceptance node has already verified the first data, the first synchronization node does not need to verify the first data again. Correspondingly, if the second acceptance node has already verified the second data, the second synchronization node does not need to verify the second data again.
[0024] In practical applications, after receiving the first data, the first synchronization node can synchronize the first data to the one or more second synchronization nodes, and correspondingly, the one or more second synchronization nodes can synchronize the second data to the first synchronization node, thus realizing data synchronization between synchronization nodes.
[0025] In practical applications, for the first synchronization node, the synchronization node that meets the first condition can be determined by comparing timestamps.
[0026] Specifically, in some optional embodiments, determining the synchronization node that satisfies the first condition based on the first data and the one or more second data includes: The first timestamp in the first data is compared with one or more second timestamps in one or more second data, and the timestamp that meets the second condition is selected. The first timestamp represents the reporting time of the first data, and the one or more second timestamps represent the reporting time of the one or more second data. The second condition represents the earliest reporting time. Based on the selected timestamp, the synchronization node that meets the first condition is determined.
[0027] In practical applications, the first synchronization node can compare the first timestamp with one or more second timestamps, select the timestamp with the smallest value as the timestamp that satisfies the second condition, and select the synchronization node corresponding to the selected timestamp as the synchronization node that satisfies the first condition (which can also be understood as the synchronization node that completes training earliest and meets specific requirements); wherein, the synchronization node that satisfies the first condition can have the accounting reward corresponding to the accounting right in this round and can store the locally cached data on the blockchain to synchronize with other synchronization nodes.
[0028] For example, such as Figure 2 As shown, assuming there are three synchronization nodes (synchronization node 1, synchronization node 2, and synchronization node 3), synchronization node 2 (the first synchronization node) can compare its locally cached timestamps 1, 2, and 3 to determine that timestamp 2 is the earliest in this accounting cycle. Therefore, synchronization node 2 has the right to record transactions in this accounting cycle. In this case, synchronization node 2 synchronizes its locally cached data to synchronization nodes 1 and 3 through the third block on the blockchain (also represented as block 3). For synchronization node 1, since the locally cached data is consistent with the synchronized data, synchronization node 1 can determine that synchronization node 2 has the right to record transactions in this accounting cycle. Thus, synchronization node 2's verification is successful, and it adds the third block to its local storage via the blockchain, meaning that synchronization node 2's data has been successfully uploaded to the blockchain. For synchronization node 3, since the locally cached data is inconsistent with the synchronized data, synchronization node 3 will consider itself to have the right to record transactions in this accounting cycle. Therefore, it determines that synchronization node 2's verification failed and refuses to add the third block to its local machine (which can also be understood as refusing data synchronization). Simultaneously, synchronization node 3 will attempt to synchronize its locally cached data to synchronization nodes 1 and 2 via the third block. Because the locally cached data is inconsistent with the synchronized data, synchronization nodes 1 and 2 determine that synchronization node 3's verification failed and refuse to add the third block to their local machines, meaning that synchronization node 3's data upload to the blockchain has failed. In this situation, if data is synchronized to synchronization node 3 via the fourth block (which can be represented as block 4), then according to the longest chain principle, synchronization node 3 will store the entire blockchain corresponding to the fourth block as the latest blockchain data locally, replacing the data it generated in the previous cycle.
[0029] In practical applications, when the determined synchronization node is the first synchronization node, the first synchronization node can directly aggregate the one or more second data and the first data to obtain the third data. The third data can be understood as the global gradient data corresponding to the current accounting cycle. Then, the third data is stored in the first block.
[0030] In practical applications, when the first synchronization node is identified as the primary synchronization node, it can also perform data filtering and aggregation based on historical accounting records. This can improve data quality.
[0031] Specifically, in some optional embodiments, the aggregation process of the first data and the one or more second data to obtain the third data includes: Obtain fourth data and one or more fifth data, wherein the fourth data represents the total accounting reward corresponding to the first set, and each fifth data represents the total accounting reward corresponding to the second set; Based on the fourth data and the one or more fifth data, the first set and the one or more second sets are filtered to obtain a filtered set. The data associated with the filtered set is aggregated to obtain the third data.
[0032] In practical applications, the fourth data can be understood as the sum of historical accounting rewards of the first set before the current accounting cycle, specifically including the historical accounting rewards of each client in the first set, thus reflecting the corresponding total historical accounting rewards; each fifth data can be understood as the sum of historical accounting rewards of a second set before the current accounting cycle, specifically including the historical accounting rewards of each client in the second set, thus reflecting the corresponding total historical accounting rewards.
[0033] In practical applications, since the accounting rewards of the client can reflect the data quality and contribution of the client during the training process, the first synchronization node can evaluate the data quality and contribution of the first set and the one or more second sets by setting a threshold, thereby achieving the screening of the first set and the second set.
[0034] For example, the first synchronization node may set a first threshold (which can be understood as a threshold for accounting rewards, the value of which is set as needed, and this application embodiment does not limit it), and compare the first threshold with the fourth data and the one or more fifth data respectively, so as to filter out the set whose total accounting rewards are greater than or equal to the first threshold as the filtered set (i.e. the set with high data quality or large contribution to gradient data).
[0035] For example, the first synchronization node may also set a second threshold (which can be understood as a percentage threshold of the set, and the value can be set as needed; this application embodiment does not limit this). The first set and the one or more second sets are sorted from high to low according to the total amount of accounting rewards, and a portion of the sets are selected as the filtered sets based on the second threshold.
[0036] In practical applications, after filtering the set, the first synchronization node can aggregate the data associated with the filtered set to obtain the third data. Then, the third data is stored in the first block.
[0037] In practical applications, before data aggregation, the first synchronization node can also verify the integrity of the data to determine whether the data has been tampered with.
[0038] Based on this, in some optional embodiments, the method may further include: Retrieve the eighth data from the storage node, the eighth data containing the first hash value of the data associated with the filtered set; The data associated with the third set is hashed to obtain the second hash value; If the first hash value and the second hash value match, the data associated with the filtered set is aggregated to obtain the third data.
[0039] In practical applications, the storage node can store gradient data or hash values of gradient data corresponding to the set.
[0040] In practical applications, when the first synchronization node obtains data associated with the filtered set from the storage node, it can perform hash processing on the data associated with the filtered set to obtain the eighth data. Alternatively, the first synchronization node can also directly obtain the eighth data from the storage node. This application embodiment does not limit the specific method of obtaining the eighth data.
[0041] In practical applications, the first synchronization node can determine whether the data associated with the filtered set has been tampered with by matching hash values. If the first hash value and the second hash value match, it is determined that the data associated with the filtered set has not been tampered with. In this case, the data associated with the filtered set can be aggregated to obtain the third data. Then, the first synchronization node can store the third data or its corresponding hash value to the storage node so that one or more second synchronization nodes can verify the third data. After successful verification, the third data is provided to one or more second sets for the corresponding clients to adjust the parameters of their local first model. Correspondingly, the first synchronization node can also provide the third data to the first set for the corresponding clients to adjust the parameters of their local first model. This improves the model parameter metrics and data quality, enabling the first model to converge quickly to meet the required performance, loss function threshold, or parameter convergence threshold.
[0042] In practical applications, for the current accounting cycle, the first synchronization node can also receive a corresponding accounting reward, and distribute the accounting reward to the clients in the first set.
[0043] Based on this, in some optional embodiments, the method may further include: Obtain the sixth data, which represents the accounting reward corresponding to the accounting right; Based on the sixth and seventh data, the fourth data is updated, whereby the seventh data represents the historical score of each client in the first set.
[0044] In practical applications, the sixth data can be understood as the accounting reward corresponding to the current accounting cycle, and the seventh data can reflect the contribution of the gradient data of the client in the first set to the model training. The greater the contribution, the higher the historical score of the client, and the smaller the contribution, the lower the historical score of the client.
[0045] In practical applications, the first synchronization node can determine the proportion of historical points of different clients in the first set based on the seventh data, and then allocate the accounting reward corresponding to the current accounting cycle based on the determined proportion.
[0046] For example, assuming the first set contains 3 clients, namely client 1 (historical points of 25), client 2 (historical points of 10), and client 3 (historical points of 15), the first synchronization node can determine, based on the proportion of the historical points of different clients, that client 1 can obtain 1 / 2 (i.e., 5 points) of the 10 points corresponding to the current accounting cycle, client 2 can obtain 1 / 5 (i.e., 2 points) of the 10 points corresponding to the current accounting cycle, and client 3 can obtain 3 / 10 (i.e., 3 points) of the 10 points corresponding to the current accounting cycle.
[0047] For example, assuming the first set contains only one client, that client can obtain 10 points corresponding to the current accounting cycle, that is, obtain all accounting rewards.
[0048] Accordingly, embodiments of this application also provide a data processing method applied to the first acceptance node, such as... Figure 3 As shown, the method includes: Step 301: Receive first data sent by the first set, the first data containing gradient data and a first timestamp of the first model associated with the first set, the first set containing one or more clients; Step 302: Verify the first data and obtain the verification result; Step 303: If the verification result indicates that the verification is successful, send the first data to the first synchronization node.
[0049] In practical applications, in order to quickly obtain the first data, the first acceptance node can publish relevant indicators, enabling clients to automatically form teams to train the local first model, thereby improving the speed of obtaining the first data.
[0050] Specifically, in some optional embodiments, receiving the first data sent by the first set includes: Send a ninth data point to each of the one or more clients, the ninth data point representing the metric requirements of the gradient data, the ninth data point being used by the one or more clients to determine whether to form the first set for joint model training; If one or more clients determine that the first set is formed to jointly train the model, the first data sent by the first set is received.
[0051] In practical applications, the ninth data may include gradient norm threshold, gradient direction threshold, loss function threshold, etc. The gradient norm threshold reflects the convergence ratio between the gradient norm of the current training round (which can be understood as an indicator of the magnitude or strength of the gradient vector, reflecting the degree of update of the model parameters) and the gradient norm of the previous training round. The gradient direction threshold reflects the cosine value of the angle between the gradients of the current training round and the previous training round. The loss function threshold reflects the convergence ratio between the reduced loss function value in the current training round and the reduced loss function value in the previous training round.
[0052] In practical applications, the first acceptance node publishes the ninth data, enabling each client to determine whether it needs to team up with other clients based on this data. If the client determines that its local data and capabilities are insufficient to meet the requirements of the ninth data, it can decide to team up with other clients. In this case, the client can determine to form the first set with other clients based on factors such as data type and training capabilities, to jointly train the model; that is, the first set can contain multiple clients. If the client determines that its local data and capabilities are sufficient to meet the requirements of the ninth data, it can decide not to team up with other clients; that is, the first set can contain only one client.
[0053] In practical applications, after model training is completed, the first set can evaluate whether the first data meets the index requirements of the ninth data representation; if the first data meets the index requirements of the ninth data representation, the first data is reported to the first acceptance node.
[0054] In practical applications, for each of the one or more second acceptance nodes, the ninth data can also be published, allowing each client to determine whether it needs to team up with other clients based on the ninth data. If the client determines that its local data and capabilities cannot meet the requirements of the ninth data, it can determine that it needs to team up with other clients. In this case, the client can determine, based on factors such as data type and training capabilities, to form a second set with other clients to jointly train the model; that is, the second set can contain multiple clients. If the client determines that its local data and capabilities can meet the requirements of the ninth data, it can determine that it does not need to team up with other clients; that is, the second set can contain only one client.
[0055] In practical applications, after the model training is completed, the second set can evaluate whether the second data meets the index requirements of the ninth data representation; if the second data meets the index requirements of the ninth data representation, the second data is reported to the second acceptance node.
[0056] It should be noted that the ninth data published by the first and second acceptance nodes is consistent. This is because if different verification nodes publish the ninth data, there is a possibility of cheating. For example, if an acceptance node publishes ninth data with lower requirements, the corresponding client node can quickly calculate the corresponding gradient data. In addition, consistent ninth data also facilitates auditing and supervision between acceptance nodes.
[0057] In practical application, in step 302, the first acceptance node can verify the first data based on a pre-deployed smart contract to obtain the verification result; wherein, the smart contract can be understood as a pre-defined verification rule. If the verification result indicates that the verification passed, the first data is sent to the first synchronization node, and simultaneously, reward points corresponding to this verification are allocated to the first set. During the point allocation process, a test set can be generated by all clients in the first set based on this training negotiation. If a majority of the clients in the first set (e.g., 2 / 3 of the clients) believe that a client's local data contributes to this model training (or can be understood as improving the metric requirements), then that client can participate in the point allocation; otherwise, that client cannot participate in the point allocation.
[0058] For example, suppose the first set contains three clients, A1, A2, and A3. A1, A2, and A3 can synchronize their gradient data with each other. If A1 and A3, using the test set, determine that the gradient data synchronized by A2 does not contribute to model training (e.g., the model's gradient decreases or remains unchanged when using the synchronized gradient data), then A2 cannot participate in the allocation of points. If A1 and A2, using the test set, determine that the gradient data synchronized by A3 contributes to their own model training, then A3 can participate in the allocation of points. If A2 and A3, using the test set, determine that the gradient data synchronized by A1 contributes to their own model training, then A1 can participate in the allocation of points. Therefore, A1 and A2 can equally distribute the reward points corresponding to this verification (e.g., 10 points).
[0059] In practical applications, if the verification result indicates that the verification has passed, the first acceptance node can trigger the client to make personnel changes in order to improve data quality.
[0060] Based on this, in some optional embodiments, the method may further include: If the verification result indicates that the verification failed, the verification result is sent to each of the one or more clients so that the one or more clients update the first set.
[0061] In practical applications, if the verification result indicates that the verification has failed, the first acceptance node can send the verification result, so that the clients in the first set can continue to team up with other clients (which can also be understood as adding new clients to the first set) to improve the data quality within the set and meet the indicator requirements.
[0062] For example, suppose there exists a first set (specifically including B1 and B2) and a second set (specifically including C1). If the first data reported by the first set and the second data reported by the second set fail the verification by the first and second acceptance nodes, then B1, B2, and C1 all have a need to form a joint team. In this case, B1, B2, and C1 can provide each other with Application Programming Interfaces (APIs) and register and distribute keys through the APIs. The distributed keys are stored locally on B1, B2, and C1. Then, B1, B2, and C1 can verify each other's digital signatures. If the digital signature verification is successful, B1, B2, and C1 can form an updated first set for joint model training. The client identification information of the updated first set can be stored on the blockchain.
[0063] The data processing method provided in this application embodiment includes: a first acceptance node receiving first data sent by a first set, the first data including gradient data and a first timestamp of a first model associated with the first set, the first set including one or more clients; verifying the first data to obtain a verification result; if the verification result indicates that the verification is successful, sending the first data to a first synchronization node; the first synchronization node receiving one or more second data sent by one or more second synchronization nodes, each second data including at least gradient data and a second timestamp of the first model corresponding to the second set, the second set including one or more clients; determining a synchronization node that meets a first condition based on the first data and the one or more second data, the first condition indicating that it has the right to record transactions; if the determined synchronization node is the first synchronization node, aggregating the first data and the one or more second data to obtain third data, and storing the third data in a first block, the first block being deployed on a blockchain, the third data being used by the first set and the one or more second sets to adjust the parameters of the local first model. The technical solution provided in this application, under the architecture of federated learning, allows clients to train models and report corresponding gradient data and timestamps through team formation. Synchronization nodes can negotiate the accounting rights for the current cycle based on different combinations of uploaded timestamps, enabling data aggregation through the node holding the accounting rights. In this solution, on one hand, the client-based team formation mechanism significantly improves the training efficiency of gradient data on the client side; on the other hand, the timestamp-based consensus mechanism improves the efficiency of collaboration between synchronization nodes, further encouraging clients to team up and upload higher-quality gradient data. This effectively shortens the training cycle and improves data quality, thereby enhancing the performance of federated learning.
[0064] The following section provides a more detailed description of this application with reference to application examples.
[0065] To address the performance degradation and increased model training cycles associated with introducing blockchain into federated learning architectures, this application proposes an optimized federated learning architecture in its application examples. Specifically, as shown... Figure 4 As shown, the architecture of federated learning includes acceptance nodes, synchronization nodes, clients, gradient blocks, and distributed storage nodes; among them, The acceptance node is used to publish gradient metric data (i.e., the ninth data mentioned above), verify the gradient data trained by the client set through a unified deployment smart contract, upload the verified gradient data to the distributed storage node, generate gradient data hash value, and obtain the timestamp of the gradient data uploaded by the client set and upload it to the synchronization node. Synchronization nodes are used to obtain gradient data hash values and timestamps from acceptance nodes, broadcast the hash and timestamps to other synchronization nodes, determine the synchronization nodes with accounting rights in this round based on the timestamps, obtain accounting rewards, and distribute the accounting rewards. The client is used to train the model in conjunction with other clients via API or independently, obtain global gradient data from the gradient block and train it locally, and then upload the training gradient data to the acceptance node. The gradient block, as a storage module, can store the gradient data hash value and timestamp of the client set; Distributed storage is used to store gradient structured data of client sets and gradient data aggregated by synchronization nodes.
[0066] Here, in Figure 4 Under the architecture shown, the federated learning process includes the following steps: Step 1: Based on the use case of federated learning in a blockchain consortium chain, the acceptance node releases the gradient metric data of this round of training; Step 2: The client decides whether to form a team or not based on the gradient index data. Then, it trains the model and reports the gradient data that meets the gradient index data to the corresponding acceptance node. Step 3: The acceptance nodes (i.e., the first and second acceptance nodes mentioned above) verify the gradient data reported by the client sets (i.e., the first and second sets mentioned above) through the smart contract. If the verification is successful, the reward points corresponding to the smart contract are allocated to the clients in the client set. At the same time, the gradient data is processed in a structured manner to obtain the hash value and timestamp of the gradient data (i.e., the first and second timestamps mentioned above). Then, the hash value and timestamp of the gradient data are uploaded to the corresponding synchronization nodes (i.e., the first and second synchronization nodes mentioned above), and the gradient data is uploaded to the distributed storage nodes (i.e., the storage nodes mentioned above). Here, for the client set that failed the verification, a team request can be made to add new clients to the corresponding client set, thereby improving the quality of the training samples within the group and obtaining those that meet the gradient metric.
[0067] Step 4: The synchronization node broadcasts the hash value and timestamp of the received gradient data to other synchronization nodes. In other words, each synchronization node caches the hash value, timestamp, and other synchronization node IDs of the gradient data. Step 5: All synchronization nodes are compared based on timestamps to determine the synchronization node that has completed training earliest and meets the gradient metric data (i.e., the synchronization node that meets the first condition above). The determined synchronization node can obtain the right to record this round of accounting and receive the accounting reward (i.e., the sixth data above). Here, the designated synchronization node will allocate accounting rewards based on the total historical points of each client in the client set (i.e., the seventh data mentioned above). Clients with higher total points will receive more accounting rewards when participating in the allocation.
[0068] Step 6: The synchronization node that obtains the accounting right retrieves gradient data from the distributed storage node and verifies whether the gradient data has been tampered with by using the gradient hash value; after ensuring that all gradient data is correct, it aggregates the data and generates the hash value of the aggregated gradient data (i.e., the third data mentioned above). Then, it uploads the hash value of the aggregated gradient data to the gradient block and uploads the aggregated gradient data to the distributed storage node. Step 7: Other synchronization nodes obtain the hash value of the aggregated gradient data from the latest gradient block, retrieve the aggregated gradient data from the distributed storage node and calculate the corresponding hash value; verify the aggregated gradient data by comparing the two hash values, and provide the aggregated gradient data to the corresponding client set for local model training after successful verification.
[0069] Here, gradient data is aggregated to improve parameter metrics, and training data quality is improved through model training iterations to quickly converge to meet the desired performance, loss function threshold, and whether the convergence of training parameters reaches the threshold and a stable range, i.e., no longer changing significantly.
[0070] In the application example of this application, the client teaming mechanism can significantly improve the efficiency of client nodes in acquiring gradient data during training, enabling subsequent acceptance nodes to quickly obtain gradient data that meets the requirements of the smart contract. Secondly, the consensus mechanism based on gradient data timestamps reduces the waste of resources associated with other consensus mechanisms, greatly improving consensus efficiency and further encouraging client nodes to team up for training to improve data quality and upload better gradient data. Furthermore, the introduction of a dynamic teaming mechanism allows for dynamic changes to team members in client combinations that have not passed acceptance, thereby improving the quality of gradient data.
[0071] In summary, the above mechanisms can effectively improve the performance of federated learning based on blockchain architecture and reduce the time required for the loss function to reach the threshold and for the parameters to reach the convergence target.
[0072] To implement the method on the first synchronization node side of this application embodiment, this application embodiment also provides a data processing device, which is disposed on the first synchronization node, such as... Figure 5 As shown, the device includes: The first receiving unit 501 is used to receive first data sent by the first acceptance node. The first data includes gradient data and a first timestamp of a first model associated with a first set. The first set includes one or more clients. The second receiving unit 502 is used to receive one or more second data sent by one or more second synchronization nodes, each second data containing at least gradient data and a second timestamp of the first model corresponding to the second set, and the second set containing one or more clients; The first processing unit 503 is configured to determine, based on the first data and the one or more second data, a synchronization node that satisfies a first condition, wherein the first condition indicates that it has the right to record transactions. Aggregation unit 504 is used to aggregate the first data and one or more second data when the determined synchronization node is the first synchronization node, to obtain third data, and to store the third data in a first block, the first block being deployed on a blockchain, the third data being used to adjust the parameters of the local first model for the first set and the one or more second sets.
[0073] In some optional embodiments, the first processing unit 503 is configured to compare a first timestamp in the first data with one or more second timestamps in the one or more second data, select a timestamp that satisfies a second condition, wherein the first timestamp represents the reporting time of the first data, the one or more second timestamps represent the reporting time of the one or more second data, and the second condition represents the earliest reporting time; and determine a synchronization node that satisfies the first condition based on the selected timestamp.
[0074] In some optional embodiments, the aggregation unit 504 is configured to acquire fourth data and one or more fifth data, wherein the fourth data represents the total accounting reward corresponding to the first set, and each fifth data represents the total accounting reward corresponding to the second set; based on the fourth data and the one or more fifth data, the first set and the one or more second sets are filtered to obtain a filtered set; and the data associated with the filtered set is aggregated to obtain the third data.
[0075] In some optional embodiments, the aggregation unit 504 is further configured to acquire sixth data, which represents the accounting reward corresponding to the accounting right; and update the fourth data based on the sixth data and the seventh data, which represents the historical points of each client in the first set.
[0076] In some optional embodiments, the aggregation unit 504 is further configured to obtain eighth data from the storage node, the eighth data containing a first hash value of data associated with the filtered set; perform hash processing on the data associated with the third set to obtain a second hash value; and, if the first hash value and the second hash value match, perform aggregation processing on the data associated with the filtered set to obtain the third data.
[0077] In practical applications, the first receiving unit 501 and the second receiving unit 502 can be implemented by the communication interface in the data processing device; the first processing unit 503 can be implemented by the communication interface in the data processing device combined with a processor; and the aggregation unit 504 can be implemented by the processor in the data processing device.
[0078] To implement the method at the first acceptance node in this application embodiment, this application embodiment also provides a data processing device, which is disposed at the first acceptance node, such as... Figure 6 As shown, the device includes: The third receiving unit 601 is used to receive first data sent by the first set, the first data including gradient data and a first timestamp of a first model associated with the first set, the first set including one or more clients; The second processing unit 602 is used to verify the first data and obtain a verification result; The sending unit 603 is used to send the first data to the first synchronization node when the verification result indicates that the verification has passed.
[0079] In some optional embodiments, the third receiving unit 601 is configured to send ninth data to each of the one or more clients, the ninth data representing the metric requirements of gradient data, the ninth data being used by the one or more clients to determine whether to form the first set for joint model training; and, if the one or more clients determine to form the first set for joint model training, to receive the first data sent by the first set.
[0080] In some optional embodiments, the sending unit 603 is configured to send the verification result to each of the one or more clients if the verification result indicates that the verification has failed, so that the one or more clients update the first set.
[0081] In practical applications, the third receiving unit 601 and the sending unit 603 can be implemented by the communication interface in the data processing device; the second processing unit 602 can be implemented by the processor in the data processing device.
[0082] It should be noted that the data processing apparatus provided in the above embodiments is only illustrated by the division of the above program modules. In practical applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the apparatus can be divided into different program modules to complete all or part of the processing described above. In addition, the data processing apparatus and data processing method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.
[0083] Based on the hardware implementation of the above program modules, and in order to implement the method on the first synchronization node side of the embodiments of this application, the embodiments of this application also provide a first synchronization node, such as... Figure 7 As shown, the first synchronization node 700 includes: The first communication interface 701 is capable of exchanging information with the first acceptance node; The first processor 702 is connected to the first communication interface 701 to enable information interaction with the first acceptance node, and is used to execute the methods provided by one or more technical solutions on the first synchronization node side when running a computer program; The computer program is stored in the first memory 703.
[0084] Specifically, the first communication interface 701 is used to receive first data sent by the first acceptance node, the first data including gradient data and a first timestamp of the first model associated with the first set, the first set including one or more clients; and to receive one or more second data sent by one or more second synchronization nodes, each second data including at least gradient data and a second timestamp of the first model corresponding to the second set, the second set including one or more clients; The first processor 702 is configured to determine a synchronization node that satisfies a first condition based on the first data and the one or more second data, wherein the first condition indicates that it has the right to record transactions; if the determined synchronization node is the first synchronization node, the first data and the one or more second data are aggregated to obtain third data, and the third data is stored in a first block, wherein the first block is deployed on a blockchain, and the third data is used to adjust the parameters of the local first model for the first set and the one or more second sets.
[0085] In some optional embodiments, the first processor 702 is configured to compare a first timestamp in the first data with one or more second timestamps in the one or more second data, select a timestamp that satisfies a second condition, wherein the first timestamp represents the reporting time of the first data, the one or more second timestamps represent the reporting time of the one or more second data, and the second condition represents the earliest reporting time; and determine a synchronization node that satisfies the first condition based on the selected timestamp.
[0086] In some optional embodiments, the first processor 702 is configured to acquire fourth data and one or more fifth data through the first communication interface 701, wherein the fourth data represents the total accounting reward corresponding to the first set, and each fifth data represents the total accounting reward corresponding to the second set; based on the fourth data and the one or more fifth data, perform filtering processing on the first set and the one or more second sets to obtain a filtered set; and perform aggregation processing on the data associated with the filtered set to obtain the third data.
[0087] In some optional embodiments, the first processor 702 is further configured to acquire sixth data through the first communication interface 701, the sixth data representing the accounting reward corresponding to the accounting right; and update the fourth data based on the sixth data and the seventh data, the seventh data representing the historical points of each client in the first set.
[0088] In some optional embodiments, the first processor 702 is further configured to obtain eighth data from a storage node via the first communication interface 701, the eighth data containing a first hash value of data associated with the filtered set; perform hash processing on the data associated with the third set to obtain a second hash value; and, if the first hash value and the second hash value match, perform aggregation processing on the data associated with the filtered set to obtain the third data.
[0089] It should be noted that the specific processing procedures of the first communication interface 701 and the first processor 702 can be understood by referring to the above method.
[0090] Of course, in practical applications, the various components in the first synchronization node 700 are coupled together through the bus system 704. It can be understood that the bus system 704 is used to implement communication between these components. In addition to the data bus, the bus system 704 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 7 The general designated all buses as Bus System 704.
[0091] The first memory 703 in this embodiment is used to store various types of data to support the operation of the first synchronization node 700. Examples of such data include any computer program used to operate on the first synchronization node 700.
[0092] The methods disclosed in the embodiments of this application can be applied to the first processor 702, or implemented by the first processor 702. The first processor 702 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware or by instructions in the form of software in the first processor 702. The first processor 702 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The first processor 702 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in the first memory 703. The first processor 702 reads the information in the first memory 703 and completes the steps of the aforementioned method in combination with its hardware.
[0093] In an exemplary embodiment, the first synchronization node 700 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
[0094] Based on the hardware implementation of the above program modules, and in order to implement the method on the first acceptance node side of the embodiments of this application, the embodiments of this application also provide a first acceptance node, such as... Figure 8 As shown, the first acceptance node 800 includes: The second communication interface 801 is capable of exchanging information with the first synchronization node; The second processor 802 is connected to the second communication interface 801 to enable information interaction with the first synchronization node and to execute the methods provided by one or more technical solutions on the first acceptance node side when running a computer program. The computer program is stored in the second memory 803.
[0095] Specifically, the second communication interface 801 is used to receive first data sent by the first set, the first data including gradient data and a first timestamp of a first model associated with the first set, the first set including one or more clients; The second processor 802 is used to verify the first data and obtain a verification result; if the verification result indicates that the verification is successful, the second processor 802 sends the first data to the first synchronization node.
[0096] In some optional embodiments, the second communication interface 801 is configured to send ninth data to each of the one or more clients, the ninth data representing the metric requirements of gradient data, the ninth data being used by the one or more clients to determine whether to form the first set for joint model training; and, if the one or more clients determine to form the first set for joint model training, to receive the first data sent by the first set.
[0097] In some optional embodiments, the second communication interface 801 is further configured to send the verification result to each of the one or more clients if the verification result indicates that the verification has failed, so that the one or more clients update the first set.
[0098] It should be noted that the specific processing procedure of the second communication interface 801 can be understood by referring to the above method.
[0099] Of course, in practical applications, the various components in the first acceptance node 800 are coupled together through the bus system 804. It can be understood that the bus system 804 is used to implement communication between these components. In addition to the data bus, the bus system 804 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 8 The general labeled all buses as Bus System 804.
[0100] The second memory 803 in this embodiment is used to store various types of data to support the operation of the first acceptance node 800. Examples of such data include any computer program used to operate on the first acceptance node 800.
[0101] The methods disclosed in the embodiments of this application can be applied to the second processor 802, or implemented by the second processor 802. The second processor 802 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware or by instructions in the form of software in the second processor 802. The second processor 802 may be a general-purpose processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The second processor 802 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in the second memory 803. The second processor 802 reads the information in the second memory 803 and completes the steps of the aforementioned method in combination with its hardware.
[0102] In an exemplary embodiment, the first acceptance node 800 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, microprocessors, or other electronic components to perform the aforementioned method.
[0103] It is understood that the memories (first memory 703 and second memory 803) in the embodiments of this application can be volatile memory or non-volatile memory, or both. 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), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. 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), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.
[0104] To implement the methods provided in the embodiments of this application, the embodiments of this application also provide a data processing system, such as... Figure 9 As shown, the system includes: a first synchronization node 901 and a first acceptance node 902.
[0105] It should be noted that the specific processing procedures of the first synchronization node 901 and the first acceptance node 902 have been detailed above and will not be repeated here.
[0106] In an exemplary embodiment, this application also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium. For example, it may include a first memory 703 storing a computer program, which can be executed by a first processor 702 of a first synchronization node 700 to complete the steps described in the aforementioned first synchronization node-side method. Another example is a second memory 803 storing a computer program, which can be executed by a second processor 802 of a first acceptance node 800 to complete the steps described in the aforementioned first acceptance node-side method. The computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.
[0107] In an exemplary embodiment, this application also provides a computer program product, including a computer program that can be executed by a first processor 702 of a first synchronization node 700 to complete the steps described in the aforementioned first synchronization node-side method, or the computer program can be executed by a second processor 802 of a first acceptance node 800 to complete the steps described in the aforementioned first acceptance node-side method.
[0108] It should be noted that terms such as "first" and "second" are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0109] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0110] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application.
Claims
1. A data processing method, characterized in that, Applied to the first synchronization node, the method includes: Receive first data sent by the first acceptance node, the first data including gradient data and first timestamp of the first model associated with the first set, the first set including one or more clients; Receive one or more second data sent by one or more second synchronization nodes, each second data containing at least gradient data and a second timestamp of the first model corresponding to the second set, the second set containing one or more clients; Based on the first data and the one or more second data, a synchronization node that meets the first condition is determined, wherein the first condition indicates that it has the right to record transactions. When the determined synchronization node is the first synchronization node, the first data and the one or more second data are aggregated to obtain third data, and the third data is stored in the first block. The first block is deployed on the blockchain, and the third data is used to adjust the parameters of the local first model for the first set and the one or more second sets.
2. The method according to claim 1, characterized in that, The step of determining the synchronization node that satisfies the first condition based on the first data and the one or more second data includes: The first timestamp in the first data is compared with one or more second timestamps in one or more second data, and the timestamp that meets the second condition is selected. The first timestamp represents the reporting time of the first data, and the one or more second timestamps represent the reporting time of the one or more second data. The second condition represents the earliest reporting time. Based on the selected timestamp, the synchronization node that meets the first condition is determined.
3. The method according to claim 1, characterized in that, The aggregation process of the first data and the one or more second data to obtain the third data includes: Obtain fourth data and one or more fifth data, wherein the fourth data represents the total accounting reward corresponding to the first set, and each fifth data represents the total accounting reward corresponding to the second set; Based on the fourth data and the one or more fifth data, the first set and the one or more second sets are filtered to obtain a filtered set. The data associated with the filtered set is aggregated to obtain the third data.
4. The method according to claim 3, characterized in that, The method further includes: Obtain the sixth data, which represents the accounting reward corresponding to the accounting right; Based on the sixth and seventh data, the fourth data is updated, whereby the seventh data represents the historical score of each client in the first set.
5. The method according to claim 3, characterized in that, The method further includes: Retrieve the eighth data from the storage node, the eighth data containing the first hash value of the data associated with the filtered set; The data associated with the third set is hashed to obtain the second hash value; If the first hash value and the second hash value match, the data associated with the filtered set is aggregated to obtain the third data.
6. A data processing method, characterized in that, Applied to the first acceptance node, the method includes: Receive first data sent by a first set, the first data including gradient data and a first timestamp of a first model associated with the first set, the first set including one or more clients; The first data is validated to obtain the validation result; If the verification result indicates that the verification is successful, the first data is sent to the first synchronization node.
7. The method according to claim 6, characterized in that, The receipt of the first data sent by the first set includes: Send a ninth data point to each of the one or more clients, the ninth data point representing the metric requirements of the gradient data, the ninth data point being used by the one or more clients to determine whether to form the first set for joint model training; If one or more clients determine that the first set is formed to jointly train the model, the first data sent by the first set is received.
8. The method according to claim 7, characterized in that, The method further includes: If the verification result indicates that the verification failed, the verification result is sent to each of the one or more clients so that the one or more clients update the first set.
9. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5, or the steps of the method according to any one of claims 6 to 8.
10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5, or the steps of the method according to any one of claims 6 to 8.