CN115130659A - 用于操作系统内核数据路径的自适应神经网络 - Google Patents

用于操作系统内核数据路径的自适应神经网络 Download PDF

Info

Publication number
CN115130659A
CN115130659A CN202210762014.1A CN202210762014A CN115130659A CN 115130659 A CN115130659 A CN 115130659A CN 202210762014 A CN202210762014 A CN 202210762014A CN 115130659 A CN115130659 A CN 115130659A
Authority
CN
China
Prior art keywords
network
neural network
branch
kernel
snapshot
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
Application number
CN202210762014.1A
Other languages
English (en)
Inventor
孙军欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhixing Technology Co Ltd
Original Assignee
Shenzhen Zhixing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhixing Technology Co Ltd filed Critical Shenzhen Zhixing Technology Co Ltd
Priority to CN202210762014.1A priority Critical patent/CN115130659A/zh
Publication of CN115130659A publication Critical patent/CN115130659A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0409Adaptive resonance theory [ART] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及人工智能和计算机系统技术领域,具体涉及一种用于操作系统内核数据路径的自适应神经网络。该自适应神经网络包括:第一网络分支,部署在内核空间并且通过第一路径与至少一种内核数据路径功能相对应的内核网络模块连通,以及配置为:通过第一路径从内核网络模块获取输入数据并将对应的推理结果发送给该内核网络模块;第二网络分支,部署在用户空间并且通过从内核空间到用户空间的第二路径与第一网络分支连通,以及配置为:通过第二路径获取第一网络分支相关联的训练数据并且自适应地生成自适应神经网络的模型调参信息。如此实现了对该自适应神经网络的模型推理和自适应模型调参进行解耦,有利于降低通信开销和应对动态变化的工作需求。

Description

用于操作系统内核数据路径的自适应神经网络
技术领域
本申请涉及人工智能和计算机系统技术领域,尤其涉及操作系统技术领域,具体涉及一种用于操作系统内核数据路径的自适应神经网络。
背景技术
随着计算机系统的软件和硬件相关技术的发展,以及如智能手机、智能平板、智能手环和其它智能化便携设备或智能化可穿戴设备的发展,需要在各种不同的设备上装载操作系统并且这些操作系统需要应对复杂多变且可能不停变化的工作需求,例如操作系统可能面对不同的工作量或者不同的网络通讯条件或者硬件条件的变化或者新的算法框架等。机器学习(Machine Learning,ML)技术被用来提升及确保操作系统在持续变化的环境中的表现。但是,现有的操作系统的框架及内部的组件的部署是基于过去的设计,无法很好地与ML技术结合从而应对动态变化的工作需求。
为此,需要一种用于操作系统内核数据路径的自适应神经网络,能够灵活应对可能部署在不同的设备上的操作系统各自面对的复杂多变且动态变化的工作需求。
发明内容
第一方面,本申请实施例提供了一种自适应神经网络,用于操作系统的内核数据路径。所述操作系统包括内核空间和用户空间,所述操作系统的内核数据路径通过部署在所述操作系统的内核空间的内核网络模块提供至少一种内核数据路径功能,所述自适应神经网络包括:第一网络分支,部署在所述内核空间并且通过第一路径与所述至少一种内核数据路径功能相对应的内核网络模块连通,以及配置为:通过所述第一路径从该内核网络模块获取输入数据并将与该输入数据对应的推理结果发送给该内核网络模块,该推理结果用于优化所述至少一种内核数据路径功能;第二网络分支,部署在所述用户空间并且通过从所述内核空间到所述用户空间的第二路径与所述第一网络分支连通,以及配置为:通过所述第二路径获取所述第一网络分支相关联的训练数据并且自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支的推理功能。
第一方面所描述的技术方案,通过对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支在内核空间和第二网络分支在用户空间,以及通过第一路径和第二路径来分别满足模型推理所对应的快速执行的要求和自适应模型调参所对应的高精度、密集计算的要求,实现了避免因资源竞争而导致的对内核数据路径功能的影响,降低通信开销和控制开销,以及降低开发难度和提升模型性能,从而有利于应对动态变化的工作需求。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述模型调参信息包括以下至少一项:所述第一网络分支的模型结构、所述第一网络分支的模型参数和所述第一网络分支的权重系数,其中所述优化所述第一网络分支的推理功能是基于所述模型调参信息调整所述第一网络分支。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入教师神经网络并解析所述教师神经网络的输出从而自适应地生成所述模型调参信息,其中所述第一网络分支是相对于所述教师模型的学生模型。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入生成对抗性神经网络并通过比较所述生成对抗性神经网络所生成的子网络从而自适应地生成所述模型调参信息,其中所述模型调参信息是从所述生成对抗性神经网络所生成的子网络中选择。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二网络分支包括与所述用户空间兼容的参考神经网络,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入所述参考神经网络并解析所述参考神经网络的输出从而自适应地生成所述模型调参信息,所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照,所述网络快照与所述内核空间兼容,其中所述优化所述第一网络分支的推理功能是基于所述网络快照。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参考神经网络是基于与所述用户空间兼容的机器学习框架且采用以下任意一项:TensorFlow,PyTorch、GYM。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,对所述参考神经网络进行整数量化操作包括对所述参考神经网络的输入输出按照缩放因子进行缩放化和量化。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,对所述参考神经网络进行代码转换操作包括:针对所述参考神经网络所包括的每一个层,基于该层的类型选择与该层的类型对应的预设层模板并按照该预设层模板将该层的模型参数和权重系数转换为与该层对应的代码实例,然后整合与所述参考神经网络所包括的每一个层分别对应的代码实例得到与所述参考神经网络对应的源代码文件,其中所述网络快照是基于所述源代码文件编译得到。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参考神经网络包括至少一个线性层和/或至少一个全连接层,其中,与所述至少一个线性层对应的预设层模板包括所述至少一个线性层的计算逻辑且与所述至少一个线性层对应的代码实例与所述内核空间兼容,与所述至少一个全连接层对应的预设层模板包括所述至少一个全连接层的计算逻辑且与所述至少一个全连接层对应的代码实例与所述内核空间兼容。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述参考神经网络还包括至少一个非线性层,其中,与所述至少一个非线性层对应的预设层模板是用于逼近所述至少一个非线性层的计算逻辑的查找表且与所述至少一个非线性层对应的代码实例与所述内核空间兼容。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二网络分支还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时将所述网络快照发送到所述内核空间,当评估不通过时不将所述网络快照发送到所述内核空间。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述网络快照在生成后被发送到所述第一网络分支,所述第一网络分支还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时基于所述网络快照优化所述第一网络分支的推理功能,当评估不通过时不进行优化。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支相关联的训练数据包括一个或者多个训练数据批次,所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支所获取的输入数据和相应推理结果。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述一个或者多个训练数据批次包括在由一个或者多个所述特定时间间隔组成的时间段内所述第一网络分支所获取的所有输入数据和相应推理结果。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支或者用所述网络快照替代所述第一网络分支。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支包括第一副本和第二副本,该第一副本和该第二副本中的其中一个被指定为活跃副本而另一个被指定为待机副本,其中,所述第一网络分支的第一副本和第二副本中被指定为活跃副本的一方用于获取该输入数据并计算与该输入数据对应的推理结果。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支的第一副本和第二副本中被指定为待机副本的一方后指定该方为新的活跃副本并指定另一方为新的待机副本。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支包括活跃版本和待机版本,所述第一网络分支的活跃版本用于获取该输入数据并计算与该输入数据对应的推理结果,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支的待机版本或者用所述网络快照替代所述第一网络分支的待机版本从而得到更新后的待机版本;当所述第一网络分支的活跃版本不被占用时,指定所述更新后的待机版本为所述第一网络分支的新的活跃版本。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,在指定所述更新后的待机版本为所述第一网络分支的新的活跃版本之后,生成相对于所述第一网络分支的新的活跃版本的所述第一网络分支的新的待机版本。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一路径和所述第二路径分别是快速路径和慢速路径。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支相关联的训练数据包括所述第一网络分支所获取的输入数据和与该输入数据对应的推理结果。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二网络分支利用与所述用户空间兼容的库资源和机器学习算法以便自适应地生成所述模型调参信息。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述至少一种内核数据路径功能包括以下至少一项:拥塞控制、流量分配、负载均衡、包过滤、调度、排队。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支相关联的训练数据包括以下至少一项:拥塞信号、流状态、流发送率。
第二方面,本申请实施例提供了一种自适应神经网络,用于优化计算平台的至少一种受限控制功能。所述计算平台包括第一执行环境和第二执行环境,所述至少一种受限控制功能在所述第一执行环境下实现并且不能在所述第二执行环境下实现,所述自适应神经网络包括:第一网络分支,部署在所述计算平台的所述第一执行环境并且通过第一路径与部署在所述第一执行环境的与所述至少一种受限控制功能对应的模块连通,以及配置为:通过所述第一路径从该模块获取输入数据并将与该输入数据对应的推理结果发送给该模块,该推理结果用于优化所述至少一种受限控制功能;第二网络分支,部署在所述计算平台的所述第二执行环境,并且配置为:通过从所述第一执行环境到所述第二执行环境的第二路径获取所述第一网络分支相关联的训练数据以便自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支的推理功能,其中所述第一网络分支相关联的训练数据包括所述第一网络分支所获取的输入数据和与该输入数据对应的推理结果。
第二方面所描述的技术方案,通过对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支在第一执行环境和第二网络分支在第二执行环境,以及通过第一路径和第二路径来分别满足模型推理所对应的快速执行的要求和自适应模型调参所对应的高精度、密集计算的要求,实现了避免因资源竞争而导致的影响,降低通信开销和控制开销,以及降低开发难度和提升模型性能,从而有利于应对动态变化的工作需求。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二网络分支包括与所述第二执行环境兼容的参考神经网络,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入所述参考神经网络并解析所述参考神经网络的输出从而自适应地生成所述模型调参信息,所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照,所述网络快照与所述第一执行环境兼容,其中所述优化所述第一网络分支的推理功能是基于所述网络快照。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,对所述参考神经网络进行代码转换操作包括:针对所述参考神经网络所包括的每一个层,基于该层的类型选择与该层的类型对应的预设层模板并按照该预设层模板将该层的模型参数和权重系数转换为与该层对应的代码实例,然后整合与所述参考神经网络所包括的每一个层分别对应的代码实例得到与所述参考神经网络对应的源代码文件,其中所述网络快照是基于所述源代码文件编译得到。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述网络快照在生成后被发送到所述第一网络分支,所述第一网络分支还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时基于所述网络快照优化所述第一网络分支的推理功能,当评估不通过时不进行优化。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支相关联的训练数据包括一个或者多个训练数据批次,所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支所获取的输入数据和相应推理结果。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一网络分支包括活跃版本和待机版本,所述第一网络分支的活跃版本用于获取该输入数据并计算与该输入数据对应的推理结果,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支的待机版本或者用所述网络快照替代所述第一网络分支的待机版本从而得到更新后的待机版本;当所述第一网络分支的活跃版本不被占用时,指定所述更新后的待机版本为所述第一网络分支的新的活跃版本。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一执行环境和所述第二执行环境分别是内核空间和用户空间。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一执行环境和所述第二执行环境分别是CPU和FPGA。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1示出了本申请实施例提供的一种实施方式的用于操作系统的内核数据路径的自适应神经网络的框图。
图2示出了本申请实施例提供的另一种实施方式的用于操作系统的内核数据路径的自适应神经网络的框图。
图3示出了本申请实施例提供的用于自适应神经网络的运行方法的电子设备的框图。
图4示出了本申请实施例提供的一种实施方式的用于优化计算平台的受限控制功能的自适应神经网络的框图。
具体实施方式
本申请实施例为了解决现有的操作系统的框架及内部组件部署难以与ML技术结合从而应对动态变化的工作需求的技术难题,提出了一种用于操作系统内核数据路径的自适应神经网络。其中,所述操作系统包括内核空间和用户空间,所述操作系统的内核数据路径通过部署在所述操作系统的内核空间的内核网络模块提供至少一种内核数据路径功能,所述自适应神经网络包括:第一网络分支,部署在所述内核空间并且通过第一路径与所述至少一种内核数据路径功能相对应的内核网络模块连通,以及配置为:通过所述第一路径从该内核网络模块获取输入数据并将与该输入数据对应的推理结果发送给该内核网络模块,该推理结果用于优化所述至少一种内核数据路径功能;第二网络分支,部署在所述用户空间并且通过从所述内核空间到所述用户空间的第二路径与所述第一网络分支连通,以及配置为:通过所述第二路径获取所述第一网络分支相关联的训练数据并且自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支的推理功能。本申请实施例具有以下有益技术效果:通过对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支在内核空间和第二网络分支在用户空间,以及通过第一路径和第二路径来分别满足模型推理所对应的快速执行的要求和自适应模型调参所对应的高精度、密集计算的要求,实现了避免因资源竞争而导致的对内核数据路径功能的影响,降低通信开销和控制开销,以及降低开发难度和提升模型性能,从而有利于应对动态变化的工作需求。
本申请实施例可用于以下应用场景,包括但是不限于,计算机系统如Linux系统或者类似的操作系统、装载操作系统的智能化设备如智能手机、智能平板、智能手环和其它智能化便携设备或智能化可穿戴设备、带有内核空间或者类似区域划分的计算平台等。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种实施方式的用于操作系统的内核数据路径的自适应神经网络的框图。如图1所示,所述操作系统包括内核空间102和用户空间104。所述操作系统的内核数据路径通过部署在所述操作系统的内核空间102的内核网络模块120提供至少一种内核数据路径功能。所述自适应神经网络包括:第一网络分支110,部署在所述内核空间102并且通过第一路径130与所述至少一种内核数据路径功能相对应的内核网络模块120连通,以及配置为:通过所述第一路径130从该内核网络模块120获取输入数据并将与该输入数据对应的推理结果发送给该内核网络模块120,该推理结果用于优化所述至少一种内核数据路径功能;第二网络分支112,部署在所述用户空间104并且通过从所述内核空间102到所述用户空间104的第二路径132与所述第一网络分支110连通,以及配置为:通过所述第二路径132获取所述第一网络分支110相关联的训练数据并且自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支110的推理功能。
请参阅图1,以linux系统为代表的操作系统,区分对待内核空间和用户空间。用户空间内的应用程序和进程有较多可用的库资源也有较多可用的存储空间,但是在端口访问、存储操作以及CPU调用等方面受到限制。内核空间的进程不受到在端口访问、存储操作以及CPU调用等方面的限制,但是具有较少可用的库资源也对应有限的存储空间。运行在用户空间的进程或者说处于用户态的进程,要实现内核数据路径功能则必须通过例如系统调用、软中断及硬中断等方式切换到内核空间进行。操作系统的内核数据路径(kerneldatapath)指的是位于高层面的应用和低层面的网络硬件之间的数据路径并且是部署在操作系统(operational system,OS)的内核空间。操作系统的内核数据路径一般通过调用相应的内核网络模块来实现特定的内核数据路径功能。示例性的内核数据路径功能包括如拥塞控制(congestion control,CC)、流量分配(flow scheduling)和负载均衡(loadbalancing)等,还可以包括如包过滤(packet filtering)、调度(scheduling)、排队(queueing)。这些示例性的内核数据路径功能的运行表现是保证操作系统能适应变化的工作需求特别是变化的网络环境的关键。结合ML技术或者ML算法,可以将能反映变化的工作需求的输入数据导入已经训练好的机器学习模型例如神经网络模型,然后利用输出的推理结果来给出如何调整这些示例性的内核数据路径功能的表现的指示,或者说利用机器学习模型来预测应该如何调整内核数据路径功能的表现(例如指示如何调整相应的内核网络模块或者指示如何配置相应的资源等)。另外,已经训练好的机器学习模型意味着已经利用已知的训练数据集(还可能利用已知的测试数据集)完成对机器学习模型的调优。但是考虑到已知的训练数据集可能不一定能很好反映实际中需要面对的工作需求,例如可能出现模型泛化能力不足、欠拟合、过拟合、实际中的工作需求如网络环境的变化超出了设计时的预测等,这些都可能导致机器学习模型所给出的推理结果无法带来预期的对内核数据路径功能的运行表现的提升效果。自适应神经网络(adaptive neural network)可以同时做到模型推理以及自适应模型调参,也就是一方面提供相应的推理结果来保证内核数据路径功能的运行表现,另一方面自适应地进行调优从而保持推理的准确性。自适应神经网络一般是通过收集数据再训练神经网络模型来实现自适应学习。为了实现自适应神经网络的自适应学习或者说自适应模型调参方面,需要在分配给模型推理方面的资源的基础上还分配额外的存储资源和算力资源。考虑到上面提到的对内核空间和用户空间的区分对待以及要在内核空间和用户空间之间进行数据和控制信息传输所受到的限制,一方面,如果将自适应神经网络全部部署在内核空间则会导致其与内核数据路径功能争夺有限的内核空间的资源,并且自适应模型调参的运行往往涉及比较复杂的算法且占用大量算力资源从而影响内核数据路径功能;另一方面,如果将自适应神经网络全部部署在用户空间则意味着需要将自适应神经网络输出的推理结果从用户空间传输到内核空间给内核网络模块以及将收集的数据从内核空间传输到用户空间用于自适应模型调参,这样必然导致频繁的大量的在内核空间和用户空间之间进行数据和控制信息传输,从而带来巨大的通信开销和控制开销。此外,为了构建自适应神经网络特别是其中自适应学习或者说自适应模型调参方面,如果能借助成熟的开发工具如库资源、程序代码等,有助于降低开发难度和提升模型性能,但是这些现成资源大部分都是设计为在用户空间中部署也就是与用户空间兼容(或者说适配用户空间)但是与内核空间不兼容(或者说不适配内核空间)。此外,在实际应用中,自适应神经网络一般需要持续地进行模型推理也就是需要频繁地与部署在内核空间的内核网络模块交互,而自适应模型调参方面则可以相对地以较低的频率进行例如间隔地进行或者时而进行,这意味着模型推理和自适应模型调参这两方面可以进行一定程度上的解耦。本申请实施例所提供的自适应神经网络,可以克服上述各种挑战并且能很好应对上面提到的对内核空间和用户空间的区分对待以及要在内核空间和用户空间之间进行数据和控制信息传输所受到的限制,下面进一步详细说明。
请继续参阅图1,图1所示的自适应神经网络包括第一网络分支110和第二网络分支112。其中第一网络分支110部署在内核空间102并且用于实现该自适应神经网络的模型推理也就是通过所述第一路径130从该内核网络模块120获取输入数据并将与该输入数据对应的推理结果发送给该内核网络模块120,该推理结果用于优化所述至少一种内核数据路径功能。第二网络分支112部署在用户空间104并且用于实现该自适应神经网络的自适应模型调参,也就是获取所述第一网络分支110相关联的训练数据并且自适应地生成所述自适应神经网络的模型调参信息。应当注意的是,通过将第一网络分支110部署在内核空间102并且用于实现该自适应神经网络的模型推理以及将第二网络分支112部署在用户空间104并且用于实现该自适应神经网络的自适应模型调参,这意味着不需要占用内核空间102的资源来支持第二网络分支112从而有效避免了因资源竞争而导致的对内核数据路径功能的影响,也意味着可以仅在内核空间102内实现第一网络分支110和内核网络模块120之间的交互从而有效避免了在内核空间102和用户空间104之间进行数据和控制信息传输而带来的通信开销和控制开销。并且,部署在用户空间104的第二网络分支112可以利用与用户空间104兼容的大量成熟的开发工具和现有资源,例如库资源、机器学习框架、程序代码等,从而可以更好地构建第二网络分支112特别是提升其中的自适应学习的性能表现。如此,实现了该自适应神经网络的模型推理和自适应模型调参这两方面的解耦,使得需要快速执行的模型推理所对应的第一网络分支110部署在更匹配这些要求(快速执行)的内核空间102,同时使得需要高精度和密集计算的自适应模型调参所对应的第二网络分支112部署在更匹配这些要求(高精度、密集计算)的用户空间104。具体地,通过这样的解耦和部署方式,还可以利用内核空间102内的第一路径130实现第一网络分支110与所述至少一种内核数据路径功能相对应的内核网络模块120连通,以及利用从所述内核空间102到所述用户空间104的第二路径132实现第二网络分支112和第一网络分支110的连通,进而可以安排第一路径130作为快速路径而第二路径132作为慢速路径,也就是第一路径130和第二路径132分别是快速路径和慢速路径,更有利于分别满足第一路径130所对应的快速执行的要求和第二路径132所对应的高精度、密集计算的要求。总之,通过对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支在内核空间和第二网络分支在用户空间,以及通过第一路径和第二路径来分别满足模型推理所对应的快速执行的要求和自适应模型调参所对应的高精度、密集计算的要求,实现了避免因资源竞争而导致的对内核数据路径功能的影响,降低通信开销和控制开销,以及降低开发难度和提升模型性能,从而有利于应对动态变化的工作需求。
应当理解的是,图1中所示出的内核网络模块120仅为示例性,该操作系统的内核空间102可以部署一个、两个、三个或者任意数量的内核网络模块,并且该操作系统的内核数据路径通过这些任意数量的内核网络模块提供至少一种内核数据路径功能。并且,该操作系统的内核数据路径可以提供一种、两种或者任意多种内核数据路径功能。其中单个内核网络模块一般情况下提供一种内核数据路径功能,也就是说,该操作系统的内核数据路径所提供的多种内核数据路径功能一般与该操作系统的内核数据路径所利用的内核网络模块一一对应。在一些实施例中,也可能存在单个内核网络模块可以提供两种或者更多种内核数据路径功能的情况。并且,一般情况下,图1所示的自适应神经网络可用于优化该操作系统所提供的所有内核数据路径功能。但是,在一些实施例中,图1所示的自适应神经网络可用于优化该操作系统所提供的所有内核数据路径功能中的一部分内核数据路径功能,或者说,图1所示的自适应神经网络提供用于优化被选择的这一部分内核数据路径功能所对应的内核网络模块的推理结果。
请继续参阅图1,所述模型调参信息包括以下至少一项:所述第一网络分支110的模型结构、所述第一网络分支110的模型参数和所述第一网络分支110的权重系数。其中所述优化所述第一网络分支110的推理功能是基于所述模型调参信息调整所述第一网络分支110,例如调整第一网络分支110的模型参数或者权重系数。所述第一网络分支110相关联的训练数据包括所述第一网络分支110所获取的输入数据和与该输入数据对应的推理结果。此外,所述第二网络分支112利用与所述用户空间104兼容的库资源和机器学习算法以便自适应地生成所述模型调参信息。上面提到的示例性的内核数据路径功能,其中的一种或者多种或全部都可以被包括在图1所提及的所述至少一种内核数据路径功能。所述至少一种内核数据路径功能包括以下至少一项:拥塞控制、流量分配、负载均衡、包过滤、调度、排队。应当理解的是,所述至少一种内核数据路径功能还可能包括其它任意合适的功能。所述第一网络分支110相关联的训练数据包括以下至少一项:拥塞信号、流状态、流发送率。
请继续参阅图1,该自适应神经网络的自适应模型调参方面可以基于任意合适的自适应算法和机器学习技术。在一种可能的实施方式中,所述第二网络分支112通过将所述第一网络分支110相关联的训练数据导入教师神经网络并解析所述教师神经网络的输出从而自适应地生成所述模型调参信息,其中所述第一网络分支112是相对于所述教师模型的学生模型。这意味着可以利用教师神经网络和学生模型之间的关系来生成该模型调参信息,并且可以借助如知识蒸馏(knowledge distillation)等来实现从教师神经网络提取有用的知识并传授给作为学生模型的第一网络分支112,从而保持推理的准确性。在一种可能的实施方式中,所述第二网络分支112通过将所述第一网络分支110相关联的训练数据导入生成对抗性神经网络(Generative Adversarial Networks,GAN)并通过比较所述生成对抗性神经网络所生成的子网络从而自适应地生成所述模型调参信息,其中所述模型调参信息是从所述生成对抗性神经网络所生成的子网络中选择。这意味着可以利用生成对抗性神经网络或者类似的网络结构、算法来生成该模型调参信息,从而保持推理的准确性。
请继续参阅图1,该自适应神经网络的自适应模型调参方面可以基于参考神经网络。在一种可能的实施方式中,所述第二网络分支112包括与所述用户空间104兼容的参考神经网络(未示出),所述第二网络分支112通过将所述第一网络分支110相关联的训练数据导入所述参考神经网络并解析所述参考神经网络的输出从而自适应地生成所述模型调参信息,所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照,所述网络快照与所述内核空间102兼容,其中所述优化所述第一网络分支110的推理功能是基于所述网络快照。这里,参考神经网络的作用是用于生成所述模型调参信息,包括其中的网络快照。应当注意的是,网络快照与内核空间102兼容因此适合在内核空间102优化第一网络分支110,而参考神经网络则是与用户空间104兼容因此适合利用与用户空间104兼容的各种现有资源来构建参考神经网络并生成模型调参信息。参考神经网络可以与第一网络分支110属于相同的或者不同的类型,采用相同的或者不同的架构,只要根据参考神经网络而自适应地生成的模型调参信息,其所包括的网络快照能用于优化第一网络分支110的推理功能。这也就意味着可以更加灵活地广泛地利用与用户空间104兼容的各种成熟的工具、库、代码、模组等。在一些实施例中,所述参考神经网络是基于与所述用户空间104兼容的机器学习框架且采用以下任意一项:TensorFlow,PyTorch、GYM。应当理解的是,还可以基于任意其它合适的机器学习框架或者机器学习算法。在一些实施例中,对所述参考神经网络进行整数量化操作包括对所述参考神经网络的输入输出按照缩放因子进行缩放化和量化。这里,只对输出进行整数量化操作,例如将用于拥塞控制的自适应神经网络的第二网络分支112的参考神经网络的输出(目标发送率)转化为量化整数,如0或者某个速率,可能导致准确率丢失。为此,通过对输入输出都按照缩放因子进行缩放化和量化,特别是在量化之前进行输入输出的缩放化且按照相同的缩放因子,可以有效降低准确率的丢失。在一些实施例中,对所述参考神经网络进行代码转换操作包括:针对所述参考神经网络所包括的每一个层,基于该层的类型选择与该层的类型对应的预设层模板并按照该预设层模板将该层的模型参数和权重系数转换为与该层对应的代码实例,然后整合与所述参考神经网络所包括的每一个层分别对应的代码实例得到与所述参考神经网络对应的源代码文件,其中所述网络快照是基于所述源代码文件编译得到。这里,层类型可以是如全连接层、卷积层、池化层、激活层等划分,并为每个层类型设计相应的预设层模板以体现该层的计算逻辑,进而可以转换得到该层的代码实例。最后通过整合每个层的代码实例得到源代码文件,可以通过编译源代码文件得到网络快照。这样有利于简化生成模型调参信息包括其中的网络快照的过程,并且有利于结合内核空间需求提供预设层模板从而更好地进行转换。在一些实施例中,所述参考神经网络包括至少一个线性层和/或至少一个全连接层,其中,与所述至少一个线性层对应的预设层模板包括所述至少一个线性层的计算逻辑且与所述至少一个线性层对应的代码实例与所述内核空间兼容,与所述至少一个全连接层对应的预设层模板包括所述至少一个全连接层的计算逻辑且与所述至少一个全连接层对应的代码实例与所述内核空间兼容。在一些实施例中,所述参考神经网络还包括至少一个非线性层,其中,与所述至少一个非线性层对应的预设层模板是用于逼近所述至少一个非线性层的计算逻辑的查找表且与所述至少一个非线性层对应的代码实例与所述内核空间兼容。应当理解的是,除了查找表,还可以采用多项式拟合、回归算法、分段式拟合或者其它任意合适的数学工具来逼近非线性层的计算逻辑,从而达到简化非线性函数例如tanh函数所对应的代码实例的目的。
请继续参阅图1,该自适应神经网络的模型调参信息,例如网络快照,在生成之后不是必然地用于优化第一网络分支110的推理功能。可以通过评估机制来判断是否需要优化后者说是否值得优化。因为每次优化第一网络分支110的推理功能,都涉及到将用于优化的信息从用户空间104传输到内核空间102以及需要占用内核空间102的资源来进行优化,因此通过评估机制可以提高资源利用效率和改进系统性能。在一种可能的实施方式中,所述第二网络分支112还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时将所述网络快照发送到所述内核空间102,当评估不通过时不将所述网络快照发送到所述内核空间102。这里,网络快照在评估通过后才被发送到内核空间102,如果评估不通过则不发送到内核空间102也就不会用于优化第一网络分支110的推理功能,有利于节省数据交互的开销。在一种可能的实施方式中,所述网络快照在生成后被发送到所述第一网络分支110,所述第一网络分支110还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时基于所述网络快照优化所述第一网络分支110的推理功能,当评估不通过时不进行优化。这里,评估机制通过第一网络分支110来实现,可以通过集成于第一网络分支110的模块或者单独提供的模块进行评估。如此有利于降低对内核空间102的资源的占用。其中,基于用户自定义指标评估所述网络快照的准确性可以理解为筛选出最优表现并淘汰不稳定的。用户自定义指标可以是如训练损失值等指标用于确定聚合等。保真度损失评估可以理解为,面对相同的输入数据,部署在用户空间104的参考神经网络和与内核空间102兼容的网络快照各自的输出之间的差距。可以考虑针对多个输入数据,这两者各自的输出之间的差距中的最小差距,如果该最小差距都超出了某个预设阈值例如用户设定参数,则意味着这两者的输出差距较大,也就是说保真度损失评估不通过。如此,通过基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,可以实现受控地进行优化第一网络分支110的推理功能,有利于提高资源利用效率和系统性能。
请继续参阅图1,该自适应神经网络的自适应模型调参的运行涉及到从内核空间102向用户空间104传输训练数据,例如拥塞信号、流状态、流发送率等。这些训练数据可以是在每次接收到新的数据包后就被发送,也可以按照批次收集起来后再一起发送。在一种可能的实施方式中,所述第一网络分支110相关联的训练数据包括一个或者多个训练数据批次,所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支110所获取的输入数据和相应推理结果。这里,特定时间间隔可以是在100毫秒到1000毫秒之间。特定数据包个数可以是任意合适数量,例如1000个数据包。如此,通过按照批次收集训练数据并进行自适应模型调参,节省了数据交互的开销,而且依然保持了良好的性能表现。在一些实施例中,所述一个或者多个训练数据批次包括在由一个或者多个所述特定时间间隔组成的时间段内所述第一网络分支110所获取的所有输入数据和相应推理结果。
请继续参阅图1,该自适应神经网络的自适应模型调参的运行还涉及到对部署在内核空间102的第一网络分支110的推理功能进行优化。上面提到,该自适应神经网络的自适应模型调参方面可以基于参考神经网络,并且所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照。在一种可能的实施方式中,所述优化所述第一网络分支110的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支或者用所述网络快照替代所述第一网络分支。这意味着直接用网络快照进行调整或者进行替换,也就意味着在优化进行时需要暂停第一网络分支110的推理。在一种可能的实施方式中,所述第一网络分支110包括第一副本和第二副本,该第一副本和该第二副本中的其中一个被指定为活跃副本而另一个被指定为待机副本,其中,所述第一网络分支110的第一副本和第二副本中被指定为活跃副本的一方用于获取该输入数据并计算与该输入数据对应的推理结果。如此,通过提供第一副本和第二副本,并用其中被指定为活跃副本的一方进行推理,使得优化和推理可以同时进行。在一些实施例中,所述优化所述第一网络分支110的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支110的第一副本和第二副本中被指定为待机副本的一方后指定该方为新的活跃副本并指定另一方为新的待机副本。如此,在对第一副本和第二副本中被指定为待机副本的一方进行调整优化的同时,还可以通过第一副本和第二副本中被指定为活跃副本的一方进行推理,从而有效提高了推理和优化的效率,也避免了暂停推理或者说施加锁定以及由此导致的性能下降。在一种可能的实施方式中,所述第一网络分支包括活跃版本和待机版本,所述第一网络分支的活跃版本用于获取该输入数据并计算与该输入数据对应的推理结果,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支的待机版本或者用所述网络快照替代所述第一网络分支的待机版本从而得到更新后的待机版本;当所述第一网络分支的活跃版本不被占用时,指定所述更新后的待机版本为所述第一网络分支的新的活跃版本。如此,通过对待机版本进行调整优化同时还通过活跃版本进行推理,从而有效提高了推理和优化的效率,也避免了暂停推理或者说施加锁定以及由此导致的性能下降。在一些实施例中,在指定所述更新后的待机版本为所述第一网络分支的新的活跃版本之后,生成相对于所述第一网络分支的新的活跃版本的所述第一网络分支的新的待机版本。
图2示出了本申请实施例提供的另一种实施方式的用于操作系统的内核数据路径的自适应神经网络的框图。如图2所示,所述操作系统包括内核空间202和用户空间204。所述操作系统的内核数据路径通过部署在所述操作系统的内核空间202的内核网络模块220提供至少一种内核数据路径功能。所述自适应神经网络包括:第一网络分支210,部署在所述内核空间202并且通过第一路径230与所述至少一种内核数据路径功能相对应的内核网络模块220连通,以及配置为:通过所述第一路径230从该内核网络模块220获取输入数据并将与该输入数据对应的推理结果发送给该内核网络模块220,该推理结果用于优化所述至少一种内核数据路径功能;第二网络分支212,部署在所述用户空间204并且通过从所述内核空间202到所述用户空间204的第二路径232与所述第一网络分支210连通,以及配置为:通过所述第二路径232获取所述第一网络分支210相关联的训练数据并且自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支210的推理功能。其中,第二网络分支212包括与用户空间204兼容的参考神经网络214,第二网络分支212通过将第一网络分支210相关联的训练数据导入参考神经网络214并解析参考神经网络214的输出从而自适应地生成所述模型调参信息。所述模型调参信息包括对参考神经网络214进行整数量化操作和代码转换操作得到的与参考神经网络214对应的网络快照,所述网络快照与内核空间202兼容,其中所述优化所述第一网络分支210的推理功能是基于所述网络快照。图2中还示出了网络快照生成器215,网络快照生成器215用于生成网络快照,其中包括必要的软硬件、电路和代码等以实现对参考神经网络214进行整数量化操作和代码转换操作得到的与参考神经网络214对应的网络快照。网络快照生成器215虽然作为单独的模块被示出,在一些实施例中也可以整合到第二网络分支212中。网络快照生成器215所生成的网络快照被发送到网络快照评估模块216。网络快照评估模块216部署在内核空间202,用于基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性。如果评估通过,网络快照评估模块216将网络快照发送给网络快照更新模块217。网络快照更新模块217用于基于该网络快照来优化第一网络分支210的推理功能。在一些实施例中,第一网络分支210包括第一副本和第二副本,该第一副本和该第二副本中的其中一个被指定为活跃副本而另一个被指定为待机副本。第一网络分支210的第一副本和第二副本中被指定为活跃副本的一方用于获取该输入数据并计算与该输入数据对应的推理结果。网络快照更新模块217用于:基于所述网络快照调整所述第一网络分支210的第一副本和第二副本中被指定为待机副本的一方后指定该方为新的活跃副本并指定另一方为新的待机副本。网络快照评估模块216和网络快照更新模块217,虽然作为单独的模块被示出,在一些实施例中也可以整合到第一网络分支210中。图2中还示出了训练数据批次收集模块218。训练数据批次收集模块218用于按照批次收集训练数据后再一起发送。其中,第一网络分支210相关联的训练数据包括一个或者多个训练数据批次。训练数据批次收集模块218使得所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支210所获取的输入数据和相应推理结果。
图2所示的自适应神经网络,通过对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支在内核空间和第二网络分支在用户空间,以及通过第一路径和第二路径来分别满足模型推理所对应的快速执行的要求和自适应模型调参所对应的高精度、密集计算的要求,实现了避免因资源竞争而导致的对内核数据路径功能的影响,降低通信开销和控制开销,以及降低开发难度和提升模型性能,从而有利于应对动态变化的工作需求。进一步地,图2所示的自适应神经网络通过网络快照生成器215实现了简化计算过程并且能更加灵活地广泛地利用与用户空间204兼容的各种成熟的工具、库、代码、模组等;图2所示的自适应神经网络通过网络快照评估模块216实现了节省数据交互的开销和降低资源占用;图2所示的自适应神经网络通过网络快照更新模块217实现了有效提高了推理和优化的效率,也避免了暂停推理或者说施加锁定以及由此导致的性能下降;图2所示的自适应神经网络通过训练数据批次收集模块218实现了节省数据交互的开销。
应当理解的是,图1或者图2所示的用于操作系统的内核数据路径的自适应神经网络,包括上述的各种实施例、实施方式或者变体等,其中的关于自适应神经网络的运行方法方面的细节,例如该自适应神经网络的模型、算法、计算逻辑等方面的细节,再例如关于第一网络分支的推理和第二网络分支生成模型调参信息等方面的细节,再例如关于网络快照生成、网络快照评估、网络快照更新以及训练数据批次收集等方面的细节,这些也可以表述为方法、算法、流程图或者其它形式,并且可能通过软体、程序、计算机指令等形式并结合合适的硬件来实现。例如一种非瞬时性计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,该计算机指令被处理器执行时实现上述方法以及上述任意实施例、实施方式或者它们的组合。再例如一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现上述方法以及上述任意实施例、实施方式或者它们的组合。
图3示出了本申请实施例提供的用于自适应神经网络的运行方法的电子设备的框图。如图3所示,电子设备包括主处理器302,内部总线304,网络接口306,主存储器308,以及辅助处理器310和辅助内存312,还有辅助处理器320和辅助内存322。其中,主处理器302与主存储器308连接,主存储器308可用于存储主处理器302可执行的计算机指令,从而可以实现自适应神经网络的运行方法,包括其中部分或者全部步骤,也包括其中步骤的任意可能的组合或结合以及可能的替换或者变体。网络接口306用于提供网络连接以及通过网络收发数据。内部总线304用于提供在主处理器302、网络接口306、辅助处理器310以及辅助处理器320之间的内部的数据交互。其中,辅助处理器310与辅助内存312连接并一起提供辅助计算能力,而辅助处理器320与辅助内存322连接并一起提供辅助计算能力。辅助处理器310和辅助处理器320可以提供相同或者不同的辅助计算能力,包括但是不限于,针对特定计算需求进行优化的计算能力如并行处理能力或者张量计算能力,针对特定算法或者逻辑结构进行优化的计算能力例如迭代计算能力或者图计算能力等。辅助处理器310和辅助处理器320可以包括特定类型的一个或者多个处理器,如数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等,从而可以提供定制化的功能和结构。在一些示例性实施例中,电子设备可以不包括辅助处理器,可以包括仅一个辅助处理器,还可以包括任意数量的辅助处理器且各自具有相应的定制化功能及结构,在此不做具体限定。图3中所示出的两个辅助处理器的架构仅为说明性而不应解释为限制性。另外,主处理器302可以包括单核或者多核的计算单元,用于提供本申请实施例所必需的功能和操作。另外,主处理器302和辅助处理器(如图3中的辅助处理器310和辅助处理器320)可以具有不同的架构,也就是电子设备可以是基于异构架构的系统,例如主处理器302可以是基于指令集操作体系的通用型处理器如CPU,而辅助处理器可以是适合并行化计算的图形处理器GPU或者是适合神经网络模型相关运算的专用加速器。辅助内存(例如图3所示的辅助内存312和辅助内存322)可以用于配合各自对应的辅助处理器来实现定制化功能及结构。而主存储器308用于存储必要的指令、软件、配置、数据等从而可以配合主处理器302提供本申请实施例所必需的功能和操作。在一些示例性实施例中,电子设备可以不包括辅助内存,可以包括仅一个辅助内存,还可以包括任意数量的辅助内存,在此不做具体限定。图3中所示出的两个辅助内存的架构仅为说明性而不应解释为限制性。主存储器308以及可能的辅助内存可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性,并且可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。内部总线304可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。应当理解的是,图3所示的电子设备,其所示的结构并不构成对有关装置或系统的具体限定,在一些示例性实施例中,电子设备可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
图4示出了本申请实施例提供的一种实施方式的用于优化计算平台的受限控制功能的自适应神经网络的框图。如图4所示,该自适应神经网络用于优化计算平台的至少一种受限控制功能。所述计算平台包括第一执行环境402和第二执行环境404,所述至少一种受限控制功能在所述第一执行环境402下实现并且不能在所述第二执行环境404下实现。所述自适应神经网络包括:第一网络分支410,部署在所述计算平台的所述第一执行环境402并且通过第一路径430与部署在所述第一执行环境402的与所述至少一种受限控制功能对应的模块420连通,以及配置为:通过所述第一路径430从该模块420获取输入数据并将与该输入数据对应的推理结果发送给该模块420,该推理结果用于优化所述至少一种受限控制功能;第二网络分支412,部署在所述计算平台的所述第二执行环境404,并且配置为:通过从所述第一执行环境402到所述第二执行环境404的第二路径432获取所述第一网络分支410相关联的训练数据以便自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支410的推理功能。其中所述第一网络分支410相关联的训练数据包括所述第一网络分支410所获取的输入数据和与该输入数据对应的推理结果。
上面提到,以linux系统为代表的操作系统,区分对待内核空间和用户空间,并且操作系统的内核数据路径通过调用相应的内核网络模块来实现特定的内核数据路径功能。类似地,计算平台中往往存在需要区别对待的两种或者更多种执行环境,例如可以根据可信计算性分成可信执行环境和不可信执行环境,再例如可以根据内核安全级别分成满足SGX内核安全要求的安全执行环境,再例如可以根据加密算法要求分成同态加密环境和非同态加密环境。计算平台的一些受限控制功能,往往只能在可信安全性更高、安全级别更高或者加密算法要求更高的环境下执行,但是为了优化这些受限控制功能又往往需要调用在其它环境中的组件,这样就会导致跨环境的数据交互。在一些情况下,这样的数据交互所带来的开销和资源占用可以带来很大的负面影响。例如,为了优化只能在内核空间下实现的内核数据路径功能如拥塞控制可能需要调用在用户空间下的库资源和机器学习框架;再例如,为了优化只能在SGX内核安全区域下实现的受限控制功能如访问机密文件并解密可能需要调用在该SGX内核安全区域以外的文件和算法组件。为了降低这样的跨执行环境的数据交互所带来的通信开销和控制开销,图4所示的自适应神经网络,通过对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支410在第一执行环境402和第二网络分支412在第二执行环境404,以及通过第一路径430和第二路径432来分别满足模型推理所对应的快速执行的要求和自适应模型调参所对应的高精度、密集计算的要求,实现了避免因资源竞争而导致的影响,降低通信开销和控制开销,以及降低开发难度和提升模型性能,从而有利于应对动态变化的工作需求。
在一种可能的实施方式中,所述第二网络分支412包括与所述第二执行环境404兼容的参考神经网络(未示出),所述第二网络分支412通过将所述第一网络分支410相关联的训练数据导入所述参考神经网络并解析所述参考神经网络的输出从而自适应地生成所述模型调参信息,所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照,所述网络快照与所述第一执行环境402兼容,其中所述优化所述第一网络分支410的推理功能是基于所述网络快照。如此,可以更加灵活地广泛地利用与第二执行环境404兼容的各种成熟的工具、库、代码、模组等。
在一种可能的实施方式中,对所述参考神经网络进行代码转换操作包括:针对所述参考神经网络所包括的每一个层,基于该层的类型选择与该层的类型对应的预设层模板并按照该预设层模板将该层的模型参数和权重系数转换为与该层对应的代码实例,然后整合与所述参考神经网络所包括的每一个层分别对应的代码实例得到与所述参考神经网络对应的源代码文件,其中所述网络快照是基于所述源代码文件编译得到。
在一种可能的实施方式中,所述网络快照在生成后被发送到所述第一网络分支410,所述第一网络分支410还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时基于所述网络快照优化所述第一网络分支的推理功能,当评估不通过时不进行优化。如此有利于节省数据交互的开销。
在一种可能的实施方式中,所述第一网络分支410相关联的训练数据包括一个或者多个训练数据批次,所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支所获取的输入数据和相应推理结果。如此有利于节省数据交互的开销。
在一种可能的实施方式中,所述第一网络分支410包括活跃版本和待机版本,所述第一网络分支410的活跃版本用于获取该输入数据并计算与该输入数据对应的推理结果,所述优化所述第一网络分支410的推理功能是基于所述网络快照,包括:基于所述网络快照调整所述第一网络分支410的待机版本或者用所述网络快照替代所述第一网络分支410的待机版本从而得到更新后的待机版本;当所述第一网络分支410的活跃版本不被占用时,指定所述更新后的待机版本为所述第一网络分支410的新的活跃版本。如此,通过对待机版本进行调整优化同时还通过活跃版本进行推理,从而有效提高了推理和优化的效率,也避免了暂停推理或者说施加锁定以及由此导致的性能下降。
应当理解的是,图4所示的自适应神经网络,包括上述的各种实施例、实施方式及变体等,对该自适应神经网络的模型推理和自适应模型调参进行解耦并且相应地分别部署第一网络分支410在第一执行环境402和第二网络分支412在第二执行环境404。这里,第一执行环境402和第二执行环境404可以分别是同一操作系统的内核空间和用户空间,还可以分别是CPU和FPGA,还可以分别是SGX内核安全区域和非SGX内核安全区域,还可以分别是可信执行环境和非可信执行环境。上面提到,所述至少一种受限控制功能在所述第一执行环境402下实现并且不能在所述第二执行环境404下实现。第一执行环境402和第二执行环境404之间可以在例如可信计算性、内核安全级别、安全协议、加密算法等方面存在差距,在此不做具体限定。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本申请另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。

