文章插图
- 丰富的接口:除了预估接口,还需要有特征抽取接口、模型打分Debug 接口、特征表达式测试接口、模型单独测试接口、特征模型刷新接口、特征依赖检等等一系列接口,这样才可以保证整个系统的可用性,并为后面管理平台的建设打下基础 。
4.3 建设预估平台:快速复用与高效管理
4.3.1 能力的快速复用
Augur在设计之初,就将所有业务逻辑通过OP和Transformer承载,所以跟业务无关 。考虑到美团搜索与NLP部模型预估场景需求的多样性,我们还为Augur赋予多种业务调用的方式 。
- JAVA服务化调用:即基于Augur构建一个完整的Service,可以实现无状态分布式的弹性预估能力 。
- Thrift调用:Java服务化版本中内置了对Thrift 的支持,使不同语言的业务都可以方便地拥有模型预估能力 。
- 双框架:Augur支持同一个服务同时提供Pigeon(美团内部的RPC框架)以及Thrift 服务,从而满足不同业务的不同需求 。
- Java SDK:Augur同样支持以SDK的方式将能力嵌入到已有的集群当中 。但如此一来,分布式能力就无法发挥了 。所以,我们一般应用在性能要求高、模型比较小、特征基本可以存在本地的场景下 。
文章插图
当然,无论使用哪一种方式去构建预估服务,都可以在美团内部的Poker平台上进行服务、模型与特征的管理 。
4.3.2 Augur管理平台Poker的构建
实现一个框架价值的最大化,需要一个完整的体系去支撑 。而一个合格的在线预估平台,需要一个产品级别的管理平台辅助 。于是我们构建了Poker(搜索实验平台),其中的在线预估服务管理模块,也是Augur的最佳拍档 。Augur是一个可用性较高的在线预估框架,而Poker+Augur则构成了一个好用的在线预估平台 。下图是在线预估服务管理平台的功能架构:
文章插图
首先是预估核心特征的管理,上面说到我们构建了语言化的特征表达式,这其实是个较为常见的思路 。Poker利用Augur提供的丰富接口,结合算法的使用习惯,构建了一套较为流畅的特征管理工具 。可以在平台上完成新增、测试、上线、卸载、历史回滚等一系列操作 。同时,还可以查询特征被服务中的哪些模型直接或者间接引用,在修改和操作时还有风险提示,兼顾了便捷性与安全性 。
文章插图
模型管理也是一样,我们在平台上实现了模型的配置化上线、卸载、上线前的验证、灰度、独立的打分测试、Debug信息的返回等等 。同时支持在平台上直接修改模型配置文件,平台可以实现模型多版本控制,一键回滚等 。配置皆为实时生效,避免了手动上线遇到问题后因处理时间过长而导致损失的情况 。
文章插图
4.3.3 Poker + Augur的应用与效果
随着Augur和Poker的成熟,美团搜索与NLP部门内部已经有超过30个业务方已经全面接入了预估平台,整体的概况如下图所示:
文章插图
预估框架使用迁移Augur后,性能和模型预估稳定性上均获得了较大幅度的提升 。更加重要的是,Poker平台的在线预估服务管理和Augur预估框架,还将算法同学从繁复且危险的上线操作中解放出来,更加专注于算法迭代,从而取得更好的效果 。以点评搜索为例,在Poker+Augur稳定上线之后,经过短短半年的时间,点评搜索核心KPI在高位基础上仍然实现了大幅提升,是过去一年半涨幅的六倍之多,提前半年完成全年的目标 。
推荐阅读
- 智能无人车亮相北京朝阳公园
- 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
- Aqara|Aqara智能窗帘神器开卖:即挂即用 支持小爱、Siri
- 淘宝旺铺专业版和智能版区别 淘宝旺铺智能版怎么用
- 淘宝热词榜 怎么看淘宝搜索热词
- 程序员客栈 V4.18 版本更新:技术信用认证与全站搜索
- 深入聊聊Linux 五种IO模型
- 历史+科技的结合 OPPO智能音箱亮相
- 高通推出全球首个5G和人工智能机器人平台,30+公司参与生态建设
- 首期人工智能导论全国师资培训“云结业”