函数计算助力领健信息为“看牙”注入 AI 活力

作者:姜伟、龚杨、周韬、王彬

发展背景

领健成立于 2015 年,总部位于上海,并在全国设立了 20 余家分支机构,拥有 100 项软件著作权、91 项注册商标、35 项发明专利,致力为口腔诊所、医美机构等消费医疗企业提供经营管理一体化解决方案。

领健拥有 ISO/IEC27001 国内国际双认证、公安部等保三级认证及工信部通保三级认证,全面赋能消费医疗机构的数字化经营,助力机构完成开源、避险、节流、增效的健康经营闭环。

领健创新 SaaS + X 模式,旗下拥有 e 看牙软件、e 看牙商城、领健悦见等品牌。e 看牙软件为口腔机构提供单店/连锁管理、电子病历、客户关系管理、进销存管理、智能营销、BI 商业智能分析、影像集成等覆盖口腔机构业务全流程的 SaaS 软件服务;e 看牙商城链接产业链上游 1000+ 国内外知名耗材品牌,严选近 2 万+耗材商品,为口腔机构提供一站式耗材采购服务;领健悦见以“精确诊断·精准正畸·精准监控”为理念,是新一代隐形正畸解决方案服务商,现已推出悦见成人矫治、悦芽儿童早期矫治等多个产品系列。

领健作为业界领先的口腔机构,在技术和服务上始终追求卓越。领健面向口腔诊所,提供了正畸算法,口腔医生在日常接诊过程中,对消费者的口腔牙齿状态进行拍照,通过算法能够给出相应的诊断和治疗建议,提升口腔医生的效率。

平台特点及业务痛点

口腔诊所的上班时间比较固定,一般都在 08:30~18:00,节假日会更加繁忙一点,时间拉长到一个月,可以看到明显的波峰波谷。

领健信息早期在云上购买了一波 GPU 机器用于算法的部署,提供对外服务,但在使用过程中遇到了不少问题,主要有以下几个:

  • 资源利用率低,成本浪费: 采用按月持有机器,在下班时间没有业务流量,由于考虑到可能的业务高峰,持有多台 GPU 机器,平峰期利用率不高。总体资源利用率维持在 5% 左右。
  • 高峰期业务响应慢: 应对突发流量能力不足,超出预期的流量会导致服务负载加大,请求响应时间变长,直接影响终端客户的使用体验,在业务最高峰,曾经出现单个请求排队 10 分钟的情况。
  • 监控和排查能力不足: 正畸算法在持续的迭代,在迭代部署的过程中,会出现请求偶发卡顿和程序报错的情况,但由于本身监控和告警能力不足,没法第一时间主动感知,常常需要终端使用门店反馈情况,降低了主动优化算法的效率。

除此之外,频繁的运维动作和持续的的平台建设,也给运维同学带来很多的日常工作,同时也加大了系统的不稳定因素,加上 GPU 技术在近年发展迅猛,领健技术同学也需要在这个领域持续投入不少精力,对于以上这些问题,领健技术同学开始在云上寻求更好,更高效的解决方案。

解决方案

领健技术团队一直在寻求更好的解决方案,期望在成本,服务体验,运维效率上都能得到改善,在对比了阿里云的多个云产品之后,最终将重点放在了函数计算上。

阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,客户无需管理服务器等基础设施,只需编写代码并上传。函数计算会准备好计算资源,以弹性、可靠的方式运行代码,并提供日志查询、性能监控、报警等功能。

函数计算除支持传统的 CPU 算力,也支持 GPU 的算力,采用服务器无感知计算的理念,通过提供一种按需分配的 GPU 计算资源,有效地解决原有 GPU 长驻使用方式导致的低资源利用率、高使用成本和低弹性能力等痛点问题。为客户提供更加便捷、高效的 GPU 计算服务,有效承载 AI 模型推理、AI 模型训练、音视频加速生产、图形图像加速等加速工作负载。

函数计算 GPU 资源架构图如下:

