元信息计算图生成系统技术方案

技术编号:35695144 阅读:16 留言:0更新日期:2022-11-23 14:45
本发明专利技术公开了元信息计算图生成系统,涉及深度学习技术领域,具体为元信息计算图生成系统,其特征在于:包括元信息代理、具备计算元信息能力的追踪器、补丁操作、元信息的计算图;该元信息计算图生成系统,通过元信息代理、具备计算元信息能力的追踪器、补丁操作、元信息的计算图的组合使用,本发明专利技术的代理具有更多元信息,比如形状、类型、维度等。同时,通过劫持PyTorch中的算子计算函数,拥有像正常张量一样在模型的前向传播中流动的能力,具有高通用性,支持立即模式框架,支持对控制流追踪,计算图生成速度快,代价低,获取的计算图带有足够多的元信息(形状、类型、维度等)。维度等)。维度等)。

【技术实现步骤摘要】
元信息计算图生成系统


[0001]本专利技术涉及深度学习
,具体为元信息计算图生成系统。

技术介绍

[0002]随着现在深度学习的普及,立即模式作为一个更加对研究员开发算法友好的执行模式,变得越来越流行。同时,各种在静态图框架下的研究如果想迁移到立即模式的框架中,计算图的生成是一个绕不开的问题;
[0003]当前的主流计算生成技术有TorchScript,Torch FX tracer.
[0004]TorchScript:该工具主要是提供了对PyTorch程序进行追踪和解析的能力,并将解析或追踪得到的信息转化成另中间表示,该中间表示可以称为计算图。简单来说,该工具获取计算图的方法有两种:
[0005]追踪方式:该方法会通过执行一次前向传播的方式进行,每次经过一个张量操作算子就会在计算图上对该算子进行记录,通过这种方式,在一次完整的前向传播后就可以获得一张计算图;
[0006]解析方式:该方法实现了一套完整的编译器来对模型进行代码分析,并通过分析构建对应的python抽象语法树,以此获取计算图;
[0007]Torch FX tracer:该工具通过图像化追踪的方式获取计算图,所谓符号化追踪,是一个与真实执行相对的概念,这个工具使用叫做代理的介质,在前向传播中移动,每次代理经过一个算子,就会在计算图上对应的创建一个节点,通过这种方式,在一次完整的前向传播后就可以获得一张计算图;
[0008]计算图简单来说计算图就是以张量为边,以算子为节点的一个图数据结构。
>[0009]静态图是其实指的是执行模式,即我们可以在执行之前,确定一切执行信息,并为该计算图进行优化。
[0010]立即模式是与静态执行模式对应执行模式,即我们无法在执行前确定执行信息。
[0011]元信息指类似张量的数据类型(浮点型,整型等),设备信息(GPU,CPU),维度,形状等。
[0012]算子是一个函数空间到函数空间上的映射。
[0013]但是目前的主流计算生成技术在使用时,TorchScript追踪方式:第一是无法追踪非张量算子操作,第二是因为是真实执行所以时间较长。
[0014]TorchScript解析方式:有很多python的语法在其中受到限制,比如lambda函数无法使用,set类型不在该编译器的表示中。
[0015]Torch FX tracer:该方法无法处理控制流,同时因为是符号化追踪,即没有真实的执行,虽然获取计算图的速度上有优势,但是也计算图也失去了很多有价值的元信息,比如激活值的大小、维度、类型等信息,对此我们研究提出了一种新型的在立即模式下带有元信息计算图的通用生成系统。

技术实现思路

[0016]针对现有技术的不足,本专利技术提供了元信息计算图生成系统,解决了上述
技术介绍
中提出的TorchScript追踪方式:第一是无法追踪非张量算子操作,第二是因为是真实执行所以时间较长;TorchScript解析方式:有很多python的语法在其中受到限制,比如lambda函数无法使用,set类型不在该编译器的表示中;Torch FX tracer:该方法无法处理控制流,同时因为是符号化追踪,即没有真实的执行,虽然获取计算图的速度上有优势,但是也计算图也失去了很多有价值的元信息,比如激活值的大小、维度、类型等信息的问题。
[0017]为实现以上目的,本专利技术通过以下技术方案予以实现:1.元信息计算图生成系统,包括元信息代理、具备计算元信息能力的追踪器、补丁操作、元信息的计算图;
[0018]元信息代理:具有更多元信息,比如形状、类型、维度等,同时,通过劫持PyTorch中的算子计算函数,拥有像正常张量一样在模型的前向传播中流动的能力。
[0019]具备计算元信息能力的追踪器:通过代理在前向传播中的流动获取所有算子操作,每次经过一个算子操作,就会在计算图中添加一个新的节点,同时返回一个新的可用的代理,最后很重要的一个步骤是为这个新的代理,利用它的算子类型和参数列表,计算它的元信息,并赋值给该代理。
[0020]补丁操作:为不支持算子进行补丁操作,并将其维护在一个可以随时扩充的列表中;
[0021]元信息的计算图:每个节点都拥有元信息的计算图。
[0022]元信息计算图生成系统,包括以下步骤:
[0023]S1:根据输入张量,为具备计算元信息能力的追踪器创建第一批元信息代理,并提取输入张量的元信息,将这些信息作为第一批元信息代理的元信息;
[0024]S2:将第一批元信息代理作为输入,传入到模型的前向传播函数中,这些元信息代理就会像正常的输入张量一样,作为参数参与到各个算子操作中,只是这些算子操作不会真的执行,而是作为附带元信息的节点被我们的元信息的计算图记录下来。
[0025]S3:在元信息的计算图创建这些节点的同时,我们会为这些节点创建新的元信息代理,同时利用它的算子类型和参数列表,计算它们的元信息,并赋值给新建的元信息代理,这样新的一批元信息代理就被创建了出来,如此往复直到损失函数计算结束,前向计算中的所有算子操作和对应的元信息都被记录到了我们的计算图中。
[0026]S4:如果遇到一些无法通过元信息代理参与计算的算子,我们会通过补丁操作,劫持原始算子,在追踪过程中,使用新的支持元信息代理参与计算的算子操作替换原始算子。
[0027]本专利技术提供了元信息计算图生成系统,具备以下有益效果:
[0028]1、该元信息计算图生成系统,通过元信息代理、具备计算元信息能力的追踪器、补丁操作、元信息的计算图的组合使用,本专利技术的代理具有更多元信息,比如形状、类型、维度等。同时,通过劫持PyTorch中的算子计算函数,拥有像正常张量一样在模型的前向传播中流动的能力;在本专利技术中的追踪器,通过代理在前向传播中的流动获取所有算子操作,每次经过一个算子操作,就会在计算图中添加一个新的节点,同时返回一个新的可用的代理,最后很重要的一个步骤是为这个新的代理,利用它的算子类型和参数列表,计算它的元信息,并赋值给该代理;为不支持算子进行补丁操作,并将其维护在一个可以随时扩充的列表中;每个节点都拥有元信息的计算图,具有高通用性,支持立即模式框架,支持对控制流追踪,
计算图生成速度快,代价低,获取的计算图带有足够多的元信息。
附图说明
[0029]图1为本专利技术技术流程框架结构示意图。
具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
[0031]请参阅图1,本专利技术提供技术方案:1.元信息计算图生成系统,包括元信息代理、具备计算元信息能力的追踪器、补丁操作、元信息的计算图;
[0032]元信息代理:本专利技术的代理具有更多元信息,比如形状、类型、维度等,同时,通过劫持PyTorch中的算子计算函数,拥有像正常张量一样在模型的前向本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.元信息计算图生成系统,其特征在于:包括元信息代理、具备计算元信息能力的追踪器、补丁操作、元信息的计算图;元信息代理:具有更多元信息,比如形状、类型、维度等;同时,通过劫持PyTorch中的算子计算函数,拥有像正常张量一样在模型的前向传播中流动的能力;具备计算元信息能力的追踪器:通过代理在前向传播中的流动获取所有算子操作,每次经过一个算子操作,就会在计算图中添加一个新的节点,同时返回一个新的可用的代理,最后很重要的一个步骤是为这个新的代理,利用它的算子类型和参数列表,计算它的元信息,并赋值给该代理;补丁操作:为不支持算子进行补丁操作,并将其维护在一个可以随时扩充的列表中;元信息的计算图:每个节点都拥有元信息的计算图。2.根据权利要求1所述的元信息计算图生成系统,其特征在于:包括以下步骤:S1:根据输入张量,为具备计算元信息能力的追踪器创建第...

【专利技术属性】
技术研发人员:刘育良李升桂方佳瑞卞正达李永彬柳泓鑫麦思琪黄海晨娄宇轩吴俊铭路广阳陈巍文
申请(专利权)人:北京潞晨科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1