Skip to main content
QUICK REVIEW

[论文解读] Using an LLM to Help With Code Understanding

Daye Nam, Andrew Macvean|arXiv (Cornell University)|Jul 17, 2023
Software Engineering Research被引用 5
一句话总结

本文提出 GILT,一种集成在 IDE 中的插件,利用 GPT-3.5-turbo 提供无需提示的代码理解支持,通过自动上下文化处理 LLM 查询,实现按需代码理解。在 32 名参与者的用户研究中,GILT 显著提升了任务完成率,优于网络搜索;然而在耗时和理解程度方面的提升未达统计显著性,且专业人士受益程度高于学生。

ABSTRACT

Understanding code is challenging, especially when working in new and complex development environments. Code comments and documentation can help, but are typically scarce or hard to navigate. Large language models (LLMs) are revolutionizing the process of writing code. Can they do the same for helping understand it? In this study, we provide a first investigation of an LLM-based conversational UI built directly in the IDE that is geared towards code understanding. Our IDE plugin queries OpenAI's GPT-3.5-turbo model with four high-level requests without the user having to write explicit prompts: to explain a highlighted section of code, provide details of API calls used in the code, explain key domain-specific terms, and provide usage examples for an API. The plugin also allows for open-ended prompts, which are automatically contextualized to the LLM with the program being edited. We evaluate this system in a user study with 32 participants, which confirms that using our plugin can aid task completion more than web search. We additionally provide a thorough analysis of the ways developers use, and perceive the usefulness of, our system, among others finding that the usage and benefits differ between students and professionals. We conclude that in-IDE prompt-less interaction with LLMs is a promising future direction for tool builders.

研究动机与目标

  • 探究基于 LLM 的、集成在 IDE 中的信息支持是否能提升开发者对陌生代码的理解能力及任务完成能力。
  • 评估无需提示的 LLM 交互在降低代码理解过程中的认知负荷方面的有效性。
  • 在受控用户研究中,对比 GILT 与传统网络搜索在性能和感知上的差异。
  • 考察学生与专业开发者在使用模式和收益方面的差异。
  • 识别未来基于 LLM 的开发者工具在真实软件开发工作流中设计的启示。

提出的方法

  • 开发了 GILT,一种 IDE 插件,集成 GPT-3.5-turbo,提供无需用户显式提示即可获取的代码解释、API 详情、领域术语定义和使用示例。
  • 自动将当前编辑的代码作为上下文注入 LLM 提示中,实现无需用户进行提示工程的上下文感知响应。
  • 提供通过操作按钮实现的无需提示交互方式,以及开放式的提示输入方式,所有提示均自动附加本地代码上下文。
  • 实现了一个用户界面,包含触发按钮、摘要显示区域、上下文操作按钮,以及在 IDE 内直接插入或清除信息的选项。
  • 开展了一项受控用户研究,共 32 名参与者,比较了使用 GILT 与网络搜索在理解并扩展涉及 Python API 的数据可视化与 3D 渲染陌生代码时的表现。
  • 收集并分析了任务完成时间、成功率和理解水平等定量数据,以及关于工具使用和感知有用性的定性反馈。

实验结果

研究问题

  • RQ1RQ1:当面对陌生代码时,GILT 在多大程度上影响开发者的理解程度、任务完成时间和任务完成率?
  • RQ2RQ2:开发者如何与 GILT 交互?不同参与者之间的交互方式有何差异?
  • RQ3RQ3:开发者如何看待 GILT 的有用性?
  • RQ4RQ4:哪些因素导致了学生与专业开发者在使用 GILT 时收益差异?
  • RQ5RQ5:在真实开发任务中,IDE 内的上下文感知 LLM 交互与传统网络搜索相比有何表现?

主要发现

  • 与网络搜索相比,GILT 显著提升了任务完成率,成功率达到统计显著水平(p < 0.05),表明其在任务完成支持方面更具优势。
  • 在任务完成时间与自我报告的理解水平方面,GILT 与网络搜索之间未发现统计显著差异,表明在效率或理解深度方面增益有限。
  • 专业人士从 GILT 中获益多于学生,可能是因为他们更擅长编写有效提示或对 AI 工具更熟悉,尽管学生更频繁使用无需提示功能。
  • 学生在使用无需提示按钮时比自行编写提示时更成功,表明减少提示工程负担可提升对经验较少开发者的可用性。
  • 参与者表示,能够使用本地代码作为上下文是 GILT 的关键优势,使响应比通用网络搜索更加相关和准确。
  • 本研究强调了未来在真实世界环境中部署的进一步研究需求,因为实验室条件可能无法反映长期或大规模使用模式在实际开发工作流中的表现。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。