智能交互,就用新姿势
     阅读次数:    发表时间:2021-05-17

随着汽车行业“电动化、智能化、网联化、共享化”的进程加快,趋势越来越明显,步伐也越来越快。

在智能化方面,语音交互作为安全高效的车内人机交互方式,逐渐成为新车的亮点。ECARX在与客户合作项目中做出了许多尝试,探索总结出了丰富的经验,运用了很多创新的方法,主要体现在以下四个方面。

大小模型融合

大的听话,小的知心

语句进入模型之前,将会先进入2分类模型分类加以区分,完成模型推理后再把结果聚合。

基于神经网络的模型,无论开发阶段还是上线之后,都需要不停的学习训练,训练时间通常又特别长,影响开发效率和模型更新速度。对此,我们使用了2个神经网络模型:一个大模型,包含已有的技能,无需重新训练修改;另一个是小模型,包含新开发的技能,频繁地更新训练。

这个方案把已有技能部署到独立的模型中,不受干扰、降低风险,最重要的是代码更新不需要重新训练已有模型,只需训练新增的模型,由于新增的技能相对较少,新模型训练语料规模较小,训练速度快,验证便捷,模型更新也快,提高了上线速度。

规则与神经网络结合

双重匹配,真的很配

传统的自然语言处理大部分是基于规则的,优点是简单稳定,匹配精确,缺点也显而易见,泛化性能差,没配置的规则就不能处理。规则配置更新需要一定的技能,一般是开发人员来做。

当前流行的自然语言处理架构基本是基于神经网络,与基于规则相比,神经网络泛化性能好,更新简单,只需要添加语料重新训练即可,对人员要求低,语料编辑或者神经网络训练师都可以完成;缺点在于,语料质量、数量要求高;语料规模大的情况下,训练时间长。另外基于概率的神经网络,具有不可预测性,模型固定后,解决问题是通过语料来微调,不是所有问题都一定能解决。

ECARX结合了规则和神经网络,汲取了它们的强项,一句话进来后同时分发给规则引擎和神经网络,同时处理,最后使用仲裁机制来优选,优先进行基于规则的匹配,若匹配失败,则使用神经网络推理结果。这样语料比较少的新增技能,基本被规则匹配上,召回率很高;语料多的技能训练出的神经网络泛化性能好,没见过的说法也能抓住。

独立部署、动态上线

一个接口,内容万千

语音交互中技能更新比较多,有时候是新增了技能,比如外卖有了需求,要新增外卖技能;有时候是更改了内容提供商,比如新增了第二家天气预报内容提供商做热备份;更多的时候是解决bug,重新上线。

为了解决以上问题, 每一个技能独立部署,动态发现注册上线。如下图所示NLU wrapper作为接口汇聚所有技能,每一个技能动态注册上线,同一个技能可以有多个实列,比如股票可以有东方财富、同花顺,可以做负载均衡或者热备份。

业务处理无状态

齐头并进,快速通行

由于每一个部署单元功能逻辑非常复杂,出了问题debug很困难,同时某个部署功能节点宕机,会影响当前对话。分析原因是因为之前的架构中,每个节点几乎都包含全部功能,若干节点做集群,前面部署负载均衡模块。这样每一个节点包含了连接信息,对话上下文信息等用户的管理信息,同时包含业务处理逻辑,导致软件功能复杂,任何一个节点出问题,该节点上的当前活动对话就会受影响。

发现问题后我们重构了架构,分离控制管理和业务处理:把连接管理、安全认证、用户账号、车型配置、用户画像、对话上下文等管理面的功能独立;业务上做分类处理、NER处理、词典、句式匹配,基于规则的处理以及各项技能处理,全部独立成微服务单独部署,无需关系用户信息,只用做简单的逻辑,提高可用性。当一个业务处理微服务出问题时,热备份继续提供服务,用户会话上下文存储在控制面中不受影响,让用户无感知,提高用户体验。

自然语言处理架构创新的过程中,我们碰到了各种各样的问题,性能方面的、稳定性方面的、接口方面的、架构方面的,但是方法总比问题多,耐心倾听客户,坦诚交流,加上客户的鼎力支持和我们的专业专注,总会能找到满意的方案,项目中产品得到不停的打磨迭代,团队也得到了锻炼提升。

 
上一篇:E-Lab “压缩”一下,效率加倍
下一篇:这就是,倾听的智慧
 
 
登录
您输入的账户或密码有误
手机号
请输入密码