ModelArts 让 AI 应用开发更简单
❝当今这个没有AI芯片加持的手机都不能称之为“旗舰机”的时代,没有AI技能加持的攻城狮感觉都有点落伍。但是,谈到学习人工智能,大家可能最先想到的是技术太难、学不会。如果,您体验了一站式AI开发平台ModelArts,您一定会和我一样惊叹:原来 AI 应用开发也能这么简单?
❞
大家好,我是胡琦,江湖人称“Copy攻城狮” -- 「“Copy Code, Copy Wolrd!”」。目前在广东省电信规划设计院从事前端开发,工作之余对AI比较感兴趣。了解到一站式AI开发平台 -- ModelArts,就深深地爱上了她,并加入了 MDG,也就是 ModelArts 开发者社区。在 ModelArts 开发者社区,我学到了让 AI 应用开发更简单的小技巧,今天就简单和大家分享一下,蚂蚁牙黑!
本次分享有以下四点:
①AI 的过去、现在、未来;
②AI 应用开发流程;
③ModelArts 简介;
④最后分享一个简单的美食分类AI应用开发实践过程。
AI 的过去、现在、未来
图片来源What is Artificial Intelligence
什么是 AI ?不管您心中是否有答案,我希望通过我的讲解能让您对AI及AI应用开发有一个新的认识。我印象比较深刻的有个段子不知道大家有没有看到过,大概讲的是朋友酒后创业想做AI,向老婆杨梦圆要启动资金被暴打两顿彻底梦碎,还好 AI 应用开发没有主要用 PHP,不然估计相亲被拒无数次。如果您恰巧也去检索过 AI 的名词解释,您会发现 AI 是一个多义词,我们这里讲的 AI 是大家普遍理解的人工智能(Artificial Intelligence),当我在搜索引擎中敲下 AI 的时候,AI 不知不觉就来了。搜索引擎的背后,除了有链接分析等互联网技术,还需要自然语言处理、信息检索等AI技术。
人工智能通常在教材中的定义领域为“智能主体(intelligent agent)的研究与设计”,它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。最早由现代人工智能领域奠基人之一的约翰·麦卡锡(John McCarthy)在1956年的达特矛斯会议上提出了,当时的定义为“制造智能机器的科学与工程”;中国科学院院士、清华大学人工智能研究院院长张钹院士认为,人工智能是“研究和设计智能体,所谓智能体,是用计算机模拟人类的智能行为”。在我看来人工智能是让机器像人一样思考,让机器具备智能。
AI 从哪里来?在人类历史长河中,从源远流长的神话预言,到巧夺天工的自动人偶,再到百花齐放的形式推理人们对“智能”的探索从未停止。尤其是在计算机及计算机科学诞生之后,人工智能在 20 世纪 50 年代终于形成了一门学科。回顾人工智能的发展,普遍认为有“两起两落”并经历了三次浪潮,当前正处于第三个增长爆发期。20世纪50-70年代,是人工智能的黄金时代,“人工智能”首次在被提出,紧接着开始酝酿第一次浪潮,人工智能实验室在全球各地扎根。20世纪70-80年代,由于计算机的运算能力难以解决任何实际的AI问题、计算难度的指数级增长,人工智能的发展迎来了第一个低谷。20世纪80-90年代,由于专家系统的崛起,人工智能再次迎来第二次浪潮。不过 1987年 AI 硬件市场需求的突然下跌,典型的比如基于通用计算的 Lisp 机器在商业上的失败,人工智能再次滑入了低迷期。20世纪90年代后期,由于计算机计算能力的不断提高,人工智能再次卷土重来,进入21世纪以来,得益于大数据和计算机技术的快速发展,人工智能成功应用于经济社会中的许多问题,人工智能的第三次浪潮应运而生。
哪里有 AI ?当今世界处处都有 AI,AI 技术运用的案例已经渗透到方方面面。图像识别技术运用到农作物病虫害识别,提高了防治效率,大大提升了农作物产量;自动驾驶技术的不断发展,离不开 AI的赋能,比如车道线检测;全球疫情严重的当下,基于深度学习构建的医疗影像辅助诊断系统,极大减轻医生负担, 同时降低漏诊风险;餐饮行业的流水线自动收银、APP食物卡路里识别,AI 通通帮您搞定;知识渊博的智能问答机器人用“爱”为您解答。
我印象比较深刻的还有我们“身体的另一部分”--手机中也大量运用到了 AI 技术,AI 芯片加持的手机似乎也有了自己的思维,AI 赋能的手机系统也变得智能,您看这不我手机和另一头的电话营销机器人聊得可热乎呢!此外手机中的 APP 也提供了大量的 AI 服务,如
文字识别、自动翻译、精准推荐等等。
AI 应用开发流程
那么,如何开发AI应用呢?基本流程通常可以归纳为几个步骤:确定目的、准备数据、训练模型、评估模型、部署模型。
在开始AI开发之前,要解决什么问题?目的是什么?结合实际场景整理AI开发框架和思路。例如,图像分类、物体检测等等。不同的项目对数据的要求,使用的AI开发手段也是不一样的。
数据准备主要是指收集和预处理数据的过程。按照确定的分析目的,有目的性的收集、整合相关数据,数据准备是AI开发的一个基础。“数据、算法、算力”是人工智能三要素。此时最重要的是保证获取数据的真实可靠性,当然实际开发中,我们还需要反复调整优化。
模型训练也就是“建模”,指通过分析手段、方法和技巧对准备好的数据进行探索分析,从中发现因果关系、内部联系和业务规律。训练模型的结果通常是一个或多个机器学习或深度学习模型,模型可以应用到新的数据中,得到预测、评价等结果。
训练得到模型之后,整个开发过程还不算结束,需要对模型进行评估和考察。往往不能一次性获得一个满意的模型,需要反复的调整算法参数、数据,不断评估训练生成的模型;也就是我们常说的“炼丹”。
最后就是部署模型,在绝大多数的应用场景中,我们只需将模型服务部署到线上以 API 的形式给到应用端进行调用,当然,随着智能硬件的发展,很多设备端已经能够在本地调用模型服务。在发布的模型服务中,我们还能再收集数据,比如难例反馈,进一步优化模型。
ModelArts 简介
每次说到 ModelArts 不得不先说说全栈全场景AI解决方案。早在 2018 年第三届华为全联接大会上,首次发布了华为全栈全场景AI解决方案,所谓全栈,是技术功能视角,是包括芯片、芯片使能、训练和推理框架和应用使能在内的全堆栈方案;所谓全场景,是包括公有云、私有云、各种边缘计算、物联网行业终端以及消费类终端等全场景的部署环境。ModelArts 在整个企业智能中扮演者至关重要的角色,通过ModelArts平台,我们能调用底层的芯片硬件、AI框架能力,如昇腾、鲲鹏、MindSpore、TensorFlow等;进而开发通用的API,如OCR、自然语言处理、人脸识别等,甚至还能形成行业解决方案,将AI赋能到各行各业。
ModelArts 贯穿了AI应用开发整个流程。在数据方面,ModelArts 的数据管理提供了数据处理所必备的能力,如数据采集、数据筛选、数据标注等,基于华为AI能力,还支持数据的智能处理如智能标注、智能分析等;在模型训练方面,ModelArts支持超参自动调优、模型可视化、自动学习、强化学习、联邦学习等;在模型评估方面,ModelArts模型管理支持模型评估和智能诊断,并能给出优化建议等;在模型部署方面,ModelArts支持“端边云”多种场景的模型部署,提供在线服务、批量服务、边缘服务部署方式,还支持自动难例发现。此外ModelArts 的AI Gallery(AI市场)提供了算法、模型、数据集等分享及交易能力,预期还会有AI应用的分享和交易功能。
使用ModelArts可进行端边云联合开发,在云上训练模型,在本地推理,模型实时更新,极大丰富了AI应用的落地场景。
作为AI小白及资深Copy攻城狮,我最钟爱ModelArts的自动学习,无需编程基础,无需AI经验,也能开发并上线自己的AI应用。
动手实践
“百闻不如一见”,一见不如亲自动手实践。本次实践的前提是有华为云账号并开通OBS和ModelArts服务,且ModelArts已进行全局授权。遵循AI应用开发的流程,我们首先需要进行“技术选型”,目的很明确--开发美食分类应用,使用图像分类的技术,基于ModelArts 自动学习或者订阅算法实现;数据准备上,直接通过AI Gallery 获取美食数据集;模型训练最终使用订阅算法功能使用图像分类ResNet50-EI-Backbone;模型评估由于此次订阅的算法暂未实现相关的代码,因此无法查看关键数据,但通过自动学习完成的模型能够准备显示模型精度以便调优;最终将模型部署为在线服务,方面应用调用。
数据准备
在AI Gallery 中,数据集的下载有两种方式,分别是下载到OBS和下载到ModelArts数据集;两者的本质都是存放到OBS,后者只有数据集的上传者使用的ModelArts数据集上传才能下载。
训练模型
我们可以使用自动学习的图像分类直接训练,也可以基于订阅算法训练,当然您还可以自行开发算法进行训练。
部署模型
我们将训练好的模型发布为在线服务,以 API 的形式提供给应用调用。
ModelArts 在线服务还提供预测功能,我们可以直接上传一张图片来验证模型。
当然也可以通过调用 API 来完成美食分类,我也有幸尝试过在 AppCube 之类低代码开发平台中调用 ModelArts 的在线服务,整体开发体验比较棒!
欢迎广州地区的小伙伴加入 MDG-广州
参考资料
EI 红宝书:https://e.huawei.com/cn/material/huaweicloud/fcce53d81577406e927724058a1274c8