您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
hso是什么意思(hso是什么意思梗)
代码,向量,单词hso是什么意思(hso是什么意思梗)
发布时间:2020-12-06加入收藏来源:互联网点击:
(第一个代码片段来自于 GitHub 上的公共可用代码,在 Apache 2.0 许可下共享使用,链接:https://github.com/RealMoMo/Android_Utils/blob/master/SystemBarTintManager.java?fbclid=IwAR0SaLCK1xR18fxlfSvG72wcD4RBLnh7aZLNvCIls-Pe926LOpQ-2rmKPd0#L495-L497。
第二个来自于 GitHub,同样在 Apache 2.0 许可下共享使用,链接:https://github.com/hearsilent/Universal-CollapsingTabLayout/blob/master/app/src/main/java/hearsilent/universalcollapsingtoolbarlayouttablayoutexample/libs/Utils.java?fbclid=IwAR38dLHvVRwZWGZoFTW6aniRbWQ0OAXAptH1lF-t1zyFuhopAJJVbGzkMpU#L36-L47)
本文还提供了关于 UNIF 表现的其他数据,链接:https://arxiv.org/abs/1905.03813?fbclid=IwAR10r1Y_3kKQ1nJ6OBWILQSa3xPS4rDjOBPQ2FC_SnwyNgJ532jwy-QfDHg。
构建基于机器学习的有效工具创建一个成功的机器学习工具,关键之一在于获得高质量的训练数据集。对于我们的模型,我们使用了来自 GitHub 的大型开源代码库。此外,拥有高质量的评估数据集对于评估模型的质量同等重要。在探索一个相对较新的研究领域(如代码搜索)时,缺乏可用的评估数据集会限制我们通过各种代码搜索工具进行评估的能力。因此,为了帮助在这方面进行基准测试,我们从 Stack Overflow 整理了 287 个公共可用数据点的数据集,其中每个数据点由一个自然语言查询和一个「黄金」代码片段回答组成。
创建一个训练数据集通过在 GitHub 上挑选 26,109 个最受欢迎的 Android 项目,我们直接在搜索语料库上训练我们的无监督模型 NCS。这也成为 NCS 返回代码片段的搜索语料库。
为了对我们的 UNIF 模型进行监督,我们需要一对对齐的数据点来学习映射。我们对 UNIF 进行了(c,q)数据点集合的训练,其中 q 是自然语言描述或查询,c 是相应的代码片段。我们通过从 Stack Exchange(CC-BY-SA 3.0 许可)公开发布的数据(链接:https://archive.org/details/stackexchange)中提取 Stack Overflow 问题标题和代码片段来获得这个数据集。在使用各种启发式方法过滤问题之后——例如,代码片段必须有一个 Android 标记,或者必须有一个方法调用,或者不能包含 XML 标记——我们最终得到了 451,000 个训练数据点。这个数据集与评估查询不相交。(这反映了训练数据集的最佳可用;正如我们在一篇论文(该论文链接:https://arxiv.org/abs/1905.03813?fbclid=IwAR16thFXpe8iOKKfTNpGni9tpYDbYAxqRF8GotMPP-Jwhtja4CvBSvHmG0s)中所注意到的,基于文档字符串的训练没有得到好的结果。)
评估数据集我们使用 Stack Overflow 问题评估 NCS 的有效。Stack Overflow 是一种有用的评估资源,因为它包含大量的自然语言查询,以及可以作为可接受响应处理的向上投票的答案。给定一个 Stack Overflow 问题作为查询标题,NCS 从 GitHub 检索方法列表。在我们创建和改进 NCS 的工作中,我们认为如果来自 NCS 的 topn 结果中至少有一个与 Stack Overflow 应答代码片段中描述的方法匹配,那么搜索就成功了。(对于我们的评估,我们使用 top1、top5 和 top10 进行计算。)
我们使用脚本选择 Stack Overflow 问题,标准如下:1)问题包含「Android」和「Java」标签;2)有一个向上投票的代码答案;3)真值代码片段在我们的 GitHub Android repos 语料库中至少有一个匹配。通过人工处理确保问题是可接受的,我们得到了 287 个问题的数据集。
使用 Aroma 进行自动评价我们发现,手工评估搜索结果正确的操作很难重复进行,因为不同的作者和不同的人可能会有不同的观点。我们决定使用 Aroma 实现一个自动化的评估管道。Aroma 给出搜索结果与真值代码片段之间的相似评分,以评估在得分超过阈值的情形下查询是否被正确回答。有了这个管道,我们可以用一种可重现的方式对模型进行评估。我们使用 Stack Overflow 上找到的代码答案作为评估的真值。
我们使用的上述评估过程不仅比较了 UNIF 和 NCS,还将 UNIF 与文献中其他一些代码搜索解决方案进行了比较。(相关比较的详细链接如下:https://arxiv.org/pdf/1812.01158.pdf?fbclid=IwAR0x2bvo-ItQHCeqdSb4f139HBpJdyzuQU0Famiwx52jCsWQKQu3MWuNdN4)
一个用于编写和编辑代码的基于机器学习的扩展工具包随着大型代码存储库在当今生产环境中广泛可用,机器学习可以提取模式和观点,从而提高工程师的工作效率。在 Facebook,这些机器学习工具包括带有 Aroma 的代码到代码推荐和带有 Getafix 的自动 bug 修复。NCS 和 UNIF 是代码搜索模型的例子,它们可以在自然语言查询和查找相关代码片段之间架起桥梁。使用诸如此类的工具,工程师将能够轻松地找到并使用相关代码片段,即使是在使用专有源代码或使用不太常用的编程语言编写代码时也是如此。未来,我们希望在综合领域探索其他的深度学习模式,进一步提高工程师的工作效率。
相关文章(1)Aroma: Using machine learning for code recommendation
链接:https://ai.facebook.com/blog/aroma-ml-for-code-recommendation/
(2)Recap of first-ever Glow Summit
链接:https://ai.facebook.com/blog/glow-summit-recap/
(3)Getafix: How Facebook tools learn to fix bugs automatically
链接:https://ai.facebook.com/blog/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/
Via:https://ai.facebook.com/blog/neural-code-search-ml-based-code-search-using-natural-language-queries/
RECOMMEND
本文到此结束,希望对大家有所帮助呢。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |