GitHub使用AI来推荐项目存储库中的开放问题
2020年01月23日 由 TGS 发表
464745
0
GitHub上,大型开源项目需要解决的问题多得吓人。为了更容易地发现最紧迫的问题,GitHub最近引入了“好问题优先”的功能,将贡献者与可能符合他们兴趣的问题进行匹配。最初的版本于2019年5月发布,可以根据项目维护者对问题应用的标签提出建议。上个月发布了更新版本,该版本包含一个人工智能算法。GitHub指出,这是GitHub.com上推出的第一款支持深度学习的产品。
根据GitHub高级机器学习工程师Tiferet Gazit的说法,GitHub去年进行分析和手工整理,创建了一个由300标签名称组成的列表,这些名称被流行的开源库使用。但是依赖这些就意味着会有大约40%的推荐存储库存在可能出现的问题。另外,它让项目维护者自己承担了分类和标记问题的负担。相比之下,新的人工智能推荐系统基本上是自动的,构建它需要制作一个包含数十万个样本的带注释训练集。
GitHub最初的问题包含了策划列表中大约300个标签中的任何一个,它还补充了一些可能对初学者友好的问题。在检测并删除重复的问题之后,还进行了多次培训、验证,最终测试集被跨存储库分离以防止类似内容的数据泄漏,GitHub只使用经过预处理和去噪的问题标题和主体来训练人工智能系统,以确保它在问题打开后立即检测到正确的问题。
在生产中,人工智能算法预测概率高于所需阈值的每个问题都会被指定为推荐问题,其置信度得分等于其预测的概率。来自非存档公共存储库的开放问题,至少有一个来自于策划标签列表的标签,根据它们标签的相关性,给出一个置信度评分。在存储库级别,所有检测到的问题主要根据它们的置信度评分进行排序。
数据采集、培训和推理管道每天都在运行,使用预定的工作流程来确保结果保持“新鲜”和“相关”。将来,GitHub打算向它的存储库建议添加更好的信号,并为维护人员和测试人员提供一种机制,以在他们的存储库中批准或删除基于AI的建议。