On Mitigating Code LLM Hallucinations with API Documentation
This addresses the problem of unreliable API usage in software engineering for developers using code LLMs, with incremental improvements in balancing performance across API frequencies.
The study tackled API hallucinations in code LLMs by introducing CloudAPIBench to measure occurrences, finding that GPT-4o achieved only 38.58% valid low-frequency API invocations, and proposed methods like Documentation Augmented Generation and intelligent triggering to improve reliability, resulting in an 8.20% absolute improvement for GPT-4o.
In this study, we address the issue of API hallucinations in various software engineering contexts. We introduce CloudAPIBench, a new benchmark designed to measure API hallucination occurrences. CloudAPIBench also provides annotations for frequencies of API occurrences in the public domain, allowing us to study API hallucinations at various frequency levels. Our findings reveal that Code LLMs struggle with low frequency APIs: for e.g., GPT-4o achieves only 38.58% valid low frequency API invocations. We demonstrate that Documentation Augmented Generation (DAG) significantly improves performance for low frequency APIs (increase to 47.94% with DAG) but negatively impacts high frequency APIs when using sub-optimal retrievers (a 39.02% absolute drop). To mitigate this, we propose to intelligently trigger DAG where we check against an API index or leverage Code LLMs' confidence scores to retrieve only when needed. We demonstrate that our proposed methods enhance the balance between low and high frequency API performance, resulting in more reliable API invocations (8.20% absolute improvement on CloudAPIBench for GPT-4o).