一种基于本地模型与云端反馈的全流程人工智能竞赛系统及其数据处理方法转让专利

申请号 : CN201910633633.9

文献号 : CN110427983B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭学栋任永亮杨菲贺同路李嘉懿龚有三张佳

申请人 : 北京智能工场科技有限公司

摘要 :

本发明针对人工智能本身的特点,创造性的提出一种基于本地模型与云端反馈的全流程人工智能竞赛系统及其数据处理方法,采用本发明的技术方案,通过一套脚本命令及代码在本地设备(PC等)运行支持PyTorch、TensorFloW、Keras、Scikit‑learn、caffe、MXNet、Theano、Torch等用于深度学习的框架实现开发环境依赖的自动化检测和安装、利用本地设备(PC等)的CPU、GPU进行小样本数据调试和通过脚本命令提交代码进行云端GPU训练、云端训练日志实时展现、多平台自动反馈训练结果;通过在本地终端登录并自动安装深度学习开发环境,自动化检测开发环境依赖并安装,节省算法开发过程,快速迭代网络结构方法。通过便捷的脚本命令将代码提交至云端GPU进行自动训练、评估,实时展示训练日志并及时反馈训练结果。

权利要求 :

1.一种全流程的人工智能竞赛系统,所述系统基于本地模型与云端反馈实现,通过便捷的脚本命令将代码提交至云端GPU进行自动训练、评估,实时展示训练日志并及时反馈训练结果;

其特征在于,所述人工智能竞赛系统包括如下模块:

(A)本地模型终端配置模块,所述本地模型终端配置模块包括有竞赛处理数据模板库文件,所述竞赛处理数据模板库文件包括如下数据包:(A1)数据赛题配置包app.yaml:该数据包为项目运行依赖基础包;

(A2)数据输入输出处理支配文件processor.py:该支配文件用于支撑数据处理的输入、输出过程;

(A3)算法流程入口包文件main.py:通过该包文件提交人工智能处理代码文件;

(A4)模型保存试用包文件model.py:用来实现模型的保存、验证和使用;

(A5)模型预测包文件predict.py:用来实现对训练完成的模型使用和预测;

(A6)数据路径包文件path.py:设置数据文件、模型文件的存放路径;

(A7)测试训练数据包文件dataset.py:用来存放训练数据和测试数据;

其中,每一个数据包文件以及支配文件均包含对应的说明文件FlyAI;所述FlyAI为添加使用支持PyTorch、TensorFlow、Keras、Scikit-learn、caffe、MXNet、Theano、Torch深度学习框架的一套脚本命令及代码的说明文件;

(B)云端反馈配置模块,所述云端反馈配置模块包括数据上传/下载端口以及云端训练模块;

所述云端训练模块利用所述上传端口获取所述本地模型终端配置模块中的所述算法流程入口包文件main.py、模型预测包文件predict.py以及测试训练数据包文件dataset.py,对所述人工智能算法进行训练;

所述云端训练模块还利用所述下载端口将所述人工智能算法进行训练的结果数据下载到所述本地模型终端配置模块,并更新所述模型保存试用包文件model.py,所述更新包括将当前所述算法流程入口包文件main.py进行保存;

所述人工智能竞赛系统还包括本地调试系统,用于在向云端上传数据之前,在所述本地模型终端配置模块中进行相应调试。

2.如权利要求1所述的全流程的人工智能竞赛系统,其特征在于,所述人工智能竞赛系统进一步包括:

(C)结果显示模块,将所述本地模型终端配置模块与所述云端反馈配置模块的相关数据进行对比显示。

3.如权利要求2所述的全流程的人工智能竞赛系统,其特征在于,所述人工智能竞赛系统的所述结果显示模块至少包括:损失率显示模块、准确率显示模块以及差异率对比模块。

4.如权利要求1所述的全流程的人工智能竞赛系统,其特征在于,所述人工智能竞赛系统还包括日志分析模块,所述日志分析模块记录所述本地模型终端配置模块和所述云端反馈配置模块的数据事件变化,包括训练次数、反馈次数、下载次数以及上传次数。

5.一种利用上述权利要求1-4任一项所述的全流程的人工智能竞赛系统进行人工智能竞赛的数据处理方法,其特征在于,所述方法包括:

在本地命令行或者第三方开发工具的Terminal命令中进入到下载的资料包根目录下;

进入到资料包目录后,如在macOS、Linux操作系统下操作,需要先执行chmod+x./flyai(授权脚本命令)进行授权,如果在Windows操作系统下操作可跳过此步骤;

继续在本地命令行执行./flyaiinit(初始化脚本命令),首次执行该脚本命令将自动安装深度学习开发环境,并在本地命令行界面显示二维码,使用之前绑定的微信账号扫码登录;

登录成功后,在本地端直接进行代码调试;

执行./flyai test(本地调试脚本命令),首次执行该命令将会调用服务请求从云端下载该项目的100条测试数据集到本地,并在本地生成命名为″data″的文件夹;

″data″文件夹下包括两个子文件夹分别是″input″、″output″;同时实现自动检测该项目所用到的python环境依赖并自动下载安装,下载安装完毕将开始利用本地设备的CPU、GPU完成10次模型训练;

在当前项目目录下,本地命令行执行./flyai train(云端训练脚本命令),将代码提交至云端进行GPU训练,同时也实现在本地命令行设置每次训练获取的数据量BATCH和训练循环的次数EPOCHS;

