相信很多人都体验过手机没有网时的焦虑,没有网什么也做不了。而机器人也会遇到这样的时刻,没有网或者网络环境不好的情况下,无法识别用户在说什么,也无法回复用户。在AIoT(AI+物联网)飞速普及的现在,智能对话已经渗透在许多行业场景中,融入在无数的智能设备里,比如智能家居、智能车载等。这些设备的智能化能力通常都依赖在线服务实现,但智能设备尤其是移动型智能设备可能存在无网情况。
在未来的AIoT领域中,大多场景都要求终端具备本地自主决断及响应能力,每个设备端都需要具备不依赖云端的独立计算能力,完成智能对话的本地识别,实现端计算,让设备无论在什么网络环境下都能够响应用户对话。针对这种场景的痛点,百度UNIT 3.0推出嵌入式对话理解技术,利用这项技术,可以实现本地化不联网的语义识别能力,结合语音的本地识别能力,结合云端的AI,让本地和云端的有效配合,以满足用户随时随地的对话需求。
【嵌入式对话理解技术解读】
嵌入式对话理解技术框架如上图所示,整体通过SDK提供给开发者,开发者可根据自己系统的情况,封装成系统应用,再整体集成入自己的设备中。其中SDK内部将提供离线中控的能力,来控制多个场景的分发与管理。在SDK中支持多个场景的集成,并提供通用的离线中控对它们进行分发、优先级排序等管理能力。
每一个单独场景的垂类技能主要包含了离线语义解析能力,包括基础分析、启发式语义理解技术、结果选择等技术模块,以及离线语义解析模型。
其中基础分析分析包含了query的特征、paddle模型结果、通用成分分析(分词、命名实体识别等)等技术。
启发式语义理解技术,包含了启发式的模板匹配识别、样本泛化匹配识别、结果融合推导等技术。
结果选择模块包含了非多轮结果的选择能力。
整体方案中,还提供了日志统计及分析能力,供开发者分析和提升效果使用。
【如何使用嵌入式对话理解技术】
目前,嵌入式对话理解技术已提供Android SDK,后续将逐步提供多种系统和平台,如QNX、Linux等。同时提供了开发者可自行修改和本地化训练的工具,包含完善的说明文档,开发者均可以在UNIT平台上下载试用。
进入UNIT平台“创新技术”区,点击“语义解析 离线使用”即可进入详情,按照操作步骤,可以下载对应的开发工具和安装包。
【四步获取资源,源码级控制】
第一步:确定业务是否适用离线解析
离线(断网)环境下的语义解析,对设备终端的性能是有一定要求。开发者需要确认自己的业务场景是否需要获得离线的语义能力,设备终端能否支持离线语义能力运行。
第二步:获取现有的离线场景文件,源码级修改
UNIT 3.0已有多个场景下的技能,可以直接在平台上下载对应的文件。部分场景下的解析文件,需要开发者向UNIT提交邮件申请获取,官方会沟通使用需求并提供支持。下载的技能文件,开发者如有更改技能的需求或者是提升识别的效果要求,均可以自行修改其中的模板等内容,平台上提供了数据优化配置的说明。
第三步:调用工具完成本地化训练
步骤二中的场景文件如有更改,开发者需要使用训练工具将该场景自行完成训练,训练后可以获得新的模型文件。训练工具和调用的方法、说明等均在UNIT平台上,支持开发者随时下载查阅和使用。
第四步:集成模型,使用SDK
步骤三生成的模型文件,按照SDK的要求放在对应的目录下,开发者可以在UNIT平台上直接下载SDK,按照调用说明直接使用即可。
【离在线融合对话能力的部署方案】
不同的业务场景会用到不同的解析和对话能力,在线服务具备更好的对话理解与满足,离线能力保证设备在各种环境下的核心智能交互稳定性;UNIT3.0提供了离在线融合的对话理解框架,开发者可以根据自身的业务情况,灵活选择离线与在线能力。
开发者可以检测自己的终端设备网络信号情况。当信号比较强时,可以统一走在线解析,在线的云端服务器拥有过更好的计算资源,理解效果会更好。当终端信号比较弱时,建议同时走在线和离线的部分,离线SDK会很快给出响应,在线SDK会根据不稳定的网络情况,可能存在一定的延时;此时开发者可以根据自己业务对性能的要求,来选择使用离线的结果,还是等待在线的结果。当终端无网络时,开发者只能选择离线SDK的方案,快速响应用户。
相关文章阅读: