CODEPROMPTZIP: Code-specific Prompt Compression for Retrieval-Augmented Generation in Coding Tasks with LMs
Pengfei He, Shaowei Wang, Tse-Hsun Chen
TL;DR
CodePromptZip tackles the challenge of long prompts in retrieval-augmented generation for coding tasks by training a code-specific compressor with a type-aware token-priority ranking and a copy-enhanced CodeT5 backbone. The method enables ratio-controlled compression of retrieved code before inclusion in prompts, preserving generation quality while reducing token cost. Empirical results show meaningful gains over state-of-the-art NL-oriented prompt compression baselines across three coding tasks, with demonstrated transferability across base LMs and robustness to unparsable code. The work offers a practical path to cost-efficient, scalable RAG in coding contexts and supplies a general framework for code-aware prompt compression.
Abstract
Retrieval-Augmented Generation (RAG) enhances coding tasks by incorporating retrieved code examples into prompts. However, lengthy prompts, often exceeding tens of thousands of tokens, introduce challenges related to limited context windows of language models (LMs) and high computational costs. Existing prompt compression techniques focus on natural language, lacking tailored solutions for code. To address the gap, we propose CodePromptZip, a framework that compresses code examples before integrating into RAG workflows. Our framework employs a type-aware, priority-driven strategy to construct training samples for training code compression model. By using program analysis, we identify token types (e.g., Identifier) and perform ablation analysis to rank their removal priorities based on their impact on task performance. We then train a small LM as the compressor on these samples, enabling flexible compression conditioned on specified ratios while minimizing performance degradation. Specially, the compressor is augmented with a copy mechanism, allowing tokens to be directly copied from the original code snippets. Evaluation results show that CodePromptZip surpasses SOTA entropy-based and distillation-based baselines, improving by 23.4%, 28.7%, and 8.7% over the best baseline for Assertion Generation, Bugs2Fix, and Code Suggestion, respectively.
