Data processing method and device, server and storage medium
By dividing multiple domains inside the cloud side server and managing the collection of homogeneous end -side equipment, the problem of difficulty in managing a large number of end -side equipment for a single cloud side service layer has been solved, and the efficient multi -domain terminal cloud collaboration calculation has been achieved. Convergence speed and accuracy.
Patent Information
- Application Number
- CN202411376306.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-29
- Publication Date
- 2025-01-24
AI Technical Summary
In end-cloud collaboration technology, as the number of end-side devices participating in training increases and is widely distributed, it is difficult for a single cloud-side service layer to effectively manage, resulting in an extended model convergence time and a reduced final model accuracy.
N domains are divided inside the cloud server. Each domain is responsible for managing its corresponding set of end-side devices, and end-side devices belonging to the same set of end-side devices are isomorphic. The target domain is determined through the domain selector, and the configurator sends task data to the end-side device in the target domain, and obtains global task execution data through data aggregation, realizing hierarchical multi-domain end-cloud collaborative computing.
Through hierarchical multi-domain management, the execution efficiency and quality of collaborative computing tasks are improved, the model convergence time is reduced, and the accuracy of the final model is improved.
Smart Images

Figure CN119356810A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of end-cloud collaboration technology, and in particular to a data processing method, device, server, and storage medium. Background Art
[0002] End-cloud collaboration is a computing model that combines the powerful processing power of cloud computing and the real-time nature of edge computing to improve efficiency, reduce latency, and protect data privacy to a certain extent. In this model, the end-side device is responsible for data collection, preliminary processing, and real-time response, while the cloud-side server is responsible for large-scale data storage, complex computing tasks, and model training.
[0003] In related technologies, only a single cloud-side service layer is used to manage the flattened end-side device layer. However, as more and more end-side devices participate in training and their distribution becomes wider, the data and system heterogeneity between end-side devices also gradually increases, resulting in a single cloud-side service layer facing a long model convergence time and poor final model accuracy. Summary of the invention
[0004] The present application provides a data processing method, device, server and storage medium, and the technical solution is as follows:
[0005] On the one hand, an embodiment of the present application provides a data processing method, which is used for a cloud-side server, wherein the cloud-side server includes a configurator, a domain selector, a global aggregator, and N domains, where N is a positive integer; wherein different domains are used to manage different sets of end-side devices, and the end-side devices belonging to the same set of end-side devices are isomorphic;
[0006] The method comprises:
[0007] Determining at least one target domain for executing the collaborative computing task from the N domains by the domain selector;
[0008] Sending task data to the terminal device corresponding to the target domain through the configurator;
[0009] According to the terminal-side task execution data returned by the terminal-side device, obtaining the intra-domain task execution data corresponding to the target domain through data aggregation;
[0010] The intra-domain task execution data corresponding to each target domain is aggregated through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task.
[0011] On the other hand, an embodiment of the present application provides a data processing device, which is used in a cloud-side server, wherein the cloud-side server includes a configurator, a domain selector, a global aggregator, and N domains, where N is a positive integer; wherein different domains are used to manage different sets of end-side devices, and the end-side devices belonging to the same set of end-side devices are isomorphic;
[0012] The device comprises:
[0013] A domain selection module, configured to determine at least one target domain for executing the collaborative computing task from the N domains through the domain selector;
[0014] A data sending module, used for sending task data to the terminal device corresponding to the target domain through the configurator;
[0015] A first data aggregation module, configured to obtain, by data aggregation, the intra-domain task execution data corresponding to the target domain according to the terminal-side task execution data returned by the terminal-side device;
[0016] The second data aggregation module is used to aggregate the intra-domain task execution data corresponding to each target domain through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task.
[0017] On the other hand, an embodiment of the present application provides a cloud-side server, which includes a processor and a memory, wherein the memory stores at least one computer instruction, and the at least one computer instruction is loaded and executed by the processor to implement the data processing method described in the above aspects.
[0018] On the other hand, an embodiment of the present application provides a computer-readable storage medium, in which at least one computer instruction is stored. The at least one computer instruction is loaded and executed by a processor to implement the data processing method described in the above aspects.
[0019] On the other hand, an embodiment of the present application provides a computer program product, which includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the cloud-side server reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the cloud-side server executes the data processing method provided by the above aspect.
[0020] Different from the related art, the cloud-side server manages the end-side devices in a flat manner, but the number of end-side devices is large and widely distributed, and there is often a large data and system heterogeneity between the end-side devices, which leads to poor task execution quality of collaborative computing tasks. In the embodiment of the present application, N domains are divided inside the cloud-side server, and each domain is responsible for managing its corresponding end-side device set, and the end-side devices belonging to the same end-side device set are isomorphic. When executing collaborative computing tasks, the cloud-side server uses the domain as a unit, determines at least one target domain for executing collaborative computing tasks through a domain selector, and sends task data to the end-side device corresponding to the target domain through a configurator, and then based on the end-side task execution data returned by the end-side device, first aggregates within the domain to obtain the intra-domain task execution data, and then aggregates between domains to obtain the global task execution data, thereby realizing hierarchical multi-domain end-cloud collaborative computing, which is conducive to concurrent collaborative computing of multiple different domains and improves the task execution quality of collaborative computing tasks. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0022] Figure 1 A schematic diagram showing an implementation environment provided by an exemplary embodiment of the present application is shown;
[0023] Figure 2 A flowchart of a data processing method provided by an exemplary embodiment of the present application is shown;
[0024] Figure 3 A schematic diagram of a terminal-cloud collaborative computing framework provided by an exemplary embodiment of the present application is shown;
[0025] Figure 4 A flow chart showing a data processing method provided by another exemplary embodiment of the present application is shown;
[0026] Figure 5 A schematic diagram of a terminal-cloud collaborative computing framework provided by another exemplary embodiment of the present application is shown;
[0027] Figure 6 A flow chart showing a data processing method provided by another exemplary embodiment of the present application is shown;
[0028] Figure 7 shows an execution sequence diagram of a global collaborative computing task provided by an exemplary embodiment of the present application;
[0029] Figure 8shows an execution sequence diagram of a collaborative computing task within a domain provided by an exemplary embodiment of the present application;
[0030] Fig. 9 A flow chart showing a data processing method provided by another exemplary embodiment of the present application is shown;
[0031] Fig.10 A structural block diagram of a data processing device provided by an exemplary embodiment of the present application is shown;
[0032] Fig.11 A structural block diagram of a cloud-side server provided by an exemplary embodiment of the present application is shown. DETAILED DESCRIPTION
[0033] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0034] First, the nouns involved in the embodiments of the present application are introduced:
[0035] End-cloud collaboration: It is a computing model that combines the powerful processing power of cloud computing and the real-time nature of edge computing to improve efficiency, reduce latency, and protect data privacy to a certain extent. In this model, the end-side device is responsible for data collection, preliminary processing, and real-time response, while the cloud-side server is responsible for large-scale data storage, complex computing tasks, and model training.
[0036] Cloud-side servers: refers to server resources provided in a cloud computing environment. These resources can be accessed through the Internet and dynamically allocated and expanded according to user needs. Cloud-side servers are the core components of cloud computing architecture. They are usually located in remote data centers and provided to multiple users through virtualization technology.
[0037] Devices at the edge of the network are close to data sources or users and can collect, process and respond to data in real time. For example, smartphones, embedded systems, IoT (Internet of Things) devices, etc. In the end-cloud collaborative architecture, devices at the edge are usually used in conjunction with cloud servers to achieve more efficient and responsive computing tasks.
[0038] Collaborative computing tasks: refers to computing tasks completed in cooperation between multiple computing entities. These computing entities can be distributed, including cloud servers, edge computing nodes, terminal devices, etc. The purpose of collaborative computing is to improve computing efficiency, enhance data processing capabilities, optimize resource usage, and improve data security and privacy protection through resource sharing, task allocation, and result aggregation.
[0039] Please refer to Figure 1 , which shows a schematic diagram of the structure of a computer system provided by an exemplary embodiment of the present application. The implementation environment includes a terminal device 120 and a cloud-side server 140. Among them, the terminal device 120 and the cloud-side server 140 communicate data through a communication network. Optionally, the communication network can be a wired network or a wireless network, and the communication network can be at least one of a local area network, a metropolitan area network, and a wide area network.
[0040] The terminal device 120 is an electronic device installed with a terminal cloud service. The terminal cloud service can be a function of a native application in the terminal, or a function of a third-party application; the electronic device can be a smart phone, a tablet computer, a personal computer, a wearable device, or a vehicle-mounted terminal, etc.
[0041] In the embodiment of the present application, the terminal side device 120 is used to perform collaborative computing tasks. The terminal side device 120 is large in scale, with a number of millions or even billions, and is widely distributed and deployed all over the world.
[0042] The cloud-side server 140 can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), as well as big data and artificial intelligence platforms.
[0043] In the embodiment of the present application, in order to realize hierarchical multi-domain end-cloud collaborative computing, N domains (N is a positive integer) are divided in the cloud-side server, and all the end-side devices are divided into multiple end-side device sets according to the isomorphism between the end-side devices managed by the cloud-side server, that is, the end-side devices belonging to the same end-side device set are isomorphic, so that different domains are responsible for managing different end-side device sets. At the same time, in order to manage and coordinate the domain processing process between different domains, a configurator, a domain selector and a global aggregator are also provided in the cloud-side server, so that when executing a collaborative computing task, the cloud-side server can first determine at least one target domain for executing the collaborative computing task through the domain selector, and send task data to the end-side device corresponding to the target domain through the configurator, and then based on the end-side task execution data returned by the end-side device, first aggregate within the domain to obtain the intra-domain task execution data, and then aggregate between domains to obtain the global task execution data.
[0044] Please refer to Figure 2 , which shows a flow chart of a data processing method provided by an exemplary embodiment of the present application. This embodiment is explained by taking the method used in a cloud-side server as an example.
[0045] Taking into account the large scale, large number and wide distribution of end-side devices, end-side devices located in different geographical locations may have heterogeneous data distribution and system capabilities. Therefore, in order to avoid the large data and system heterogeneity between end-side devices when flatly managing end-side devices, which will reduce the task execution quality of collaborative computing tasks, in an embodiment of the present application, N domains are divided in the cloud-side server, where different domains are used to manage different sets of end-side devices, and the end-side devices belonging to the same set of end-side devices are isomorphic.
[0046] Optionally, homogeneity means that the devices have similar hardware and software configurations and are in similar external conditions. Heterogeneity means that the devices are different in structure or function, or are in very different external conditions. For example, when time zones are used as domain division conditions, the end-side devices in the same time zone are homogeneous, while the end-side devices in different time zones are heterogeneous; for another example, when provinces are used as domain division conditions, the end-side devices in the same province are homogeneous, while the end-side devices in different provinces are heterogeneous.
[0047] Optionally, the end-side devices can be divided into multiple end-side device sets according to factors such as the time zone and geographical location of the end-side devices. Optionally, the domain mentioned in the embodiment of the present application can be understood as a domain in a logical concept. For example, when the domain is divided according to the time zone where the end-side device is located, the domain can be understood as all server clusters in the time zone, and the end-side device set includes all end-side devices in the time zone.
[0048] At the same time, in order to manage and coordinate the domain processing between different domains, the cloud-side server also includes a configurator, a domain selector, and a global aggregator. The configurator is used to interact with the end-side device for data, and the domain selector and the global aggregator are used for inter-domain coordination.
[0049] Step 201: Determine at least one target domain for executing a collaborative computing task from N domains through a domain selector.
[0050] Unlike related technologies, the cloud-side server manages all end-side devices in a flat manner. When executing collaborative computing tasks, the cloud-side server directly sends task data to all end-side devices. However, due to the heterogeneity between the widely distributed end-side devices, it takes a long time for the cloud-side server to collect enough end-side task execution data returned by the end-side devices, resulting in low task execution efficiency of coordinated computing tasks.
[0051] In the embodiment of the present application, in order to improve the execution efficiency of the collaborative computing task and optimize the task execution quality, the task data is not sent directly to all the end-side devices, but at least one target domain for the collaborative computing task is first determined from the N domains through the domain selector. That is, not all the end-side devices participate in the current round of collaborative computing tasks, and only the end-side devices corresponding to the selected target domain have the opportunity to participate in the current round of collaborative computing tasks.
[0052] Optionally, collaborative computing tasks refer to computing tasks that are completed in cooperation between multiple computing entities. For example, in the end-cloud collaborative model training task, the cloud-side server is responsible for maintaining the large machine learning model, and the end-side device is responsible for collecting data and performing some model reasoning tasks. Through end-cloud collaborative division of labor, the computing power of the end-side device can be effectively utilized to reduce the load pressure on the cloud-side server. At the same time, since user data does not leave the end-side device, user privacy can be effectively protected. Schematically, end-cloud collaborative computing tasks can be federated recommendation tasks, federated speech recognition tasks, federated image recognition tasks, etc.
[0053] In some embodiments, the cloud-side server may also determine at least one target domain for executing the collaborative computing task from the N domains according to the task requirements of the collaborative computing task and the isomorphism characteristics of different domains.
[0054] For example, the efficiency of executing collaborative computing tasks will be higher when the terminal device is in a better state, such as when it is idle in the middle of the night, has sufficient power, is connected to a wireless network, etc. Based on this, when the terminal device set is divided according to the time zone to which the terminal device belongs, in order to allow as many terminal devices that are idle in the middle of the night as possible to participate in the execution of collaborative computing tasks, the domain selector can determine the domain corresponding to the time zone where the current time is midnight as the target domain, and can also determine the domains corresponding to other time zones adjacent to this time zone as the target domain.
[0055] Indicatively, Figure 3 As shown, the cloud-side server 301 is divided into N domains, and is provided with a configurator 303, a domain selector 304, and a global aggregator 305, and the cloud-side server 301 manages a large number of end-side devices 302. Each domain corresponds to an end-side device set, and the end-side devices in the end-side device set are isomorphic. When preparing to perform a collaborative computing task, the cloud-side server 301 first determines at least one target domain for performing the collaborative computing task from the N domains through the domain selector 304.
[0056] Step 202: Send task data to the terminal device corresponding to the target domain through the configurator.
[0057] In some embodiments, after determining the target domain, the cloud-side server can send task data to the terminal-side device corresponding to the target domain through the configurator, so that the terminal-side device can perform collaborative computing tasks based on the task data.
[0058] Optionally, the configurator can send task data to the end-side device through the end-cloud tunnel. The end-cloud tunnel refers to the communication tunnel established between the cloud-side server and the end-side device. The end-cloud tunnel can achieve secure data transmission, allowing the cloud-side server to communicate and exchange data with the end-side device through the tunnel, and ensuring data transmission even in complex or restricted network environments.
[0059] Optionally, the task data of the collaborative computing task is non-privacy data. Taking the collaborative computing task as a model training task as an example, the task data may include model parameters and weights.
[0060] Indicatively, Figure 3 As shown, the cloud-side server 301 sends task data to the end-side device 302 corresponding to the target domain through the configurator 303, so that the end-side device 302 in the target domain uses the computing engine and combines local user data to perform collaborative computing tasks.
[0061] Step 203: According to the terminal-side task execution data returned by the terminal-side device, the intra-domain task execution data corresponding to the target domain is obtained through data aggregation.
[0062] In some embodiments, for the end-side task execution data returned by the end-side devices, the cloud-side server does not directly aggregate the end-side task execution data returned by all end-side devices, but first obtains the intra-domain task execution data corresponding to each target domain through intra-domain aggregation.
[0063] Optionally, the end-side task execution data refers to task update data, i.e., incremental update data generated after the end-side device executes the collaborative computing task. Taking the collaborative computing task as a model training task as an example, the end-side task execution data may include model gradient information, intermediate feature representation, model update data, etc.
[0064] In a possible implementation, for a single target domain, after obtaining the end-side task execution data returned by each end-side device, the cloud-side server may adopt a streaming aggregation method to obtain the intra-domain task execution data corresponding to the target domain through data aggregation.
[0065] Optionally, the intra-domain task execution data can reflect the isomorphism between the end-side devices in the end-side device set corresponding to the target domain. Taking the collaborative computing task as a model training task as an example, the intra-domain task execution data reflects the common model update characteristics between each end-side device.
[0066] Step 204 , aggregating the intra-domain task execution data corresponding to each target domain through a global aggregator to obtain global task execution data corresponding to the collaborative computing task.
[0067] In some embodiments, after obtaining the intra-domain task execution data corresponding to each target domain, in order to perform global task updates, the cloud-side server also needs to aggregate the intra-domain task execution data corresponding to each target domain through a global aggregator, thereby obtaining the global task execution data corresponding to the collaborative computing task.
[0068] Optionally, the cloud-side server can aggregate the task execution data corresponding to each target domain in a streaming aggregation manner through a global aggregator, thereby obtaining global task execution data. Furthermore, the cloud-side server can also update and save the task data of the collaborative computing task based on the global task execution data.
[0069] Indicatively, Figure 3 As shown, after obtaining the intra-domain task execution data corresponding to each target domain, the cloud-side server 301 aggregates the intra-domain task execution data corresponding to each target domain through the global aggregator 305, thereby obtaining the global task execution data corresponding to the collaborative computing task.
[0070] In summary, in the embodiment of the present application, N domains are divided inside the cloud-side server, each domain is responsible for managing its corresponding end-side device set, and the end-side devices belonging to the same end-side device set are isomorphic. When executing collaborative computing tasks, the cloud-side server uses domains as units, determines at least one target domain for executing collaborative computing tasks through a domain selector, and sends task data to the end-side device corresponding to the target domain through a configurator, and then based on the end-side task execution data returned by the end-side device, first aggregates within the domain to obtain the intra-domain task execution data, and then aggregates between domains to obtain the global task execution data, thereby realizing hierarchical multi-domain end-cloud collaborative computing, which is conducive to concurrent collaborative computing of multiple different domains and improves the task execution quality of collaborative computing tasks.
[0071] In some embodiments, since there are multiple domain division methods and the task requirements of different collaborative computing tasks are also different, in order to improve task execution efficiency, the cloud-side server can also determine at least one target domain from N domains based on the task requirements of the current collaborative computing task and domain selection conditions.
[0072] And because the end-side device set corresponding to each domain contains a large number of end-side devices, but not every end-side device's device state is suitable for executing collaborative computing tasks, it is also necessary to determine at least one target end-side device from the end-side device set corresponding to the target domain.
[0073] The process of determining the target domain and the target end-side device corresponding to the target domain will be described below through specific embodiments.
[0074] Please refer to Figure 4 , which shows a flow chart of a data processing method provided by an exemplary embodiment of the present application. This embodiment takes the method used in a cloud-side server as an example for explanation. The method includes the following steps:
[0075] Step 401, according to the task requirements of the collaborative computing task and the domain selection condition, determine M target domains for executing the collaborative computing task from N domains through a domain selector, where M is a positive integer, and the domain selection condition includes at least one of a domain classification feature and a domain task execution quality.
[0076] In some embodiments, the cloud-side server can first obtain the task requirements of the collaborative computing task, such as the device characteristics and time zone characteristics required for task execution, and then determine at least one target domain for executing the collaborative computing task from N domains through a domain selector based on the task requirements and domain selection conditions.
[0077] Optionally, the domain number M of the target domain may be a preset fixed value, or may be an actual value determined based on task requirements, which is not limited in this embodiment of the present application.
[0078] Optionally, the domain selection condition includes at least one of a domain classification feature and a domain task execution quality.
[0079] Among them, the domain classification feature refers to the isomorphic features corresponding to each domain when the domain is divided. For example, when dividing by time zone, the domain classification feature is the time zone; when dividing by latitude, the domain classification feature is the latitude; when dividing by geographical location, the domain classification feature can be country, province, etc.
[0080] The domain task execution quality can be determined based on the historical domain task execution data of each domain when executing the collaborative computing task before. The higher the data quality of the historical domain task execution data, the better the domain task execution quality of the domain. Optionally, the data quality of the domain task execution data can be related to the data increment corresponding to each domain task execution data. The larger the data increment, the higher the data quality of the domain task execution data.
[0081] Optionally, the domain selector may determine M target domains from N domains based only on domain classification features; or may determine M target domains from N domains based only on domain task execution quality; or may first determine multiple target domains based on domain classification features, and then determine the remaining number of target domains based on domain task execution quality.
[0082] Step 402, for a single target domain, determine at least one target end-side device for executing the collaborative computing task from the end-side device set corresponding to the target domain through the device selector corresponding to the target domain; wherein different domains correspond to their own device selectors.
[0083] In some embodiments, considering that the end-side device set corresponding to each domain contains a large number of end-side devices, but not every end-side device meets the task requirements of the collaborative computing task, or the collaborative computing task does not necessarily require all end-side devices to participate in the execution, for each target domain, the cloud-side server also needs to determine at least one target end-side device from the end-side device set.
[0084] Optionally, in order to facilitate the selection of devices within a domain, each domain is provided with its own device selector for determining at least one target end-side device for executing the collaborative computing task from the set of end-side devices corresponding to the domain.
[0085] In a possible implementation, in order to improve device selection efficiency, the cloud-side server may also receive task participation requests sent by each end-side device, and thereby determine, based on the task participation requests, whether the end-side device meets the participation conditions for the collaborative computing task.
[0086] Optionally, a complete end-side service is deployed in each end-side device, so that when the end-side service recognizes that the end-side device has met the conditions for participating in the collaborative computing task, it can send a task participation request to the cloud-side server through the end-cloud tunnel.
[0087] Furthermore, upon receiving a task participation request sent by each end-side device, the cloud-side server can determine at least one candidate end-side device corresponding to the target domain according to the end-side device set to which each end-side device belongs. Schematically, if end-side device 1 sends a task participation request to the cloud-side server, and end-side device 1 belongs to the end-side device set corresponding to domain 1, the cloud-side server can determine end-side device 1 as a candidate end-side device for domain 1.
[0088] Optionally, after obtaining the candidate end-side devices corresponding to the target domain, the cloud-side server can determine at least one target end-side device for executing the collaborative computing task from a large number of candidate end-side devices through a device selector corresponding to the target domain.
[0089] Indicatively, Figure 5 As shown, taking domain 2 in the cloud-side server 501 as an example, a device selector 503 is provided in domain 2, so that when domain 2 is determined as the target domain, the cloud-side server 501 determines at least one target end-side device from the end-side device set corresponding to domain 2 through the device selector 503.
[0090] In a possible implementation, the cloud-side server may also first determine the number of devices L in the target domain used to perform the collaborative computing task according to the task requirements of the collaborative computing task, where L is a positive integer. Optionally, the number of devices participating in the execution of the collaborative computing task in each domain may be the same or different, and this is not limited in the embodiment of the present application. Furthermore, the device selector determines L target end-side devices from a large number of candidate end-side devices according to the number of devices.
[0091] Optionally, the cloud-side server may randomly determine L target end-side devices for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain through a device selector corresponding to the target domain.
[0092] Optionally, the cloud-side server may also determine L target end-side devices for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain according to the device selection condition through the device selector corresponding to the target domain. The device selection condition includes one of the device task execution quality and the switching condition of the domain to which the device belongs.
[0093] Optionally, the device task execution quality can be determined based on the historical end-side task execution data of each end-side device when it previously executed the collaborative computing task. The higher the data quality of the historical end-side task execution data, the better the device task execution quality of the end-side device. Optionally, the data quality of the end-side task execution data can be related to the data increment corresponding to each end-side task execution data. The larger the data increment, the higher the data quality of the end-side task execution data.
[0094] Optionally, the switching condition of the domain to which the device belongs may be a switching frequency of the domain to which the device belongs, or a switching time of the domain to which the device belongs, etc.
[0095] Optionally, the device selector may determine L target end-side devices from a large number of candidate end-side devices according to the device task execution quality, in descending order of quality. Optionally, the device selector may first determine the candidate end-side devices that have recently switched to the target domain and have not participated in the collaborative computing tasks in the target domain as target end-side devices according to the switching status of the domain to which the device belongs, and then determine the remaining number of target end-side devices from a large number of candidate end-side devices according to the device task execution quality, in descending order of quality.
[0096] Regarding the switching process of the domain to which the terminal device belongs, in a possible implementation, the cloud-side server can determine the terminal-side device set to which the terminal device belongs based on the domain characteristics corresponding to each of the N domains and the device characteristics of the terminal device. However, due to the widespread mobility of terminal devices, the device characteristics of the terminal devices may change. Therefore, in order to improve the management efficiency of each terminal device, the cloud-side server also needs to dynamically update the terminal-side device set to which the terminal device belongs when the device characteristics of the terminal device change.
[0097] Schematically, when the domains are divided by time zones, East Zone 8 corresponds to Domain 1, and East Zone 9 corresponds to Domain 2. The terminal device 1 located in East Zone 8 belongs to the terminal device set corresponding to Domain 1. When the terminal device 1 moves to East Zone 9, it is necessary to switch the domain to which the terminal device 1 belongs from Domain 1 to Domain 2, so that the terminal device 1 no longer interacts with domain 1 but interacts with domain 2.
[0098] Indicatively, Figure 5 As shown, taking the switching of the domain to which the terminal device 502 belongs as an example, domain 1 manages the terminal device set in East District 8, and domain 2 manages the terminal device set in East District 9. When the terminal device 502 moves from East District 8 to East District 9, the domain to which the terminal device 502 belongs is switched from domain 1 to domain 2.
[0099] Step 403: Send task data to at least one target end-side device corresponding to the target domain through the configurator.
[0100] In some embodiments, after determining the target domain and the target end-side devices corresponding to each target domain, the cloud-side server can send task data to at least one target end-side device corresponding to the target domain through the configurator, so that each target end-side device can perform collaborative computing tasks according to the task data.
[0101] Step 404: According to the terminal-side task execution data returned by the terminal-side device, the intra-domain task execution data corresponding to the target domain is obtained through data aggregation.
[0102] Step 405 , aggregating the intra-domain task execution data corresponding to each target domain through a global aggregator to obtain global task execution data corresponding to the collaborative computing task.
[0103] The specific implementation of steps 404 to 405 may refer to steps 203 to 204, and will not be described in detail in this embodiment.
[0104] In the above embodiment, in combination with the task requirements, domain selection conditions and device selection conditions of the collaborative computing task, M target domains for executing the collaborative computing task are determined from the N domains in turn, and then at least one target end-side device is determined from each target domain, thereby ensuring the quality of the devices involved in executing the collaborative computing task, which is beneficial to improving the task execution efficiency and task execution quality of the collaborative computing task.
[0105] In some embodiments, for a single collaborative computing task, in order to ensure the quality of task execution, it is usually necessary to perform multiple rounds of collaborative computing processes, thereby continuously iterating and optimizing task data. For the hierarchical multi-domain end-cloud collaborative computing framework proposed in the embodiment of the present application, in order to improve the quality of global task execution in a single round, multiple rounds of data iteration optimization within the domain can also be performed during the concurrent collaborative computing of each domain. The process of updating data within the domain and updating global data will be described below through specific embodiments.
[0106] Please refer to Figure 6 , which shows a flow chart of a data processing method provided by an exemplary embodiment of the present application. This embodiment takes the method used in a cloud-side server as an example for explanation. The method includes the following steps:
[0107] Step 601 : According to the task requirements of the collaborative computing task and the domain selection condition, M target domains for executing the collaborative computing task are determined from N domains through a domain selector.
[0108] Step 602: For a single target domain, at least one target end-side device for executing the collaborative computing task is determined from the end-side device set corresponding to the target domain through a device selector corresponding to the target domain.
[0109] The specific implementation of steps 601 to 602 may refer to steps 401 to 402, which will not be described in detail in this embodiment.
[0110] Step 603: Send task data to at least one target end-side device corresponding to the target domain through the configurator.
[0111] In one possible implementation, after the execution of the last round of global collaborative computing tasks is completed, the cloud-side server stores the task data that has been updated based on the last round of global task execution data. Therefore, for the current round of global collaborative computing tasks, after determining the target end-side devices participating in the task execution in each target domain, the cloud-side server can send the task data to each target end-side device through the configurator.
[0112] Optionally, the cloud-side server executes Q rounds of global collaborative computing tasks, Q is a positive integer, and the global collaborative computing task currently being executed is the q+1th round of global collaborative computing tasks. Then, the task data of the q+1th round of global collaborative computing tasks is the task data after data update based on the qth round of global task execution data.
[0113] Step 604: For a task execution round within a single domain, the target domain receives the end-side task execution data returned by each end-side device.
[0114] In a possible implementation, in order to improve the execution quality of a single round of global tasks, the cloud-side server may also perform multiple rounds of intra-domain data iteration optimization for each target domain during concurrent collaborative computing of each domain.
[0115] Optionally, P rounds of intra-domain collaborative computing tasks are executed in the target domain, where P is a positive integer. Optionally, the intra-domain task execution rounds can be a custom parameter used to indicate the rounds of intra-domain iterative computing.
[0116] Among them, different target domains correspond to their own intra-domain task execution rounds. The intra-domain task execution rounds corresponding to different target domains can be the same or different, and the embodiment of the present application does not limit this. Optionally, each target domain independently executes the collaborative computing task in parallel, and the domains do not interfere with each other.
[0117] In a possible implementation, for a single intra-domain task execution round in a target domain, the target domain first receives the terminal-side task execution data of the round returned by each terminal-side device.
[0118] Indicatively, Figure 7 As shown, for the convenience of labeling, the configurator, domain selector and global configurator are collectively labeled as "coordinator". Figure 7 In the example, domain 1 is taken as the target domain, and domain 1 manages end-side device 1 and end-side device 2. After the domain selector determines domain 1 as the target domain, end-side device 1 and end-side device 2 respectively send task participation requests to the cloud-side server, where end-side device 2 is selected as the target end-side device. Therefore, the cloud-side server sends task data to end-side device 2 through the configurator, so that end-side device 2 performs collaborative computing tasks based on the local computing engine combined with user data, and returns the end-side task execution data to domain 1 in the cloud-side server.
[0119] Step 605 , according to the device weight corresponding to each end-side device, obtain the intra-domain task execution data corresponding to the current intra-domain task execution round through data aggregation.
[0120] Furthermore, the cloud-side server may obtain the intra-domain task execution data corresponding to the current intra-domain task execution round through data aggregation according to the device weights corresponding to the terminal-side devices.
[0121] Optionally, the device weight corresponding to each end-side device may be determined based on the device task execution quality of the end-side device, or may be determined randomly. Optionally, the sum of the device weights of each target end-side device participating in the task execution in the current domain is 1.
[0122] Optionally, the cloud-side server may also calculate the average value of the end-side task execution data corresponding to each target end-side device, thereby obtaining the task execution data within the domain. Optionally, other data aggregation methods may be used for data aggregation, which is not limited in the embodiments of the present application.
[0123] Optionally, considering that there are a large number of end-side devices participating in each task execution round in the domain, in order to improve the efficiency of data processing in the domain, an aggregation buffer and an intra-domain aggregator can also be set in each domain, that is, different domains correspond to their own aggregation buffer and intra-domain aggregator. Among them, the aggregation buffer is used to cache the end-side task execution data returned by the end-side device, thereby effectively alleviating the instantaneous pressure on the intra-domain aggregator when facing the surge in end-side data traffic.
[0124] For the intra-domain task execution process of a single target domain, in one possible implementation, upon receiving the i-th round of end-side task execution data returned by the end-side device, the cloud-side server first caches the i-th round of end-side task execution data to the aggregation buffer, and then upon receiving the i-th round of end-side task execution data returned by each end-side device, the cloud-side server aggregates the data through the intra-domain aggregator according to the device weight corresponding to each end-side device, thereby obtaining the i-th round of intra-domain task execution data.
[0125] Indicatively, Figure 5 As shown, taking domain 2 in the cloud-side server 501 as an example, an aggregation buffer 505 and an intra-domain aggregator 504 are set in domain 2, so that after domain 2 is determined as the target domain and the end-side task execution data returned by the target end-side device is received, the cloud-side server 501 first caches the end-side task execution data returned by each target end-side device to the aggregation buffer 505, and after receiving the end-side task execution data returned by all target end-side devices, the cloud-side server 501 aggregates each end-side task execution data through the intra-domain aggregator 504 to obtain the intra-domain task execution data.
[0126] Furthermore, after obtaining the i-th round of task execution data within the domain, the cloud-side server can update the data based on the i-th round of task execution data within the domain to obtain the i+1-th round of task data corresponding to the target domain, where i is a positive integer, and send the i+1-th round of task data to the end-side device through the configurator, so that the end-side device can execute the i+1-th round of collaborative computing tasks.
[0127] Indicatively, Figure 7As shown, upon receiving the i-th round of end-side task execution data returned by each end-side device, the cloud-side server aggregates each i-th round of end-side task execution data through the intra-domain aggregator in domain 1 to obtain the i-th round of intra-domain task execution data, and updates the data according to the i-th round of intra-domain task execution data to obtain the i+1-th round of task data corresponding to domain 1, and then continues to send the i+1-th round of task data to the end-side device 2 through the configurator, so that the end-side device 2 continues to execute the i+1-th round of collaborative computing tasks.
[0128] Optionally, considering that the target domains do not interfere with each other during the execution of intra-domain tasks, in order to improve the accuracy of data interaction and avoid data transmission confusion, an intra-domain configurator can also be set in each domain. That is, during the execution of intra-domain tasks, the task data obtained by updating the data based on the intra-domain task execution data can be sent to the target end-side device through the intra-domain configurator.
[0129] Step 606: After executing the P-th round of intra-domain collaborative computing tasks, determine the P-th round of intra-domain task execution data as the intra-domain task execution data corresponding to the target domain.
[0130] Further, after executing P rounds of intra-domain collaborative computing tasks, the cloud-side server may determine the P-th round of intra-domain task execution data as the intra-domain task execution data corresponding to the target domain.
[0131] Step 607, when the intra-domain task execution data corresponding to each target domain is obtained, the intra-domain task execution data corresponding to each target domain is aggregated through a global aggregator according to the domain weight corresponding to each target domain to obtain the global task execution data corresponding to the collaborative computing task.
[0132] In a possible implementation, when obtaining the intra-domain task execution data corresponding to each target domain, the cloud-side server can aggregate the intra-domain task execution data corresponding to each target domain through a global aggregator according to the domain weights corresponding to each target domain to obtain the global task execution data corresponding to the collaborative computing task.
[0133] Optionally, the domain weight corresponding to each target domain can be determined based on the domain task execution quality, or can be determined randomly. Optionally, the sum of the domain weights of each target domain participating in the current global task execution is 1.
[0134] In the case of executing Q rounds of global collaborative computing tasks, for each round of global data update, in one possible implementation, after obtaining the qth round of global task execution data, the cloud-side server can update the data according to the qth round of global task execution data to obtain the q+1th round of task data, and the q+1th round of task data is used to execute the q+1th round of global collaborative computing tasks.
[0135] Indicatively, Figure 8 As shown, in order to distinguish the intra-domain task execution round from the global task execution round, the global task execution round is expressed as an epoch, and for the convenience of labeling, the configurator, domain selector and global configurator are uniformly labeled as "coordinator". When executing the global collaborative computing task of the jth epoch, the domain selector determines domain 1 and domain 2 as the target domains, so that domain 1 and domain 2 respectively execute multiple rounds of intra-domain collaborative computing tasks and obtain intra-domain task execution data, so that the cloud-side server aggregates the intra-domain task execution data corresponding to domain 1 and domain 2 through the global aggregator, obtains the global collaborative computing task of the jth epoch, and updates the data with the global collaborative computing task of the jth epoch to obtain the task data of the j+1th epoch, which is used to execute the global collaborative computing task of the j+1th epoch.
[0136] In the above embodiment, a single collaborative computing task is divided into Q rounds of global collaborative computing tasks and P rounds of intra-domain collaborative computing tasks. During the execution of each round of global collaborative computing tasks, multiple rounds of iterative optimization of intra-domain collaborative computing tasks need to be performed in a single target domain, thereby improving the execution quality of a single round of global tasks, and further improving the task execution quality of collaborative computing tasks.
[0137] In combination with the above embodiments, the data processing method proposed in the embodiments of the present application will be described below by taking the collaborative computing task as a model training task as an example.
[0138] Optionally, when the collaborative computing task is a model training task, the task data may be model parameters of the task model, and the task execution data may be model update parameters.
[0139] Please refer to Fig. 9 , which shows a flow chart of a data processing method provided by an exemplary embodiment of the present application. This embodiment takes the method used in a cloud-side server as an example for explanation. The method includes the following steps:
[0140] Step 901: Determine at least one target domain for performing a model training task from N domains through a domain selector.
[0141] Optionally, the task model can be a recommendation model, such as a product recommendation model, a social media recommendation model, etc.; it can also be a speech recognition model; it can also be an image recognition model, etc., which is not limited in the embodiments of the present application.
[0142] Optionally, the end-side device is responsible for data processing and model training in the model training task, and the cloud-side server is responsible for model update and aggregation in the model training task to achieve global model optimization.
[0143] In a possible implementation, the cloud-side server determines at least one target domain for executing the model training task from N domains through a domain selector according to the task requirements of the model training task and the domain selection conditions.
[0144] Step 902: Send the model parameters of the task model to the terminal device corresponding to the target domain through the configurator.
[0145] Furthermore, considering that the end-side device set corresponding to each target domain contains a large number of end-side devices, the cloud-side server can also determine the number of end-side devices participating in the model training task in each target domain according to the task requirements of the model training task.
[0146] For a single target domain, the cloud-side server can randomly select the required number of target-side devices through the device selector in the target domain, and then send the model parameters of the task model to the target-side devices corresponding to each target domain through the configurator.
[0147] Optionally, before executing the model training task, the end-side service on each end-side device can also pre-determine whether the end-side device meets the conditions for participating in the model training task, such as whether the end-side device has the authority to obtain the user data required for model training, or whether the current device state of the end-side device supports the power consumption required for the model training task, etc. Then, when it is determined that the end-side device meets the conditions for participating in the task, the end-side device sends a task participation request to the cloud-side server through the end-cloud tunnel, so that the cloud-side server can inform the device selector corresponding to the domain to which the end-side device belongs of the task participation request of the end-side device.
[0148] Step 903: According to the end-side model update parameters returned by the end-side device, the in-domain model update parameters corresponding to the target domain are obtained through data aggregation.
[0149] In one possible implementation, upon receiving the model parameters sent by the configurator, the end-side device determines that the task participation request is approved, thereby executing the model training task according to the model parameters, and after completing each round of in-domain model training tasks, returns the end-side model update parameters to the domain to which the end-side device belongs, and uploads them to the aggregation buffer of the domain to which the end-side device belongs. After obtaining the end-side model update parameters returned by each target end-side device in the target domain, the cloud-side server can aggregate the data through the in-domain aggregator to obtain the in-domain model update parameters corresponding to the target domain.
[0150] For each round of in-domain model training tasks, the cloud-side server updates the in-domain model according to the in-domain model update parameters of the current round, thereby obtaining updated in-domain model parameters, and resends the in-domain model parameters to the target end-side device, which then continues to execute the next round of in-domain model training tasks.
[0151] Step 904: Aggregate the in-domain model update parameters corresponding to each target domain through a global aggregator to obtain the global model update parameters corresponding to the model training task.
[0152] In one possible implementation, after each target domain completes its corresponding round of in-domain model training tasks, the cloud-side server can aggregate the in-domain model update parameters corresponding to each target domain through a global aggregator, thereby obtaining the global model update parameters corresponding to the current global model training task.
[0153] Furthermore, the cloud-side server updates the task model according to the global model update parameters to obtain an updated task model, and uses the updated task model to execute the next round of global model training tasks.
[0154] In the above embodiment, taking the collaborative computing task as the model training task as an example, by utilizing the hierarchical multi-domain end-cloud collaborative computing framework proposed in the embodiment of the present application to perform the model training task, the problems of slow model fitting speed and poor model quality caused by the heterogeneity of participating device data and systems under the single-layer architecture can be effectively alleviated, thereby improving the model fitting speed and the generalization ability of the model.
[0155] Please refer to Fig.10 , which shows a structural block diagram of a data processing device provided by an exemplary embodiment of the present application, the device is used for a cloud-side server, the cloud-side server includes a configurator, a domain selector, a global aggregator and N domains, N is a positive integer; wherein different domains are used to manage different end-side device sets, and the end-side devices belonging to the same end-side device set are isomorphic;
[0156] The device includes:
[0157] A domain selection module 1001, configured to determine at least one target domain for executing a collaborative computing task from the N domains through the domain selector;
[0158] A data sending module 1002 is used to send task data to the terminal device corresponding to the target domain through the configurator;
[0159] A first data aggregation module 1003 is used to obtain, through data aggregation, the intra-domain task execution data corresponding to the target domain according to the terminal-side task execution data returned by the terminal-side device;
[0160] The second data aggregation module 1004 is used to aggregate the intra-domain task execution data corresponding to each target domain through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task.
[0161] Optionally, the domain selection module 1001 is used to:
[0162] According to the task requirements and domain selection conditions of the collaborative computing task, the domain selector determines M target domains for executing the collaborative computing task from the N domains, where M is a positive integer, and the domain selection conditions include at least one of domain classification features and domain task execution quality.
[0163] Optionally, the data sending module 1002 is used to:
[0164] For a single target domain, at least one target end-side device for executing the collaborative computing task is determined from the end-side device set corresponding to the target domain through a device selector corresponding to the target domain; wherein different domains correspond to their own device selectors;
[0165] The task data is sent to at least one of the target end-side devices corresponding to the target domain through the configurator.
[0166] Optionally, the data sending module 1002 is used to:
[0167] In case of receiving a task participation request sent by each end-side device, determining at least one candidate end-side device corresponding to the target domain according to the end-side device set to which the end-side device belongs;
[0168] At least one target end-side device for executing the collaborative computing task is determined from the candidate end-side devices corresponding to the target domain through the device selector corresponding to the target domain.
[0169] Optionally, the data sending module 1002 is used to:
[0170] Determine, according to the task requirements of the collaborative computing task, the number L of devices in the target domain for executing the collaborative computing task, where L is a positive integer;
[0171] Randomly determine L target end-side devices for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain through the device selector corresponding to the target domain; or
[0172] According to the device selection conditions, the device selector corresponding to the target domain determines L target end-side devices for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain, and the device selection conditions include one of the device task execution quality and the switching situation of the domain to which the device belongs.
[0173] Optionally, P rounds of intra-domain collaborative computing tasks are executed in the target domain, where different target domains correspond to their own intra-domain task execution rounds, and P is a positive integer;
[0174] The first data aggregation module 1003 is used to:
[0175] For a task execution round within a single domain, the target domain receives the end-side task execution data returned by each end-side device;
[0176] According to the device weights corresponding to the end-side devices, the intra-domain task execution data corresponding to the current intra-domain task execution round is obtained through data aggregation;
[0177] After executing the P-th round of intra-domain collaborative computing tasks, the P-th round of intra-domain task execution data is determined as the intra-domain task execution data corresponding to the target domain.
[0178] Optionally, the device further comprises:
[0179] A first data updating module is used for, after obtaining the i-th round of intra-domain task execution data, updating data based on the i-th round of intra-domain task execution data to obtain the i+1-th round of task data, where i is a positive integer;
[0180] The data sending module 1002 is further used to send the (i+1) round task data to the terminal side device through the configurator, so that the terminal side device can perform the (i+1) round collaborative computing task.
[0181] Optionally, different domains correspond to respective aggregation buffers and intra-domain aggregators; the first data aggregation module 1003 is used to:
[0182] When receiving the i-th round of end-side task execution data returned by the end-side device, cache the i-th round of end-side task execution data in the aggregation buffer;
[0183] When the i-th round of end-side task execution data is received from each end-side device, the i-th round of intra-domain task execution data is obtained by aggregating data through the intra-domain aggregator according to the device weight corresponding to each end-side device.
[0184] Optionally, the second data aggregation module 1004 is used to:
[0185] When the intra-domain task execution data corresponding to each target domain is obtained, the intra-domain task execution data corresponding to each target domain is aggregated through the global aggregator according to the domain weights corresponding to each target domain to obtain the global task execution data corresponding to the collaborative computing task.
[0186] Optionally, the cloud-side server performs Q rounds of global collaborative computing tasks, where Q is a positive integer; and the device further includes:
[0187] The second data updating module is used to update the data based on the qth round of global task execution data after obtaining the qth round of global task execution data, so as to obtain the q+1th round of task data, and the q+1th round of task data is used to execute the q+1th round of global collaborative computing tasks.
[0188] Optionally, the device further comprises:
[0189] a set determining module, configured to determine the end-side device set to which the end-side device belongs according to domain features corresponding to each of the N domains and device features of the end-side device;
[0190] The set updating module is used to update the end-side device set to which the end-side device belongs when the device characteristics of the end-side device change.
[0191] Optionally, the collaborative computing task is a model training task, and the task data is a model parameter of the task model;
[0192] The first data aggregation module 1003 is used to:
[0193] According to the end-side model update parameters returned by the end-side device, obtaining the in-domain model update parameters corresponding to the target domain through data aggregation;
[0194] The second data aggregation module 1004 is used to:
[0195] The in-domain model update parameters corresponding to each target domain are aggregated through the global aggregator to obtain the global model update parameters corresponding to the model training task.
[0196] Optionally, the device further comprises:
[0197] The model updating module is used to update the task model based on the global model update parameters to obtain an updated task model, and the updated task model is used to execute the next round of model training tasks.
[0198] In summary, in the embodiment of the present application, N domains are divided inside the cloud-side server, each domain is responsible for managing its corresponding end-side device set, and the end-side devices belonging to the same end-side device set are isomorphic. When executing collaborative computing tasks, the cloud-side server uses domains as units, determines at least one target domain for executing collaborative computing tasks through a domain selector, and sends task data to the end-side device corresponding to the target domain through a configurator, and then based on the end-side task execution data returned by the end-side device, first aggregates within the domain to obtain the intra-domain task execution data, and then aggregates between domains to obtain the global task execution data, thereby realizing hierarchical multi-domain end-cloud collaborative computing, which is conducive to concurrent collaborative computing of multiple different domains and improves the task execution quality of collaborative computing tasks.
[0199] It should be noted that: the device provided in the above embodiment is only illustrated by the division of the above functional modules. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiment belong to the same concept, and the implementation process thereof is detailed in the method embodiment, which will not be repeated here.
[0200] It should be noted that before collecting relevant data of users and during the process of collecting relevant data of users, this application can display a prompt interface, pop-up window or output voice prompt information, and the prompt interface, pop-up window or voice prompt information is used to prompt the user that its relevant data is currently being collected, so that this application only starts to execute the relevant steps of obtaining relevant data of users after obtaining the confirmation operation issued by the user to the prompt interface or pop-up window, otherwise (that is, when the confirmation operation issued by the user to the prompt interface or pop-up window is not obtained), the relevant steps of obtaining relevant data of users are terminated, that is, the relevant data of users are not obtained. In other words, all user data collected by this application are collected with the consent and authorization of the user, and the collection, use and processing of relevant user data need to comply with the relevant laws, regulations and standards of relevant countries and regions.
[0201] Fig.11 The block diagram of the structure of a cloud-side server provided by an exemplary embodiment of the present application is shown. The computer device 1100 may include one or more of the following components: a processor 1110 and a memory 1120 .
[0202] The processor 1110 may include one or more processing cores. The processor 1110 uses various interfaces and lines to connect the various parts of the entire computer device 1100, and executes various functions and processes data of the computer device 1100 by running or executing instructions, programs, code sets or instruction sets stored in the memory 1120, and calling data stored in the memory 1120. Optionally, the processor 1110 can be implemented in at least one hardware form of digital signal processing (DSP), field-programmable gate array (FPGA), and programmable logic array (PLA). The processor 1110 can integrate one or more combinations of a central processing unit (CPU), a graphics processing unit (GPU), a neural network processor (NPU), and a modem. Among them, the CPU mainly processes the operating system, user interface, and application programs; the GPU is responsible for rendering and drawing the content to be displayed on the touch display; the NPU is used to implement artificial intelligence (AI) functions; and the modem is used to process wireless communications. It is understandable that the above-mentioned modem may not be integrated into the processor 1110, but may be implemented by a separate chip.
[0203] The memory 1120 may include a random access memory (RAM) or a read-only memory (ROM). Optionally, the memory 1120 includes a non-transitory computer-readable storage medium. The memory 1120 may be used to store instructions, programs, codes, code sets, or instruction sets. The memory 1120 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function, instructions for implementing the above-mentioned various method embodiments, etc.; the data storage area may store data created according to the use of the computer device 1100, etc.
[0204] In addition, those skilled in the art can understand that the structure of the computer device 1100 shown in the above figures does not constitute a limitation on the terminal, and the terminal may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently. For example, the computer device 1100 also includes a display screen, a camera assembly, a microphone, a speaker, a radio frequency circuit, a sensor, an audio circuit, a WiFi module, a power supply, a Bluetooth module and other components, which will not be described in detail here.
[0205] An embodiment of the present application also provides a computer-readable storage medium, which stores at least one computer instruction, and the at least one computer instruction is loaded and executed by a processor to implement the data processing method described in the above embodiments.
[0206] The embodiment of the present application also provides a computer program product, which includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the cloud-side server reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the cloud-side server executes the data processing method provided in various optional implementations of the above aspects.
[0207] Those skilled in the art should be aware that in one or more of the above examples, the functions described in the embodiments of the present application can be implemented with hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable storage medium or transmitted as one or more instructions or codes on a computer-readable storage medium. Computer-readable storage media include computer storage media and communication media, wherein the communication media include any media that facilitates the transmission of a computer program from one place to another. The storage medium can be any available medium that a general or special-purpose computer can access.
[0208] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A data processing method, characterized in that: The method is used for a cloud-side server, the cloud-side server includes a configurator, a domain selector, a global aggregator, and N domains, where N is a positive integer; wherein different domains are used to manage different sets of end-side devices, and the end-side devices belonging to the same set of end-side devices are isomorphic; The method comprises: Determining at least one target domain for executing the collaborative computing task from the N domains by the domain selector; Sending task data to the terminal device corresponding to the target domain through the configurator; According to the terminal-side task execution data returned by the terminal-side device, obtaining the intra-domain task execution data corresponding to the target domain through data aggregation; The intra-domain task execution data corresponding to each target domain is aggregated through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task.
2. The method according to claim 1, characterized in that: The determining, by the domain selector, at least one target domain for executing the collaborative computing task from the N domains includes: According to the task requirements and domain selection conditions of the collaborative computing task, the domain selector determines M target domains for executing the collaborative computing task from the N domains, where M is a positive integer, and the domain selection conditions include at least one of domain classification features and domain task execution quality.
3. The method according to claim 1, characterized in that The sending the task data to the terminal device corresponding to the target domain through the configurator includes: For a single target domain, at least one target end-side device for executing the collaborative computing task is determined from the end-side device set corresponding to the target domain through a device selector corresponding to the target domain; wherein different domains correspond to their own device selectors; The task data is sent to at least one of the target end-side devices corresponding to the target domain through the configurator.
4. The method according to claim 3, characterized in that The determining, by means of a device selector corresponding to the target domain, at least one target end-side device for executing the collaborative computing task from the end-side device set corresponding to the target domain comprises: In case of receiving a task participation request sent by each end-side device, determining at least one candidate end-side device corresponding to the target domain according to the end-side device set to which the end-side device belongs; At least one target end-side device for executing the collaborative computing task is determined from the candidate end-side devices corresponding to the target domain through the device selector corresponding to the target domain.
5. The method according to claim 4, characterized in that The determining, by the device selector corresponding to the target domain, at least one target end-side device for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain comprises: Determine, according to the task requirements of the collaborative computing task, the number L of devices in the target domain for executing the collaborative computing task, where L is a positive integer; Randomly determine L target end-side devices for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain through the device selector corresponding to the target domain; or According to the device selection conditions, the device selector corresponding to the target domain determines L target end-side devices for executing the collaborative computing task from the candidate end-side devices corresponding to the target domain, and the device selection conditions include one of the device task execution quality and the switching situation of the domain to which the device belongs.
6. The method according to claim 1, characterized in that The target domain executes P rounds of intra-domain collaborative computing tasks, where different target domains correspond to their own intra-domain task execution rounds, and P is a positive integer; The obtaining, by data aggregation according to the terminal-side task execution data returned by the terminal-side device, the intra-domain task execution data corresponding to the target domain includes: For a task execution round within a single domain, the target domain receives the end-side task execution data returned by each end-side device; According to the device weights corresponding to the end-side devices, the intra-domain task execution data corresponding to the current intra-domain task execution round is obtained through data aggregation; After executing the P-th round of intra-domain collaborative computing tasks, the P-th round of intra-domain task execution data is determined as the intra-domain task execution data corresponding to the target domain.
7. The method according to claim 6, characterized in that The method further comprises: After obtaining the i-th round of in-domain task execution data, update the data based on the i-th round of in-domain task execution data to obtain the i+1-th round of task data, where i is a positive integer; The (i+1) round of task data is sent to the terminal device through the configurator, so that the terminal device can perform the (i+1) round of collaborative computing tasks.
8. The method according to claim 7, characterized in that Different domains correspond to their own aggregation buffers and intra-domain aggregators; The target domain receives the terminal-side task execution data returned by each terminal-side device, including: When receiving the i-th round of end-side task execution data returned by the end-side device, cache the i-th round of end-side task execution data in the aggregation buffer; The aggregating data to obtain the intra-domain task execution data corresponding to the current intra-domain task execution round according to the device weight corresponding to each terminal-side device includes: When the i-th round of end-side task execution data is received from each end-side device, the i-th round of intra-domain task execution data is obtained by aggregating data through the intra-domain aggregator according to the device weight corresponding to each end-side device.
9. The method according to claim 1, characterized in that: The step of aggregating the intra-domain task execution data corresponding to each target domain through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task includes: When the intra-domain task execution data corresponding to each target domain is obtained, the intra-domain task execution data corresponding to each target domain is aggregated through the global aggregator according to the domain weights corresponding to each target domain to obtain the global task execution data corresponding to the collaborative computing task.
10. The method according to any one of claims 1 to 9, characterized in that: The cloud-side server performs Q rounds of global collaborative computing tasks, where Q is a positive integer; the method further includes: After obtaining the qth round of global task execution data, data is updated based on the qth round of global task execution data to obtain the q+1th round of task data, and the q+1th round of task data is used to execute the q+1th round of global collaborative computing tasks.
11. The method according to claim 1, characterized in that: The method further comprises: Determine, according to domain features corresponding to each of the N domains and device features of the terminal-side device, the terminal-side device set to which the terminal-side device belongs; When the device characteristics of the end-side device are changed, the end-side device set to which the end-side device belongs is updated.
12. The method according to any one of claims 1 to 11, characterized in that: The collaborative computing task is a model training task, and the task data is a model parameter of the task model; The obtaining, by data aggregation according to the terminal-side task execution data returned by the terminal-side device, the intra-domain task execution data corresponding to the target domain includes: According to the end-side model update parameters returned by the end-side device, obtaining the in-domain model update parameters corresponding to the target domain through data aggregation; The step of aggregating the intra-domain task execution data corresponding to each target domain through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task includes: The in-domain model update parameters corresponding to each target domain are aggregated through the global aggregator to obtain the global model update parameters corresponding to the model training task.
13. The method according to claim 12, characterized in that The method further comprises: The task model is updated based on the global model update parameters to obtain an updated task model, and the updated task model is used to execute the next round of model training tasks.
14. A data processing device, characterized in that: The device is used for a cloud-side server, and the cloud-side server includes a configurator, a domain selector, a global aggregator, and N domains, where N is a positive integer; wherein different domains are used to manage different sets of end-side devices, and the end-side devices belonging to the same set of end-side devices are isomorphic; The device comprises: A domain selection module, configured to determine at least one target domain for executing the collaborative computing task from the N domains through the domain selector; A data sending module, used for sending task data to the terminal device corresponding to the target domain through the configurator; A first data aggregation module, configured to obtain, by data aggregation, the intra-domain task execution data corresponding to the target domain according to the terminal-side task execution data returned by the terminal-side device; The second data aggregation module is used to aggregate the intra-domain task execution data corresponding to each target domain through the global aggregator to obtain the global task execution data corresponding to the collaborative computing task.
15. A cloud-side server, characterized in that: The cloud-side server includes a processor and a memory; the memory stores at least one computer instruction, and the at least one computer instruction is used to be executed by the processor to implement the data processing method as described in any one of claims 1 to 13.
16. A computer-readable storage medium, characterized in that: The storage medium stores at least one computer instruction, and the at least one computer instruction is used to be executed by a processor to implement the data processing method according to any one of claims 1 to 13.
17. A computer program product, characterized in that The computer program product includes computer instructions, which are stored in a computer-readable storage medium; the processor of the cloud-side server reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the cloud-side server implements the data processing method as described in any one of claims 1 to 13.