CN116719579A - Ai模型可观测性实现方法、装置、电子设备及存储介质 - Google Patents
Ai模型可观测性实现方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116719579A CN116719579A CN202310736685.5A CN202310736685A CN116719579A CN 116719579 A CN116719579 A CN 116719579A CN 202310736685 A CN202310736685 A CN 202310736685A CN 116719579 A CN116719579 A CN 116719579A
- Authority
- CN
- China
- Prior art keywords
- kernel
- ebpf
- program
- model
- execution result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012549 training Methods 0.000 claims abstract description 47
- 230000006870 function Effects 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013461 design Methods 0.000 description 15
- 238000013135 deep learning Methods 0.000 description 13
- 238000012544 monitoring process Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 230000018109 developmental process Effects 0.000 description 10
- 238000002372 labelling Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 206010016322 Feeling abnormal Diseases 0.000 description 1
- 240000007651 Rubus glaucus Species 0.000 description 1
- 235000011034 Rubus glaucus Nutrition 0.000 description 1
- 235000009122 Rubus idaeus Nutrition 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种AI模型可观测性实现方法、装置、电子设备及存储介质,该方法应用于金融科技技术领域,该方法通过将eBPF字节码加载至内核程序,该eBPF字节码是基于钩子hook内核函数的代码生成的,并利用eBPF字节码在内核程序中执行特定事件,并将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上,内核中加载有eBPF的程序,并根据执行结果,确定AI模型训练过程的相关数据,并可视化展示相关数据。该技术方案中通过将eBPF字节码附加到内核上的各个hook点,使得在AI模型训练时,可以采集到相应的指标数据,以实现AI模型的可观测性。
Description
技术领域
本申请涉及金融科技技术领域,尤其涉及一种人工智能AI模型可观测性实现方法、装置、电子设备及存储介质。
背景技术
随着人工智能领域的不断发展,AI模型的应用也随之增加,而针对AI模型的训练也提出了更高的要求,因此,如何对AI模型的可观测性进行实现成为亟待解决的技术问题。
现有技术中,市面上有很多监控工具,首先需要采集点,在采集的过程中,有的训练进程生命周期很短,只能采集一直有生命周期的进程,有些进程短无法被采集到,就存在信息丢失的问题。写程序时候,一个程序不断的fork,不断地产生短周期进程,也是对资源的消耗。
因此,现有技术中也无法更加准确的实现对AI模型在训练时的可观测性。
发明内容
本申请提供一种AI模型可观测性实现方法、装置、电子设备及存储介质,以解决现有技术中无法更加准确的实现对AI模型在训练时的可观测性的问题。
第一方面,本申请实施例提供了一种AI模型可观测性实现方法,包括:
将eBPF字节码加载至内核程序,所述eBPF字节码是基于钩子hook内核函数的代码生成的;
利用所述eBPF字节码在所述内核程序中执行特定事件,并将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上,所述内核中加载有eBPF的程序;
根据所述执行结果,确定所述AI模型训练过程的相关数据,并可视化展示所述相关数据。
在第一方面一种可能的设计中,所述将eBPF字节码加载至内核程序,包括:
控制用户空间程序将所述eBPF字节码加载至所述内核程序。
在第一方面另一种可能的设计中,所述将执行结果发送至用户空间程序,包括:
将所述执行结果通过maps发送至所述用户空间程序;
在第一方面再一种可能的设计中,所述将执行结果发送至用户空间程序,包括:
将所述执行结果通过性能事件perf-event发送至所述用户空间程序。
在第一方面还一种可能的设计中,在所述将eBPF字节码加载至内核程序之前,所述方法还包括:
响应于用户的编程操作,生成所述hook内核函数的代码;
利用CLANG编译器或LLVM编译器将所述hook内核函数的代码解析生成所述eBPF字节码。
在第一方面又一种可能的设计中,所述利用所述eBPF字节码在所述内核程序中执行特定事件,包括:
利用即时JIT编译器,对所述eBPF字节码进行指令转换,得到原生指令,所述原生指令为所述内核所能执行的指令;
基于所述原生指令,在所述内核程序中执行特定事件。
第二方面,本申请实施例提供一种AI模型可观测性实现装置,包括:
加载模块,用于将eBPF字节码加载至内核程序,所述eBPF字节码是基于钩子hook内核函数的代码生成的;
执行模块,用于所述eBPF字节码在所述内核程序中执行特定事件,将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上,所述内核中加载有eBPF的程序;
确定模块,用于根据所述执行结果,确定所述AI模型训练过程的相关数据,并可视化展示所述相关数据。
在第二方面一种可能的设计中,所述加载模块,具体用于:
控制用户空间程序将所述eBPF字节码加载至所述内核程序。
在第二方面另一种可能的设计中,所述执行模块,具体用于:
将所述执行结果通过maps发送至所述用户空间程序;
在第二方面再一种可能的设计中,所述执行模块,具体用于:
将所述执行结果通过性能事件perf-event发送至所述用户空间程序。
在第二方面还一种可能的设计中,在所述将eBPF字节码加载至内核程序之前,生成模块,用于:
响应于用户的编程操作,生成所述hook内核函数的代码;
利用CLANG编译器或LLVM编译器将所述hook内核函数的代码解析生成所述eBPF字节码。
在第二方面又一种可能的设计中,所述执行模块利用所述eBPF字节码在所述内核程序中执行特定事件,具体用于:
利用即时JIT编译器,对所述eBPF字节码进行指令转换,得到原生指令,所述原生指令为所述内核所能执行的指令;
基于所述原生指令,在所述内核程序中执行特定事件。
第三方面,本申请实施例提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器和收发器;
所述存储器存储计算机执行指令;所述收发器,用于收发数据;
所述处理器执行所述存储器存储的计算机执行指令,以实现如上述第一方面或任一种方式所述的AI模型可观测性实现方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述第一方面或任一种方式所述的AI模型可观测性实现方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序被处理器执行时用于实现上述第一方面或任一种方式所述的AI模型可观测性实现方法。
本申请实施例提供的AI模型可观测性实现方法、装置、电子设备及存储介质,该方法应用于金融科技技术领域,该方法通过将eBPF字节码加载至内核程序,该eBPF字节码是基于钩子hook内核函数的代码生成的,并利用eBPF字节码在内核程序中执行特定事件,并将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上;根据执行结果,确定AI模型训练过程的相关数据,并可视化展示所述相关数据。该技术方案中通过将eBPF字节码附加到内核上的各个hook点,使得在AI模型训练时,可以采集到相应的指标数据,以实现AI模型的可观测性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的AI模型可观测性实现方法的架构示意图;
图2为本申请实施例提供的AI模型可观测性实现方法的流程示意图一;
图3为本申请实施例提供的深度学习框架示意图;
图4为本申请实施例提供的深度学习平台示意图;
图5为本申请实施例提供的AI模型可观测性实现装置的结构示意图;
图6为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请实施例之前,首先对本申请实施例的专业名词进行解释:
扩展的伯克利数据包过滤器(Extended Berkeley Packet Filter,eBPF):具有以下特点:轻量级、安全性、低开销;
即时编译器(just-in-time compiler,JIT)提供近乎内核本地代码的执行效率;
Scikit-learn:一个非常知名的Python机器学习库,它广泛地用于统计分析和机器学习建模等数据科学领域;
Xgboogst:一个优化的分布式梯度增强库,旨在实现高效,灵活和便携;
Tensorflow:一个基于数据流编程(的符号数学系统,被广泛应用于各类机器学习算法的编程实现;
Lightgbm:一个实现决策树算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率;
Pytorch:一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序;
Horvod:一个易于使用的高性能的分布式训练框架;
MLOps:旨在统一ML系统开发和ML系统部署,以标准化过程生产高性能模型的持续交付;
Gitops:一套使用Git来管理基础架构和应用配置的实践,而Git指的是一个开源版控制系统;
H2O:一个用于分布式、可扩展机器学习的内存平台。
技术背景介绍:
现有的深度学习框架的人工智能(Artificial Intelligence,AI)训练任务均不可见,亦不知道训练中调用了哪些内核函数;哪些内核函数怎么跳转的;多核cpu是哪个核调用了怎么样的任务都不知道;然而业界,市面上的监控工具很多,但是监控工具有自己的难点,需要先去采集点。采集过程中,有些进程的生命周期很短,只能采集到一直有生命周期的进程。有些进程很短采集不到。就存在信息丢失。写程序时候,一个程序不断地fork,不断地产生短周期进程,也是对资源的消耗。
现有监控工具不灵活,用户层还要需要调内核的监控工具,这些监控工具如果你觉得不好,他并不能满足你的需求,如果需要对他进行改进,需要到内核的社区,在linux社区里面提功能开发,周期会比较长,比较漫长。
性能不高,采集到数据,如果采集disk io的事件,则会被挂载,会被采集到内核的缓存,再往上拷贝上用户的缓存,再对数据提供提取,对数据进行特征提取,对数据进行分析,再进行可视化,用户看到的一个用户交互界面,还要考虑保存数据。
针对以上问题,需要提出一种可以准确的实现对AI模型在训练时的可观测性的技术方案。
针对现有技术中存在的技术问题,本申请发明人的构思如下,可以引入eBPF项目,即AI模型的训练任务运行在内核程序对应的内核层上时,可以将需要获取AI模型训练过程的相关数据的方式以eBPF字节码的形式注入内核中,随着AI模型训练过程的进行,利用eBPF字节码采集该训练过程中的特定事件,并将执行结果发送至用户空间程序,以实现对AI模型在训练时的可观测性。
具体的,图1为本申请实施例提供的AI模型可观测性实现方法的架构示意图,对本申请实施例涉及架构进行简单介绍,如图1所示,该架构包括:用户空间11、内核层12。
其中,AI模型的训练任务运行在内核层12上。
可选的,首先在用户空间11生成eBPF字节码111,之后将该eBPF字节码111注入内核层12中,内核层12对该eBPF字节码111进行核对121,在核对121成功之后,由内核层12中的eBPF的程序122执行该eBPF字节码111,并对内核态动态跟踪、跟踪点、性能事件的采集,并将采集到的信息通过maps的方式传递给用户空间11,得到统计信息112。
此外,eBPF的程序122也可以将采集到的性能事件发送至用户空间11中,得到性能事件数据113。
应理解:统计信息112和性能事件数据113均为下述的指标数据;此外,详细阐述之处、以及未公开的内容由下述实施例详述。
本申请的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
值得说明的是:本公开AI模型可观测性实现方法、装置、电子设备及存储介质的应用领域不作限定,可以是金融科技、互联网、人工智能等等。
其中,本申请的执行主体为电子设备,具体可以是服务器等设备。
图2为本申请实施例提供的AI模型可观测性实现方法的流程示意图一,如图2所示,该方法可以包括如下步骤:
步骤21、将eBPF字节码加载至内核程序。
其中,eBPF字节码是基于钩子(英文:hook)内核函数的代码生成的;
在本步骤中,获取AI模型指标数据的eBPF字节码可以基于hook内核函数进行代码生成。hook是一种机制,可以在执行特定函数之前或之后执行自定义的代码,从而实现对该函数的监控或重写。在Linux系统中,BPF则是一种强大的hook机制,可以截获内核的各种事件,包括系统调用、网络数据包等,并且可以在内核态实现高效的数据过滤和转发。
在获取AI模型的指标数据的场景中,可以借助BPF机制,将Hook用于监控AI模型的运行状态,例如监控AI模型的输入/输出数据、分析AI模型的性能瓶颈等。具体来说,可以通过BPF程序实现对以下相关数据的获取功能:
1、截获AI模型的函数调用,并记录函数的执行情况,例如执行时间、返回值等。
2、分析AI模型的输入/输出数据,并收集统计信息,例如数据大小、分布情况、异常值等。
3、监控AI模型运行状态的指标数据,例如中央处理器(Central ProcessingUnit,CPU)利用率、内存占用、磁盘IO等。
可选的,该加载的方式可以是:控制用户空间程序将eBPF字节码加载至内核程序。
其中,eBPF程序分为用户空间程序和内核程序两部分,控制用户空间程序将eBPF字节码加载至内核程序中。
可选的,在此步骤之前,还可以:响应于用户的编程操作,生成hook内核函数的代码;利用编译器将hook内核函数的代码解析生成eBPF字节码。
也即,为了实现以上功能,需要对钩子函数和系统调用等内核代码进行hook,并将hook函数的逻辑翻译成eBPF字节码。具体的实现细节,需要根据实际的应用场景和内核版本等因素进行调整和优化,此处不再赘述。
可选的,编译器为CLANG编译器或底层虚拟机(Low Level Virtual Machine,LLVM)编译器,则利用CLANG编译器或LLVM编译器将hook内核函数的代码解析生成eBPF字节码。
其中,CLANG编译器或LLVM编译器提供近乎内核本地代码的执行效率。
使用CLANG编译器编写C代码并生成字节码。CLANG支持将C代码编译成eBPF字节码,并且支持大部分C语言标准库函数和系统调用。
使用bcc(BPF Compiler Collection)和bpftool(BPF tool)等工具。这些工具都是基于LLVM的,可以实现编写BPF程序、编译为字节码、加载BPF程序、读取性能数据等功能。
应理解:eBPF优势为:
速度和性能:eBPF可以将数据包处理这项工作从内核空间转移到用户空间。同时,eBPF还支持JIT编译器。在字节码被JIT编译完成后,会直接调用eBPF,而不是对每个方法的字节码进行新的解释;
低侵入性:当作为调试器时,eBPF不需要停止程序来观察其状态;
安全:程序被有效地沙箱化了,这意味着内核源代码仍然受到保护并保持不变,eBPF程序的验证步骤确保资源不会被运行无限循环的程序阻塞;
统一追踪:eBPF提供了一个单一、强大且易于访问的流程跟踪框架,这增加了可见性和安全性;
可编程性:使用eBPF有助于在不添加额外层的情况下增加环境的功能丰富性。由于代码直接在内核中运行,因此可以在eBPF事件之间存储数据,而不是像其他跟踪器那样转储数据;
表现力:eBPF具有丰富的表现力,能够执行通常只能在高级语言中才能找到的功能。
步骤22、利用eBPF字节码在内核程序中执行特定事件,并将执行结果发送至用户空间程序。
其中,AI模型的训练任务运行在内核程序对应的内核层上,内核中加载有eBPF的程序;
在本步骤中,随着AI模型的训练任务的运行,eBPF字节码在内核程序中执行hook函数的逻辑,不断获取该AI模型的训练任务所对应的函数调用、输入/输出数据、指标数据等等,并将这些内容作为执行结果,之后将该执行结果发送给用户空间程序。
可选的,利用eBPF字节码在内核程序中执行特定事件的方式为:利用JIT编译器,对eBPF字节码进行指令转换,得到原生指令,原生指令为内核所能执行的指令;基于原生指令,在内核程序中执行特定事件。
作为一种示例,在内核程序获取eBPF字节码之后,先校验eBPF字节码,即进行代码的安全性检查,在通过之后,利用JIT编译器,将eBPF字节码转换为内核所能执行的指令,并在内核中执行截获AI模型的函数调用、记录函数的执行情况、分析AI模型的输入/输出数据、收集统计信息、监控AI模型运行状态的指标数据等特定事件。
作为示例,以指标数据中的磁盘IO为例,IO对于AI训练,AI应用开发者是无感知的,但是对于AI任务的执行时不可或缺的IO栈复杂且容易产生瓶颈,使用eBPF可动态跟踪内核变化,跟踪IO栈变化,调用的函数,这样可以找到过去监控工具没有办法察觉到的可以优化的点。
1、容器化部署eBPF任务,探测内核指标;2、调用bcc的库;3、检测队列IO,在入队列和出队列的延迟,入队列打一个点,需要获取时间戳;出队列打一个点,获取时间戳,两个时间戳做计算,拿到延迟,这个数据再放到直方图里面做统计;4、需要用到linxu服务器,通过命令终端输入,然后打印出数据的,对于用户来说,把终端形式展示的数据,以可视化的形式展示;5、深度学习框架和eBPF(深度学习框架:执行lenet任务,若调用到blk_account_io_done内核函数,则打印出hello world字样,否则,则不打印。(AI用到的内核函数,业务逻辑,对应事件可以被采集))。
可选的,将执行结果发送至用户空间程序的方式有两种:
其一、将执行结果通过maps发送至用户空间程序。
其二、将执行结果通过perf-event发送至用户空间程序。
即,maps方式可用于将内核中实现的统计摘要信息(比如测量延迟、堆栈信息)等回传至用户空间;perf-event用于将内核采集的事件实时发送至用户空间,用户空间程序实时读取分析。
可选的,示例AI模型的训练任务对应的深度学习框架Tensorflow,图3为本申请实施例提供的深度学习框架示意图,如图3所示,Tensorflow的基本架构包括:系统架构31、前端编程模块32、负责构建计算图33、代码一34(包括:java、c++、Python等)、后端运行时35、负责执行计算图36、代码二37(包括:c++)。
Tensorflow的详细架构包括:训练的库、推断的库、上层API、底层API、分布主机、数据流执行器、操作实现、网络层、设备层。
TensorFlow的特点:灵活性:只要可以将计算表示成数据流图,就可以使用Tensorflow;跨平台:linux,windows,android,ios,raspberry pi等等;多语言:上层开发语言python,c++,java,go等等;速度快:包含了XLA这款强大的线性代数编译器;上手快:Keras,Estimiators,等等高层API;可移植:代码几乎不加修改移植到CPU、图形处理器(graphics processing unit,GPU)、张量处理单元(Tensor Processing Unit,TPU)等等。
TensorFlow优势:集大成者;数据流图,文档详尽,功能强大的可视化组件tensorboard和模拟环境playground,移动端ios和android云端,服务端,分布式,各种硬件。
图4为本申请实施例提供的深度学习平台示意图,如图4所示,该深度学习平台包括:数据接入41、数据管理与标注42、模型开发与训练43、模型服务化44。
其中,数据管理与标注42包括:数据加工、图片标注、语音标注、数据订阅、视频标注、文本标注;模型开发与训练43包括:模型训练、模型开发、自动学习;模型服务化44包括:模型管理、模型封装、模型评估、模型部署。
数据接入41:具备多源数据接入功能,全面覆盖包括云化数仓、大数据云等。
数据管理与标注42:对不同类型的数据进行分门别类的处理和管理,告别数据脏乱差。具备标注任务全生命周期管理功能,包括任务创建、标签设置、人员分配、预标注、进度跟踪、生成标注结果等功能。其中标注工具集图像、视频、文本、语音于一体的数据标注工具。工具包括:
(1)标注管理:支持向导式标注任务创建、灵活的标注-审核-质检流程配置、以及动态的标签创建方式,并提供实时的任务进度监管页面,实现标注任务的全生命周期管理。
(2)CV标注:提供矩形、多边形、关键点、折线、立方体等丰富的标注绘制工具,支撑业内主流的CV标注场景。
(3)文本标注:支持文本多元关系标注(多元组关系)、文本叠加和重叠标注、多层级分类标注,支撑业内主流的NLP标注场景。
(4)语音标注:支持语音截取、合并、拆分,以及波形图与频谱图转换功能,支撑业内主流的ASR标注场景。
(5)预标注:将AI平台发布的服务反向赋能平台自身,作为预标注的模型服务,助力传统的人工打标,支持高频票据识别和外呼对话识别的预标注场景,有效提升标注效率。
模型开发与训练43:为AI开发者提供一站式AI模型开发、训练以及评估环境。
模型开发:可视化托拉拽建模,预置AI建模框架、算子、模板,帮助用户实现零代码可视化快速建模。支持交互式即时运行调试,提供AutoML自动建模模式。集成Scikit-learn、Tensorflow、Pytorch等主流机器学习和深度学习框架,预置多种算法,支持多机多卡大规模分布式训练。支持Notebook模式、可视化模式、本地代码模式等7种模型开发模式。
(1)支持包括Tensorflow、Pytorch、H2O、Spark、Scikit-Learn在内的5种AI建模框架。
(2)预置200+个各类可视化建模算子,可覆盖通用AI建模、智能风控、智能推荐等建模场景。
(3)提供机器学习、深度学习、智能风控、推荐等10余个建模模板。
模型服务化44:模型服务化包含模型管理、模型封装、模型部署3个模块,并具备MLOps能力。
模型管理:提供模型仓库,支持模型注册、模型元数据管理,并提供评估、转换工具,提升模型治理能力。
模型封装:提供模型封装框架、支持基础镜像封装、支持模型镜像封装、具备模型编排能力,加速机器学习生命周期。
模型部署:支持模型在线服务部署、批量服务部署、模型服务监控、模型服务测试功能,提升模型服务治能力。
模型服务化-具备持续封装、部署、监控的MLOps
持续封装:提供封装流水线模板,支持向导式配置流水线,并根据流水线自动生成构建脚本,自动生成构建镜像的元数据信息,维护模型镜像与模型包、代码仓库、基础镜像的关系,使封装过程规范化、自动化。
持续部署:版本化管理部署yaml,使部署过程可审计,支持基于GitOps的自动部署,简化开发测试环境下的部署过程
持续监控:对已部署的模型服务进行持续监控,持续请求日志记录。
步骤23、根据执行结果,确定AI模型训练过程的相关数据,并可视化展示相关数据。
在本步骤中,将上述执行结果作为AI模型训练过程的相关数据,并进行可视化展示。
作为示例:深度学习与eBPF结合,最后将指标数据可视化到用户层:
使用深度学习框架执行lennet任务,AI训练和推理进程中动态的追踪内核参数变化。动态的注入eBPF代码段到system call功能组件或者内核功能组件。一旦这些功能组件被唤起,就会触发eBPF代码收集事先定义的metrics(即执行结果,后续被确定为指标数据),并统一这些metrics。最后上传他们到可视化监控系统,最终让用户看到。
本申请实施例提供的AI模型可观测性实现方法,应用于金融科技技术领域,该方法通过将eBPF字节码加载至内核程序,该eBPF字节码是基于钩子hook内核函数的代码生成的,并利用eBPF字节码在内核程序中执行特定事件,并将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上;根据执行结果,确定AI模型训练过程的相关数据,并可视化展示相关数据。该技术方案中通过将eBPF字节码附加到内核上的各个hook点,使得在AI模型训练时,可以采集到相应的指标数据,以实现AI模型的可观测性。
下述为本申请实施例提供的AI模型可观测性实现装置实施例,可以用于执行本申请AI模型可观测性实现方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5为本申请实施例提供的AI模型可观测性实现装置的结构示意图。如图5所示,该AI模型可观测性实现装置包括:
加载模块51,用于将eBPF字节码加载至内核程序,eBPF字节码是基于钩子hook内核函数的代码生成的;
执行模块52,用于eBPF字节码在内核程序中执行特定事件,将执行结果发送至用户空间程序,AI模型的训练任务运行在内核程序对应的内核层上,内核中加载有eBPF的程序;
确定模块53,用于根据执行结果,确定AI模型训练过程的相关数据,并可视化展示相关数据。
在本申请实施例一种可能的设计中,加载模块51,具体用于:
控制用户空间程序将eBPF字节码加载至内核程序。
在本申请实施例另一种可能的设计中,执行模块52,具体用于:
将执行结果通过maps发送至用户空间程序;
在本申请实施例再一种可能的设计中,执行模块52,具体用于:
将执行结果通过性能事件perf-event发送至用户空间程序。
在本申请实施例还一种可能的设计中,在将eBPF字节码加载至内核程序之前,生成模块,用于:
响应于用户的编程操作,生成hook内核函数的代码;
利用CLANG编译器或LLVM编译器将所述hook内核函数的代码解析生成eBPF字节码。
在本申请实施例又一种可能的设计中,执行模块52利用eBPF字节码在内核程序中执行特定事件,具体用于:
利用即时JIT编译器,对eBPF字节码进行指令转换,得到原生指令,原生指令为内核所能执行的指令;
基于原生指令,在内核程序中执行特定事件。
本申请实施例提供的AI模型可观测性实现装置,可用于执行上述任一实施例中的AI模型可观测性实现确定方法,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外,这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图6为本申请实施例提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器61、存储器62及存储在所述存储器62上并可在处理器61上运行的计算机程序指令,所述处理器61执行所述计算机程序指令时实现前述任一实施例提供的方法。
可选的,该电子设备的上述各个器件之间可以通过系统总线连接。
存储器62可以是单独的存储单元,也可以是集成在处理器61中的存储单元。处理器61的数量为一个或者多个。
应理解,处理器61可以是CPU,还可以是其他通用处理器61、数字信号处理器61(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)等。通用处理器61可以是微处理器61或者该处理器61也可以是任何常规的处理器61等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器61执行完成,或者用处理器61中的硬件及软件模块组合执行完成。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器62可能包括随机存取存储器62(randomaccess memory,RAM),也可能还包括非易失性存储器62(non-volatile memory,NVM),例如至少一个磁盘存储器62。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器62中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器62(存储介质)包括:只读存储器62(read-only memory,ROM)、RAM、快闪存储器62、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本申请实施例提供的电子设备,可用于执行上述任一方法实施例提供的AI模型可观测性实现方法,其实现原理和技术效果类似,在此不再赘述。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
可选的,将可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中读取该计算机程序,至少一个处理器执行计算机程序时可实现上述AI模型可观测性实现方法。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种AI模型可观测性实现方法,其特征在于,包括:
将扩展性的伯克利包过滤器eBPF字节码加载至内核程序,所述eBPF字节码是基于钩子hook内核函数的代码生成的;
利用所述eBPF字节码在所述内核程序中执行特定事件,并将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上,所述内核中加载有eBPF的程序;
根据所述执行结果,确定所述AI模型训练过程的相关数据,并可视化展示所述相关数据。
2.根据权利要求1所述的方法,其特征在于,所述将eBPF字节码加载至内核程序,包括:
控制用户空间程序将所述eBPF字节码加载至所述内核程序。
3.根据权利要求1所述的方法,其特征在于,所述将执行结果发送至用户空间程序,包括:
将所述执行结果通过maps发送至所述用户空间程序。
4.根据权利要求1所述的方法,其特征在于,所述将执行结果发送至用户空间程序,包括:
将所述执行结果通过性能事件perf-event发送至所述用户空间程序。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述将eBPF字节码加载至内核程序之前,所述方法还包括:
响应于用户的编程操作,生成所述hook内核函数的代码;
利用CLANG编译器或底层虚拟机LLVM编译器将所述hook内核函数的代码解析生成所述eBPF字节码。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述利用所述eBPF字节码在所述内核程序中执行特定事件,包括:
利用即时JIT编译器,对所述eBPF字节码进行指令转换,得到原生指令,所述原生指令为所述内核所能执行的指令;
基于所述原生指令,在所述内核程序中执行特定事件。
7.一种AI模型可观测性实现装置,其特征在于,包括:
加载模块,用于将eBPF字节码加载至内核程序,所述eBPF字节码是基于钩子hook内核函数的代码生成的;
执行模块,用于所述eBPF字节码在所述内核程序中执行特定事件,将执行结果发送至用户空间程序,AI模型的训练任务运行在所述内核程序对应的内核层上,所述内核中加载有eBPF的程序;
确定模块,用于根据所述执行结果,确定所述AI模型训练过程的相关数据,并可视化展示所述相关数据。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如上述权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述权利要求1至6任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310736685.5A CN116719579A (zh) | 2023-06-20 | 2023-06-20 | Ai模型可观测性实现方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310736685.5A CN116719579A (zh) | 2023-06-20 | 2023-06-20 | Ai模型可观测性实现方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116719579A true CN116719579A (zh) | 2023-09-08 |
Family
ID=87865800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310736685.5A Pending CN116719579A (zh) | 2023-06-20 | 2023-06-20 | Ai模型可观测性实现方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719579A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117290857A (zh) * | 2023-11-27 | 2023-12-26 | 中孚安全技术有限公司 | 基于eBPF实现云原生安全的系统、方法、设备及介质 |
-
2023
- 2023-06-20 CN CN202310736685.5A patent/CN116719579A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117290857A (zh) * | 2023-11-27 | 2023-12-26 | 中孚安全技术有限公司 | 基于eBPF实现云原生安全的系统、方法、设备及介质 |
CN117290857B (zh) * | 2023-11-27 | 2024-03-26 | 中孚安全技术有限公司 | 基于eBPF实现云原生安全的系统、方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8347272B2 (en) | Call graph dependency extraction by static source code analysis | |
CN108446215B (zh) | Pos机测试的方法、装置、系统及终端 | |
EP2368189B1 (en) | Debugging pipeline | |
US8938729B2 (en) | Two pass automated application instrumentation | |
CN101393535B (zh) | 将运行时事件与组件相关联的方法和系统 | |
CN105683924A (zh) | 通过从在本机模式中执行转变为在经解释的模式中执行来调试本机代码 | |
CN104850411B (zh) | 存储系统基准评测程序生成方法及装置 | |
US20150006961A1 (en) | Capturing trace information using annotated trace output | |
CN113296786B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20160321218A1 (en) | System and method for transforming image information for a target system interface | |
KR101979329B1 (ko) | 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치 | |
CN116719579A (zh) | Ai模型可观测性实现方法、装置、电子设备及存储介质 | |
Schwermer | Performance evaluation of kotlin and java on android runtime | |
US7877640B2 (en) | Method and system for providing enhanced exception messages for exceptions thrown by virtual machines | |
US9727356B2 (en) | Scaling past the java virtual machine thread limit | |
CN116662134A (zh) | 一种基于eBPF的Linux内核性能追踪工具 | |
CN111258802A (zh) | 捕获应用程序崩溃信息的方法及相关设备 | |
US20160291951A1 (en) | Dynamic provision of debuggable program code | |
CN115509913A (zh) | 软件自动化测试方法、装置、机器可读介质及设备 | |
CN113849397A (zh) | 执行引擎、虚拟机、相关装置和相关方法 | |
US20200319994A1 (en) | Generating representative microbenchmarks | |
CN105700854B (zh) | 运行应用任务的方法及装置 | |
Asegehegn | Evaluation of Rust and WebAssembly when building a Progressive Web Application: An analysis of performance and memory usage | |
CN114253526A (zh) | 在线计价方法、装置、设备及存储介质 | |
Bekkhus et al. | Resource utilization and performance: A comparative study on mobile crossplatform tools |
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 |