函数计算 GPU 采用虚拟化技术,做到算力,显存,故障的强隔离,100% 兼容原生应用。函数计算通过两级的资源池,保证算力的快速供给,函数计算 GPU 资源池平台持有,客户只需要按量使用,无需为闲置资源买单。

函数计算 GPU 资源请求模型如下:

当 GPU 函数部署完成后,客户可以通过配置预留 GPU 实例的弹性伸缩策略开启预留 GPU 实例,以提供实时推理应用场景所需的基础设施能力。函数计算平台将根据客户配置的伸缩指标进行预留 GPU 实例的 HPA ,客户请求将优先分配至预留 GPU 实例进行推理服务,平台完全遮蔽冷启动,业务保持低延迟响应。除此之外,平台集成了可观测,日志,监控,告警等系统,以简化问题的排查效率和日常的运维工作。

最终,领健技术团队经过一系列验证之后,在函数计算的最终架构图如下:

架构图非常简单,业务流程如下:

  1. 客户将正畸算法做成标准镜像放入阿里云镜像仓库 ACR;

  2. 当前端有正畸的调用请求时,需要初始化实例时,FC 通过拉取 ACR 中镜像以及底层 GPU 资源完成实例的初始化工作,完成算法应用的部署;

  3. 正畸计算请求发送至新创建的 GPU 应用上进行计算,并返回结果。

成果和优势

通过将 GPU 计算负载放到函数计算,领健技术团队很好地解决了先前遇到的使用问题:

  • 成本优化: 函数计算按量付费的计费方式,真正做到了按照实际请求处理时间收费,最大限度的降低了资源持有的成本,相比早前的按月持有 GPU 资源,函数计算的费用降低了 90% 左右,达到了很好的降本效果。
  • 高峰期业务体验: 通过业务高峰期的提前资源拉起和突发资源的按量弹性,做到了后端资源及时的供给,采用函数计算部署后,门店再也没有出现长时间排队的情况,大大提升了使用体验。
  • 高效运维: 通过函数计算内置的监控,日志和告警系统,可以实时关注业务的大盘运行情况,通过配置监控告警,在异常时,可以第一时间收到异常推送,并借助完善的日志系统和函数计算专业的技术团队,及时定位并解决程序问题。

除此之外,采用函数计算部署,给了整个系统很好的伸缩性,对于将来业务的增长,也不必担心核心的 GPU 资源规划问题,这一点也为业务的持续发展打下了坚实的基础。

总结&展望

通过将核心应用迁移到函数计算平台,领健技术团队不仅成功应对了业务增长带来的挑战,还显著优化了成本结构,同时加速了开发和运维流程,实现了前所未有的敏捷性和效率。

展望未来,领健技术团队将继续深化与函数计算的合作。随着公司业务版图的不断扩展,预见更多的应用场景将得益于函数计算的弹性伸缩、低成本及高效率的优势。领健技术团队计划在新业务部署时,优先考虑采用函数计算架构,以期进一步缩短产品上市时间,提升用户体验,并持续降低运营成本。

阿里云函数计算也期待与领健共同探索更高效、更智能的医疗服务解决方案,助力医疗健康产业的数字化转型。相信在双方的紧密合作下,领健能够更好地服务于患者与医疗从业者,推动行业向更加智能化、高效化的方向迈进。

点击此处,体验函数计算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707832.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis-plus id在高并发下出现重复

mybaits-plus ASSIGN_ID生成 id生成策略 在分布式高并发环境下出现重复id https://github.com/baomidou/mybatis-plus/issues/3077 mybatis-plus 对@TableId(type = IdType.ASSIGN_ID)生成默认使用com.baomidou.mybatisplus.core.toolkit.Sequence,这个类是雪花算法的实现,在…

铁威马硬盘柜D4-320:超越网盘,让数据存储更自由

时至今日,我们越来越依赖数字数据来记录生活的点滴和工作的成果。然而,随着数据的不断累积,我们时常会遇到一个问题:网盘空间不够用。此外,网盘的安全性也是我们关注的焦点,一旦网盘服务商出现问题或数据泄露,我们的宝贵数据就可能面临丢失的风险。因此,寻找一个可靠的…

