A Methodology for Investigating AI Patterns Prevalence in Software Repositories
本文提出并验证了一种结合文献挖掘(用于识别 14 类 AI 模式)与主动学习(用于实证测量这些模式在真实 GitHub 仓库中的流行度与准确性)的方法论,旨在解决当前在理解 AI 模式在实践中究竟如何被使用这一方面的认知空白。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你是一位城市规划师,试图了解人们在繁华现代的城市中究竟是如何盖房子的。你手里有一本厚厚的《理想房屋设计》书(由文学专家提出的 AI 模式),但你完全不知道现实中的社区里是否真的有人在使用这些设计,还是说他们只是在随性地建造一些奇形怪状的结构。
这篇论文的研究团队决定走出去,实地考察 100 个真实的房屋社区(GitHub 代码仓库),并弄清楚哪些“理想设计”真正被应用了。
以下是他们的做法,用简单的语言解释如下:
1. 问题所在:想法太多,证据不足
专家们写下了数百种“AI 模式”(构建智能软件的食谱)。但没人知道这些食谱是否真的在现实世界的厨房里被烹饪出来。研究人员想要从“理论”转向“现实”。
2. 第一步:整理食谱书
首先,他们从书籍、博客和文档中收集了 769 种不同的“食谱”。这太乱了,无法直接使用。
- 类比: 想象一下,你有 769 种不同的“制作三明治”的名称。有的叫“俱乐部三明治”,有的叫“BLT”,有的叫“小麦面包配火腿奶酪”。
- 解决方法: 他们使用了一个聪明的计算机(大语言模型,LLM)将相似的食谱归为一类。然后,由人类观察这些分组,并将它们组织成 14 个清晰的类别(例如“RAG”、“智能体架构”、“预处理”等)。这创建了一个由 14 道主菜组成的整洁、有序的菜单。
3. 第二步:寻找“社区”(代码社区)
他们不能只看单行代码;那就像是通过观察一块砖头来评判整栋房子。他们需要找到协同工作的代码“社区”。
- 类比: 他们不是在看单个砖块,而是在看房子的“房间”。他们使用了一种特殊的地图(调用图/call graph)来寻找紧密连接的代码组,就像一个厨房里灶台、冰箱和水槽都是相互关联的一样。
- 筛选过程: 他们从 GitHub 中挑选了 100 个真实的 AI 项目(“社区”),这些项目很受欢迎,但不是那些庞大的基础框架(如 TensorFlow)。他们想看的是典型开发者正在构建什么,而不是那些所有人都在其之上构建的巨型工具。
4. 第三步:“猜猜看”游戏(主动学习)
这是最聪明的部分。他们并没有一个带着标准答案(标注数据)的老师来训练他们的计算机模型。
- 类比: 想象一个学生正在参加考试,但他并不知道答案。
- 学生根据自己生成的少量示例做出一些猜测。
- 计算机观察这 100 个社区并说:“我对这个只有五成把握,但我对那个很有把握。”
- 研究人员(人类老师)只查看那些计算机不确定的部分。他们对这些部分进行标注,然后计算机从中学习。
- 他们重复这个循环。计算机变得越来越聪明,只有在真正感到困惑时才会请求帮助。这节省了他们手动阅读和标注数千个文件的精力。
5. 第四步:统计结果(带有安全网)
一旦计算机训练完成,它就会扫描这 100 个社区,统计每种模式出现的频率。
- 转折点: 计算机并不完美,它会犯错。因此,研究人员没有仅仅给出一个单一的数字(例如“RAG 的使用率为 20%”)。
- 安全网: 他们使用了一种统计技巧(类似于进行 20,000 次模拟)来表示:“我们有 95% 的把握确定真实数值在 X 和 Y 之间。”这给出了一个“置信区间”,承认了他们的估算存在误差范围。
他们发现了什么?
- 得分: 他们的计算机在识别所使用的模式方面达到了约 56% 的准确率。这听起来似乎不高,但请记住,这里有 8 个不同的类别可供选择。随机猜测的准确率只有 11%。所以,他们的表现比随机猜测高出 5 倍。
- 胜出者: 他们发现像“使用经典模型进行预测”和“多模态提示”这样的模式非常常见。
- 落后者: 一些模式,比如“使用 LLM 工具”,很难被识别,因为它们在代码中没有留下强烈的“指纹”,所以计算机经常把它们与“无特殊模式”(“None”类别)混淆。
- “None”问题: 大量代码被标记为“None”(未检测到模式)。这是因为有些模式很微妙,或者代码太乱,导致模型无法识别。
核心启示
这篇论文不仅仅是说“AI 模式存在”。它建立了一套稳健的方法,用来证明即使在没有完美初始数据集的情况下,这些模式在现实世界中被使用的频率。
他们展示了:
- 你可以将混乱的创意列表组织成清晰的分类法。
- 你可以通过仅在计算机感到困惑时才寻求人类帮助的方式(主动学习),来教计算机识别这些模式。
- 你可以估算这些模式的普遍程度,同时诚实地说明你的数字存在“误差棒”。
这就像是终于有了一份可靠的城市建筑人口普查报告,并且附带了一句备注:“我们对房屋的统计相当确定,但那些小棚屋可能有点模糊。”这为开发者和研究人员提供了一个基于数据的、可靠的基础,去理解当今 AI 究竟是如何被构建出来的。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。