CN115860132A - 联合学习加速器和相关方法 - Google Patents
联合学习加速器和相关方法 Download PDFInfo
- Publication number
- CN115860132A CN115860132A CN202211017971.8A CN202211017971A CN115860132A CN 115860132 A CN115860132 A CN 115860132A CN 202211017971 A CN202211017971 A CN 202211017971A CN 115860132 A CN115860132 A CN 115860132A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- circuit
- model
- training
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
公开了联合学习加速器和相关方法。示例边缘设备包括:神经网络训练器电路,用于使用本地数据训练神经网络以生成针对机器学习模型的模型更新;联合学习加速器,用于执行与训练相关联的一个或多个联合学习工作负载;以及模型更新提供器电路,用于将模型更新传送到聚合器设备。
Description
技术领域
本公开总体上关于机器学习,并且更具体地关于联合学习(federated learning)加速器和相关方法。
背景技术
联合学习是在其中机器学习模型由边缘设备和/或边缘服务器使用在相应的设备和/或服务器处可用的本地数据以去集中化方式被训练的人工智能(artificialintelligence,AI)训练过程。来自各个设备和/或服务器的训练结果被聚合以更新机器训练模型,同时维持与设备和/或服务器中的每一个相关联的本地数据的隐私。
附图说明
图1是根据本公开的教导而构建的、用于使用联合学习来提供神经网络的训练的第一示例系统的框图。
图2是根据本公开的教导而构建的、用于使用联合学习来提供神经网络的训练的第二示例系统的框图。
图3是可与图1的第一系统和/或图2的第二系统一起使用的聚合器设备的示例实现方式的框图,该聚合器设备包括一个或多个联合学习(federated learning,FL)加速器并包括FL加速器管理电路。
图4是可与图1的第一系统和/或图2的第二系统一起使用的训练设备的示例实现方式的框图,该训练设备包括一个或多个联合学习加速器并包括FL加速器管理电路。
图5是图3和/或图4的FL加速器管理电路的示例实现方式的框图。
图6是表示在图3的示例聚合器设备和/或图4的示例训练设备处执行的操作的通信流程图。
图7是表示示例机器可读指令的流程图,该示例机器可读指令可由示例处理器电路执行以实现图3、图4和/或图5的示例FL加速器管理电路。
图8是构造成用于实现图3的示例聚合器设备的示例处理平台的框图。
图9是构造成用于实现图4的示例训练设备的示例处理平台的框图。
图10是图8和/或图9的处理器电路的示例实现方式的框图。
图11是图8和/或图9的处理器电路的另一示例实现方式的框图。
图12是示例软件分发平台(例如,一个或多个服务器)的框图,该示例软件分发平台用于将软件(例如,与图7的示例机器可读指令相对应的软件)分发给与终端用户和/或消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、转售、许可和/或分许可)、和/或原始装备制造商(original equipment manufacturer,OEM)(例如,包括在要分发给例如零售商和/或诸如直接购买客户之类的其他终端用户的产品中)相关联的客户端设备。
附图并未按比例绘制。一般来说,贯穿(一个或多个)附图和所附书面说明书,相同的附图标记将用于指代相同或类似的部分。
除非另有特别说明,否则诸如“第一”、“第二”、“第三”等的描述符在本文中使用而不以任何方式强加或以其他方式指示优先级、物理顺序、列表中的布置和/或排序的任何含义,但仅用作标签和/或任意名称来区分要素以便于理解所公开的示例。在一些示例中,描述符“第一”可以用于指代具体实施方式中的要素,而在权利要求中可以使用诸如“第二”或“第三”之类的不同描述符来指代同一要素。在此类实例中,应当理解,此类描述符仅用于清楚地标识那些可能例如以其他方式共享相同名称的要素。
如本文所使用,短语“在通信中”(包括其变体)包含直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接的物理(例如,有线)通信和/或持续通信,而是附加地包括以周期性间隔、预定间隔、非周期性间隔、和/或一次性事件来进行的选择性通信。
如本文中所使用,“处理器电路”定义为包括(i)一个或多个专用电路,其构造成用于执行(一个或多个)特定操作并包括一个或多个基于半导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件),和/或(ii)一个或多个基于半导体的通用电路,其用指令编程以执行特定操作并且包括一个或多个基于半导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件)。处理器电路的示例包括经编程的微处理器、可实例化指令的现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器单元(Central ProcessorUnit,CPU)、图形处理器单元(Graphics Processor Unit,GPU)、数字信号处理器(DigitalSignal Processor,DSP)、XPU或微控制器以及诸如专用集成电路(Application SpecificIntegrated Circuit,ASIC)之类的集成电路。例如,XPU可以由异构计算系统实现,该异构计算系统包括多种类型的处理器电路(例如,一个或多个FPGA、一个或多个CPU、一个或多个GPU、一个或多个DSP等,和/或其组合)和可将(一个或多个)计算任务分配给多个类型的处理电路中最适合执行(一个或多个)计算任务的无论哪个(些)处理电路的(一个或多个)应用编程接口(application programming interface,API)。
具体实施方式
机器学习工作负载(诸如,使用(一个或多个)数据集训练机器学习模型)是计算密集型和资源密集型任务。机器学习加速器(例如,人工智能(AI)加速器)是用于加速机器学习工作负载的硬件。
联合学习使表示神经网络的模型能够使用与相应的边缘系统相关联的本地数据且在无需在系统之间共享数据和/或以其他方式集中数据的情况下跨边缘系统被训练。例如,机器学习模型可从中央源(例如,云服务器)被分发到边缘设备。边缘设备在本地(例如,使用与边缘设备相关联的本地数据)执行模型的训练,并且将训练的结果提供给中央源以进行聚合,更新模型,等等。
联合学习的分布式性质引入了在集中式机器学习环境或在其中机器学习模型使用存储在中央位置(诸如,云)处的数据被训练的环境中原本不会发生的挑战。例如,边缘系统经常是具有各种计算资源和存储器资源的异构系统。进一步地,异构性可存在于与相应边缘系统相关联的数据之间,该数据被用于关于数据格式、数据类型、数据稀疏度、数据量(volume of data)等来训练模型。例如,在保健数据的情境中,在病历、X射线影像等之间存在不同的数据格式。进一步地,系统中的一些边缘设备可具有可用于训练的若干年的本地数据(例如,十年的数据),而系统中的其他边缘设备可具有更少的数据量(例如,两年的数据)。此外,联合学习引入了与集中式学习相关联的操作不同的操作。例如,出于隐私目的(例如,诸如保健数据的情境中的病历),边缘设备在使用本地数据来训练模型之前可对该数据加密或创建该数据的嵌入。另外,在训练完成之后,边缘设备将对模型的更新和/或其他训练结果广播或传送到中央源。
本文中公开的示例系统、装置和方法经由(一个或多个)联合学习(FL)加速器促进(一个或多个)联合学习操作的执行。在本文中公开的示例中,(一个或多个)FL加速器执行与机器学习模型的分布式训练相关联的一个或多个操作或工作负载,由此从边缘系统或云系统中的计算设备的通用计算资源迁移对此类操作的执行。在本文中公开的一些示例中,在边缘系统中的训练设备(例如,边缘设备)处实现(一个或多个)FL加速器,以促进执行与在各个设备处的训练相关联的操作。例如,可由训练设备的(一个或多个)FL加速器执行操作,诸如,对要在训练中使用的本地数据的数据预处理和/或加密、和/或传送作为利用本地数据进行训练的结果而生成的模型更新。在本文中公开的一些示例中,在边缘系统或云系统中的(一个或多个)聚合器设备(例如,边缘服务器)处实现FL加速器,以促进来自训练设备的模型更新的聚合以及使用经聚合的参数对机器学习模型的更新。
本文中公开的示例解决关于例如计算资源和存储器资源、数据类型和数据格式的、在联合学习环境(例如,边缘系统)中的设备和训练数据之间的异构性。作为将某些工作负载迁移到FL加速器的结果,关于机器学习训练的重复的计算模式被执行的速度可被增加,由此相对于性能和功耗提供改善的效率。另外,作为使用FL加速器来执行某些工作负载的结果,原本会用于执行分布式训练工作负载的通用设备计算资源(例如,中央处理资源)可用于执行其他任务。因此,本文中公开的示例防止或显著地降低对边缘系统中的一个或多个设备的性能的负面影响,这些负面影响原本在通用计算资源被用于训练的情况下可能发生。进一步地,本文中公开的示例FL加速器可解决关于与用于训练模型的每个训练设备相关联的本地数据的异构性。本文中公开的示例FL加速器可基于数据格式、数据稀疏度、数据类型等提供对用于训练的数据的定制化处理。本文中公开的示例还通过将此类操作迁移到(一个或多个)FL加速器改善了关于模型更新的聚合的效率。
本文中公开的示例FL加速器可包括在设备的中央处理单元(CPU)外部的硬件(例如,FPGA)。附加地或替代地,本文中公开的示例FL加速器可以是基于CPU的加速器,这些基于CPU的加速器在执行FL操作时增加CPU的性能。本文中公开的示例FL加速器的(一个或多个)位置可基于诸如功率、成本、等待时间、数据隐私等的考虑。示例FL加速器可实现在各种边缘环境(例如,保健系统、自主交通工具系统)中,以提高分布式机器学习训练中的效率。
图1是根据本公开的教导而构建的、用于使用联合学习来提供神经网络的训练的第一示例系统100的框图。示例系统100包括云服务器102,该云服务器102与第一边缘服务器104、第二边缘服务器106和第N边缘服务器108通信。
在图1中的示例中,第一边缘服务器104与第一边缘设备110通信,第二边缘服务器106与第二边缘设备112通信,并且第N边缘服务器108与第N边缘设备114通信。(一个或多个)边缘设备110、112、114可由计算平台实现,该计算平台诸如,物联网(Internet ofThings,IoT)设备(例如,IoT传感器)、智能电话、个人计算机等。第一边缘设备110可包括一个或多个边缘设备。类似地,第二边缘设备112和第N边缘设备114各自可由一个或多个边缘设备实现。在一些示例中,(一个或多个)边缘设备110、112、114可包括例如IoT系统中的数百个、数千个、数百万个等的边缘设备。可由任何类型的实体利用示例边缘设备110、112、114,该实体诸如例如公司机构、保健提供方、政府、最终用户、自主交通工具提供方等。在图1的示例中,边缘设备110、112、114收集数据(例如,传感器数据)。在一些示例中,边缘设备110、112、114将原始数据传送到处理(例如,过滤)数据的对应的边缘服务器104、106、108。在其他示例中,边缘设备110、112、114将经处理的(例如,经过滤的)数据传送到对应的边缘服务器104、106、108。
在图1的示例系统100中,云服务器102将机器学习(machine learning,ML)模型116分发到边缘服务器104、106、108中的每一个。由边缘设备110、112、114收集的数据被对应的边缘服务器104、106、108用于训练机器学习模型116。例如,第一边缘服务器104使用由第一边缘设备110生成的数据(但不使用由第二边缘设备112或第N边缘设备114生成的数据)来训练模型116。例如,第二边缘服务器106使用由第二边缘设备112生成的数据(但不使用由第一边缘设备110或第N边缘设备114生成的数据)来训练模型116。边缘服务器104、106、108将作为训练的结果而被生成的模型更新传送到云服务器102。云服务器102聚合由边缘服务器104、106、108提供的模型更新。在图1的示例中,云服务器102充当聚合来自(一个或多个)边缘服务器104、106、108的训练结果的聚合器设备。因此,图1的示例系统100提供联合的或分布式的学习环境,在其中,模型116的训练使用与相应的边缘设备110、112、114相关联的本地数据来执行,并且对应的训练结果由云服务器102聚合。
在图1的示例中,边缘服务器104、106、108中的每一个包括联合学习(FL)加速器118(例如,第一FL加速器)。在一些示例中,边缘服务器104、106、108包括两个或更多个FL加速器118。FL加速器118表示用于执行结合模型116的训练的工作负载的硬件和/或软件。具体而言,FL加速器118用于加速与联合学习相关联的工作负载或操作。如本文中所公开,在一些示例中,边缘服务器104、106、108可包括用于加速结合模型116的训练的(其他)操作或工作负载的其他加速器,诸如,人工智能(AI)加速器。
例如,第一边缘服务器104的FL加速器118可加速诸如针对由第一边缘服务器104执行的数据加密或数据嵌入的操作之类的分布式操作。第一边缘服务器104的FL加速器118可加速其他FL操作,诸如,在模型训练之前过滤数据,将作为在第一边缘服务器104上的训练的结果而被生成的模型更新广播到云服务器102等。在一些示例中,由(一个或多个)FL加速器118执行的操作基于FL加速器118要被实现所按照的特定的边缘服务器104、106、108的属性(例如,处理资源)和/或基于由对应的边缘设备110、112、114提供的数据(例如,原始数据、经过滤的数据)的属性来定制。
图1的(一个或多个)示例FL加速器可包括(一个或多个)基于FPGA的加速器。在一些示例中,(一个或多个)FL加速器118是(一个或多个)基于CPU的加速器。在其他示例中,(一个或多个)FL加速器118是(一个或多个)组合式基于CPU和FPGA的加速器。在一些示例中,(一个或多个)FL加速器118是专业硬件。(一个或多个)示例FL加速器118可由任何其他过去的、现在的和/或未来的加速器(诸如例如,数字信号处理器(基于DSP的体系结构))实现。
在图1的示例中,云服务器102包括FL加速器120(例如,第二FL加速器)。与云服务器102相关联的FL加速器120加速在云服务器102处执行的联合学习操作,例如,以聚合从边缘服务器104、106、108接收的模型更新。图1的FL加速器120可包括(一个或多个)基于FPGA的加速器、(一个或多个)基于CPU的加速器、(一个或多个)组合式基于CPU和FPGA的加速器、专业硬件和/或软件等。(一个或多个)示例FL加速器120可由任何其他过去的、现在的和/或未来的加速器实现。
虽然在图1的示例中边缘服务器104、106、108被示出为各自包括FL加速器118,但是在一些示例中,仅边缘服务器104、106、108中的一些边缘服务器包括FL加速器。另外,虽然在图1的示例系统100中(一个或多个)边缘服务器104、106、108包括(一个或多个)FL加速器118并且云服务器102包括FL加速器120,但是在其他示例中,仅(一个或多个)边缘服务器104、106、108包括(一个或多个)FL加速器118;替代地,在一些示例中,仅云服务器102包括FL加速器120。
图2是根据本公开的教导而构建的、用于使用联合学习来提供神经网络的训练的第二示例系统200的框图。示例系统200包括第一边缘服务器204、第二边缘服务器206和第N边缘服务器208。
在图2中的示例中,第一边缘服务器204与第一边缘设备210通信,第二边缘服务器206与第二边缘设备212通信,并且第N边缘服务器208与第N边缘设备214通信。图2的边缘设备210、212、214可由如结合图1的示例边缘设备110、112、114公开的计算平台来实现,该计算平台诸如,物联网(IoT)设备(例如,IoT传感器)、智能电话、个人计算机等。边缘设备210、212、214可分别包括一个或多个单独的边缘设备。例如,第一边缘设备210可被实现为包括数千个设备、数百万个设备等的IoT设备。图2的边缘设备210、212、214收集数据(例如,传感器数据)。
在图2的示例系统200中,边缘服务器204、206、208将机器学习(ML)模型216分发到对应的边缘设备210、212、214,以用于在边缘设备210、212、214处训练ML模型216。例如,第一边缘服务器204将ML模型216分发到第一边缘设备210。第一边缘设备210使用由该第一边缘设备210收集的数据来训练ML模型216(例如,其中该第一边缘设备210可包括例如训练该模型的数百个、数千个、数百万个等边缘设备)。第一边缘设备210将作为训练的结果的(一个或多个)模型更新传送到第一边缘服务器204(例如,其中该第一边缘设备210可包括例如提供(一个或多个)模型更新的数百个、数千个、数百万个等边缘设备)。类似地,第二边缘服务器206将ML模型216分发到第二边缘设备212。第二边缘设备212使用由该第二边缘设备212收集的数据来训练ML模型216。第二边缘设备212将作为训练的结果的(一个或多个)模型更新传送到第二边缘服务器206。类似地,第N边缘设备214使用本地数据来训练ML模型216,并将(一个或多个)模型更新传送到第N边缘服务器208。在图2的示例中,边缘服务器204、206、208中的每一个充当聚合器设备,用于聚合来自对应的边缘设备210、212、214的训练结果。例如,第一边缘服务器204可聚合由限定第一边缘设备210的两个或更多个边缘设备生成的模型更新。因此,与在其中机器学习发生在(一个或多个)边缘服务器104、106、108处且聚合发生在云102中的图1的示例系统100相比,在图2的示例中,训练发生在边缘设备210、212、214(例如,IoT设备)处,并且模型更新的聚合发生在(一个或多个)边缘服务器204、206、208处。
在图2的示例中,联合学习加速器(例如,硬件和/或软件)可用于加速由相应的边缘服务器204、206、208和/或相应的边缘设备210、212、214执行的(一个或多个)操作。例如,第一边缘设备210可包括(例如,第一)FL加速器218,用于加速结合ML模型216的训练的、由第一边缘设备210执行的(一个或多个)联合学习操作或工作负载。FL加速器218可加速操作,这些操作包括但不限于例如对用于训练的本地数据的数据预处理和/或加密。第二边缘设备212和/或第N边缘设备214中的任一者可附加地或替代地包括FL加速器218。在图2的示例中,边缘服务器204、206、208中的一个或多个可包括(例如,第二)FL加速器220(例如,硬件和/或软件),用于加速关于例如从对应的边缘设备210、212、214接收的(一个或多个)模型更新的聚合的、由边缘服务器204、206、208执行的(一个或多个)联合学习操作。
图3是聚合器设备300的示例实现方式的框图。在一些示例中,图3的示例聚合器设备300由云服务器实现,该云服务器诸如图1的示例系统100的云服务器102。在其他示例中,聚合器设备300由边缘服务器实现,该边缘服务器诸如图2的示例系统200的(一个或多个)边缘服务器204、206、208。在图3的示例中,聚合器设备300与训练设备通信。在其中聚合器设备300由图1的云服务器102实现的示例中,训练设备可包括图1的示例系统100的边缘服务器104、106、108。在其中聚合器设备300由图2的云(一个或多个)边缘服务器204、206、208实现的示例中,训练设备可包括图2的示例系统200的对应的边缘设备210、212、214。
图3的示例聚合器设备300包括模型提供器电路302、模型更新接收器电路304、联合学习(FL)加速器管理电路306、机器学习(ML)工作负载数据存储307、一个或多个FL加速器308(例如,图1的云服务器102的FL加速器120、图2的(一个或多个)边缘服务器204、206、208的(一个或多个)FL加速器)、模型更新聚合器电路310、模型更新电路312、以及中央模型数据存储314。
图3的示例模型提供器电路302由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件(programmable logic device(s),(一个或多个)PLD)、(一个或多个)现场可编程逻辑器件(field programmable logic device(s),(一个或多个)FPLD)、(一个或多个)数字信号处理器((一个或多个)DSP)等。示例模型提供器电路302将机器学习模型(例如,图1的ML模型116、图2的ML模型216)提供给与聚合器设备300通信的每个训练设备。因此,模型提供器电路302实现用于提供机器学习模型的装置(模型提供装置)。具体而言,模型提供器电路302(例如,基于从(一个或多个)训练设备接收的任何先前的训练结果)将ML模型的当前状态提供给每个训练设备。在一些示例中,模型提供器电路302提供关于ML模型的指令,诸如例如,要由训练设备在训练ML模型时使用的阈值。
示例模型更新接收器电路304由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)、(一个或多个)数字信号处理器((一个或多个)DSP)等。示例模型更新接收器电路304从(一个或多个)训练设备(例如,图1的示例中的边缘服务器104、106、108;图2的边缘设备210、212、214)接收模型更新。因此,模型更新接收器电路304实现用于接收模型更新的装置(模型更新接收装置)。
FL加速器管理电路306由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)、(一个或多个)数字信号处理器((一个或多个)DSP)等。示例FL加速器管理电路306指令(一个或多个)FL加速器308执行结合例如由模型更新接收器电路304接收的(一个或多个)模型更新的聚合的一个或多个FL操作或工作负载。因此,FL加速器管理电路306实现用于管理加速器的装置(加速器管理装置)。结合图5公开FL加速器管理电路306的示例实现方式。
在图3的示例中,FL加速器管理器电路306基于在ML工作负载数据存储307中定义的(一个或多个)规则生成用于(一个或多个)FL加速器308的指令。图3的示例ML工作负载数据存储307由用于存储数据的任何存储器、存储设备和/或存储盘(诸如例如,闪存、磁介质、光学介质等)实现。此外,存储在示例ML工作负载数据存储307中的数据可以按照任何数据格式,诸如例如,二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(structured query language,SQL)结构等。虽然在图3的所图示的示例中,ML工作负载数据存储307被图示为单个元件,但本文中描述的示例ML工作负载数据存储307和/或任何其他数据存储元件可以由任何数量和/或(一个或多个)类型的存储器实现。
图3的(一个或多个)FL加速器308可包括例如(一个或多个)基于FPGA的加速器。在一些示例中,(一个或多个)FL加速器308包括(一个或多个)基于CPU的加速器。在一些示例中,(一个或多个)FL加速器308包括(一个或多个)组合式CPU和FPGA加速器。在一些示例中,(一个或多个)FL加速器308包括相结合地被使用的(一个或多个)基于FPGA的加速器和(一个或多个)基于CPU的加速器。附加地或替代地,(一个或多个)FL加速器308可以是专业硬件。(一个或多个)FL加速器308可包括任何其他过去、现在和/或未来类型的加速器。例如,(一个或多个)FL加速器308可由基于图形处理器单元的(graphics processing unit-based,GPU based)或基于数字信号处理器的(digital signal processor-based,DSPbased)体系结构来实现。(一个或多个)FL加速器308实现用于加速联合学习工作负载或操作的装置(加速装置)。
在图3的示例中,(一个或多个)FL加速器308包括模型更新聚合器电路310。模型更新聚合器电路310聚合由训练设备提供的(一个或多个)模型更新。因此,模型更新聚合器电路310实现用于聚合模型更新的装置(模型更新聚合器装置)。在一些示例中,模型更新聚合器电路310在模型更新由模型更新接收器电路304接收时聚合模型更新。在其他示例中,模型更新聚合器电路310应用一个或多个规则以例如防止训练设备中的一个训练设备对ML模型具有不当的影响,这一个或多个规则定义用于模型更新的聚合的参数。因此,在图3的示例中,(一个或多个)模型更新的聚合由(一个或多个)FL聚合器308执行,由此从与聚合器设备300相关联的(一个或多个)通用计算资源(例如,CPU)迁移(一个或多个)聚合工作负载。图3的(一个或多个)FL加速器308可包括用于在聚合器设备300处执行联合学习操作的其他电路。
图3的示例模型更新器电路312由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)、(一个或多个)数字信号处理器((一个或多个)DSP)等。示例模型更新器电路312基于从训练设备接收的以及由模型更新聚合器电路310聚合的(一个或多个)模型更新来更新存储在中央模型数据存储314中的ML模型(例如,图1的ML模型116、图2的ML模型216)。因此,模型更新器电路312实现用于更新机器学习模型的装置(模型更新装置)。
图3的示例中央模型数据存储314由用于存储数据的任何存储器、存储设备和/或存储盘(诸如例如,闪存、磁介质、光学介质等)实现。此外,存储在示例中央模型数据存储314中的数据可按照任何数据格式,诸如例如,二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(SQL)结构等。虽然在图3的所图示的示例中,中央模型数据存储314被图示为单个元件,但本文中描述的示例中央模型数据存储314和/或任何其他数据存储元件可以由任何数量和/或(一个或多个)类型的存储器实现。在图3的所图示的示例中,中央模型数据存储314存储由模型更新器电路312基于从训练设备接收的模型更新而更新的中央ML模型。由中央模型数据存储314(例如,包括模型更新的ML模型的当前状态)存储的中央ML模型由模型提供器电路302结合例如在训练设备处的另一训练轮次传送到训练设备。
虽然在图3的示例中(一个或多个)FL加速器308被示出为包括模型聚合器电路310,但是(一个或多个)FL加速器308可执行结合从训练设备接收的(一个或多个)模型更新的其他(一个或多个)FL操作或工作负载。例如,在一些示例中,(一个或多个)FL加速器308可包括更新存储在中央模型数据存储中的ML模型的模型更新电路312。因此,(一个或多个)FL加速器308可迁移与从训练设备接收的(一个或多个)模型更新相关联的一个或多个工作负载。
图4是训练设备400的示例实现方式的框图。在一些示例中,图4的示例训练设备400由边缘服务器实现,该边缘服务器诸如图1的边缘服务器104、106、108。在其他示例中,训练设备400由边缘设备实现,该边缘设备诸如图2的示例边缘设备210、212、214。
图4的示例训练设备400包括模型接收器电路402、本地模型数据存储404、神经网络处理器电路406、一个或多个人工智能(AI)加速器408、神经网络训练器电路410、本地数据访问器电路412、数据提供器414、FL加速器管理电路306、ML工作负载数据存储418、以及一个或多个FL加速器402(例如,图1的(一个或多个)边缘服务器104、106、108的(一个或多个)FL加速器118;图2的(一个或多个)边缘设备210、212、214的(一个或多个)FL加速器218)。在图4的示例中,FL加速器420包括模型更新提供器电路422、数据加密器电路424、预过滤器电路426、后过滤器电路428、和/或其他类型的FL操作器电路430。
图4的示例训练设备的模型接收器电路402由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)、(一个或多个)数字信号处理器((一个或多个)DSP)等。示例模型接收器电路402接收ML模型(例如,存储在图3的聚合器设备300的中央模型数据存储314中的中央模型,诸如,图1的ML模型116或图2的ML模型216)的当前状态。因此,模型接收器电路402实现用于接收模型的装置(模型接收装置)。在一些示例中,模型接收器电路402从图3的聚合器设备300(例如,从聚合器设备300的模型提供器电路302)接收关于模型和/或其训练的指令,诸如,要由训练设备400在训练模型时使用的阈值。在图4的示例中,模型接收器电路402将从聚合器设备300接收的ML模型存储在本地模型数据存储404中。
图4的示例本地模型数据存储404由用于存储数据的任何存储器、存储设备和/或存储盘(诸如例如,闪存、磁介质、光学介质等)实现。此外,存储在本地模型数据存储404中的数据可以是任何数据格式,诸如例如二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(SQL)结构等。虽然在所图示的示例中,本地模型数据存储404被图示为单个元件,但本文中描述的示例本地模型数据存储404和/或任何其他数据存储元件可以由任何数量和/或(一个或多个)类型的存储器实现。在图4的示例中,本地模型数据存储404存储从模型接收器电路402接收的和/或由神经网络训练器电路410更新(例如,训练)的本地模型信息。
图4的示例神经网络处理器电路406由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)ASIC、(一个或多个)PLD、(一个或多个)FPLD、(一个或多个)DSP等。示例神经网络处理器电路406实现神经网络。因此,神经网络处理器电路406实现用于实现神经网络的装置(神经网络实现装置)。例如,神经网络处理器电路406可实现深度神经网络(deep neural network,DNN)。然而,可以附加地或替代地使用任何其他过去的、现在的和/或未来的(一个或多个)神经网络拓扑和/或体系结构,诸如例如卷积神经网络(convolutional neural network,CNN)、或前馈神经网络。
在图4的示例中,训练设备包括用于加速神经网络的训练的(一个或多个)AI加速器408。因此,(一个或多个)AI加速器408实现用于加速训练的装置(训练加速装置)。在该示例中,(一个或多个)AI加速器408包括神经网络训练器电路410。(一个或多个)AI加速器408可包括(一个或多个)基于FPGA的加速器、(一个或多个)基于CPU的加速器、和/或其组合。(一个或多个)AI加速器408可包括任何其他过去、现在和/或未来类型的加速器。在其他示例中,训练设备400不包括(一个或多个)AI加速器408。在此类示例中,神经网络训练器电路410可由逻辑电路实现,该逻辑电路诸如例如硬件处理器和/或其他电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)ASIC、(一个或多个)PLD、(一个或多个)FPLD、(一个或多个)DSP等。
示例神经网络训练器电路410执行由神经网络处理器电路406实现的神经网络的训练。因此,神经网络训练器电路410实现用于训练神经网络的装置(神经网络训练装置)。例如,神经网络训练器电路410可使用随机梯度下降法来训练神经网络。然而,可附加地或替代地使用用于训练神经网络的任何其他方式。因此,在图4的示例中,神经网络的训练由(一个或多个)专业AI加速器408执行,由此从训练设备的(一个或多个)通用计算资源迁移训练。然而,在其他示例中,训练设备400不包括(一个或多个)AI加速器408。在此类示例中,神经网络训练器电路410可由例如训练设备400的中央处理单元(CPU)实现。
示例本地数据访问器电路412由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)ASIC、(一个或多个)PLD、(一个或多个)FPLD、(一个或多个)DSP等。示例本地数据访问器电路412访问要用于训练的、来自数据提供器414的本地数据。因此,本地数据访问器电路412实现用于访问本地数据的装置(本地数据访问装置)。示例数据提供器414可包括例如收集数据的程序、设备等,其中,该数据被训练设备400用作训练数据。
示例FL加速器管理电路306由诸如例如硬件处理器之类的逻辑电路实现。然而,可以附加地或替代地使用任何其他类型的电路,诸如例如,一个或多个模拟电路或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)、(一个或多个)数字信号处理器((一个或多个)DSP)等。示例FL加速器管理电路306指令(一个或多个)FL加速器420结合训练设备400处的ML模型的分布式训练执行一个或多个FL操作或工作负载。
在图4的示例中,FL加速器管理电路306基于在ML工作负载数据存储418中定义的(一个或多个)规则生成用于(一个或多个)FL加速器420的指令。图4的示例ML工作负载数据存储418由用于存储数据的任何存储器、存储设备和/或存储盘(诸如例如,闪存、磁介质、光学介质等)实现。此外,存储在示例ML工作负载数据存储418中的数据可以按照任何数据格式,诸如例如,二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(SQL)结构等。虽然在图4的所图示的示例中,ML工作负载数据存储418被图示为单个元件,但本文中描述的示例ML工作负载数据存储418和/或任何其他数据存储元件可以由任何数量和/或(一个或多个)类型的存储器实现。
图4的示例训练设备400包括(一个或多个)FL加速器420。图4的(一个或多个)FL加速器420可包括(一个或多个)基于FPGA的加速器、(一个或多个)基于CPU的加速器、和/或其组合。在一些示例中,(一个或多个)FL加速器416是专业硬件。(一个或多个)FL加速器420可包括任何其他过去、现在和/或未来类型的加速器(例如,组合式FPGA-CPU加速器、基于DSP的加速器等)。(一个或多个)FL加速器420实现用于加速联合学习工作负载或操作的装置(加速装置)。
在图4的示例中,(一个或多个)FL加速器420促进结合由训练设备400进行的对模型的分布式训练的一个或多个FL操作的执行。例如,(一个或多个)FL加速器420包括模型更新提供器电路422。模型更新提供器电路422将作为神经网络的训练的结果而生成的(一个或多个)模型更新提供给图3的聚合器设备300。因此,模型更新提供器电路422实现用于提供模型更新的装置(模型更新提供装置)。在一些示例中,模型更新提供器电路422提供具有(一个或多个)模型更新的附加信息,诸如,训练设备400(例如,图1的边缘服务器104、106、108中的执行训练的特定的一个服务器,或图2的边缘设备210、212、214中的执行训练的特定的一个边缘设备)的标识,关于多少训练数据被用于准备模型更新的指示、和/或与模型训练过程相关联的其他参数。因此,在图4的示例中,(一个或多个)模型更新向图3的聚合器设备300的传送或广播是由(一个或多个)FL加速器420执行的FL操作。
图4的示例训练设备400的(一个或多个)FL加速器420可提供其他FL操作或工作负载从训练设备400的(一个或多个)计算资源的迁移。例如,图4的(一个或多个)FL加速器420包括数据加密器电路424。数据加密器电路424在本地数据用于训练之前对该数据加密或创建该数据的嵌入,使得仅对数据加密或嵌入数据的训练设备400能够访问原始数据。因此,数据加密器电路424实现用于保护数据的装置(数据保护装置)。本地数据的加密或嵌入防止数据跨FL环境(例如,在边缘设备之间)被共享。
图4的(一个或多个)示例FL加速器420包括预过滤器电路426,用于过滤或以其他方式预处理要用于训练的本地数据(例如,用于预过滤数据的装置或预过滤装置)。例如,预过滤器电路426可从数据移除噪声,从大型数据集标识用于训练的相关数据,等等。图4的(一个或多个)示例FL加速器420包括后过滤器电路428,用于例如从训练结果移除噪声(例如,用于后过滤数据的装置或后过滤装置)。
图4的(一个或多个)示例FL加速器可提供其他FL操作在训练设备400处的执行,如由图4中的其他FL操作器电路430所表示。例如,(一个或多个)FL加速器420可执行操作,以:在将本地数据用于训练之前解决该数据中的数据稀疏度或缺失数据;解决与训练设备400相关联的本地数据内的(一个或多个)不同数据格式或(一个或多个)数据类型中的差异;和/或执行分布式统计摘要生成。此类操作可基于与每个训练设备400相关联的数据的属性来定制。因此,(一个或多个)FL加速器420可基于边缘设备处的和/或跨边缘系统的数据格式、数据稀疏度水平和量、数据类型等的差异来提供对用于训练的数据的定制化处理。
因此,在图4的示例中,一个或多个FL操作从由训练设备400的(一个或多个)通用计算资源(例如,CPU)执行被迁移,由此降低(一个或多个)通用计算资源的资源利用,从而使其他应用能够在(一个或多个)通用计算资源上运行,等等。进一步地,可基于例如用于在每个设备处的训练的本地数据的属性来为每个训练设备400(例如,(一个或多个)边缘服务器104、106、108;(一个或多个)边缘设备210、212、214)定制或适配分配给(一个或多个)FL加速器416的FL操作。
图5是图3和/或图4的FL加速器管理电路306的示例实现方式的框图。如本文中所公开,FL加速器管理电路306被构造为:当被实现在聚合器设备处时控制图3的聚合器设备300的(一个或多个)FL加速器308的操作;和/或当被实现在图4的训练设备400处时控制训练设备的(一个或多个)FL加速器420的操作。
图5的示例FL加速器管理电路306包括工作负载分析器电路500。工作负载分析器电路500实现用于标识要由(一个或多个)FL加速器308、420结合分布式机器学习训练而执行的(一个或多个)FL操作或工作负载以及用于发起(一个或多个)工作负载的执行的触发事件的装置。在图5的示例中,工作负载分析器电路500基于存储在(一个或多个)ML工作负载数据存储307、418中的(一个或多个)规则来标识要由(一个或多个)FL加速器308、420执行的工作负载。(一个或多个)ML工作负载数据存储307、420可包括定义以下各项的规则:要由(一个或多个)FL加速器308、420执行的(一个或多个)操作、用于发起(一个或多个)操作的(一个或多个)触发事件(例如,在训练设备400处接收到ML模型、训练的完成等)、等等。可基于关于要由(一个或多个)相应的加速器308、420执行的(一个或多个)操作的(一个或多个)用户输入来定义规则。
例如,当FL加速器管理电路306在图3的聚合器设备300处被执行时,工作负载分析器电路500确定(一个或多个)FL加速器308应当响应于图3的模型更新接收器电路304从(一个或多个)训练设备接收到(一个或多个)模型更新而被激活。具体而言,工作负载分析器电路500确定(一个或多个)FL加速器308应当被激活,以使图3的模型更新聚合器电路310能够聚合从(一个或多个)训练设备接收的模型更新。
作为另一示例,当FL加速器管理电路306在图4的训练设备400处被执行时,工作负载分析器电路500确定(一个或多个)FL加速器420应当响应于由图4的模型接收器电路402接收到ML模型而被激活。具体而言,工作负载分析器电路500确定(一个或多个)FL加速器420应当被激活,以使数据加密电路424能够对要用于训练模型的本地数据进行加密或嵌入要用于训练模型的本地数据。
作为另一示例,当FL加速器管理电路306在图4的训练设备400处被执行时,工作负载分析器电路500确定(一个或多个)FL加速器420应当响应于由图4的神经网络训练器电路410作为模型训练的结果来生成模型更新而被激活。
图5的示例FL加速器管理电路306包括FL加速器接口电路502。FL加速器接口电路502促进FL加速器管理电路306与(一个或多个)FL加速器308、402之间的通信。因此,FL加速器接口电路502实现用于与(一个或多个)FL加速器308、420进行通信的装置(加速器通信装置)。
例如,关于图3的示例聚合器设备300,FL加速器接口电路502响应于工作负载分析器电路500确定了(一个或多个)模型更新的聚合应当被执行而将指令传送到例如模型更新聚合器电路310。指令可激活(一个或多个)FL加速器308。
作为另一示例,在图4的训练设备400的情境中,FL加速器接口电路502响应于由模型接收器电路402接收到模型而将指令传送到例如数据加密器电路424,以使数据加密器电路424对用于训练的本地数据进行加密或嵌入用于训练的本地数据。指令可激活(一个或多个)FL加速器420。作为另一示例,FL加速器接口电路502可响应于由神经网络训练器电路410生成模型更新而将指令传送到模型提供器电路422,以使模型提供器电路422经由(一个或多个)FL加速器420传送更新。
尽管在图3中图示出实现聚合器设备300的示例方式,但图3中所图示的元件、过程和/或设备中的一个或多个可以被组合、拆分、重新布置、省略、消除和/或以任何其他方式被实现。进一步地,图3的示例模型提供器电路302、示例模型更新接收器电路304、示例联合学习(FL)加速器管理电路306、示例机器学习(ML)数据存储307、(一个或多个)示例FL加速器308、示例模型更新聚合器电路310、示例模型更新器电路312、示例中央模型数据存储314、和/或更一般地,示例聚合器设备300可仅由硬件实现或可由硬件结合软件和/或固件实现。因此,例如,示例模型提供器电路302、示例模型更新接收器电路304、示例FL加速器管理电路306、示例ML数据存储307、(一个或多个)示例FL加速器308、示例模型更新聚合器电路310、示例模型更新器电路312、示例中央模型数据存储314、和/或更一般地,示例聚合器设备300中的任一个可由处理器电路、(一个或多个)模拟电路、(一个或多个)数字电路、(一个或多个)逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程微控制器、(一个或多个)图形处理单元((一个或多个)GPU)、(一个或多个)数字信号处理器((一个或多个)DSP)、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、和/或(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)(诸如,现场可编程门阵列(FPGA))实现。更进一步地,示例聚合器设备300可包括附加于或替代图3中图示的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可包括所图示的元件、过程和设备中任何或所有元件、过程和设备中的多于一个。
尽管在图4中图示出实现训练设备400的示例方式,但图4中所图示的元件、过程和/或设备中的一个或多个可以被组合、拆分、重新布置、省略、消除和/或以任何其他方式被实现。进一步地,图4的示例联合学习(FL)加速器管理电路306、示例模型接收器电路402、示例本地模型数据存储404、示例神经网络处理器电路406、(一个或多个)示例人工智能(AI)加速器408、示例神经网络训练器电路410、示例本地数据访问器电路412、示例数据提供器414、(一个或多个)示例FL加速器420、示例机器学习(ML)工作负载数据存储418、示例模型更新提供器电路422、示例数据加密器电路424、示例预过滤器电路426、示例后过滤器电路428、示例其他FL操作器电路430、和/或更一般地,示例训练设备400可仅由硬件实现,或可由硬件结合软件和/或固件实现。因此,例如,示例FL加速器管理电路306、示例模型接收器电路402、示例本地模型数据存储404、示例神经网络处理器电路406、(一个或多个)示例AI加速器408、示例神经网络训练器电路410、示例本地数据访问器电路412、示例数据提供器414、(一个或多个)示例FL加速器420、示例ML工作负载数据存储418、示例模型更新提供器电路422、示例数据加密器电路424、示例预过滤器电路426、示例后过滤器电路428、示例其他FL操作器电路430、和/或更一般地,示例训练设备400中的任一个可由处理器电路、(一个或多个)模拟电路、(一个或多个)数字电路、(一个或多个)逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程微控制器、(一个或多个)图形处理单元((一个或多个)GPU)、(一个或多个)数字信号处理器((一个或多个)DSP)、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、和/或(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)(诸如,现场可编程门阵列(FPGA))实现。更进一步地,示例训练设备400可包括附加于或替代图4中图示的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可包括所图示的元件、过程和设备中任何或所有元件、过程和设备中的多于一个。
尽管实现3和/或图4的联合学习(FL)加速器管理电路306的示例方式在图5中图示,但图5中图示的元件、过程和/或设备中的一者或多者可以被组合、拆分、重新布置、省略、消除、和/或以任何其他方式来实现。进一步地,图5的示例工作负载分析器电路500、示例FL加速器接口电路502、和/或更一般地,示例FL加速器管理电路306可仅由硬件实现,或由硬件结合软件和/或固件实现。因此,例如,示例工作负载分析器电路500、示例FL加速器接口电路502、和/或更一般地,示例FL加速器管理电路306中的任一个可由处理器电路、(一个或多个)模拟电路、(一个或多个)数字电路、(一个或多个)逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程微控制器、(一个或多个)图形处理单元((一个或多个)GPU)、(一个或多个)数字信号处理器((一个或多个)DSP)、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件((一个或多个)PLD)、和/或(一个或多个)现场可编程逻辑器件((一个或多个)FPLD)(诸如,现场可编程门阵列(FPGA))来实现。更进一步地,示例FL加速器管理电路306可包括附加于或替代于图5中所图示的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可包括所图示的元件、过程和设备中任何或所有元件、过程和设备中的多于一个。
在图6中示出了表示用于实现图3的示例聚合器设备300和图4的示例训练设备400的示例硬件逻辑电路、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。在图7中示出了表示用于实现图3、图4和/或图5的示例联合学习(FL)加速器管理电路306的示例硬件逻辑电路、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是用于由处理器电路执行的一个或多个可执行程序或可执行程序的(一个或多个)部分,处理器电路诸如下文结合图8和图9所讨论的示例处理器平台800、900中示出的处理器电路812、912和/或下文结合图10和/或图11所讨论的示例处理器电路。程序可以被具体化在存储在与位于一个或多个硬件设备中的处理器电路相关联的一个或多个非暂态计算机可读存储介质上的软件中,一个或多个非暂态计算机可读存储介质诸如CD、软盘、硬盘驱动器(hard disk drive,HDD)、DVD、蓝光盘、易失性存储器(例如,任何类型的随机存取存储器(Random Access Memory,RAM)等),或非易失性存储器(例如,闪存存储器、HDD等),但完整的程序和/或其部分可以替代地由除处理器电路外的一个或多个硬件设备执行,和/或具体化在固件或专用硬件中。机器可读指令可跨多个硬件设备分布和/或由两个或更多个硬件设备(例如,服务器和客户端硬件设备)执行。例如,客户端硬件设备可以由端点客户端硬件设备(例如,与用户相关联的硬件设备)或中间客户端硬件设备(例如,可促进服务器与端点客户端硬件设备之间通信的无线电接入网络(radio access network,RAN)网关)来实现。类似地,非暂态计算机可读存储介质可包括位于一个或多个硬件设备中的一个或多个介质。进一步地,虽然参照图6和/或图7中图示的流程图描述了示例程序,但是可替代地使用实现示例聚合器设备300、示例训练设备400和/或示例FL加速器管理电路306的许多其他方法。例如,可以改变框的执行次序,和/或可改变、消除或组合所描述的框中的一些框。附加地或替代地,框中的任何框或所有框可以由被构造成用于在不执行软件或固件的情况下执行对应的操作的一个或多个硬件电路(例如,处理器电路、分立的和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(operational-amplifier,op-amp)、逻辑电路等)来实现。处理器电路可以分布在不同的网络位置和/或在一个或多个硬件设备本地(例如,单核心处理器(例如,单核心中央处理器单元(CPU))、单个机器中的多核心处理器(例如,多核心CPU等)、跨服务器机架的多个服务器分布的多个处理器、跨一个或多个服务器机架分布的多个处理器、位于相同封装中的CPU和/或FPGA(例如,相同的集成电路(integrated circuit,IC)封装或在两个或更多个独立的壳体中等)。
本文中描述的机器可读指令能以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种来存储。如本文描述的机器可读指令可以作为可用于创建、制造和/或产生机器可行指令的数据或数据结构(例如,指令的部分、代码、代码表示等)来存储。例如,机器可读指令可以被分段并被存储在位于网络或网络集合(例如,在云中、在边缘设备中等)中的相同或不同位置处的一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要安装、修改、适配、更新、组合、补充、配置、解密、解压缩、拆包、分发、重新分配、编译等中的一项或多项,以使得它们由计算设备和/或其他机器直接可读取、可解释、和/或可执行。例如,机器可读指令可以存储在多个部分中,这些部分被单独压缩、加密和/或存储在单独的计算设备上,其中,这些部分在被解密、解压缩和/或组合时形成实现诸如本文中描述的可以一起形成程序的一个或多个操作的一组可执行指令。
在另一示例中,机器可读指令能以它们可被处理器电路读取的状态被存储,但是需要添加库(例如,动态链接库(dynamic link library,DLL))、软件开发工具包(softwaredevelopment kit,SDK)、应用编程接口(application programming interface,API)等,以便在特定的计算设备或其他设备上执行机器可读指令。在另一示例中,在可整体或部分地执行机器可读指令和/或对应的(一个或多个)程序之前,可能需要配置机器可读指令(例如,存储的设置、数据输入、记录的网络地址等)。因此,如本文中所使用,机器可读介质可包括机器可读指令和/或(一个或多个)程序,而不管机器可读指令和/或(一个或多个)程序在被存储时或以其他方式处于静态或在途中时的特定格式或状态如何。
本文中所描述的机器可读指令可以由任何过去、现在或未来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可以用以下语言中的任何一种语言来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HyperTextMarkup Language,HTML)、结构化查询语言(SQL)、Swift等。
如上所述,可使用存储在一个或多个非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图6和/或图7的示例操作,这一个或多个非暂态计算机和/或机器可读介质诸如光学存储设备、磁存储设备、HDD、闪存存储器、只读存储器(ROM)、CD、DVD、缓存、任何类型的RAM、寄存器、和/或在其中信息被存储达任何持续时间(例如,达扩展的时间段、永久地、达简短的实例、用于临时缓冲和/或用于信息的缓存)的任何其他存储设备或存储盘。如本文中所使用,术语非暂态计算机可读介质和非暂态计算机可读存储介质被明确地定义为包括任何类型的计算机可读存储设备和/或存储盘,并且被定义为排除传播信号且排除传输介质。
“包含”和“包括”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求将任何形式的“包含”或“包括”(例如,包括、包含、包括有、包含有、具有等)用作前序部分或用于任何种类的权利要求记载内容之中时,要理解的是,附加的要素、项等可以存在而不落在对应权利要求或记载的范围之外。如本文中所使用,当短语“至少”被用作例如权利要求的前序部分中的过渡术语时,它以与术语“包括”和“包含”是开放式的相同的方式是开放式的。当例如以诸如A、B和/或C之类的形式使用术语“和/或”时,指的是A、B、C的任何组合或子集,诸如(1)单独的A、(2)单独的B、(3)单独的C、(4)A与B、(5)A与C、(6)B与C、或(7)A与B与C。如本文中在描述结构、组件、项、对象和/或事物的上下文中所使用,短语“A和B中的至少一者”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、或(3)至少一个A和至少一个B。类似地,如本文中在描述结构、组件、项、对象和/或事物的上下文中所使用,短语“A或B中的至少一者”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、或(3)至少一个A和至少一个B。如本文中在描述过程、指令、动作、活动和/或步骤的实行或执行的上下文中所使用,短语“A和B中的至少一者”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、或(3)至少一个A和至少一个B。类似地,如本文中在描述过程、指令、动作、活动和/或步骤的实行或执行的上下文中所使用,短语“A或B中的至少一者”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、或(3)至少一个A和至少一个B。
如本文所使用,单数引用(例如,“一(a、an)”、“第一”、“第二”等)不排除复数。本文所使用的术语“一(a或an)”对象是指一个或多个该对象。”术语“一”(“a”(或“an”))、“一个或多个”和“至少一个”在本文中可以可互换地使用。此外,尽管单独列出,但多个装置、元件或方法动作可由例如相同实体或对象来实现。另外,虽然各个特征可以被包括在不同的示例或权利要求中,但是这些特征可能被组合,并且在不同的示例或权利要求中的包含并不暗示特征的组合不可行和/或不是有利的。
图6是表示在图3的聚合器设备300和/或图4的训练设备400处执行的操作600的通信流程图。如本文中所公开,在一些示例中,聚合器设备300由图1的云服务器102实现,并且训练设备400由图1的(一个或多个)相应的边缘服务器104、106、108实现。在其他示例中,聚合器设备300由图2的(一个或多个)相应的边缘服务器204、206、208实现,并且训练设备400由图2的对应边缘设备210、212、214实现。
图6的示例过程在聚合器设备300的模型提供器电路302将ML模型的当前状态提供给每个训练设备400时开始(框602)。
在图6的示例中,训练设备400经由与每个训练设备400相关联的(一个或多个)FL加速器420(例如,图1的(一个或多个)边缘服务器104、106、108的FL加速器118;(一个或多个)边缘设备210、212、214的FL加速器218)执行预训练联合学习(FL)操作(框604、606)。例如,响应于由每个训练设备400的模型接收器电路402接收到ML模型,FL加速器管理电路306可生成指令,以使数据加密器电路424对要用于训练的本地数据加密或嵌入要用于训练的本地数据。在一些示例中,训练设备400中的一个或多个的预过滤器电路426过滤与那个训练设备相关联的本地数据。预训练FL操作可包括基于例如本地数据的属性的(例如,由(一个或多个)FL加速器420的其他FL操作器电路430执行的)其他数据预处理功能,本地数据的属性诸如,数据格式、数据类型、数据稀疏度等。
每个训练设备400使用本地数据训练ML模型(框608、610)。在本文中公开的示例中,示例训练设备400中的每一个的神经网络训练器电路410使用由本地数据访问器电路412从数据提供器414访问的本地数据来训练由神经网络处理器电路406实现的模型。作为训练的结果,针对那个训练轮次的模型更新被创建,并被存储在与每个训练设备400相关联的本地模型数据存储404中。在本文中公开的示例中,模型更新可利用任何种类的模型学习算法来计算,使得聚合函数不需要对原始数据的访问,诸如例如,随机梯度下降法。另外,如本文中所公开,在一些示例中,神经网络训练器电路410可由一个或多个AI加速器408实现。
在图6的示例中,训练设备400经由与每个训练设备相关联的(一个或多个)FL加速器420(例如,图1的(一个或多个)边缘服务器104、106、108的FL加速器118;(一个或多个)边缘设备210、212、214的FL加速器218)执行后训练FL操作(框612、614)。例如,训练设备400中的一个或多个的后过滤器电路428可过滤与相应设备相关联的训练结果。
每个训练设备400将在那个特定设备处生成的模型更新传送到聚合器设备300(框616、618)。在图6的示例中,模型更新提供器电路422由每个训练设备400的FL加速器416实现,以促进(一个或多个)模型更新向聚合器设备300的广播。
聚合器设备300的模型更新接收器电路304接收由训练设备400传送的模型更新(框620)。模型更新由聚合器设备300聚合(框622)。在图6的示例中,模型更新的聚合经由聚合器设备300的(一个或多个)FL加速器308被执行。例如,聚合器设备300的FL加速器管理电路306传送指令,以使模型更新聚合器电路310聚合模型更新。
聚合器设备300的模型更新器电路312使用经聚合的模型参数来更新存储在中央模型数据存储314中的模型(框624)。经更新的模型充当用于下一训练轮次的新模型。控制继续进行到框602以发起下一训练轮次。
图7是表示示例机器可读指令和/或示例操作700的流程图,该示例机器可读指令和/或示例操作700可由处理器电路执行和/或实例化,以使一个或多个联合学习(FL)操作或工作负载经由一个或多个FL加速器被执行。图7的示例指令700可由图3的聚合器设备300的FL加速器管理电路306实现,以管理聚合器设备300的(一个或多个)FL加速器308。附加地或替代地,图7的示例指令700可由图4的训练设备400的FL加速器管理电路306实现,以管理训练设备400的(一个或多个)FL加速器420。
图7的机器可读指令和/或操作700开始于框702,在框702处,工作负载分析器电路500分析要结合机器学习模型的分布式训练被执行的(一个或多个)工作负载,以标识要由(一个或多个)FL加速器308、420执行的(一个或多个)工作负载以及用于发起(一个或多个)工作负载的(一个或多个)触发事件。工作负载分析器电路500基于存储在相应的ML工作负载数据存储307、418中的规则来标识要由(一个或多个)FL加速器308、4202kg执行的工作负载以及(一个或多个)对应的发起触发事件。例如,当FL加速器管理电路306在图3的聚合器设备300处被执行时,工作负载分析器电路500确定(一个或多个)FL加速器308应当响应于图3的模型更新接收器电路304从(一个或多个)训练设备400接收到(一个或多个)模型更新而被激活,以使模型更新能够由模型更新聚合器电路310聚合。作为另一示例,当FL加速器管理电路306在图4的训练设备400处被执行时,工作负载分析器电路500确定(一个或多个)FL加速器420应当响应于由图4的神经网络训练器电路410作为模型训练的结果来生成模型更新而被激活。
在图7的示例中,当工作负载分析器电路500标识要由(一个或多个)FL加速器308、420执行的(一个或多个)工作负载(框704)时,FL加速器接口电路502生成指令,以使(一个或多个)工作负载在FL加速器处被执行(框706)。在一些示例中,来自FL加速器接口电路502的指令使FL加速器308、420被激活。例如,当在图3的聚合器设备300处被执行时,FL加速器接口电路502响应于工作负载分析器电路500确定了(一个或多个)模型更新的聚合应当被执行传送针对模型更新聚合器电路310的指令。作为另一示例,当在训练设备400处被执行时,FL加速器接口电路502响应于由模型接收器电路400接收到模型而将指令传送到数据加密器电路424,以使数据加密器电路424对用于训练的本地数据进行加密或嵌入用于训练的本地数据。
控制继续进行,以结合分布式训练分析(一个或多个)工作负载,直到没有进一步的工作负载要执行(框708、710)。
图8是被构造成用于执行和/或实例化图6和/或图7的机器可读指令和/或操作以实现图3的示例聚合器设备300的示例处理器平台800的框图。处理器平台800可以是例如服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如iPadTM之类的平板设备)、个人数字助理(personal digital assistant,PDA)、互联网设备、头戴式耳机(例如,增强现实(augmented reality,AR)头带式耳机、虚拟现实(virtual reality,VR)头戴式耳机等)或其他可穿戴设备、或任何其他类型的计算设备。
所图示示例的处理器平台800包括处理器电路812。所图示示例的处理器电路812是硬件。例如,处理器电路812可由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、FPGA、微处理器、CPU、GPU、DSP和/或微控制器实现。处理器电路812可由一个或多个基于半导体的(例如,基于硅的)器件来实现。在该示例中,处理器电路812实现示例模型提供器电路302、示例模型更新接收器电路304、示例联合学习加速器管理电路306、示例工作负载分析器电路500、示例联合学习加速器接口电路502、以及示例模型更新器电路312。
所图示示例的处理器平台800包括联合学习加速器308。联合学习加速器308由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器或控制器实现。在该示例中,联合学习加速器308执行示例模型更新聚合器电路310。
所图示示例的处理器电路812包括本地存储器813(例如,缓存、寄存器等)。所图示示例的处理器电路812经由总线818而与包括易失性存储器814和非易失性存储器816的主存储器进行通信。易失性存储器814可以由同步动态随机存取存储器(SynchronousDynamic Random Access Memory,SDRAM)、动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、动态随机存取存储器(/>Dynamic Random AccessMemory,/>)和/或任何其他类型的RAM设备实现。非易失性存储器816可以由闪存存储器和/或任何其他所期望类型的存储器设备实现。由存储器控制器817控制对所图示示例的主存储器814、816的访问。
所图示示例的处理器平台800还包括接口电路820。接口电路820可以由根据任何类型的接口标准的硬件实现,诸如以太网接口、通用串行总线(universal serial bus,USB)接口、蓝牙接口、近场通信(near field communication,NFC)接口、PCI接口和/或PCIe接口。
在所图示的示例中,一个或多个输入设备822被连接至接口电路820。(一个或多个)输入设备822准许用户将数据和/或命令输入到处理器电路812中。(一个或多个)输入设备822可以由例如音频传感器、话筒、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点鼠标(isopoint)设备和/或语音识别系统实现。
一个或多个输出设备824也被连接至所图示示例的接口电路820。输出设备824可以例如由显示设备(例如,发光二极管(light emitting diode,LED)、有机发光二极管(organic light emitting diode,OLED)、液晶显示器(liquid crystal display,LCD)、阴极射线管(cathode ray tube,CRT)显示器、面内切换(in-place switching,IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所图示示例的接口电路820典型地包括图形驱动器卡、图形驱动器芯片和/或诸如GPU之类的图形处理器电路。
所图示示例的接口电路820还包括诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进经由网络826与外部机器(例如,任何种类的计算设备)交换数据。通信可以经由例如,以太网连接、数字订户线路(digitalsubscriber line,DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统、光连接等。
所图示示例的处理器平台800还包括用于存储软件和/或数据的一个或多个大容量存储设备828。此类大容量存储设备828的示例包括磁存储设备、光存储设备、软盘驱动器、HDD、CD、蓝光盘驱动器、独立磁盘冗余阵列(redundant array of independent disks,RAID)系统、固态存储设备(诸如,闪存存储器设备)和DVD驱动器。
可由图6和/或图7的机器可读指令来实现的机器可执行指令832可以被存储在大容量存储设备828中,存储在易失性存储器814中,存储在非易失性存储器816中,和/或存储在诸如CD或DVD之类的可移除非暂态计算机可读存储介质上。
图9是被构造成用于执行和/或实例化图6和/或图7的机器可读指令和/或操作以实现图4的示例训练设备400的示例处理器平台900的框图。处理器平台900可以是例如服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如iPadTM之类的平板设备)、个人数字助理(PDA)、互联网设备、头戴式耳机(例如,增强现实(AR)头带式耳机、虚拟现实(VR)头戴式耳机等)或其他可穿戴设备、或任何其他类型的计算设备。
所图示示例的处理器平台900包括处理器电路912。所图示示例的处理器电路912是硬件。例如,处理器电路912可由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、FPGA、微处理器、CPU、GPU、DSP和/或微控制器实现。处理器电路912可由一个或多个基于半导体的(例如,基于硅的)器件来实现。在该示例中,处理器电路912实现示例模型接收器电路402、示例神经网络处理器电路406、示例联合学习加速器管理电路306、示例工作负载分析器电路500、示例联合学习加速器接口电路502、示例本地数据访问器电路412、以及示例数据提供器414。
所图示示例的处理器平台900包括人工智能加速器408。人工智能加速器408由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器或控制器实现。在该示例中,人工智能加速器408执行示例神经网络训练器电路410。
所图示示例的处理器平台900包括联合学习加速器420。联合学习加速器420由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器或控制器实现。在该示例中,联合学习加速器420执行示例模型更新提供器电路422、示例数据加密器电路424、示例预过滤器电路426、示例后过滤器电路428、以及示例其他联合学习操作器电路430。
所图示示例的处理器电路812包括本地存储器813(例如,缓存、寄存器等)。所图示示例的处理器电路812经由总线818而与包括易失性存储器814和非易失性存储器816的主存储器进行通信。易失性存储器814可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器/>和/或任何其他类型的RAM设备实现。非易失性存储器816可以由闪存存储器和/或任何其他所期望类型的存储器设备实现。由存储器控制器817控制对所图示示例的主存储器814、816的访问。
所图示示例的处理器平台800还包括接口电路820。接口电路820可以由根据任何类型的接口标准的硬件实现,诸如以太网接口、通用串行总线(USB)接口、接口、近场通信(NFC)接口、PCI接口和/或PCIe接口。
在所图示的示例中,一个或多个输入设备822被连接至接口电路820。(一个或多个)输入设备822准许用户将数据和/或命令输入到处理器电路812中。(一个或多个)输入设备822可以由例如音频传感器、话筒、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点鼠标设备和/或语音识别系统实现。
一个或多个输出设备824也被连接至所图示示例的接口电路820。输出设备824可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管(CRT)显示器、面内切换(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所图示示例的接口电路820典型地包括图形驱动器卡、图形驱动器芯片和/或诸如GPU之类的图形处理器电路。
所图示示例的接口电路820还包括诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进经由网络826与外部机器(例如,任何种类的计算设备)交换数据。通信可以经由例如,以太网连接、数字订户线路(DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统、光连接等。
所图示示例的处理器平台800还包括用于存储软件和/或数据的一个或多个大容量存储设备828。此类大容量存储设备828的示例包括磁存储设备、光存储设备、软盘驱动器、HDD、CD、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统、固态存储设备(诸如,闪存存储器设备)和DVD驱动器。
可由图6和/或图7的机器可读指令来实现的机器可执行指令832可以被存储在大容量存储设备828中,存储在易失性存储器814中,存储在非易失性存储器816中,和/或存储在诸如CD或DVD之类的可移除非暂态计算机可读存储介质上。
图10是图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420的示例实现方式的框图。在该示例中,图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420由微处理器1000实现。例如,微处理器1000可以实现多核心硬件电路,诸如,CPU、DSP、GPU、XPU等。虽然其可包括任何数量的示例核心1002(例如,1个核心),但该示例的微处理器1000是包括N个核心的多核心半导体器件。微处理器1002的核心1000可以独立操作,或者可以协作以执行机器可读指令。例如,与固件程序、嵌入式软件程序或软件程序相对应的机器代码可以由核心1002中的一个核心来执行,或者可以由核心1002中的多个核心在相同或不同的时间执行。在一些示例中,与固件程序、嵌入式软件程序或软件程序相对应的机器代码被分割成线程,并由两个或更多个核心1002并行地执行。软件程序可与由图6和/或图7的流程图表示的机器可读指令和/或操作的部分或全部相对应。
核心1002可通过示例总线1004进行通信。在一些示例中,总线1004可实现通信总线,以用于实行与核心1002中的一个(多个)核心相关联的通信。例如,总线1004可以实现集成电路间(I2C)总线、串行外围接口(SPI)总线、PCI总线或PCIe总线中的至少一者。附加地或替代地,总线1004可实现任何类型的计算或电气总线。核心1002可以通过示例接口电路1006从一个或多个外部设备获得数据、指令和/或信号。核心1002可以通过接口电路1006向一个或多个外部设备输出数据、指令和/或信号。尽管该示例的核心1002包括示例本地存储器1020(例如,可被拆分为L1数据缓存和L1指令缓存的第一级(L1)缓存),但微处理器1000还包括可由核心共享的示例共享存储器1010(例如,第二级(L2_缓存)),以用于对数据和/或指令的高速访问。数据和/或指令可以通过向共享存储器1010写入和/或从共享存储器1010读取来传输(例如,共享)。共享存储器1010和核心1002中的每个核心的本地存储器1020可以是包括多级高速缓存存储器和主存储器(例如,图8的主存储器814、816,图9的主存储器914、916)的存储设备的层次体系的部分。典型地,相比于较低级别的存储器,层次体系中的较高级别的存储器表现出更低的访问时间并具有更小的存储容量。缓存层次体系的各级别的改变由缓存一致性策略管理(例如,协调)。
每个核心1002可以被称为CPU、DSP、GPU等,或任何其他类型的硬件电路。每个核心1002包括控制单元电路1014、算术和逻辑(arithmetic and logic,AL)电路(有时称为ALU)1016、多个寄存器1018、L1缓存1020和示例总线1022。可以存在其他结构。例如,每个核心1002可以包括向量单元电路、单指令多数据(single instruction multiple data,SIMD)单元电路、加载/存储单元(load/store unit,LSU)电路、分支/跳转单元电路、浮点单元(floating-point unit,FPU)电路等。控制单元电路1014包括被构造成用于控制(例如,协调)对应核心1002内的数据移动的基于半导体的电路。AL电路1016包括被构造成用于在对应核心1002内对数据执行一个或多个数学和/或逻辑操作的基于半导体的电路。一些示例的AL电路1016执行基于整数的操作。在其他示例中,AL电路1016还执行浮点操作。在另外的其他示例中,AL电路1016可包括执行基于整数的操作的第一AL电路和执行浮点操作的第二AL电路。在一些示例中,AL电路1016可以被称为算术逻辑单元(Arithmetic Logic Unit,ALU)。寄存器1018是用于存储数据和/或指令(诸如,由对应核心1002的AL电路1016执行的操作中的一个或多个操作的结果)的基于半导体的结构。例如,寄存器1018可以包括(一个或多个)向量寄存器、(一个或多个)SIMD寄存器、(一个或多个)通用寄存器、(一个或多个)标志寄存器、(一个或多个)段寄存器、(一个或多个)机器特定寄存器、(一个或多个)指令指针寄存器、(一个或多个)控制寄存器、(一个或多个)调试寄存器、(一个或多个)存储器管理寄存器、(一个或多个)机器检查寄存器等。寄存器1018可按如图10中所示的区块来布置。替代地,寄存器1018可以按任何其他布置、格式或结构来组织,包括贯穿核心1002分布以缩短访问时间。总线1004可以实现I2C总线、SPI总线、PCI总线或PCIe总线中的至少一者。
每个核心1002(和/或更一般地,微处理器1000)可以包括上文示出和描述的那些结构的附加和/或替代结构。例如,可以存在一个或多个时钟电路、一个或多个功率供应、一个或多个功率门、一个或多个缓存归属地代理(cache home agents,CHA)、一个或多个聚合/公共网格站点(converged/common mesh stop,CMS)、一个或多个移位器(例如,(一个或多个)桶形移位器)和/或其他电路。微处理器1000是被制造成包括许多经互连接的晶体管以在被包含在一个或多个封装中的一个或多个集成电路(IC)中实现上文所描述的结构的半导体器件。处理器电路可包括一个或多个加速器,和/或与一个或多个加速器协作。在一些示例中,加速器由逻辑电路来实现,从而相比于由通用处理器完成可以更快和/或更高效地执行某些任务。加速器的示例包括ASIC和FPGA,诸如,本文中所讨论的那些。GPU或其他可编程器件也可以是加速器。加速器可以板载于处理器电路上,与处理器电路在同一芯片封装中,和/或在与处理器电路分开的一个或多个单独的封装中。
图11是图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420的另一示例实现方式的框图。在该示例中,图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420由FPGA电路1100实现。例如,FPGA电路1100可用于执行原本可能通过图10的示例微处理器1000执行对应的机器可读指令来执行的操作。然而,一旦被配置,FPGA电路1100就在硬件中实例化机器可读指令,并且由此通常可以比操作可能通过通用微处理器执行对应软件来执行更快地执行这些操作。
更具体地,与上文描述的图10的微处理器1000(微处理器1000是通用设备,其可编程为执行由图6和/或图7的流程图表示的机器可读指令中的一些或全部,但其互连和逻辑电路一旦被制造就是固定的)形成对照,图11的示例的FPGA电路1100包括这样互连和逻辑电路:这些互连和逻辑电路可以在制造之后以不同的方式配置和/或互连,以实例化例如由图6和/或图7的流程图表示的机器可读指令中的一些或全部。具体而言,FPGA 1100可以被认为是逻辑门、互连和开关的阵列。可以对开关进行编程,以改变逻辑门通过互连进行互连的方式,从而有效地形成一个或多个专用逻辑电路(除非和直到FPGA电路1100被重新编程)。经配置的逻辑电路使逻辑门能够以不同的方式协作,从而对由输入电路接收的数据执行不同的操作。那些操作可与由图6和/或图7的流程图表示的软件中的一些或全部相对应。由此,FPGA电路1100可以被构造成用于将有效地将图6和/或图7的流程图的机器可读指令中的一些或全部实例化为专用逻辑电路,以便以类似于ASIC的专用方式执行与那些软件指令对应的操作。因此,与通用微处理器能够执行与图6和/或图7的机器可读指令中的一些或全部对应的操作相比,FPGA电路1100可更快地执行相同的操作。
在图11的示例中,FPGA电路1100被构造成用于由终端用户通过诸如Verilog之类的硬件描述语言(hardware description language,HDL)编程(和/或重新编程一次或多次)。图11的FPGA电路1100包括示例输入/输出(input/output,I/O)电路1102,该示例输入/输出(I/O)电路1102用于从示例配置电路1104和/或外部硬件(例如,外部硬件电路)1106获得数据和/或向示例配置电路1104和/或外部硬件(例如,外部硬件电路)1106输出数据。例如,配置电路1104可以实现接口电路,该接口电路可获得用于配置FPGA电路1100或其(一个或多个)部分的机器可读指令。在一些此类示例中,配置电路1104可以从用户、机器(例如,可以实现人工智能/机器学习(Artificial Intelligence/Machine Learning,AI/ML)模型以生成指令的硬件电路(例如,经编程的或专用电路)等获得机器可读指令。在一些示例中,外部硬件1106可实现图10的微处理器1000。FPGA电路1100还包括示例逻辑门电路1108、多个示例可配置互连1110和示例存储电路1112的阵列。逻辑门电路1108和互连1110可配置成用于实例化一个或多个操作,这一个或多个操作可与图6和/或图7的机器可读指令中的至少一些机器可读指令和/或其他期望的操作相对应。图11中示出的逻辑门电路1108是按组或块制造的。每个块包括可以配置为逻辑电路的基于半导体的电气结构。在一些示例中,电气结构包括为逻辑电路提供基本构建块的逻辑门(例如,“与(And)”门、“或(Or)”门、“或非(Nor)”门等)。电可控开关(例如,晶体管)存在于逻辑门电路1108中的每个逻辑门电路808中,以使得能够将电气结构和/或逻辑门配置成形成电路来执行期望的操作。逻辑门电路1108可以包括其他电气结构,诸如,查找表(look-up table,LUT)、寄存器(例如,触发器或锁存器)、多路复用器等。
所图示示例的互连1110是导电路径、迹线、通孔等,其可以包括其状态可以通过编程(例如,使用HDL指令语言)来改变以激活或接触激活逻辑门电路1108中的一个或多个逻辑门电路之间的一个或多个连接从而对期望的逻辑电路编程的电可控开关(例如,晶体管)。
所图示示例的存储电路1112被构造成用于存储由对应的逻辑门执行的操作中的一个或多个操作的(一个或多个)结果。存储电路1112可以由寄存器等来实现。在所图示的示例中,存储电路1112分布在逻辑门电路1108之间,以促进访问并提高执行速度。
图11的示例FPGA电路1100还包括示例专用操作电路1114。在该示例中,专用操作电路1114包括专用电路1116,该专用电路1116可以被调用以实现常用功能,从而避免需要在现场对那些功能编程。此类专用电路1116的示例包括存储器(例如,DRAM)控制器电路、PCIe控制器电路、时钟电路、收发器电路、存储器和乘法器-累加器电路。可以存在其他类型的专用电路。在一些示例中,FPGA电路1100还可以包括示例通用可编程电路1118,诸如,示例CPU 1120和/或示例DSP 1122。可以附加地或替代地存在可以被编程为用于执行其他操作的其他通用可编程电路1118,诸如,GPU、XPU等。
图10和图11图示出图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420的两个示例实现方式,但是构想了许多其他方式。例如,如上文所提及,现代FPGA电路可以包括板载CPU,诸如,图11的示例CPU 1120中的一个或多个。因此,图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420可附加地通过组合图10的示例微处理器1000和图11的示例FPGA电路1100来实现。在一些此类混合式示例中,由图6和/或图7的流程图表示的机器可读指令的第一部分可由图10的核心1002中的一个或多个核心执行,并且由图6和/或图7的流程图表示的机器可读指令的第二部分可由图11的FPGA电路1100执行。
在一些示例中,图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420可以在一个或多个封装中。例如,图10的处理器电路1000和/或图11的FPGA电路1100可以在一个或多个封装中。在一些示例中,XPU可由图8的处理器电路812、图8的联合学习加速器308、图9的处理器电路912、图9的人工智能加速器408、和/或图9的联合学习加速器420实现,上述各项可以在一个或多个封装中。例如,XPU可包括一个封装中的CPU、另一封装中的DSP、又一封装中的GPU和再另一封装中的FPGA。
在图12中图示了图示将诸如图8的示例机器可读指令832和/或图9的示例机器可读指令932之类的软件分发到由第三方拥有和/或操作的硬件设备的示例软件分发平台1205的框图。示例软件分发平台1205可以由能够存储软件并将软件传送到其他计算设备的任何计算机服务器、数据设施、云服务等来实现。第三方可以是拥有和/或操作软件分发平台1205的实体的客户。例如,拥有和/或操作软件分发平台1205的实体可以是软件(诸如,图8的示例机器可读指令832和/或图9的示例机器可读指令932)的开发方、销售方、和/或许可方。第三方可以是购买和/或许可软件以用于使用和/或转售和/或分许可的消费者、用户、零售商、OEM等。在所图示的示例中,软件分发平台1205包括一个或多个服务器和一个或多个存储设备。存储设备存储机器可读指令1232,该机器可读指令1332可以与如上文所描述的图8的示例机器可读指令832相对应。存储设备存储机器可读指令1234,该机器可读指令1234可以与如上文所描述的图9的示例机器可读指令932相对应。示例软件分发平台1205的一个或多个服务器与网络1210通信,该网络1210可以与因特网和/或上文所描述示例网络826、926中的任一个中的任何一个或多个相对应。在一些示例中,作为商业事务的一部分,一个或多个服务器对将软件传送到请求方的请求的进行响应。可以由软件分发平台的一个或多个服务器和/或由第三方支付实体来处置针对软件的交付、销售、和/或许可的支付。服务器使购买方和/或许可方能够从软件分发平台1205下载机器可读指令1232、1234。例如,软件(其可与图8的示例机器可读指令832相对应)可被下载到示例处理器平台800,该示例处理器平台800用于执行机器可读指令832以实现图3的示例聚合器设备300。软件(其可与图9的示例机器可读指令932相对应)可被下载到示例处理器平台900,该示例处理器平台900用于执行机器可读指令932以实现图4的示例训练设备400。在一些示例中,软件分发平台1205的一个或多个服务器周期性地提供、传送和/或强制进行对软件(例如,图8的示例机器可读指令832、图9的示例机器可读指令932)的更新以确保改善、补丁、更新等被分发并应用于终端用户设备处的软件。
通过上文将会理解,已公开了示例系统、方法、装置和制品,它们提供用于结合机器学习模型的分布式训练执行联合学习(FL)操作的加速器。本文中公开的示例通过使联合学习操作或工作负载能够由(一个或多个)FL加速器执行而不是消耗通用计算资源,解决了关于计算资源针对边缘系统内的训练的可用性的异构性。本文中公开的示例还通过在每个设备处提供(一个或多个)FL加速器以促进诸如加密之类的基于数据的操作,解决了关于用于在每个训练设备处的训练的本地数据的异构性。示例FL加速器可被实现为外部硬件、被实现为基于CPU的加速器、和/或其组合。因此,本文中公开的示例基于诸如成本、功率等的变量提供了FL加速器的位置方面的灵活性。所公开的系统、方法、装置和制品通过将一个或多个联合学习操作迁移到加速器改善了使用计算设备的效率,由此增加用于机器学习训练的重复的计算模式被执行的速度,并且作为结果,相对于性能和功耗提供了改善的效率。进一步地,FL加速器的使用保持和/或增加原本会执行训练且这会影响设备性能的通用计算资源的可用性。所公开的系统、方法、装置和制品对应地涉及诸如计算机或其他电子设备之类的机器的操作中的一个或多个改进。
本文中公开了示例联合学习加速器和相关方法。进一步的示例及其组合包括以下内容:
示例1包括一种边缘设备,其包括:神经网络训练器电路,用于使用本地数据训练神经网络以生成针对机器学习模型的模型更新;联合学习加速器,用于执行与训练相关联的一个或多个联合学习工作负载;以及模型更新提供器电路,用于将模型更新传送到聚合器设备。
示例2包括示例1的边缘设备,其中,联合学习加速器包括模型更新提供器电路。
示例3包括示例1或2的边缘设备,其中,联合学习加速器包括用于对本地数据加密的数据加密器电路。
示例4包括示例1-3中的任一项的边缘设备,进一步包括联合学习加速器管理电路,用于生成指令以使联合学习加速器执行一个或多个联合学习工作负载。
示例5包括示例1-4中的任一项的边缘设备,其中,联合学习加速器管理电路包括联合学习加速器接口电路。
示例6包括示例1-5中的任一项的边缘设备,其中,联合学习加速器管理电路包括用于标识要由联合学习加速器执行的工作负载的工作负载分析器电路。
示例7包括示例1-6中的任一项的边缘设备,进一步包括用于从聚合器设备接收机器学习模型的模型接收器电路。
示例8包括示例1-7中的任一项的边缘设备,其中,联合学习加速器用于基于以下至少一项来执行一个或多个数据处理操作:与本地数据相关联的数据格式、与本地数据相关联的数据类型、或与本地数据相关联的数据稀疏度水平。
示例9包括至少一种非暂态计算机可读存储介质,其包括指令,这些指令当被执行时使边缘系统中的训练设备的处理器电路至少执行以下步骤:使联合学习加速器执行与生成模型更新相关联的工作负载;使用与训练设备相关联的本地数据训练神经网络以生成模型更新;以及使模型更新被传送到边缘系统中的聚合器设备。
示例10包括示例9的至少一种非暂态计算机可读存储介质,其中,指令当被执行时用于使联合学习加速器执行以下一个或多个步骤:对本地数据加密;或过滤本地数据。
示例11包括示例9或示例10的至少一种非暂态计算机可读存储介质,其中,指令当被执行时使处理器电路基于用于发起工作负载的触发事件来将工作负载标识为要由联合学习加速器执行的工作负载。
示例12包括示例9-11中的任一项的至少一种非暂态计算机可读存储介质,其中,触发事件包括由训练设备接收到机器学习模型。
示例13包括示例9-12中的任一项的至少一种非暂态计算机可读存储介质,其中,触发事件包括生成模型更新。
示例14包括示例9-13中的任一项的至少一种非暂态计算机可读存储介质,其中,指令当被执行时使处理器电路使联合学习加速器传送模型更新。
示例15包括一种装置,该装置包括:至少一个存储器;装置中的指令;以及处理器电路,用于执行指令,以:使用与边缘系统中的训练设备相关联的本地数据训练神经网络以生成针对机器学习模型的模型更新;执行与训练相关联的一个或多个联合学习工作负载;以及将模型更新传送到边缘系统中的聚合器设备。
示例16包括示例15的装置,其中,处理器电路用于执行第一联合学习工作负载以对本地数据加密。
示例17包括示例15或示例16的装置,其中,处理器电路用于执行第二联合学习工作负载以过滤本地数据。
示例18包括示例15-17中的任一项的装置,其中,处理电路用于:基于用于发起工作负载的触发事件,将要执行的工作负载标识为一个或多个联合学习工作负载。
示例19包括示例15-18中的任一项的装置,其中,触发事件包括由训练设备接收到机器学习模型。
示例20包括示例15-19中的任一项的装置,其中,触发事件包括生成模型更新。
示例21包括示例15-20中的任一项的装置,其中,一个或多个联合学习工作负载包括传送模型更新。
示例22包括一种用于神经网络的联合训练的系统,该系统包括:第一边缘设备;以及第二边缘设备,第一边缘设备和第二边缘设备中的每一个用于实现相应的神经网络以训练机器学习模型,第一边缘设备用于将第一模型更新提供给聚合器设备,并且第二边缘设备用于将第二模型更新提供给聚合器设备,第一边缘设备包括第一联合学习加速器,用于执行与第一边缘设备处的机器学习的训练相关联的第一联合学习操作,并且第二边缘设备包括第二联合学习加速器,用于执行与第二边缘设备处的机器学习模型的训练相关联的第二联合学习操作。
示例23包括示例22的系统,其中,第一联合学习加速器用于对与第一边缘设备相关联的数据加密以用于第一边缘设备出点的机器学习模型的训练,并且第二联合学习加速器用于对与第二边缘设备相关联的数据加密以用于第二边缘设备处的机器学习模型的训练。
示例24包括示例22或示例23的系统,其中,第一联合学习加速器用于响应于从聚合器设备接收到机器学习模型而对数据加密。
示例25包括示例22-24中的任一项的系统,其中,第一联合学习加速器用于将模型更新从第一边缘设备传送到聚合器设备,并且第二联合学习加速器用于将模型更新从第二边缘设备传送到聚合器设备。
示例26包括示例22-25中的任一项的系统,其中,联合学习加速器与第一边缘设备和第二边缘设备中的相应边缘设备的中央处理单元分开地被实现。
示例27包括示例22-26中的任一项的系统,其中,第一联合学习加速器用于基于与同第一边缘设备相关联的第一数据相关联的数据格式、与第一数据相关联的数据类型或与第一数据相关联的数据稀疏度水平中的至少一项执行针对第一数据的一个或多个数据处理操作,该第一数据用于第一边缘设备处机器学习模型的训练,并且第二联合学习加速器用于基于与同第二边缘设备相关联的第二数据相关联的数据格式、与第二数据相关联的数据类型或与第二数据相关联的数据稀疏度水平中的至少一项执行针对第二数据的一个或多个数据预处理操作,该第二数据用于第二边缘设备处机器学习模型的训练,该第二数据与以下一项或多项相关联,与第一数据不同的数据格式、不同的数据类型、或不同的数据稀疏度水平。
示例28包括一种用于神经网络的联合训练的边缘设备,该边缘设备包括:用于使用本地数据训练神经网络以生成模型更新的装置;用于加速与神经网络的训练相关联的至少一个工作负载的装置;以及用于将模型更新提供给聚合器设备的装置。
示例29包括示例28的边缘设备,其中,加速装置用于对本地数据加密。
示例30包括示例28或示例29的边缘设备,进一步包括用于管理加速装置的装置,用于管理加速装置的装置用于使加速装置执行工作负载。
示例31包括示例28-30中的任一项的边缘设备,其中,加速装置包括模型更新提供装置。
示例32包括一种用于神经网络的联合训练的聚合器设备,该聚合器设备包括:用于基于从多个训练设备接收的模型更新来更新机器学习模型的装置;以及用于加速与模型更新的聚合相关联的工作负载的装置。
示例33包括示例32的聚合器设备,其中,聚合装置包括用于聚合模型更新以生成经聚合的模型参数的装置。
示例34包括示例32或示例33的聚合器设备,进一步包括用于管理加速装置的装置,用于管理加速装置的装置用于使加速装置执行工作负载。
示例35包括示例32-34中的任一项的聚合器设备,进一步包括用于将机器学习模型提供给多个训练设备的装置。
示例36包括示例32-35中的任一项的聚合器设备,进一步包括用于从多个训练设备接收模型更新的装置。
示例37包括一种用于使用联合学习训练模型的装置,该装置包括:接口电路,用于访问模型;以及处理器电路,该处理器电路包括中央处理单元、图形处理单元或数字信号处理器中的至少一个中的一个或多个,中央处理单元、图形处理单元或数字信号处理器中的至少一个具有用于控制处理器电路内的数据移动的控制电路、用于执行与指令对应的一个或多个第一操作的算术和逻辑电路、以及用于存储一个或多个第一操作的结果的一个或多个寄存器;装置中的指令;线程可编程门阵列(FPGA),该FPGA包括逻辑门电路、多个可配置互连、以及存储电路,逻辑门电路和互连用于执行一个或多个第二操作,存储电路用于存储一个或多个第二操作的结果;或专用集成电路(ASIC),该ASIC包括用于执行一个或多个第三操作的逻辑门电路;处理电路用于执行第一操作、第二操作或第三操作中的至少一个操作以:将神经网络训练器电路实例化为用于生成针对模型的模型更新;以及将联合学习加速器管理电路实例化为用于使加速器将模型更新传送到聚合器设备。
示例38包括示例37的装置,其中,联合加速器管理电路用于使加速器执行以下一个步骤:对用于生成模型更新的数据加密;或嵌入用于生成模型更新的数据。
示例39包括示例37或示例38的装置,其中,联合加速器管理电路用于使加速器响应于接口电路访问模型而对数据加密或嵌入数据。
示例40包括示例37-39中的任一项的装置,其中,联合加速器管理电路用于使加速器过滤用于生成模型更新的数据。
示例41包括一种用于在边缘系统的边缘设备处的神经网络的联合训练的方法,该方法包括:使联合学习加速器执行与生成模型更新相关联的工作负载;使用与边缘设备相关联的本地数据训练神经网络以生成模型更新;以及使模型更新被传送到边缘系统中的聚合器设备。
示例42包括示例41的方法,进一步包括:使联合学习加速器执行以下一个或多个步骤:对本地数据加密;或过滤本地数据。
示例43包括示例41或示例42的方法,进一步包括:基于用于发起工作负载的触发事件,将工作负载标识为要由联合学习加速器执行的工作负载。
示例44包括示例41-43中的任一项的方法,其中,触发事件包括由边缘设备接收到机器学习模型。
示例45包括示例41-44中的任一项的方法,其中,触发事件包括生成模型更新。
示例46包括示例41-45中的任一项的方法,进一步包括:使联合学习加速器传送模型更新。
尽管本文中已公开了某些示例系统、方法、装置和制品,但本专利涵盖的范围并不限于此。相反,本专利涵盖落入本专利权利要求范围内的全部系统、方法、装置和制品。
所附的权利要求由此通过本参考被并入到本具体实施方式中,其中每一项权利要求其本身作为本公开的单独的实施例。
Claims (24)
1.一种边缘设备,包括:
神经网络训练器电路,用于使用本地数据训练神经网络以生成针对机器学习模型的模型更新;
联合学习加速器,用于执行与所述训练相关联的一个或多个联合学习工作负载;以及
模型更新提供器电路,用于将所述模型更新传送到聚合器设备。
2.如权利要求1所述的边缘设备,其中,所述联合学习加速器包括所述模型更新提供器电路。
3.如权利要求1所述的边缘设备,其中,所述联合学习加速器包括用于对所述本地数据加密的数据加密器电路。
4.如权利要求1-3中的任一项所述的边缘设备,进一步包括联合学习加速器管理电路,用于生成指令以使所述联合学习加速器执行一个或多个联合学习工作负载。
5.如权利要求4所述的边缘设备,其中,所述联合学习加速器管理电路包括联合学习加速器接口电路。
6.如权利要求4所述的边缘设备,其中,所述联合学习加速器管理电路包括用于标识要由所述联合学习加速器执行的工作负载的工作负载分析器电路。
7.如权利要求1所述的边缘设备,进一步包括用于从所述聚合器设备接收所述机器学习模型的模型接收器电路。
8.如权利要求1所述的边缘设备,其中,所述联合学习加速器用于基于以下至少一项来执行一个或多个数据处理操作:与所述本地数据相关联的数据格式、与所述本地数据相关联的数据类型、或与所述本地数据相关联的数据稀疏度水平。
9.包括指令的至少一种计算机可读存储介质,所述指令当被执行时使边缘系统中的训练设备的处理器电路至少执行以下步骤:
使联合学习加速器执行与生成模型更新相关联的工作负载;
使用与所述训练设备相关联的本地数据训练神经网络以生成所述模型更新;以及
使所述模型更新被传送到所述边缘系统中的聚合器设备。
10.如权利要求9所述的至少一种计算机可读存储介质,其中,所述指令当被执行时用于使所述联合学习加速器执行以下一个或多个步骤:对所述本地数据加密;或过滤所述本地数据。
11.如权利要求9或10所述的至少一种计算机可读存储介质,其中,所述指令当被执行时使所述处理器电路基于用于发起所述工作负载的触发事件来将所述工作负载标识为要由所述联合学习加速器执行的工作负载。
12.如权利要求11所述的至少一种计算机可读存储介质,其中,所述触发事件包括由所述训练设备接收到机器学习模型。
13.如权利要求11所述的至少一种计算机可读存储介质,其中,所述触发事件包括生成所述模型更新。
14.如权利要求9或10所述的至少一种计算机可读存储介质,其中,所述指令当被执行时使所述处理器电路使所述联合学习加速器传送所述模型更新。
15.一种用于神经网络的联合训练的边缘设备,所述边缘设备包括:
用于使用本地数据训练所述神经网络以生成模型更新的装置;
用于加速与所述神经网络的训练相关联的至少一个工作负载的装置;以及
用于将所述模型更新提供给聚合器设备的装置。
16.如权利要求15所述的边缘设备,其中,所述加速装置用于对所述本地数据加密。
17.如权利要求15所述的边缘设备,进一步包括用于管理所述加速装置的装置,所述用于管理所述加速装置的装置用于使所述加速装置执行所述工作负载。
18.如权利要求15所述的边缘设备,其中,所述加速装置包括所述模型更新提供装置。
19.一种用于在边缘系统的边缘设备处的神经网络的联合训练的方法,所述方法包括:
使联合学习加速器执行与生成模型更新相关联的工作负载;
使用与所述边缘设备相关联的本地数据训练所述神经网络以生成所述模型更新;以及
使所述模型更新被传送到所述边缘系统中的聚合器设备。
20.如权利要求19所述的方法,进一步包括:使所述联合学习加速器执行以下一个或多个步骤:对所述本地数据加密;或过滤所述本地数据。
21.如权利要求19所述的方法,进一步包括:基于用于发起所述工作负载的触发事件,将所述工作负载标识为要由所述联合学习加速器执行的工作负载。
22.如权利要求21所述的方法,其中,所述触发事件包括由所述边缘设备接收到机器学习模型。
23.如权利要求21所述的方法,其中,所述触发事件包括生成所述模型更新。
24.如权利要求19或20所述的方法,进一步包括:使所述联合学习加速器传送所述模型更新。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/484,898 US20230100152A1 (en) | 2021-09-24 | 2021-09-24 | Federated learning accelerators and related methods |
US17/484,898 | 2021-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115860132A true CN115860132A (zh) | 2023-03-28 |
Family
ID=85477043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211017971.8A Pending CN115860132A (zh) | 2021-09-24 | 2022-08-24 | 联合学习加速器和相关方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230100152A1 (zh) |
CN (1) | CN115860132A (zh) |
DE (1) | DE102022118495A1 (zh) |
-
2021
- 2021-09-24 US US17/484,898 patent/US20230100152A1/en active Pending
-
2022
- 2022-07-25 DE DE102022118495.1A patent/DE102022118495A1/de active Pending
- 2022-08-24 CN CN202211017971.8A patent/CN115860132A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022118495A1 (de) | 2023-03-30 |
US20230100152A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220222030A1 (en) | Methods and apparatus to improve screen sharing based on identification of irrelevant video frames from interactive context | |
US20210319319A1 (en) | Methods and apparatus to implement parallel architectures for neural network classifiers | |
US20240089533A1 (en) | Methods and apparatus to identify an episode number based on fingerprint and matched viewing information | |
EP4109275A1 (en) | Methods and apparatus to transmit central processing unit performance information to an operating system | |
EP4109345A1 (en) | Methods and apparatus to load data within a machine learning accelerator | |
US20230325185A1 (en) | Methods and apparatus to accelerate matrix operations using direct memory access | |
US20230214384A1 (en) | Methods and apparatus to identify electronic devices | |
US20220113781A1 (en) | Methods and apparatus for bi-directional control of computing unit frequency | |
US20230035197A1 (en) | Methods and apparatus to predict an impact of a source code change on a cloud infrastructure | |
US20220334888A1 (en) | Methods and apparatus to synchronize threads | |
US20220114451A1 (en) | Methods and apparatus for data enhanced automated model generation | |
US12001382B2 (en) | Methods, apparatus, and articles of manufacture to generate command lists to be offloaded to accelerator circuitry | |
US20220012005A1 (en) | Apparatus, computer-readable medium, and method for high-throughput screen sharing | |
US11595275B2 (en) | Methods and apparatus to determine main pages from network traffic | |
US20220043687A1 (en) | Methods and apparatus for scalable multi-producer multi-consumer queues | |
CN115860132A (zh) | 联合学习加速器和相关方法 | |
US20240169094A1 (en) | Mitigating private data leakage in a federated learning system | |
WO2024124365A1 (en) | Methods and apparatus to perform convert operations using direct memory access | |
US20240146639A1 (en) | Methods and apparatus to reduce emissions in guided network environments | |
US20240241730A1 (en) | Multi device media management | |
US20240220780A1 (en) | Methods, systems, articles of manufacture, and apparatus to determine field access readiness | |
WO2024108382A1 (en) | Methods and apparatus to perform many-to-one feature distillation in neural networks | |
US20240020428A1 (en) | Methods and apparatus for system firewalls | |
US20230244525A1 (en) | Methods and apparatus for an xpu-aware dynamic compute scheduling framework | |
US20240111869A1 (en) | Methods and apparatus to disable select processes for malware prevention |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |