程序聚合 软件案例 百度AI开放平台 边缘端核心推理组件EdgeKit的设计与开发-EdgeKit

百度AI开放平台 边缘端核心推理组件EdgeKit的设计与开发-EdgeKit

2025-06-09 16:51:00
行业:云计算
载体:云服务/云平台、算法模型
技术:C++、ONNX Runtime

业务背景

公有云是云计算概念的主流解决方案,但是对于边缘端部署情况,需要面临如网络延迟太大,网络连接不稳定等诸多问题。提供离线SDK部署方案可以解决以上问题

功能介绍

百度智能云平台包含模型的训练和发布全流程,模型发布阶段会对接训练阶段的模型产出,对于离线部署的客户需要生成离线推理SDK包。EdgeKit对接适配多款硬件如Nvidia-GPU,高通骁龙芯片等。同时为了压缩部署成本,需要对已有的模型实施一系列模型压缩算法,以达到加速目的。

项目实现

EdgeKit
1. 负责EdgeKit在Nvidia-GPU端上落地,基于TensorRT推理框架开发边缘端推理引擎;负责EdgeKit在高通骁龙系列DSP、GPU端上落地,基于SNPE推理框架的边缘端推理引擎,支持包括SE-ResNeXt、YoloV3、Faster-RCNN等多个CV模型;
2. 拓展网络支持范围和优化推理性能,TensorRT自定义包括relu6、broadcast_mul、upsample等算子,优化算子性能,单线程推理延迟平均减少~5%;开发SNPE INT8量化组件,针对不同的网络结构适配量化算法。
3. 负责开发EdgeKit针对经典机器学习模型的推理引擎,支持包括决策树、逻辑回归等多种机器学习模型,支持框架包括SkLearn、XGBoost、PMML;建设经典机器学习model zoo。
4. 跨平台移植,负责利用MSVC和MinGW工具将EdgeKit的多个C/C++组件适配到Windows平台。

Juicer模型压缩
1. 开发Juicer针对Paddle模型的量化、通道剪枝、知识蒸馏等模型压缩组件,模型压缩方法支持多个CV网络结构,包括SE-ResNeXt、YoloV3、Faster-RCNN等;将压缩后的模型适配到包括Intel-x86、Nvidia-GPU、ARM等多种设备端。
2. 设计并实现组合压缩策略,基于airflow开发相关调度组件显著提升原模型性能,如在Intel x86平台上实现YoloV3单线程推理延迟平均降低155%,模型体积减小153%、内存占用降低237%;主导模型压缩组件升级到动态计算图;优化通道剪枝策略,利用敏感度分析方法搜索更佳的模型结构以达到更优的压缩效果,mAP/Top1平均提升~1%。

示例图片视频


