只谈理念不谈实践的AI都是耍流氓,开发者才是推动AI生态持续繁荣的“幕后推手”
现阶段,国内人工智能的发展进程已经跨入到国际的快车道,AI的落地实践,已经深入到各个行业及技术领域下。目前,无论是云计算、大数据、 区块链 还是物联网等等领域,AI 都在其中扮演了推动技术发展以及影响该领域前景的决定性角色。
2019年9月7日,云+社区(腾讯云官方开发者社区)主办技术沙龙——AI技术原理与实践,在上海成功举行。现场的5位腾讯技术专家,在现场与开发者们面对面交流,并深度讲解了腾讯云云智天枢平台、OCR、NLP、机器学习、智能语音对话等多个技术领域背后架构设计理念与实践方法。
云智天枢平台的架构设计理念
来自腾讯云的资深技术专家黄文才,从云智天枢平台的架构设计理念入手,详细阐述了腾讯云最强人工智能平台技术实践。
腾讯云资深技术专家黄文才
云智天枢是一款支持快速接入各种算法、数据和智能设备的人工智能平台,提供可视化的编排工具进行服务和资源的管理和调度。并进一步通过 AI 服务组件持续集成和标准化的接口开放,帮助开发者快速构建 AI 应用。总的来说,云智天枢平台的定位是全栈式人工智能服务平台,实现与应用、算法、设备等合作伙伴共赢,合作伙伴只需要实现应用层逻辑。
云智天枢平台架构
云智天枢平台是典型的三层架构,分别为存储层、逻辑层以及接入层。基础设施位于整个架构的最下层,负责整体平台基础性能力的支撑,如 Docker、 K8S、 蓝盾CICD等;上面是存储层,用到了一些诸如 MySQL、Kafka、Influxdb、Cos/Ceph、ES 等组件。
中间层是今天将要重点介绍的部分,利用微服务将其划分为了6个主要的功能性窗口,他们分别是算法仓库、设备中心、数据中心、AI工作室、应用中心以及管理中心。
算法仓库:主要提供自助打镜像的能力,可快速把可执行程序、模型文件等容器化为算法微服务等,目前接入算法种类50+,涵盖人脸,车辆,语音,文字,语义等。
设备中心:主要对接各个厂商的各个型号的设备,比如普通摄像机,抓拍机,AI相机等等,支持设备厂商自助设备接入的能力。
数据中心:主要负责数据接入、推送、转换、存储等,包括屏蔽各种结构化与非结构化存储介质的能力。
AI工作室:主要实现了任务调度,流程与服务的编排能力,打通平台各个窗口的能力。
应用中心:主要是创建应用、密钥、订阅管理,视图库等能力。
管理中心:账号系统、角色权限、镜像仓库、操作日志等能力。
最上方是网关层面,分为API网关以及消息网关两部分。API网关采用的是 腾讯云API3.0 标准,主要做鉴权、限频、转发等功能;消息网关支持GPRC和http推送能力,监控系统用了 Telegraf 、InfluxDB和Grafana,日志系统采用的是 ELK。
基于云智天枢平台的核心业务窗口架构设计
AI工作室
基于云智天枢平台的AI工作室架构
AI工作室作为一个服务可编排的流程引擎,其对上整合组件,对下对接开发者,是整个云智天枢平台的核心。其主要由三大块组成,分别为平台对接系统、流程引擎系统、函数服务系统。
平台对接系统:负责打通平台各个窗口的能力。
流程引擎系统:我们参考了AWS的ASL,定义了我们的描述DAG图规范。这里实现了流程与服务的编排能力。其中TaskSchesvr是任务调度器, taskProcessSvr是流程引擎执行器,它负责解析DAG图,自动按照编排好的流程执行任务。
函数服务系统:它是一个python服务,负责执行python代码段。因为流程服务编排的时候,调用服务A的输出不一定满足服务B的输入,所以这里主要做数据转换。
使用函数服务进行转换参数,实现用户逻辑或者启用参数映射的方式实现参数转换,这样可以很好改善参数映射无法完全呈现服务状态的问题,从而实现中间态的转换。
流程服务编排引擎
平常在开发业务功能过程中会经常写一些相似的代码逻辑,比如调用A服务,A服务回来之后会做数据处理,处理完以后会并发调用BC服务,之后等BC回包回来再做数据处理,这一块儿有很多相似的业务逻辑,在业务中抽象并实现流程和服务的编排能力相当重要。流程编排能力实现了并发分支、条件分支、合并等操作;服务编排方面支持直接调用服务,用户不用关心网络层的调用,只需关注纯业务逻辑。
函数服务
函数服务是为了解决A服务的输出无法满足下游B服务的输入,其核心优势是通用组件可累积复用,大大减少了用户的开发成本。
算法仓库
云智天枢算法仓库,主要目的是将平台上的算法统一接入到一个地方,由平台统一提供算法服务,并将镜像制作页面可视化,这样不懂Docker的用户也可以方便制作。通过将算法服务发布托管,直接调用k8s的源生api-server,这样可以有效解决算法种类多、管理对接成本高、镜像制作门槛过高等问题。
设备中心
设备中心的功能主要是设备自助接入能力,由于当前市面上各个厂商间产品的型号、协议都有差异,很难统一,并且其中私有化协议又占了大部分。设备中心通过实现每个子分类的微服务,将其划分为三层,分别为上层服务逻辑(基础镜像)、适配逻辑SDK(so插件)、私有化SDK(so插件)。同时也实现了云边端混合部署的能力,主要是为了解决边端算力不足、带宽,延时不满足需求的场景。
数据中心
数据中心主要功能使实现数据的接入、推送、转换以及存储等,也包括本地上传、在线拉取、外部推送等能力。实现了项目落地实施过程中,屏蔽不同存储介质(包括结构化与非结构化数据)的读写能力。
监控系统
这个监控系统是经由开源组件 Telegraf + Influxdb + Grafana 搭建起来的。其比较适合应用在私有化部署的场景下,具备支持多种数据源、开放API扩展性强、单独微服务对应单独数据库、界面配置可导入导出等特性。
腾讯云OCR的技术演进历程
腾讯云高级工程师彭碧发,从腾讯云OCR技术出发,浅谈OCR背后的能力和原理,共同探讨OCR在工程演化过程中,如何保障服务及快速上线新的能力,为大家带来“腾讯云文字识别 OCR 技术构建和应用”的分享。
腾讯云高级工程师彭碧发
腾讯云的OCR能力,目前定位是打造文字识别工具箱,要求具备丰富的接口能力,要能够被集成的同时保持灵活性。目前是专注于公有云领域,加速规模化复制后再切入私有化。中间组件产品这部分,是目前腾讯云OCR所提供的组件接口,向下依赖基础组件和引擎的方面的各种文字和内容处理能力,同时结合不同的技术形成不同的组合产品和解决方案,最终赋能给合作伙伴。
腾讯云OCR整体框架设计
从上到下,分为用户接入层、Web接入层、业务逻辑层、引擎平台层和基础服务层,通过类微服务的设计,保证各逻辑服务之间是互相解耦的状态。
首先是接入层,分为用户接入层和Web接入层。用户接入层通过API和SDK的方式接入;Web接入层,除域名解析外,新增云标准3.0接入,会自动生成如在线调试和文档生成等SDK和相应的配套。
往下是业务逻辑层,每个业务逻辑都是分离的,各个业务有自己的配置,互不影响。
引擎平台层,这里都是最基础的原子能力的封装,通过统一引擎原子能力的输入参数和错误码,从而能够更好地被业务逻辑所应用。
基础服务层,主要包含引擎的基础能力、计费控制、DB,COS等。
OCR引擎平台层
引擎平台层可以是整个架构中的重中之重,原因就在于引擎平台层是提升整个架构运作效率的核心。改造之后统一引擎接入和引擎适配都放在了一个工程里面,将正常逻辑和错误码都收敛代理在一个配置文件下,修改非常方便和灵活,发布的时候只需要发布代码就行。同时通过收敛各引擎原子能力的差异,包括错误码,保证对内接口的返回更友好;将服务层级从3精简到1,极大提升了维护效率。
腾讯云知文NLP平台的技术架构
来自腾讯云的高级研究员许泽柯,从腾讯云NLP技术和能力矩阵出发,浅谈NLP背后的算法、原理及架构。
腾讯云高级研究员许泽柯
腾讯云AI语义产品矩阵
腾讯云知文NLP平台,是基于腾讯在各领域上丰富语料及多年NLP能力的积累,结合腾讯云的专业产品与服务,推出的一站式自然语言处理平台。知文NLP平台融合深度学习、云服务、人工智能,大数据等多方面技术,全面覆盖基础NLP中词法分析、句法分析、篇章分析、向量技术等各方面技术,广泛应用于泛 互联网 、政府、 金融 等行业。
腾讯云知文NLP服务框架
为了保障线上服务的稳定性以及高效性,整个产品的系统架构采用的是微服务 + DevOps的构建方式,每一个算法微服务都是单独的容器实例。
整个产品的系统架构可以分为5层,分别是用户层、API3.0接入层、业务接入层、应用层、数据层。其中用户层主要包括计费、控制台管理以及SDK/API使用。API3.0接入层是所有云上业务对外提供服务必须接入的,目的是为了统一云业务规范,对齐业界标准,从而提升用户对云api的体验;除此之外,云API3.0还接入了公司内部的星云告警系统、哈勃监控系统以及CAM签名服务,能够保障服务的正常运行,同时还减少业务的部分工作量。业务接入层、应用层以及数据层属于业务后端服务。其中业务接入层主要负责服务的接入以及路由。应用层则包括业务逻辑层跟算法逻辑层,业务逻辑层指计费、额度、控制台等服务;算法逻辑层是整个系统架构的核心,也是知文NLP产品的价值体现,需要不断迭代更新。最后的数据层则负责数据的存储、上报等,采用的都是目前腾讯云主流的组件。
上述所有的业务后端服务都是基于微服务架构,区别于传统的单体服务,我们将不同的业务逻辑划分成小的服务,服务之间通过相互通信的方式来进行调用。服务与服务之间采用的是轻量级的通信机制进行沟通(目前我们的架构中既支持gRPC也同时支持基于http的Restful
API),每个服务都是围绕独立的业务逻辑进行构建,同时能够被独立地部署到生产环境、测试环境等。知文NLP后端服务采用上述的微服务架构,主要是基于以下几点考虑:(1)知文NLP平台涵盖十多个原子化算法服务,采用微服务的架构有利于算法的独立开发以及独立部署,能够更灵活、更快速地响应算法频繁的迭代需求;(2)基于微服务的架构可以实现松耦合且各个服务之间无需统一语言,可以加速合作伙伴上云的节奏;(3)微服务架构结合容器化的DevOps平台,可以简化服务的部署以及运维。
AutoNLP
AutoNLP元素架构图
AutoNLP 的概念来自于AutoML,目的就是在做机器学习和数据挖掘的过程中可以将数据标注、特征选择、模型选择、模型上线等过程自动化。AutoNLP 所针对的就是 NLP 任务的pipeline。 上图为 AutoNLP 的元素架构图,先看最左侧 Data 部分,底层为 IaaS,会提供 GPU 到 CPU 的资源供开发者使用。往上是 Data,有 Data Market,不仅可以应用自己的语料,也会内嵌腾讯的语料。Data Factory 则会提供可视化数据以及数据预处理工具。中间的 Framework 会内嵌ModelZoo,提供不同领域的Bert 模型。将 AutoNLP 以 容器的形式部署,很好保障了容灾、扩容、服务稳定性等方面,且最终服务上线后会提供 rpc跟resrful两种调用方式。
智能钛机器学习平台TI-ONE在工业的落地实践
智能钛机器学习平台是面向广大开发者的一站式机器学习平台,覆盖了数据预处理、特征工程、模型训练、模型推理、一键部署等机器学习建模全流程功能。包含传统机器学习算法、时间序列算法、NLP算法、图处理算法、计算机视觉等。目前已经广泛落地在工业和金融业领域,腾讯云高级研究员尹迪重点为大家介绍智能钛机器学习平台在工业领域的具体实践。
腾讯云高级研究员尹迪
工业领域当前面临的问题还是比较多的,从用户角度来看,生产工程师不会数据分析、数据挖掘、图像处理、目标检测等工作。算法工程师又对站点数据不熟悉,对制程的经验不足,无法进行相应的数据分析和建模;
从数据的角度来看,工业行业数据维度高、因子杂乱,数据类型种类多、识别困难,并且真因往往隐藏在海量数据之中,且由多个因子联合起作用。并且容易漏掉字符型数据,字符型数据往往包含十分丰富的数据信息,在一般的工业机器学习建模过程中,字符型数据是最容易被忽略掉的那一类;
从实践的角度看,往往是算法应用不明确、无法分析个性化案例、AI手段无法有效改善生产问题以及如何汇报自己的建模方法这四个问题。
智能钛机器学习平台在工业的解决方案架构图
依上图所示,整体解决方案共分为5个层面,分别为业务、大数据、AI、应用场景以及前端展示:
业务平台,包括物联网数据收集、边缘计算、业务系统、数据存储;
大数据平台,包含了计算引擎、大数据存储/加速层、大数据分析挖掘、消息接入层;
AI平台,包含了智能钛机器学习训练平台和推理平台,提供了数据预处理、特征工程、模型训练、模型推理和部署工作;
应用场景,有虚拟量测、高效良率、寿命预测、真因分析、缺陷检测、图像分类等;
前端展示,包括伯拉图、等高线图、散点图等。
现阶段常用的是异常数据检测、时间序列数据检测、全特征数据检测、异常图片智能检测等功能。此外包括最优路径的搜索、良率测算、异常解析等。异常解析的主要作用是在平台出现异常后主动追溯造成异常的原因。
从这5个层面,能对工业界的实践起到什么样的价值?主要包含六方面:
系统自动监控和告警;
提高工作效率,通过将解析资料进行系统化管理,将异常发生至解决的时间从6h缩短至1h;
提升良率品质,通过异常因子分析、图像异常检测等方式,准确定位异常信息,尽早发现异常并处理,提升良品率;
减少人力投入,提升系统自动化的程度,将数据分析时间从60min缩短至5min;
策略参考,智能排出最优路径,从无法获取最优run货路径,到现在10min内就可以获取到;
降低失效成本提升效益,加强异常拦截,及时发现异常,减少异常漏放。
就像文章开头所说,正是开发者的努力,才造就了国内AI生态持续繁荣的这一现状。这一幕,从现场参加Workshop同学的热情中就可以看出来。
Workshop: 零代码使用腾讯TBP打造智能对话机器人
腾讯智能对话平台(Tencent Bot Platform), 专注于“对话即服务”的愿景,全面开放腾讯对话系统核心技术,为大型企业客户、开发者和生态合作伙伴提供开发平台和机器人中间件能力,实现便捷、低成本构建人机交互体验和高效、多样化行业赋能。
腾讯智能对话平台简介
腾讯智能对话平台产品功能全景图
如上图所示,腾讯智能对话平台全面开放腾讯智能语音与对话系统技术,包括:语音识别、语音合成、意图识别、实体抽取、知识图谱、多轮对话状态跟踪、自然语言生成、服务决策与分发等。
腾讯云产品技术团队结合智能对话应用的使用场景,将底层对话系统技术抽象和封装出多种机器人开发类型(如常用的任务型机器人和问答型机器人),以满足不同开发中需求,在不同类型的机器人种,开发中可通过意图管理、实体管理和问答管理自定义语义模型。除语义模型构建外,平台还为开发者提供服务连接与部署、网页模拟器测试、版本控制与发布、线上数据洞察与运营等机器人开发全流程工具。
同时,平台提供了强大的内置对话能力和丰富的内置实体库,并将业内最领先的语义理解模型,囊括 Transformer, BERT, LSTM,VDCNN 等,广泛应用于意图识别,实体识别,槽位抽取, 知识问答, 对话生成等业务流程。
平台满足不同类型应用开发者与合作伙伴诉求。对于应用开发者,平台为开发者连接多个应用渠道、可实现一次构建、无处不在,使开发者更加专注于机器人业务逻辑和服务;对于 微信 运营者,平台与微信开放平台打通,实现零代码接入微信公众号;对于对于传统客服和外呼厂商等业内合作伙伴,平台提供机器人中间件API,帮助合作伙伴实现以机器人能力替代人工、从传统客服到智能客服的转型。
腾讯智能对话平台面向对话服务高频场景,提供行业解决方案,实现向上多样化行业助力。
使用腾讯智能对话打造智能出行助手
本次Workshop主题是使用腾讯智能对话平台打造一款智能出行对话助手。
在腾讯AI技术专家叶聪老师的讲解与指导下,现场开发者深入了解了对话系统核心原理、以及腾讯智能对话平台的特性和使用方法,最后都顺利完成智能对话机器人的实操开发。实操缓解结束后,现场开发者热情不减,有几位开发者围在讲师身边,向讲师表达从零到一开发出属于自己的对话助手的喜悦,并详细描述场景寻求讲师提升对话体验的建议。
在此次Workshop中,现场的开发者也对平台的体验提出了非常有价值的建议。叶聪老师表示,团队会持续倾听开发者声音,持续与开发者连接互动,持续致力于为开发者提供最好的人机对话产品开发体验。
在此次技术沙龙上,每位讲师通过与现场开发者的深入交流,均获得了不少有价值的建议。同样,现场开发者在讲师的一对一指导下,对腾讯云的 AI 能力也有了更深的理解。当然,不论是云计算、区块链还是人工智能,开发者永远是技术发展的根本。腾讯云深谙开发者对于平台技术发展的重要性,积极拥抱开发者,愿与开发者携手一起,共建属于人工智能技术更先进的未来。