美国普渡大学最新发布的一份 “谁的回答更好?深入分析 ChatGPT 和 Stack Overflow 对软件工程问题的回答” 研究报告指出,ChatGPT 在回答软件编程问题时,错误率高达一半以上。
研究团队共分析了 ChatGPT 对 517 个 Stack Overflow 问题的回答,以评估 ChatGPT 回答的正确性、一致性、全面性和简洁性。同时还就这些答案进行了大规模的语言分析和用户研究,以便从语言和人性化方面了解 ChatGPT 答案的特点。
结果表明,52% 的 ChatGPT 答案是错误的,77% 的回答过于冗长。但尽管如此,鉴于其全面性和清晰的语言风格,仍有 39.34% 的人选择 ChatGPT 的回答。
且深入的人工分析结果得出,ChatGPT 答案中存在大量概念和逻辑错误;“由于 ChatGPT 无法理解所提出问题的基本语境,许多答案都是不正确的”。语言分析结果则指出 ChatGPT 的回答非常正式,很少描绘负面情绪或风险;“我们多次观察到 ChatGPT 插入了诸如‘我当然能帮你’、‘这肯定能解决’等语句。”
“我们的结果表明,有必要对 ChatGPT 中的错误进行仔细检查和纠正,同时让用户意识到看似正确的 ChatGPT 答案所带来的风险。”
研究人员观察到,只有当 ChatGPT 答案中的错误非常明显时,用户才能意识到。但当错误不易验证或需要外部 IDE 或文档时,用户往往会无法识别错误或者会低估答案的错误程度。“礼貌用语、清晰的教科书式风格的答案、全面性以及答案的关联性会使得完全错误的答案显得正确。”
普渡大学博士生、该论文的作者之一 Samia Kabir 向 The Register 表示,与 Stack Overflow 的答案相比,受访者更偏向不正确且冗长的 ChatGPT 答案。造成这一现象的原因有多种:
其中一个主要原因是 ChatGPT 的回答非常详细。在很多情况下,如果参与者从冗长而详细的答案中获得有用的信息,他们并不会介意答案的长度。此外,积极的情绪和答案的礼貌性也是另外两个因素。
当参与者发现 ChatGPT 的答案很有见地时,他们就会忽略错误。ChatGPT 自信地传达有洞察力的信息(即使信息不正确)的方式赢得了用户的信任,这使他们更喜欢错误的答案。
研究人员对 ChatGPT 答案和 Stack Overflow 答案的语言分析表明,机器人的反应 “更正式,表达了更多分析思维,表达了更多的分析性思维,展示了更多为实现目标所做的努力,并表现出较少的负面情绪”。情感分析得出的结论是,ChatGPT 的答案比 Stack Overflow 的答案表达了 “更积极的情绪”。
“根据我们的发现和这项研究的观察,我们建议 Stack Overflow 可以采用有效的方法来检测评论和答案中的毒性和负面情绪,以改善情感和礼貌。我们还认为 Stack Overflow 可能希望提高答案的可发现性,以帮助找到有用的答案。此外,Stack Overflow 可能希望提供更具体的指南来帮助回答者构建答案,例如:以循序渐进、注重细节的方式。”
此外论文指出,这项研究工作还旨在鼓励进一步研究如何识别和减少不同类型的概念和事实错误。“我们希望这项工作能促进更多关于机器生成答案中不正确性的透明度和交流的研究,尤其是在 SE 的背景下。”