评估大型语言模型对代码可维护性的能力
使用各种大型语言模型自动生成代码片段的自然语言摘要,研究结果表明,代码语言模型优于其通用模型,而零 - shot 方法在训练集和测试集之间分布不同的数据集上取得了更好的结果。
Oct, 2023
最近,大型语言模型 (LLMs) 在理解自然语言和生成编程代码方面表现出了非凡的能力。然而,对于 LLMs 生成的代码的可靠性和鲁棒性的研究尚未得到深入的探讨。这项研究提出了一个包括 1208 个编程问题的数据集 RobustAPI,用于评估 LLMs 生成的代码的可靠性和鲁棒性,并发现甚至对于 GPT-4 而言,62% 的生成代码存在 API 误用,这可能导致意想不到的后果。
Aug, 2023
利用对最近的大型语言模型进行了代码测试的详尽分析,本研究展示了这些模型的一系列有趣性质,并展示了如何改进大型语言模型的程序测试能力,通过利用生成的测试用例来提高合成程序的质量,相较于 GPT-3.5-turbo 和最新的最先进技术,我们的方法在 HumanEval + 上的代码通过率分别提高了 11.77% 和 4.22%。
Oct, 2023
通过信息论和几何原理,我们引入了矩阵熵作为一种新的度量标准,以量化大型语言模型中的数据压缩能力,展示其在单模态和多模态设置中的适用性,并发现它可以作为传统损失缩放定律的补充。同时,我们基于矩阵熵提出了一种评估方法,用于评估对齐质量,并发现现代大型多模态模型表现出良好的对齐性能。
Jan, 2024
基于大规模语言模型的代码生成领域的综述,介绍了对 LLMs 在代码生成领域的最新进展、数据处理、性能评估、实际应用,对学术与实践之间的差距进行了分析,提出了关键挑战和机遇,并提供了一个资源网站以记录和传播该领域的最新进展。
Jun, 2024
利用 Large Language Models (LLMs) 和 encoder-based Semantic Textual Similarity (STS) 模型对编程领域学生解答的自动评估进行了比较,发现 LLMs 在少样本和思维链模式下与 fine-tuned encoder-based 模型的性能相当。
Dec, 2023
大规模语言模型在编程语言分析中被广泛应用以提高人类生产力。本研究通过引入大规模基准数据集,调查了应用概率方法来处理与代码分布变化相关的问题,结果表明这些方法能够提高 CodeLlama 的不确定性感知能力,并增加校准质量和不确定性估计精度。然而,在不同标准(如校准误差与错误分类检测)和效能与效率之间存在不同的性能动态,强调了需根据特定环境进行方法选择的必要性。
Jan, 2024
大语言模型的广泛应用使得识别它们的优势和局限性变得重要。我们主张,为了全面理解这些系统,我们需要考虑它们在训练中解决的问题:互联网文本的下一个词预测。通过认识到这个任务所带来的压力,我们可以对大语言模型采用的策略进行预测,从而推断它们的成功或失败。这种方法,我们称之为目的论方法,使我们能够确定三个因素,我们假设这些因素会影响大语言模型的准确性:执行任务的概率、目标输出的概率和提供的输入的概率。我们预测,当这些概率较高时,大语言模型的准确性会更高,而当概率较低时,即使在确定性环境下,概率也不应该起作用。为了验证我们的预测,我们对两个大语言模型(GPT-3.5 和 GPT-4)进行了十一项任务的评估,我们找到了强有力的证据表明大语言模型受到我们假设的概率影响的方式。在许多情况下,实验揭示了令人惊讶的失效模式。例如,当输出是高概率单词序列时,GPT-4 解码简单密码的准确率为 51%,但当输出是低概率时,准确率为 13%。这些结果表明 AI 从业者在低概率情况下使用大语言模型时需要谨慎。更广泛地说,我们得出结论,我们不应该把大语言模型评估为人类,而应该把它们看作一类独特的系统 —— 这类系统经过了自己特定的压力塑造。
Sep, 2023
大型语言模型 (Large Language Models,LLMs) 被广泛应用于各种应用中,代码生成作为一个显著例子。本文聚焦于确定和理解在真实场景中,LLMs 可有效且安全地用于生成高质量代码的条件和环境。通过对四个先进的 LLMs (GPT-3.5 和 GPT-4,ChatGPT,Bard 和 Gemini) 进行比较分析,使用 9 个不同任务评估每个模型的代码生成能力。我们将研究情境化,以代表日常工作中开发人员使用 LLMs 执行常见任务的典型用例。此外,我们强调安全意识,通过使用我们的开发者角色的两个不同版本来表示。总共我们收集了 61 个代码输出并分析了其功能性、安全性、性能、复杂性和可靠性等方面。这些洞见对于理解模型的能力和限制非常重要,并指导未来在自动化代码生成领域的开发和实际应用。
Feb, 2024
大语言模型在代码摘要任务方面,特别是代码生成和摘要具有很高的性能。本文发现,这些模型在每个示例上的性能往往取决于代码和对应参考自然语言描述之间的(子词)标记重叠量。此标记重叠主要出现在代码的函数名称中,并通过移除函数名称与移除代码结构来比较这些模型的相对性能。另外,使用 BLEU 和 BERTScore 等多个评估指标对此问题的洞见非常有限,因为这些指标高度相关。
Apr, 2024