{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/h2o-heavy-hitter-oracle-for-efficient","title":"H2O: Heavy-Hitter Oracle for Efficient Generative Inference of Large Language Models","arxiv_id":null,"date":"2023-09-21","proceeding":"NeurIPS 2023 11","authors":[],"abstract":"Large Language Models (LLMs), despite their recent impressive accomplishments, are notably cost-prohibitive to deploy, particularly for applications involving long-content generation, such as dialogue systems and story writing. Often, a large amount of transient state information, referred to as the $\\mathsf{KV}$ $\\mathsf{cache}$, is stored in GPU memory in addition to model parameters, scaling linearly with the sequence length and batch size. In this paper, we introduce a novel approach for implementing the  $\\mathsf{KV}$ $\\mathsf{cache}$ which significantly reduces its memory footprint.  Our approach is based on the noteworthy observation that a small portion of tokens contributes most of the value when computing attention scores. \n We call these tokens Heavy Hitters ($\\mathsf{H_2}$). Through a comprehensive investigation, we find that ($i$) the emergence of $\\mathsf{H_2}$ is natural and strongly correlates with the frequent co-occurrence of tokens in the text, and ($ii$) removing them results in significant performance degradation. Based on these insights, we propose Heavy Hitter Oracle ($\\mathsf{H_2O}$), a $\\mathsf{KV}$ $\\mathsf{cache}$ eviction policy that dynamically retains a balance of recent and $\\mathsf{H_2}$ tokens.\n We formulate the $\\mathsf{KV}$ $\\mathsf{cache}$ eviction as a dynamic submodular problem and prove (under mild assumptions) a theoretical guarantee for our novel eviction algorithm which could help guide future work. We validate the accuracy of our algorithm with OPT, LLaMA, and GPT-NeoX across a wide range of tasks. Our implementation of $\\mathsf{H_2O}$ with 20\\% heavy hitters improves the throughput over three leading inference systems DeepSpeed Zero-Inference, Hugging Face Accelerate, and FlexGen by up to $29\\times$, $29\\times$, and $3\\times$ on OPT-6.7B and OPT-30B. With the same batch size, $\\mathsf{H_2O}$ can reduce the latency by up to $1.9\\times$.Submission Number: 9012","url_abs":"https://openreview.net/forum?id=RkRrPp7GKO","url_pdf":"https://openreview.net/pdf?id=RkRrPp7GKO","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"h2o-heavy-hitter-oracle-for-efficient","repo_url":"https://github.com/fminference/h2o","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"gpt-neox","method_name":"GPT-NeoX"},{"method_slug":"opt","method_name":"OPT"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}