iOS获取.ips文件并通过Xcode自带的symbolicatecrash解析

文章讲述如下问题: 1. 如何获取.ips文件 2.如何获取symbolicatecrash 3.解析前的准备工作 4.如何将.ips转为.crash文件 5.如何使用symbolicatecrash解析.crash文件 6.异常错误处理1.如何获取.ips文件? 在 iOS 中,你可以通过几种方式找到应用程序的 .ips 文件,具体取决于你是…

使用达梦客户端工具对存储过程调试

找到存储过程,右键》调试》在新的调试编辑器调试打开界面如下:下面有个初始变量,输入所需要的参数 也可以直接在存储过程写入参数P_DEMO(1001)这种参数输入好之后,点右上角绿色三角箭头开始调试选择下面的进入按钮对存储过程内部进行调试进入之后,界面如下,这样就可以选择…

AD导入DXF画板框结构

一、安装导入DXF插件 1. 确定当前软件是否支持导入DXF a. 在PCB编辑窗口下,依次选择 file > import…b. 在import file窗口下查看文件后缀名下拉菜单是否有DXF,我这里是有的。如果没有需要下载DXF插件; 二、导入DXF结构文件至此DXF文件已成功导入PCB。三、根据DXF画板框 …

Activiti 7 BPMN文件中的assignee 失效

问题描述 最近正在学习springboot 集成 activiti7,看网上好多帖子都推荐的流程设计器是Camunda Modeler,所以也下载了一个,并且流程部署、启动、完成等步骤都正常。 可当我准备开始指派任务时,却发现数据表act_ru_task中的ASSIGNEE_字段始终为空。解决方案 本质:activiti …

.net Swagger

一、swagger使用 1.打开Nuget,搜索安装Swashbuckle.AspNetCore。 2.生成api文档 3.Program.cs 添加如下代码 FreightForwarderApi.xml 替换成你的。var basePath = AppContext.BaseDirectory;builder.Services.AddSwaggerGen(c => {c.SwaggerDoc("v1", new Open…

基于java处理一些有规律的字符串

根据相同的符号进行分割的字符串转为list数组String reviewerOaGroup = "张三,李四,王五";//使用三元运算符如果reviewerOaGroup包含某个字符则根据该字符进行分割然后把每一项放入list中,如果不含有该字符则直接把该字符串放入listList<String> reviewerOaGr…

VSCode添加自定义的Vue3.2标准模板

详细步骤参考:VSCode添加自定义的Vue3.2标准模板VueJs.json 在Vscode 中的模版{"生成vue模版" :{"prefix": "vue","body": ["vm = new Vue({"," el: #,"," /* 数据对象:数据赋值声明 */","…

SpringCloud解决feign调用token丢失问题

背景讨论 feign请求 在微服务环境中,完成一个http请求,经常需要调用其他好几个服务才可以完成其功能,这种情况非常普遍,无法避免。那么就需要服务之间的通过feignClient发起请求,获取需要的 资源。 认证和鉴权 一般而言,微服务项目部署环境中,各个微服务都是运行在内网环…

揭秘Linux find命令:高效查找文件的终极指南,让你秒变文件搜索达人!

Linux中find命令的详细使用指南:高效查找文件的秘诀Linux中find命令的详细使用指南:高效查找文件的秘诀 在Linux系统中,find命令是一个强大的工具,它允许你在文件系统中搜索特定的文件或目录。无论你是系统管理员还是普通用户,掌握find命令都能极大地提升你在Linux环境下的…

PVE导入VMware虚拟机

1、在VMware中导出需要迁移的虚拟机,导出为 OVF 2、将导出的虚拟机上传到PVE中,共三个文件 3、命令导入到PVE虚拟机中,等待导入完成qm importovf 103 Ubuntu Server 20.04.ovf disk1 --format qcow2 #103为新建的虚拟机id,不要和现有的重复,disk1为PVE中的磁盘路…