Claims (32)

1.一种自适应神经网络,用于操作系统的内核数据路径,其特征在于,所述操作系统包括内核空间和用户空间,所述操作系统的内核数据路径通过部署在所述操作系统的内核空间的内核网络模块提供至少一种内核数据路径功能,所述自适应神经网络包括:
第一网络分支,部署在所述内核空间并且通过第一路径与所述至少一种内核数据路径功能相对应的内核网络模块连通,以及配置为:通过所述第一路径从该内核网络模块获取输入数据并将与该输入数据对应的推理结果发送给该内核网络模块,该推理结果用于优化所述至少一种内核数据路径功能;
第二网络分支,部署在所述用户空间并且通过从所述内核空间到所述用户空间的第二路径与所述第一网络分支连通,以及配置为:通过所述第二路径获取所述第一网络分支相关联的训练数据并且自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支的推理功能。
2.根据权利要求1所述的自适应神经网络,其特征在于,所述模型调参信息包括以下至少一项:所述第一网络分支的模型结构、所述第一网络分支的模型参数和所述第一网络分支的权重系数,其中所述优化所述第一网络分支的推理功能是基于所述模型调参信息调整所述第一网络分支。
3.根据权利要求1所述的自适应神经网络,其特征在于,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入教师神经网络并解析所述教师神经网络的输出从而自适应地生成所述模型调参信息,其中所述第一网络分支是相对于所述教师模型的学生模型。
4.根据权利要求1所述的自适应神经网络,其特征在于,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入生成对抗性神经网络并通过比较所述生成对抗性神经网络所生成的子网络从而自适应地生成所述模型调参信息,其中所述模型调参信息是从所述生成对抗性神经网络所生成的子网络中选择。
5.根据权利要求1所述的自适应神经网络,其特征在于,所述第二网络分支包括与所述用户空间兼容的参考神经网络,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入所述参考神经网络并解析所述参考神经网络的输出从而自适应地生成所述模型调参信息,所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照,所述网络快照与所述内核空间兼容,其中所述优化所述第一网络分支的推理功能是基于所述网络快照。
6.根据权利要求5所述的自适应神经网络,其特征在于,所述参考神经网络是基于与所述用户空间兼容的机器学习框架且采用以下任意一项:TensorFlow,PyTorch、GYM。
7.根据权利要求5所述的自适应神经网络,其特征在于,对所述参考神经网络进行整数量化操作包括对所述参考神经网络的输入输出按照缩放因子进行缩放化和量化。
8.根据权利要求5所述的自适应神经网络,其特征在于,对所述参考神经网络进行代码转换操作包括:针对所述参考神经网络所包括的每一个层,基于该层的类型选择与该层的类型对应的预设层模板并按照该预设层模板将该层的模型参数和权重系数转换为与该层对应的代码实例,然后整合与所述参考神经网络所包括的每一个层分别对应的代码实例得到与所述参考神经网络对应的源代码文件,其中所述网络快照是基于所述源代码文件编译得到。
9.根据权利要求8所述的自适应神经网络,其特征在于,所述参考神经网络包括至少一个线性层和/或至少一个全连接层,其中,与所述至少一个线性层对应的预设层模板包括所述至少一个线性层的计算逻辑且与所述至少一个线性层对应的代码实例与所述内核空间兼容,与所述至少一个全连接层对应的预设层模板包括所述至少一个全连接层的计算逻辑且与所述至少一个全连接层对应的代码实例与所述内核空间兼容。
10.根据权利要求9所述的自适应神经网络,其特征在于,所述参考神经网络还包括至少一个非线性层,其中,与所述至少一个非线性层对应的预设层模板是用于逼近所述至少一个非线性层的计算逻辑的查找表且与所述至少一个非线性层对应的代码实例与所述内核空间兼容。
11.根据权利要求5所述的自适应神经网络,其特征在于,所述第二网络分支还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时将所述网络快照发送到所述内核空间,当评估不通过时不将所述网络快照发送到所述内核空间。
12.根据权利要求5所述的自适应神经网络,其特征在于,所述网络快照在生成后被发送到所述第一网络分支,所述第一网络分支还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时基于所述网络快照优化所述第一网络分支的推理功能,当评估不通过时不进行优化。
13.根据权利要求5所述的自适应神经网络,其特征在于,所述第一网络分支相关联的训练数据包括一个或者多个训练数据批次,所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支所获取的输入数据和相应推理结果。
14.根据权利要求13所述的自适应神经网络,其特征在于,所述一个或者多个训练数据批次包括在由一个或者多个所述特定时间间隔组成的时间段内所述第一网络分支所获取的所有输入数据和相应推理结果。
15.根据权利要求5所述的自适应神经网络,其特征在于,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:
基于所述网络快照调整所述第一网络分支或者用所述网络快照替代所述第一网络分支。
16.根据权利要求5所述的自适应神经网络,其特征在于,所述第一网络分支包括第一副本和第二副本,该第一副本和该第二副本中的其中一个被指定为活跃副本而另一个被指定为待机副本,其中,所述第一网络分支的第一副本和第二副本中被指定为活跃副本的一方用于获取该输入数据并计算与该输入数据对应的推理结果。
17.根据权利要求16所述的自适应神经网络,其特征在于,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:
基于所述网络快照调整所述第一网络分支的第一副本和第二副本中被指定为待机副本的一方后指定该方为新的活跃副本并指定另一方为新的待机副本。
18.根据权利要求5所述的自适应神经网络,其特征在于,所述第一网络分支包括活跃版本和待机版本,所述第一网络分支的活跃版本用于获取该输入数据并计算与该输入数据对应的推理结果,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:
基于所述网络快照调整所述第一网络分支的待机版本或者用所述网络快照替代所述第一网络分支的待机版本从而得到更新后的待机版本;
当所述第一网络分支的活跃版本不被占用时,指定所述更新后的待机版本为所述第一网络分支的新的活跃版本。
19.根据权利要求18所述的自适应神经网络,其特征在于,在指定所述更新后的待机版本为所述第一网络分支的新的活跃版本之后,生成相对于所述第一网络分支的新的活跃版本的所述第一网络分支的新的待机版本。
20.根据权利要求1所述的自适应神经网络,其特征在于,所述第一路径和所述第二路径分别是快速路径和慢速路径。
21.根据权利要求1至12、15至20中任一项所述的自适应神经网络,其特征在于,所述第一网络分支相关联的训练数据包括所述第一网络分支所获取的输入数据和与该输入数据对应的推理结果。
22.根据权利要求1至20中任一项所述的自适应神经网络,其特征在于,所述第二网络分支利用与所述用户空间兼容的库资源和机器学习算法以便自适应地生成所述模型调参信息。
23.根据权利要求1至20中任一项所述的自适应神经网络,其特征在于,所述至少一种内核数据路径功能包括以下至少一项:拥塞控制、流量分配、负载均衡、包过滤、调度、排队。
24.根据权利要求1至20中任一项所述的自适应神经网络,其特征在于,所述第一网络分支相关联的训练数据包括以下至少一项:拥塞信号、流状态、流发送率。
25.一种自适应神经网络,用于优化计算平台的至少一种受限控制功能,其特征在于,所述计算平台包括第一执行环境和第二执行环境,所述至少一种受限控制功能在所述第一执行环境下实现并且不能在所述第二执行环境下实现,所述自适应神经网络包括:
第一网络分支,部署在所述计算平台的所述第一执行环境并且通过第一路径与部署在所述第一执行环境的与所述至少一种受限控制功能对应的模块连通,以及配置为:通过所述第一路径从该模块获取输入数据并将与该输入数据对应的推理结果发送给该模块,该推理结果用于优化所述至少一种受限控制功能;
第二网络分支,部署在所述计算平台的所述第二执行环境,并且配置为:通过从所述第一执行环境到所述第二执行环境的第二路径获取所述第一网络分支相关联的训练数据以便自适应地生成所述自适应神经网络的模型调参信息,所述模型调参信息用于优化所述第一网络分支的推理功能,其中所述第一网络分支相关联的训练数据包括所述第一网络分支所获取的输入数据和与该输入数据对应的推理结果。
26.根据权利要求25所述的自适应神经网络,其特征在于,所述第二网络分支包括与所述第二执行环境兼容的参考神经网络,所述第二网络分支通过将所述第一网络分支相关联的训练数据导入所述参考神经网络并解析所述参考神经网络的输出从而自适应地生成所述模型调参信息,所述模型调参信息包括对所述参考神经网络进行整数量化操作和代码转换操作得到的与所述参考神经网络对应的网络快照,所述网络快照与所述第一执行环境兼容,其中所述优化所述第一网络分支的推理功能是基于所述网络快照。
27.根据权利要求26所述的自适应神经网络,其特征在于,对所述参考神经网络进行代码转换操作包括:针对所述参考神经网络所包括的每一个层,基于该层的类型选择与该层的类型对应的预设层模板并按照该预设层模板将该层的模型参数和权重系数转换为与该层对应的代码实例,然后整合与所述参考神经网络所包括的每一个层分别对应的代码实例得到与所述参考神经网络对应的源代码文件,其中所述网络快照是基于所述源代码文件编译得到。
28.根据权利要求26所述的自适应神经网络,其特征在于,所述网络快照在生成后被发送到所述第一网络分支,所述第一网络分支还配置为:基于用户自定义指标评估所述网络快照的准确性以及基于保真度损失评估所述网络快照的必要性,当评估通过时基于所述网络快照优化所述第一网络分支的推理功能,当评估不通过时不进行优化。
29.根据权利要求26所述的自适应神经网络,其特征在于,所述第一网络分支相关联的训练数据包括一个或者多个训练数据批次,所述一个或者多个训练数据批次中的每一个训练数据批次包括基于特定时间间隔或者特定数据包个数确定的所述第一网络分支所获取的输入数据和相应推理结果。
30.根据权利要求26所述的自适应神经网络,其特征在于,所述第一网络分支包括活跃版本和待机版本,所述第一网络分支的活跃版本用于获取该输入数据并计算与该输入数据对应的推理结果,所述优化所述第一网络分支的推理功能是基于所述网络快照,包括:
基于所述网络快照调整所述第一网络分支的待机版本或者用所述网络快照替代所述第一网络分支的待机版本从而得到更新后的待机版本;
当所述第一网络分支的活跃版本不被占用时,指定所述更新后的待机版本为所述第一网络分支的新的活跃版本。
31.根据权利要求25至30中任一项所述的自适应神经网络,其特征在于,所述第一执行环境和所述第二执行环境分别是内核空间和用户空间。
32.根据权利要求25至30中任一项所述的自适应神经网络,其特征在于,所述第一执行环境和所述第二执行环境分别是CPU和FPGA。
CN202210762014.1A 2022-06-30 2022-06-30 用于操作系统内核数据路径的自适应神经网络 Pending CN115130659A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210762014.1A CN115130659A (zh) 2022-06-30 2022-06-30 用于操作系统内核数据路径的自适应神经网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210762014.1A CN115130659A (zh) 2022-06-30 2022-06-30 用于操作系统内核数据路径的自适应神经网络

