自动推理技术如何优化视频平台体验

自动推理指机器进行逻辑推导的能力,其常见应用场景包括软件验证(确保计算机程序按预期执行)。尽管该领域已持续研究50年,但直到最近验证技术才适用于数百万行代码的工业级代码库。

自2019年起,某中心Prime Video自动推理团队开始创建软件开发工具,利用这些验证技术为视频平台应用的开发者提供更高代码可靠性保障。该应用需兼容数千种硬件配置,整合全球数十个团队用多种编程语言开发的组件,构成自动推理技术的特殊挑战环境。

2021年3月26日起,所有Prime Video开发者开始使用名为BugBear的自动推理机器人进行代码审查。该工具能在15分钟内提供反馈,支持C/C++、Java和TypeScript语言的分析。

技术实现细节

在2020年下半年启动的试点中,BugBear执行了1000多次自动代码审查,发现约100个潜在问题,其中80%被开发者确认需要修改。其分析能力包括:

  1. 通用问题检测:如未关闭已打开的文件、使用未初始化变量等绝对错误
    1. 代码契约验证:针对业务逻辑的特定规则,例如"启用触摸键盘前需验证设备支持触摸输入" 技术架构采用以下方案:
  • 对C/C++和Java代码,改造现有工具Infer来检测内存和并发问题
    • 对C++和TypeScript契约,自主研发工具将程序编码为逻辑事实数据库,使用Datalog语言表示事实和推理规则 示例:若契约要求函数F中必须在use_resource()前调用open_resource,对应的Datalog规则如下:
violation(F) :- calls(F, use_resource),not called_before(open_resource, use_resource, F).

核心技术挑战

构建精确的调用图(call graph)是不可判定问题,团队主要研究如何平衡近似图的精度与性能。当前正在开发按需验证系统,允许开发者在代码中添加"BugBear断言"进行针对性分析。

更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)