提交成功后,在本地命令行会显示一条附带训练任务编号Train ID的网址链接,复制并在任意浏览器打开,实时查看模型训练日志。

6.如权利要求5所述的方法,其特征在于,

所述打开链接实时查看训练日志的内容,包括:

A514:判断模型训练是否成功

A515:通过电子邮件和移动端社交平台返回错误结果,实现通过移动端查看训练错误日志,修改代码重新提交;

A516:通过电子邮件和移动端社交平台返回成功结果,过程中实现通过移动端完成提交云端训练、训练开始、训练完成、模型评估得分的通知。

7.如权利要求5所述的方法,其特征在于,

如果提交代码出现错误会在相应的状态下返回失败的状态并停止训练,模型训练完成会根据评估文件验证最终的一个模型得分。

8.如权利要求7所述的方法,其特征在于,

还包括根据所述模型得分进行奖金计算,所述奖金计算过程包括:设定总奖金额度,根据模型准确率、完成提交时间、排名情况作为参考依据;

奖金分为参与奖、突破奖、排名奖,各占总奖金的30%、20%和50%;奖金的分配原则与计算方法如下所示:参与奖

其中,Bouns表示为项目奖金的总额度,R表示为模型得分所在区间的区间系数,T表示为相同得分区间内的获奖人数;

突破奖

其中,PRIZESN表示为最终获得的突破奖,Bouns表示为项目奖金的总额度,Score表示为模型的得分,∑PrizesN-1表示为已经发放的突破奖金的和;

排名奖

其中,RA表示为最终获得的排名奖,Bouns表示为项目奖金的总额度,Timep表示为奖金的发放时间系数,由于两次发放奖金额度相同,则Timep=0.5,k为排名的权重系数。

9.一种计算机可读存储介质,其上存储有计算机执行指令,采用处理器和存储器执行所述指令,用于实现权利要求5-8任一项所述的方法。

说明书 :

一种基于本地模型与云端反馈的全流程人工智能竞赛系统及

其数据处理方法

技术领域

[0001] 本发明属于竞赛数据处理技术领域,尤其涉及一种基于本地模型与云端反馈的全流程人工智能竞赛系统及其数据处理方法。

背景技术

[0002] 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
[0003] 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的″容器″。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。
[0004] 人工智能的应用场景十分广泛,机器翻译,智能控制,专家系统,机器人学,语言和图像理解,遗传编程机器人工厂,自动程序设计,航天应用,庞大的信息处理,储存与管理,执行化合生命体无法执行的或复杂或规模庞大的任务等等。
[0005] 一般来说,对于同一个化合生命体无法执行的或复杂或规模庞大的任务,可以提出多种不同的人工智能算法。本领域技术人员所熟知的,包括神经网络(Neural network)、RL强化学习(reinforcement learning)、深度学习(deep Learning)、遗传算法(Gene)、机器学习(Machine Learning)、大数据(Big data)等。从其本质来说,人工智能算法也是一种计算机算法,也可以用时间复杂度和/或空间复杂度来综合评价。然而,人工智能是随着解决实际应用问题而产生和发展的,它不同于哪些仅仅为解决抽象的数学问题而提出的算法程序。
[0006] 为了选择出对于同一个化合生命体无法执行的或复杂或规模庞大的任务而提出的多种不同的人工智能算法优劣,需要事先给定具有实际场景和应用意义的任务,然后,候选者提出各自的算法进行问题解决和性能测试。
[0007] 通常,这个过程可以采用竞赛的方式进行,虽然竞赛并不是唯一的方式,例如还可以进行性能评价。
[0008] 然而,如前所述,人工智能是随着解决实际应用问题而产生和发展的,它不同于哪些仅仅为解决抽象的数学问题而提出的算法程序,因此,现有的各种针对普通算法程序的测试和评价流程不再使用,因为其结果仅仅是理论上的,对于实际问题的解决客观性很差。
[0009] 例如,公开号CN109508293A的发明专利申请(名称:一种高并发的算法竞赛程序在线评测系统,分类号G06F11/36)提出的一种计算机科学教学实验领域的在线评测系统,网站服务器将评测任务发送到评测网关模块上,评测任务包括用户提交的源代码和题目的评测点配置信息。在检查评测任务的合法性后,评测任务就会被加入任务队列等待程序编译。任务队列会带有一个优先度权值,综合考虑到达时间、预计评测时间、用户的优先度等信息赋予优先度。优先度高的任务将会先被评测机模块进行处理测试数据存储模块会从测试数据服务器中获得输入输出文件,并将输入文件的内容通过标准输入提供给用户程序,运行后,用户程序输出到标准输出中,并被评测机获得。在程序运行时控制模块会对沙箱容器进行监控和计时。如果程序能在规定的时间内正常运行完毕并输出,那么对比模块会将输出的结果与测试数据存储模块中的标准输出答案进行对比,判断正确与否。如果沙箱内的程序进行了非法系统调用或者运行超时,则会被控制模块强制中止运行。结果生成模块将对比模块的结果和控制模块提供的运行时间、内存等信息发送回评测网关,由评测网关汇总后发回到网站服务器中,将评测结果展示给用户。该系统仅仅是针对理论上的程序进行测试,并没有任何实际问题的解决过程;
[0010] 公布号CN 106060097B、分类号为H04L29/06的授权专利″一种信息安全竞赛的管理系统及管理方法″提供一种信息安全竞赛的管理系统,所述管理系统包括公有云身份管理子系统和私有云靶机管理子系统,所述公有云身份管理子系统包括账号管理模块、认证授权管理模块和查询模块,所述私有云靶机管理子系统包括资源管理模块、审计管理模块和信息库,其中:所述账号管理模块,其用于响应账号注册请求,创建并存储账号信息,所述账号信息包括相关联的用户账号和密码;所述认证授权管理模块,其用于接收目标用户发来的认证请求,所述认证请求中包括相关联的目标用户账号和目标密码;当所述相关联的目标用户账号和目标密码与所述账号管理模块中存储的账号信息相匹配时,确认通过所述认证请求;所述查询模块,其用于响应用户的查询请求,提供用户的竞赛成绩以及在竞赛过程中产生的日志;所述资源管理模块,其用于在所述私有云靶机管理子系统中配置终端设备、网络安全设备以及服务器,以构建靶机网络;所述审计管理模块,其用于采集用户在竞赛过程中产生的行为数据,并根据所述行为数据生成日志和竞赛成绩;所述信息库,其用于存储所述资源管理模块中配置的终端设备、网络安全设备以及服务器的配置信息以及所述审计管理模块中产生的行为数据、日志以及竞赛成绩。
[0011] 该竞赛系统并未涉及任何算法或者程序评价本身,仅仅是在对竞赛过程进行管理。
[0012] 目前的人工智能算法竞赛主要指在机器学习技术领域通过不同的算法解决同一问题,竞选出最优的解决方法,即算法模型可以达到最高准确率。
[0013] 机器学习(Machine Learning,ML)是一门多领域交叉学科,专门研究计算机怎么样模拟或者实现人类的学习行为,它是人工智能的核心,是使计算机具有智能的根本途经。深度学习(DeepLeaming, DL)是机器学习的技术和研究领域之一,它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的人工神经网络。
[0014] 机器学习技术通常包括以下步骤01~05:
[0015] 01,对采集到的原始数据进行标注,变成计算机程序可以识别的一种数据格式;
[0016] 02,对完成标注的数据进行预处理工作,比如归一化、去除奇异点等方法;
[0017] 03,选择机器学习方法,包括定义策略和模型算法(算法指基于数学、统计学、信息学等解决某一类特定问题的方式并使用计算机语言进行描述)
[0018] 04,利用GPU计算资源完成算法模型的训练(模型为最终训练的一个结果)[0019] 05,将新的数据输入到训练好的模型中并评估是否可以准确预测出正确的结果。
[0020] 目前的现有技术对于此类问题,并未给出有效的解决方法,特别是在人工智能竞赛方面,更是无相应的技术方案。
[0021] 在中国公开专利库中进行检索,仅有CN104064069B(分类号 G05B17/02)涉及″基于三维仿真的电能计量及装表接电竞赛系统″;在外国公开专利库中检索,仅检索到″US7934684B2″(分类号 B64D47/00)涉及″火箭动力交通工具竞赛信息系统″;
[0022] 进一步的,采用人工智能进行限定,仅检索到CN107866062A,分类号A63C19/06,基于人工智能的机器人竞赛场地,丝毫不涉及人工智能竞赛系统本身。
[0023] 有鉴如此,在非专利库中扩充检索发现,存在一些算法类的竞赛评价系统,主要做法如下:
[0024] 在指定赛题下载相关数据集到本地设备(PC等),在本地设备完成数据的预处理工作,并在本地设备中配置相关的开发环境、安装深度学习框架依赖,在本地设备利用GPU计算资源完成模型训练工作,根据模型输入相应的数据文件并生成预测的结果结果文件,一般格式为CSV(一种文件格式)文件。将本地设备生成的结果文件上传到竞赛平台,通过与云端预先设置的标准进行对比分析、数据处理等等。
[0025] 然而,发明人进一步发现,上述方法仅仅是泛泛的介绍,并没有具体的技术方案,并且,本地设备中安装开发环境、深度学习框架依赖经常遇到版本不兼容、学习框架安装不上等等问题,实现算法前的环境准备工作消耗较长的时间精力;
[0026] 此外,本地进行模型训练尤其是针对于大型神经网络结构训练,普通本地设备中的CPU无法满足模型计算的要求。并且配置本地设备(PC等)的GPU硬件设备需要消耗巨大的成本。
[0027] 本地设备进行模型训练并完成后,需要再次将验证集数据输入到模型中并得到预测结果文件,提交预测结果文件进行模型质量评估,该程序步骤繁琐且增加了模型的迭代时间成本。

发明内容

[0028] 由于现有技术并未给出人工智能竞赛系统的数据处理、测试、公家等问题,本发明针对人工智能本身的特点,创造性的提出一种基于本地模型与云端反馈的全流程人工智能竞赛系统及其数据处理方法。
[0029] 采用本发明的技术方案,通过本地设备(PC)运行的支持PyTorch、 TensorFlow、Keras、Scikit-learn、caffe、MXNet、Theano、Torch 等深度学习框架的一套脚本命令及代码实现开发环境依赖的自动化检测和安装、利用本地设备(PC等)CPU、GPU进行小样本数据调试和通过脚本命令提交代码进行云端GPU训练、云端训练日志实时展现、云端自动评估模型得分、多平台自动反馈训练结果。
[0030] 在本发明的第一个方面,提出一种全流程的人工智能竞赛系统,所述竞赛系统基于本地模型与云端反馈实现,包括:
[0031] (A)本地模型终端配置模块,所述本地模型终端配置模块包括有竞赛处理数据模板库文件,所述竞赛处理数据模板库文件包括如下数据包:
[0032] (A1)数据赛题配置包app.yaml:该数据包为项目运行依赖基础包;
[0033] (A2)数据输入输出处理支配文件processor.py:该支配文件用于支撑数据处理的输入、输出过程;
[0034] (A3)算法流程入口包文件main.py:通过该包文件提交人工智能处理代码文件;
[0035] (A4)模型保存试用包文件model.py:用来实现模型的保存、验证和使用;
[0036] (A5)模型预测包文件predict.py:用来实现对训练完成的模型使用和预测;
[0037] (A6)数据路径包文件path.py:设置数据文件、模型文件的存放路径;
[0038] (A7)测试训练数据包文件dataset.py:用来存放训练数据和测试数据。
[0039] 其中,每一个数据包文件以及支配文件均包含对应的说明文件 FlyAI;
[0040] 所述FlyAI为添加使用支持PyTorch、TensorFlow、Keras、 Scikit-learn、caffe、MXNet、Theano、Torch等深度学习框架的一套脚本命令及代码的说明文件;
[0041] (B)云端反馈配置模块,所述云端反馈配置模块包括数据上传/ 下载端口以及云端训练模块;
[0042] 所述云端训练模块利用所述上传端口获取所述本地模型终端配置模块中的所述算法流程入口包文件main.py、模型预测包文件 predict.py以及测试训练数据包文件dataset.py,对所述人工智能算法进行训练;
[0043] 所述云端训练模块还利用所述下载端口将所述人工智能算法进行训练的结果数据下载到所述本地模型终端配置模块,并更新所述模型保存试用包文件model.py,所属更新包括将当前所述算法流程入口包文件main.py进行保存。
[0044] 进一步的,所述人工智能竞赛系统还包括:结果显示模块,将所述本地模型终端配置模块与所述云端反馈配置模块的相关数据进行对比显示;
[0045] 作为一个优选,所述人工智能竞赛系统的所述结果显示模块至少包括:损失率显示模块、准确率显示模块以及差异率对比模块。
[0046] 作为一个优选,所述人工智能竞赛系统还包括日志分析模块,所述日志分析模块记录所述本地模型终端配置模块和所述云端反馈配置模块的数据事件变化,包括训练次数、反馈次数、下载次数以及上传次数。
[0047] 在另一方面,本发明所述的人工智能竞赛系统还包括本地调试系统,用于在向云端上传数据之前,在所述本地模型终端配置模块中进行相应调试;
[0048] 在另一方面,本发明所述的人工智能竞赛系统还包括提示模块,用于在向云端上传数据之前,根据所述本地调试系统的反馈结果,给出相应的操作提示;
[0049] 具体而言,所述操作提示包括:提交云端训练、开始进行云端 GPU训练、训练失败/成功、模型审核通过/不通过。
[0050] 在本发明的第二个方面,提出一种利用上述全流程的人工智能竞赛系统进行人工智能竞赛的数据处理方法,所述方法包括:
[0051] 首先,需要在本地命令行或者第三方开发工具的Terminal(命令行)中进入到下载的资料包根目录下;
[0052] 进入到资料包目录后,如在macOS、Linux操作系统下操作,需要先执行chmod+x./flyai(授权脚本命令)进行授权,如果在 Windows操作系统下操作可跳过此步骤;
[0053] 继续在本地命令行执行./flyai init(初始化脚本命令),首次执行该脚本命令将自动安装深度学习开发环境,并在本地命令行界面显示二维码,使用之前绑定的微信账号扫码登录;
[0054] 登录成功后,因为所下载所有资料包已在main.py(程序入口文件)内实现算法,可以在本地端直接进行代码调试;
[0055] 执行./flyai test(本地调试脚本命令),首次执行该命令将会调用服务请求从云端下载该项目的100条测试数据集到本地,并在本地生成命名为″data″的文件夹;
[0056] ″data″文件夹下包括两个子文件夹分别是″input″、″output″。同时实现自动检测该项目所用到的python环境依赖并自动下载安装,下载安装完毕将开始利用本地设备(PC等)中的CPU、GPU完成 10次模型训练;
[0057] 每次的训练展示结果:loss(测试损失率)、acc(测试准确率)、 val_loss(验证损失率)、val_acc(验证准确率)以及本次训练best accuracy(最佳准确率);
[0058] 在当前项目目录下,本地命令行执行./flyai train(云端训练脚本命令),可以将代码提交至云端进行GPU训练,同时也实现在本地命令行可以设置BATCH(每次训练获取的数据量)和EPOCHS(训练循环的次数)的训练参数;
[0059] 提交成功后,在本地命令行会显示一条附带Train ID(训练任务编号)的网址链接,复制并在任意浏览器打开,可以看到实时展示的模型训练日志;
[0060] 如果提交代码出现错误会在相应的状态下返回失败的状态并停止训练,模型训练完成会根据评估文件验证最终的一个模型得分;
[0061] 训练通知会以电子邮件和微信服务号公众平台两种渠道推送消息;
[0062] 通过注册账号时绑定微信,运用微信第三方接口服务实现在本地提交训练至云端操作时,及时反馈操作信息并推送提交成功的消息通知;
[0063] 所有操作提示通知的分别为:提交云端训练、开始进行云端GPU 训练、训练失败/成功并反馈得分、模型审核通过/不通过。
[0064] 进一步的,所述方法包括:
[0065] A501:在本地终端或第三方IDE工具Terminal(命令行)中进入到项目资料包目录[0066] A502:判断执行该操作的系统环境
[0067] A503:如果本地环境为macOS/Linux(操作系统),需要执行 chmod+x./flyai(脚本命令)进行操作授权
[0068] A504:如果本地环境为WindowS,不做任何操作,跳至下一步
[0069] A505:执行初始化命令./flyai init(初始化脚本命令)
[0070] A506:判断在本地命令行是否首次执行./flyai init(初始化脚本命令)[0071] A507:首次执行该命令自动安装深度学习开发环境并显示二维码请求微信扫码登录网站账号
[0072] A508:执行./flyai test(本地调试脚本命令)进入到本地调式
[0073] A509:判断在本地命令行是否为首次执行./flyai test(本地调试脚本命令)[0074] A510:首次执行./flyai test(本地调试脚本命令)将会请求从云端下载该项目的100条测试数据集到本地端,并在本地端生成名为″data″的文件夹,包含两个子文件夹:″input″、″output″。
[0075] A511:实现自动检测该项目所用到python环境依赖并自动进行下载,利用本地设备(PC等)中的CPU、GPU进行10次本地模型训练
[0076] A512:在本地命令行进入项目目录,执行./flyai train(云端训练脚本命令)可将代码提交至云端进行训练,同时可在本地命令行设置BATCH(每次训练获取的数据量)和EPOCHS(训练循环的次数)
[0077] A513:提交成功会在本地命令行显示一条附带TrainID(训练任务编号)的网址链接,打开链接实时查看训练日志的内容,包含多种训练状态。
[0078] A514:判断模型训练是否成功
[0079] A515:通过电子邮件和移动端社交平台返回错误结果,实现通过移动端查看训练错误日志,修改代码重新提交
[0080] A516:通过电子邮件和移动端社交平台返回成功结果,过程中实现通过移动端完成提交云端训练、训练开始、训练完成、模型评估得分的通知。
[0081] 可见,通过本发明提出的基于本地模型与云端反馈的全流程人工智能竞赛系统,能够通过在本地终端登录并自动安装深度学习开发环境,自动化检测开发环境依赖并安装,提供数据集预处理方法、数据处理规范化,节省算法开发过程,快速迭代网络结构方法;通过便捷的脚本命令将代码提交至云端GPU进行自动训练、评估,实时展示训练日志并及时反馈训练结果;
[0082] 而通过本发明提出的一种利用上述全流程的人工智能竞赛系统进行人工智能竞赛的数据处理方法,站在需求企业角度考虑,在一定程度上保证了数据的安全性、隐私性,通过云端GPU计算的方式,解决一部分用户的硬件设备要求,大大提升了模型训练的一个迭代效率和用户参与体验;
[0083] 作为具体的竞赛奖金分配方法,本发明还提供如下奖金分配方案:
[0084] 大赛奖金发放方式:设定总奖金额度,根据模型准确率、完成提交时间、排名情况作为参考依据,按照一定的计算方法进行计算。
[0085] 奖金分为参与奖、突破奖、排名奖,各占总奖金的30%、20%和50%;奖金的分配原则与计算方法如下所示:
[0086] 参与奖
[0087] 将标准得分与100分之间分成5个区间值例如标准得分为90, R代表区间,那么5个区间分别为90<=R1<92;92<=R2<94; 94<=R3<96;96<=R4<98;98<=R5<100;
[0088] 如果作品得分为93分,那么将获得在第R2个区间内的对应奖金;
[0089] 每个区间的奖金额度不一样,根据五个区间的分数高低,5个区间的系数R为:R1=0.02;
[0090] R2=0.08;R3=0.15;R4=0.25;R5=0.5;
[0091] 参与奖最终的计算公式为:
[0092]
[0093] 其中Bouns表示为项目奖金的总额度,R表示为模型得分所在区间的区间系数,T表示为相同得分区间内的获奖人数;
[0094] 突破奖
[0095] 根据更新排行榜的得分计算所获得的奖金额度并减去已发放的奖金额度,最终为自己所获得的突破奖金。
[0096] 突破奖的计算公式为:
[0097]
[0098] PRIZESN表示为最终获得的突破奖,Bouns表示为项目奖金的总额度,Score表示为模型的得分,∑PrizesN-1表示为已经发放的突破奖金的和;
[0099] 排名奖
[0100] 排名奖是根据得分成绩排名前三的用户可以获得的奖金,排名奖分为项目发布以后的周排名奖和月排名奖,比如竞赛的发布日期为 2019年6月11日下午15:00:00,那么周排名奖的发放时间为2019 年6月18日下午15:00:00,月排名奖的发放时间为2019年7月 11日下午15:00:00;
[0101] 根据前三名的排名顺序,获得的排名奖金不同,通过引入一个系数k权重来计算前三名的分配额度。第一名K1=0.5;第二名k2= 0.3;第三名k3=0.2;
[0102] 周排名奖金与月排名奖金发放额度相同,各占总排名奖金的 50%;
[0103] 排名奖金计算公式为:
[0104]
[0105] RA表示为最终获得的排名奖,Bouns表示为项目奖金的总额度, Timep表示为奖金的发放时间系数,由于两次发放奖金额度相同,则 Timep=0.5,k为排名的权重系数;
[0106] 具体而言上述过程包括如下步骤构成的技术方案:
[0107] A701:云端GPU模型训练成功并输出模型预测的准确率得分
[0108] A702:判断训练的代码是否与项目样例的代码完全相同
[0109] A703:如果与样例代码完全相同,自动向用户返回训练结果,作品无效[0110] A704:判断模型得分是否超过基线标准分
[0111] A705:如果模型得分未超过基线标准分,不经过人工审核自动发布结果[0112] A706:如果模型超过基线标准分,人工审核对比代码
[0113] A707:如果模型人工审核未通过,给用户发送审核未通过的原因和通知[0114] A708:审核通过的用户根据得分成绩进行排名
[0115] A709:计算模型得分获得的奖金金额
[0116] A710:通过电子邮件和微信服务平台发送审核结果通知
[0117] A711:通过网站实名认证可以进行奖金的提现。
[0118] 本发明的上述方案均可以通过计算机实现,因此,在第三个方面,提供一种计算机可读存储介质,其上存储有计算机执行指令,采用处理器和存储器执行所述指令,用于实现利用上述全流程的人工智能竞赛系统进行人工智能竞赛的数据处理方法。
[0119] 本发明的进一步优点和具体实施方式将结合说明书附图进一步体现。

附图说明

[0120] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0121] 图1是根据本发明实施例的一种基于本地模型与云端反馈的全流程人工智能竞赛系统的基于本地模型与云端反馈的全流程人工智能竞赛系统的框架图
[0122] 图2是根据本发明实施例的一种基于本地模型与云端反馈的全流程人工智能竞赛系统的本地模型的本地模型终端配置模块的数据详细包
[0123] 图3是根据本发明实施例的一种基于本地模型与云端反馈的全流程人工智能竞赛系统的本地环境调试和提交云端训练的过程图
[0124] 图4是根据本发明实施例的一种基于本地模型与云端反馈的全流程人工智能竞赛系统的训练日志的具体应用步骤
[0125] 图5是根据本发明实施例的一种基于本地模型与云端反馈的全流程人工智能竞赛系统的云端反馈的训练流程图
[0126] 图6是根据本发明实施例的一种基于本地模型与云端反馈的全流程人工智能竞赛系统的审核和反馈流程图
[0127] 图7是本发明竞赛结束后的实时奖金分配模式。具体实施例
[0128] 为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
[0129] 参见图1,在本发明的第一个方面,提出一种全流程的人工智能竞赛系统,所述竞赛系统基于本地模型与云端反馈实现,包括本地模型终端配置模块、云端反馈配置模块、结果显示模块、日志分析模块以及本地调试系统、提示模块。
[0130] 参见图2,所述本地模型终端配置模块包括本地模型终端配置模块,所述本地模型终端配置模块包括有竞赛处理数据模板库文件。所述竞赛处理数据模板库文件以参赛资料Zip(一种压缩包的格式)压缩包存在,需手动解压文件包。
[0131] 打开解压包将获得以下相关文件:
[0132] app.yaml(赛题的配置文件),主要维持项目运行依赖;
[0133] processor.py(数据处理输入、输出文件);
[0134] main.py(程序入口文件),主要在该文件中实现自己的算法;
[0135] model.py(用来实现模型的保存、验证和使用);
[0136] predict.py(对训练完成的模型使用和预测);
[0137] path.py(可以设置数据文件、模型文件的存放路径);
[0138] dataset.py(用来获得训练数据和测试数据);
[0139] 每个资料包中添加使用支持PyTorch、TensorFlow、Keras、 Scikit-learn、caffe、MXNet、Theano、Torch等深度学习框架的一套脚本命令及代码的说明文件,文件命名为:README.md(使用说明文件);
[0140] 作为优选,所述云端反馈配置模块包括数据上传/下载端口以及云端训练模块;
[0141] 所述云端训练模块利用所述上传端口获取所述本地模型终端配置模块中的所述算法流程入口包文件main.py、模型预测包文件 predict.py以及测试训练数据包文件dataset.py,对所述人工智能算法进行训练;
[0142] 所述云端训练模块还利用所述下载端口将所述人工智能算法进行训练的结果数据下载到所述本地模型终端配置模块,并更新所述模型保存试用包文件model.py,所属更新包括将当前所述算法流程入口包文件main.py进行保存。
[0143] 进一步的,所述人工智能竞赛系统还包括:结果显示模块,将所述本地模型终端配置模块与所述云端反馈配置模块的相关数据进行对比显示;
[0144] 作为一个优选,所述人工智能竞赛系统的所述结果显示模块至少包括:损失率显示模块、准确率显示模块以及差异率对比模块。
[0145] 作为一个优选,所述人工智能竞赛系统还包括日志分析模块,所述日志分析模块记录所述本地模型终端配置模块和所述云端反馈配置模块的数据事件变化,包括训练次数、反馈次数、下载次数以及上传次数。
[0146] 在另一方面,本发明所述的人工智能竞赛系统还包括本地调试系统,用于在向云端上传数据之前,在所述本地模型终端配置模块中进行相应调试;
[0147] 在另一方面,本发明所述的人工智能竞赛系统还包括提示模块,用于在向云端上传数据之前,根据所述本地调试系统的反馈结果,给出相应的操作提示;
[0148] 具体而言,所述操作提示包括:提交云端训练、开始进行云端 GPU训练、训练失败/成功、模型审核通过/不通过。
[0149] 参见图3,本地环境调试和提交云端训练的过程图包括:
[0150] 首先,需要在本地命令行或者第三方开发工具的Terminal(命令行)中进入到下载的资料包根目录下;
[0151] 进入到资料包目录后,如在macOS、Linux操作系统下操作,需要先执行chmod+x./flyai(授权脚本命令)进行授权,如果在 Windows操作系统下操作可跳过此步骤;
[0152] 继续在本地命令行执行./flyai init(初始化脚本命令),首次执行该脚本命令将自动安装深度学习开发环境,并在本地命令行界面显示二维码,使用之前绑定的微信账号扫码登录;
[0153] 登录成功后,因为所下载所有资料包已在main.py(程序入口文件)内实现算法,可以在本地端直接进行代码调试;
[0154] 执行./flyai test(本地调试脚本命令),首次执行该命令将会调用服务请求从云端下载该项目的100条测试数据集到本地,并在本地生成命名为″data″的文件夹;
[0155] ″data″文件夹下包括两个子文件夹分别是″input″、″output″。同时实现自动检测该项目所用到的python环境依赖并自动下载安装,下载安装完毕将开始利用本地设备(PC等)CPU、GPU完成10次模型训练;本地调试的具体应用步骤为S301~S309;
[0156] 参见图4,为训练日志的具体应用步骤,包括:
[0157] 每次的训练展示结果:loss(测试损失率)、acc(测试准确率)、 val_loss(验证损失率)、val_acc(验证准确率)以及本次训练best accuracy(最佳准确率);
[0158] 在当前项目目录下,本地命令行执行./flyai train(脚本命令),可以将代码提交至云端进行GPU训练,同时也实现在本地命令行可以设置BATCH(每次训练获取的数据量)和EPOCHS(训练循环的次数)的训练参数;
[0159] 提交成功后,在本地命令行会显示一条附带TrainID(训练任务编号)的网址链接,复制并在任意浏览器打开,可以看到实时展示的模型训练日志;
[0160] 训练日志的具体应用步骤为S401~S410。
[0161] 图5是云端反馈的训练流程图
[0162] 如果提交代码出现错误会在相应的状态下返回失败的状态并停止训练,模型训练完成会根据评估文件验证最终的一个模型得分;
[0163] 模型训练过程中,通过每次训练评估结果实现自动化算法结构参数调整并自动开始下一次模型训练,通过一定次数的循环训练最终获得较优化的模型得分。
[0164] 模型训练完成可以实现模型服务自动化云端部署,通过使用API (Application Programming Interface,应用程序编程接口)调用的方式满足对应用软件的功能服务需求。
[0165] 训练通知会以电子邮件和微信服务号公众平台两种渠道推送消息;
[0166] 通过注册账号时绑定微信,运用微信第三方接口服务实现在本地提交训练至云端操作时,及时反馈操作信息并推送提交成功的消息通知;
[0167] 所有操作提示通知的分别为:提交云端训练、开始进行云端GPU 训练、训练失败/成功并反馈得分、模型审核通过/不通过、排行榜更新通知;
[0168] A501:在本地终端或第三方IDE工具Terminal(命令行)中进入到项目资料包目录[0169] A502:判断执行该操作的系统环境
[0170] A503:如果本地环境为macOS/Linux(操作系统),需要执行 chmod+x./flyai(授权脚本命令)进行操作授权
[0171] A504:如果本地环境为Windows,不做任何操作,跳至下一步
[0172] A505:执行初始化命令./flyai init(初始化脚本命令)
[0173] A506:判断在本地命令行是否首次执行./flyai init(初始化脚本命令)[0174] A507:首次执行该命令自动安装深度学习开发环境并显示二维码请求微信扫码登录网站账号
[0175] A508:执行./flyai test(本地调试脚本命令)进入到本地调式
[0176] A509:判断在本地命令行是否为首次执行./flyai test(本地调试脚本命令)[0177] A510:首次执行./flyai test(本地调试脚本命令)将会请求从云端下载该项目的100条测试数据集到本地端,并在本地端生成名为″data″的文件夹,包含两个子文件夹:″input″、″output″。
[0178] A511:实现自动检测该项目所用到python环境依赖并自动进行下载,利用本地设备(PC等)中的CPU、GPU进行10次本地模型训练
[0179] A512:在本地命令行进入项目目录,执行./flyai train(云端训练脚本命令)可将代码提交至云端进行训练,同时可在本地命令行设置BATCH(每次训练获取的数据量)和EPOCHS(训练循环的次数)
[0180] A513:提交成功会在本地命令行显示一条附带TrainID(训练任务编号)的网址链接,打开链接实时查看训练日志的内容,包含多种训练状态。
[0181] A514:判断模型训练是否成功
[0182] A515:通过电子邮件和移动端社交平台返回错误结果,实现通过移动端查看训练错误日志,修改代码重新提交
[0183] A516:通过电子邮件和移动端社交平台返回成功结果,过程中实现通过移动端完成提交云端训练、训练开始、训练完成、模型评估得分的通知
[0184] 图6是审核和反馈流程图。
[0185] 针对现有的竞赛方式,本发明设计从代码提交方式、模型训练方式、奖金分配方式等方面使用一种新的方法完成竞赛业务模式;
[0186] 站在需求企业角度考虑,在一定程度上保证了数据的安全性、隐私性,缩减了参与竞赛的准备工作流程并且也降低了人工智能的竞赛参与门槛,为更多用户带来更大的参与体验、收益获取的更多机会。
[0187] 通过云端GPU计算的方式,解决一部分用户的硬件设备要求,大大提升了模型训练的一个迭代效率和用户参与体验。
[0188] 参见图7,是竞赛结束后的实时奖金分配模式。
[0189] 实时获取奖金让整个赛制时间过长问题得到解决,企业能够更快获取需求结果。
[0190] 整体操作实现流程为A701~A711
[0191] A701:云端GPU模型训练成功并输出模型预测的准确率得分
[0192] A702:判断训练的代码是否与项目样例的代码完全相同
[0193] A703:如果与样例代码完全相同,自动向用户返回训练结果,作品无效[0194] A704:判断模型得分是否超过基线标准分
[0195] A705:如果模型得分未超过基线标准分,不经过人工审核自动发布结果[0196] A706:如果模型超过基线标准分,人工审核对比代码
[0197] A707:如果模型人工审核未通过,给用户发送审核未通过的原因和通知[0198] A708:审核通过的用户根据得分成绩进行排名
[0199] A709:计算模型得分获得的奖金金额
[0200] A710:通过电子邮件和微信服务平台发送审核结果通知
[0201] A711:通过网站实名认证可以进行奖金的提现
[0202] 通过在本地终端登录并自动安装深度学习开发环境,自动化检测开发环境依赖并安装,提供数据集预处理方法、数据处理规范化,节省算法开发过程,快速迭代网络结构方法。
[0203] 通过便捷的脚本命令将代码提交至云端GPU进行自动训练、评估,实时展示训练日志并及时反馈训练结果。
[0204] 作为本发明的另外一个实施例,作为具体的竞赛奖金分配方法,本发明还提供如下奖金分配方案:
[0205] 大赛奖金发放方式:设定总奖金额度,根据模型准确率、完成提交时间、排名情况作为参考依据,按照一定的计算方法进行计算。
[0206] 奖金分为参与奖、突破奖、排名奖,各占总奖金的30%、20%和50%;奖金的分配原则与计算方法如下所示:
[0207] 参与奖
[0208] 将标准得分与100分之间分成5个区间值,例如标准得分为90, R代表区间,那么5个区间分别为90<=R1<92;92<=R2<94; 94<=R3<96;96<=R4<98;98<=R5<100;
[0209] 如果作品得分为93分,那么将获得在第R2个区间内的对应奖金;
[0210] 每个区间的奖金额度不一样,根据五个区间的分数高低,5个区间的系数R为:R1=0.02;
[0211] R2=0.08;R3=0.15;R4=0.25;R5=0.5;
[0212] 参与奖最终的计算公式为:
[0213]
[0214] 其中,Bouns表示为项目奖金的总额度,R表示为模型得分所在区间的区间系数,T表示为相同得分区间内的获奖人数;
[0215] 突破奖
[0216] 根据更新排行榜的得分计算所获得的奖金额度并减去已发放的奖金额度,最终为自己所获得的突破奖金。
[0217] 突破奖的计算公式为:
[0218]
[0219] 其中,PRIZESN表示为最终获得的突破奖,Bouns表示为项目奖金的总额度,Score表示为模型的得分,∑PrizesN-1表示为已经发放的突破奖金的和;
[0220] 排名奖
[0221] 排名奖是根据得分成绩排名前三的用户可以获得的奖金,排名奖分为项目发布以后的周排名奖和月排名奖,比如竞赛的发布日期为 2019年6月11日下午15:00:00,那么周排名奖的发放时间为2019 年6月18日下午15:00:00,月排名奖的发放时间为2019年7月 11日下午15:00:00;
[0222] 根据前三名的排名顺序,获得的排名奖金不同,通过引入一个系数k权重来计算前三名的分配额度。第一名K1=0.5;第二名k2= 0.3;第三名k3=0.2;
[0223] 周排名奖金与月排名奖金发放额度相同,各占总排名奖金的 50%;
[0224] 排名奖金计算公式为:
[0225]
[0226] 其中,RA表示为最终获得的排名奖,Bouns表示为项目奖金的总额度,Timep表示为奖金的发放时间系数,由于两次发放奖金额度相同,则Timep=0.5,k为排名的权重系数;
[0227] 具体而言上述过程包括如下步骤构成的技术方案:
[0228] A701:云端GPU模型训练成功并输出模型预测的准确率得分
[0229] A702:判断训练的代码是否与项目样例的代码完全相同
[0230] A703:如果与样例代码完全相同,自动向用户返回训练结果,作品无效[0231] A704:判断模型得分是否超过基线标准分
[0232] A705:如果模型得分未超过基线标准分,不经过人工审核自动发布结果[0233] A706:如果模型超过基线标准分,人工审核对比代码
[0234] A707:如果模型人工审核未通过,给用户发送审核未通过的原因和通知[0235] A708:审核通过的用户根据得分成绩进行排名
[0236] A709:计算模型得分获得的奖金金额
[0237] A710:通过电子邮件和微信服务平台发送审核结果通知
[0238] A711:通过网站实名认证可以进行奖金的提现。
[0239] 以上所述仅为本发明的较佳实施例而已,上述实施例可以组合或者合并,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。