作为享誉海外的人工智能公司,kika的使命一直是通过技术创新,以输入法为切入场景,帮助人们更加自由有趣地表达心中所想,让世界沟通变得更简单。因此,不断升级输入法引擎,继而变革世界沟通是kika一直所追逐的目标。而得益于谷歌将TensorFlow开源并不断迭代,以及本身技术的钻研及创新,近日,kika正式成为TensorFlow的contributor(贡献者),与TensorFlow共同进步。
从2016年开始,kika 技术团队一直致力于 AI 技术在移动端落地,尤其是在 keyboard 输入法引擎做了很多算法与工程上的探索工作。2017 年 5 月,kika 技术团队基于 TensorFlow Mobile 研发了 kika AI Engine,将其应用于 kika 的全系输入法产品中。2017 年 11 月,在Google 发布 TensorFlow Lite (TF Lite) 后,kika 技术团队同样进行了迅速跟进。
TensorFlow Lite 是针对移动和嵌入式设备的轻量级解决方案,支持移动设备上机器学习模型的低时延推理。它拥有全新的设计,具有如下三个重要功能:
轻量级(Lightweight):支持机器学习模型的推理在较小二进制数下进行,能快速初始化/启动;
跨平台(Cross-platform):可以在许多不同的平台上运行,现在支持 Android 和 iOS;
快速(Fast):针对移动设备进行了优化,包括大大减少了模型加载时间、支持硬件加速。
kika输入法作为一个重度使用的工具类 APP,在移动端做轻量化部署显然非常重要。而对于kika输入法引擎而言,最需具备的技术要求包括:快、准、全,需要在客户端环境下,根据用户输入的上文内容以及当前键入的键码,实时进行『预测』。预测的内容包括:单词,词组,emoji 等等一切可能通过输入法发送的内容。这恰与TensorFlow Lite 的功能优势天然契合。
因此,在Google 发布 TensorFlow Lite (TF Lite) 后,kika技术团队立即着手升级开发。在开发过程中,kika发现TF Lite 对于 RNN/LSTM 的支持程度稍显不足,例如对于RNN的支持尚存在op支持不足的缺点。不过,kika团队在经历相当的研发投入后,已然可以尽量避免使用这些 TF Lite 不支持的 op,对于不得不使用的情况,也可以实现结合具体的业务逻辑,优化设计,使得在移动端部署的二次开发的工作量尽可能的小。
2018 年 1 月,kika成功地开发了基于 TF Lite 全新一代的 kika AI Engine。在客户端实现基于 TF Lite 模型的部署之后,kika分别测试了同一模型在 TF 完全版(TF Mobile)和 TF Lite 10, 000 次 Inference 的资源消耗情况,如下图所示。主要的 Metrics 包括内存占用 (memory),运行时间(speed)和静态链接库的大小 (image size)。
可以看到,各项 Metrics 都得到的大幅的优化,这对于提升产品的整体性能与稳定度都十分有利。
与此同时,kika也再一次进行了线上产品的更新,使得用户拥有了更好的使用体验。事实上,除了输入法引擎之外,kika 技术团队近年来也一直在致力于采用 AI 技术解决内容推荐,语音识别和自然语义理解方面等方面的诸多实际问题,在客户端和服务端部署分别采用 TF Lite 和 TF Serving 这两个基于 TensorFlow 的优秀框架。
在 TensorFlow的加持下,kika输入法引擎不断突破升级,无疑将使得kika变革世界沟通的美好愿景加快实现。