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