k
3天前活跃
方向: 人工智能-计算机视觉与图像处理、人工智能-机器学习与深度学习、
交付率:100.00%
相似推荐
财险统一平台-统一平台
负责公司项目架构改造、兼容及公司框架模式设计开发 负责项目核心代码与优化、代码质量走查及代码规范沟制定 负责权限内的环境部署、运维、搭建 负责项目的日常需求开发及开发任务协调开发 负责国产化改造相关事宜主导 负责适配国产信创浏览器和常规五大内核浏览器 负责按照公司统一UI标准且基于用户体验进行项目维护 负责人保财险后台管理系统单点登录维护 负责财险整体前台架构相关支持等 负责微前端qiankun主、微应用开发集成及相关改造优化 负责国产化(信创)改造部署调试及pass相关改造调试等
东泰证券
1、负责绘制工作流并上传,贷款审批通过绘制工作流及配置相关信息执行贷款审批流程。 2、负责家庭成员删除功能模块,删除流程通过之后,需要远程调用客户开放接口,对客户信贷系统进行信息同步。 3、负责风险评估模块,根据客户姓名与身份证号进行征信获取查询。 4、协助修改同组项目bug,主要负责bug问题排查,简单逻辑自行修改,sql优化。
银行综合担保业务系统
基于贷款担保多形态的业务场景打造综合金融平台,满足集团融资担保、委托贷款、发债增信、 小贷典当、保函、保理、融资租赁、投资业务以及今后可能新开展业务的需求。项目主要分为两个阶段。阶段 一:以保理系统为切入点,建立以保理业务为基础的业务作业系统、上线统一面客门户web 端、一体化风控平 台;实现代办任务、客户管理、项目管理、风险管理、财务管理、会议管理、数据驾驶舱等一系列功能; 阶段 二:围绕阶段一成果,完善保理业务作业系统、统一面客门户、一体化风控平台等,完善系统功能、优化用户 体验;同时实现系统与核心系统之间的对接。
XX银行-营销业务-辅助营销系统
1、提供后台管理功能,便于领导者对于营销整体情况的掌握和了解; 2、提供个人营销结果排名和团队营销成果展示,有效提升团队管理水平; 3、提供高可用、扩展性、便捷性等特点的项目代码,便于根据业务发展进行升级优化;
建行大学(建设银行内部项目)-https://u.ccb.com/
1. 使用SpringMVC框架来实现模型层、视图层、控制层的管理,提高藕合。过滤器过滤不安全访问,拦截器对请求进行TOKEN权限校验。 2. 使用Spring框架的内置注解和IOC完成对象注入管理和容器管理。通过AOP切面来实现日志和异常管理。 3. 使用AKSK校验来保证和第三方接口交互的安全性问题,同时可以结合拦截器和AOP切面统一对需要AKSK校验的接口进行管理。 4. 使用SpringBoot框架和框架内部自带的tomcat进行快速开发,结合Maven对lib包的管理,将需要使用的pom文件依赖构建进来,提高开发效率。 5. 简单业务使用SpringDataJPA或MybatisPlus来实现JDBC的交互、复杂业务使用Mybatis实现JDBC的交互。 6. 由于项目庞大,功能模块较多,使用SpringCloud来进行微服务管理,每个模块单独分为一个服务,这样服务之间用过Feign外呼或者HttpClient交互,保证模块之前尽可能的藕合,不用相互影响,利于维护。 7. 通过SpringBatch和XXL-JOB来实现分布式数据批处理,保证数据处理的有效性和安全性。XXL-JOB的图形化可配置界面更利于定时任务的维护及管理。 8. 通过Druid结合Mysql和Oracle来生成数据库连接池,保证多数据源的使用性,Druid的管理界面还可以查询每个SQL的日志管理,方便问题跟踪。 9. 使用Nacos完成分布式服务注册和配置管理,开发人员可以根据不同的开发环境对应不同的配置信息,方便多环境开发,提高开发效率。比如application-dev.yml、application-sit.yml、application-prod.yml。 10. 使用Redis做数据缓存处理,减轻数据库的访问压力,防止高并发。做好Redis数据有效期的设置和布隆过滤器的设置,防止大批量失效或访问到空的情况导致缓存穿透、缓存雪崩等情况,Redis数据备份采用AOF和RDB的双模式,保证备份数据能快速恢复的同时数据还具有的完整性。通过Redis Cluster实现分布式集群,节省内存。 11. 对于部分功能通过RabbitMQ进行异步处理,减少接口返回等待时间,提高接口响应效率,比如用户登录的时候需要给这个用户增加积分并发送短信,那么在校验用户登录成功的时候就可以异步调用消息队列来执行增加积分和发送短信的功能,然后直接返回接口,不用等待异步的操作。采取ACK手动确认的形式防止队列没有被成功消费,同时判断执行唯一编号来判定重复消费的行为。编写config配置类的时候实行消息持久化。 12. 通过Flyway做数据脚本管控,保证SQL执行的安全性和可追溯性,同时也能保证数据库的安全性,防止员工私自在堡垒机直接执行未验证的SQL语句, 防止数据库崩坏导致不可用。
帮助文档   Copyright @ 2021-2024 程序聚合 | 浙ICP备2021014372号
人工客服