Publications (1)

Publication Number Publication Date
CN115130659A true CN115130659A (zh) 2022-09-30

Family

ID=83382812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210762014.1A Pending CN115130659A (zh) 2022-06-30 2022-06-30 用于操作系统内核数据路径的自适应神经网络

Country Status (1)

Country Link
CN (1) CN115130659A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155791A (zh) * 2023-10-31 2023-12-01 浪潮电子信息产业股份有限公司 基于集群拓扑结构的模型部署方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155791A (zh) * 2023-10-31 2023-12-01 浪潮电子信息产业股份有限公司 基于集群拓扑结构的模型部署方法、系统、设备及介质
CN117155791B (zh) * 2023-10-31 2024-02-13 浪潮电子信息产业股份有限公司 基于集群拓扑结构的模型部署方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN112529169B (zh) 数据处理方法、模型优化装置和模型执行装置
CN108089921B (zh) 用于云端大数据运算架构的服务器及其运算资源最佳化方法
JP2019139747A (ja) 演算装置、演算実行設備及び演算実行方法
CN112396172A (zh) 用于管理深度学习加速器系统的功率的方法与装置
CN110750312A (zh) 硬件资源配置方法、装置、云侧设备和存储介质
US20210271960A1 (en) Performance scaling for dataflow deep neural network hardware accelerators
CN115130659A (zh) 用于操作系统内核数据路径的自适应神经网络
EP4300377A1 (en) Quantum circuit compilation method and device, compilation framework and quantum operating system
CN115640851A (zh) 一种适用于测试仪器的神经网络高效推理方法
CN110750359B (zh) 硬件资源配置方法、装置、云侧设备和存储介质
CN114626516A (zh) 一种基于对数块浮点量化的神经网络加速系统
Bruel et al. Generalize or die: Operating systems support for memristor-based accelerators
CN117196000A (zh) 一种容器化部署的边缘侧模型推理加速方法
CN111830390B (zh) 一种测试方法及相关产品
US20210208950A1 (en) Dynamic resource clustering architecture
CN117319373A (zh) 数据传输方法、装置、电子设备和计算机可读存储介质
KR20200139909A (ko) 전자 장치 및 그의 연산 수행 방법
CN115470901A (zh) 支持移动端异构处理器分载的混合精度训练方法及设备
JP2023180315A (ja) 変換プログラムおよび変換処理方法
US20210208947A1 (en) Resource cluster chaining architecture
CN111831539B (zh) 一种测试方法及相关产品
CN115204348A (zh) 神经网络模型快照生成方法、介质及电子装置
KR20220036493A (ko) 뉴럴 네트워크 추론을 위한 최적화 방법 및 이를 수행하는 컴퓨팅 장치
Dong et al. EQ-ViT: Algorithm-Hardware Co-Design for End-to-End Acceleration of Real-Time Vision Transformer Inference on Versal ACAP Architecture
CN117114055B (zh) 面向工业应用场景的fpga二值神经网络加速方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination