Quick keys
— Navigate with ← → or spacebar.
F
fullscreen ·
S
speaker view ·
O
overview ·
Alt+Click
zoom
Navigation
×
<style> :root { --conf-ink: #0f172a; --conf-muted: #475569; --conf-soft: #e2e8f0; --conf-panel: rgba(255, 255, 255, 0.82); --conf-blue: #2563eb; --conf-blue-soft: rgba(37, 99, 235, 0.1); --conf-teal: #0f766e; --conf-teal-soft: rgba(15, 118, 110, 0.1); --conf-amber: #b45309; --conf-amber-soft: rgba(180, 83, 9, 0.11); --conf-rose: #be123c; --conf-rose-soft: rgba(190, 18, 60, 0.09); --conf-green: #15803d; --conf-green-soft: rgba(21, 128, 61, 0.1); } .reveal .slides { text-align: left; } .reveal section.conf-slide { box-sizing: border-box; width: 100%; height: 100%; padding: 82px 70px 24px; color: var(--conf-ink); background: linear-gradient(135deg, rgba(37, 99, 235, 0.055), rgba(255, 255, 255, 0) 32%), linear-gradient(225deg, rgba(15, 118, 110, 0.055), rgba(255, 255, 255, 0) 36%), #f8fafc; overflow: hidden; } .reveal section.conf-title { padding: 82px 82px 36px; } .reveal .conf-slide h1, .reveal .conf-slide h2, .reveal .conf-slide h3 { color: var(--conf-ink); letter-spacing: 0; text-transform: none; } .reveal .conf-slide h1 { font-size: 76px; line-height: 1.03; margin: 0; } .reveal .conf-slide h2 { font-size: 46px; line-height: 1.08; margin: 0 0 26px; } .reveal .conf-slide h3 { font-size: 25px; line-height: 1.18; margin: 0 0 10px; } .reveal .conf-slide p, .reveal .conf-slide li { color: var(--conf-muted); font-size: 24px; line-height: 1.36; } .reveal .conf-slide strong { color: var(--conf-ink); font-weight: 720; } .reveal .conf-kicker { color: var(--conf-teal); font-size: 18px; font-weight: 760; letter-spacing: 0.08em; margin-bottom: 14px; text-transform: uppercase; } .reveal .conf-subtitle { max-width: 950px; color: var(--conf-muted); font-size: 31px; line-height: 1.32; margin-top: 26px; } .reveal .conf-title-grid { display: grid; grid-template-columns: minmax(0, 1100px) 286px; gap: 42px; align-content: center; align-items: center; height: 100%; max-width: none; } .reveal .conf-title-main { min-width: 0; } .reveal .conf-title-qr { box-sizing: border-box; justify-self: end; width: 286px; padding: 18px; text-align: center; } .reveal .conf-title-qr img { display: block; width: 238px; height: 238px; max-width: none; max-height: none; object-fit: contain; margin: 0 auto 13px; border-radius: 0; box-shadow: none; } .reveal .conf-title-qr strong { display: block; color: var(--conf-ink); font-size: 21px; line-height: 1.15; } .reveal .conf-acl-logo { display: block; width: 300px; max-width: none; height: auto; margin: 0 0 48px; object-fit: contain; border-radius: 0; box-shadow: none; } .reveal .conf-meta { color: var(--conf-muted); font-size: 21px; line-height: 1.45; margin-top: 24px; } .reveal .conf-event-line { color: var(--conf-teal); font-size: 23px; font-weight: 760; line-height: 1.25; margin-top: 18px; } .reveal .conf-logo-row { display: flex; align-items: center; gap: 24px; margin-top: 40px; flex-wrap: nowrap; } .reveal .conf-logo-badge { display: flex; align-items: center; justify-content: center; height: 84px; padding: 10px 18px; border-radius: 14px; background: rgba(255, 255, 255, 0.92); box-shadow: 0 18px 46px rgba(15, 23, 42, 0.12); } .reveal .conf-logo-badge.nsf { width: 104px; height: 92px; padding: 7px; } .reveal .conf-logo-row img { display: block; width: auto; max-width: none; height: 100%; max-height: none; object-fit: contain; border-radius: 0; box-shadow: none; margin: 0; } .reveal .conf-panel { border: 1px solid rgba(15, 23, 42, 0.14); border-radius: 8px; background: var(--conf-panel); box-shadow: 0 18px 46px rgba(15, 23, 42, 0.08); } .reveal .conf-title-card { padding: 24px; } .reveal .conf-title-card img { width: 100%; height: 370px; object-fit: contain; display: block; } .reveal .conf-title-metric { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; } .reveal .conf-title-metric p, .reveal .conf-metric p { margin: 0; } .reveal .conf-title-metric strong, .reveal .conf-metric strong { display: block; color: var(--conf-blue); font-size: 34px; line-height: 1; } .reveal .conf-title-metric p > span, .reveal .conf-metric p > span { display: block; color: var(--conf-muted); font-size: 16px; line-height: 1.22; margin-top: 7px; } .reveal .conf-chip-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; } .reveal .conf-chip { display: inline-flex; align-items: center; border: 1px solid rgba(15, 23, 42, 0.14); border-radius: 999px; color: var(--conf-muted); background: rgba(255, 255, 255, 0.74); font-size: 16px; font-weight: 720; line-height: 1; padding: 9px 13px; } .reveal .conf-chip.blue { color: var(--conf-blue); background: var(--conf-blue-soft); border-color: rgba(37, 99, 235, 0.24); } .reveal .conf-chip.teal { color: var(--conf-teal); background: var(--conf-teal-soft); border-color: rgba(15, 118, 110, 0.24); } .reveal .conf-chip.amber { color: var(--conf-amber); background: var(--conf-amber-soft); border-color: rgba(180, 83, 9, 0.24); } .reveal .conf-grid { display: grid; gap: 18px; } .reveal .conf-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); } .reveal .conf-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .reveal .conf-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); } .reveal .conf-card { border: 1px solid rgba(15, 23, 42, 0.13); border-radius: 8px; background: rgba(255, 255, 255, 0.78); padding: 20px 22px; min-height: 138px; box-shadow: 0 12px 28px rgba(15, 23, 42, 0.055); } .reveal .conf-card p { margin: 0; font-size: 20px; } .reveal .conf-num { color: var(--conf-blue); font-size: 18px; font-weight: 780; margin-bottom: 12px; } .reveal .conf-callout { border-left: 5px solid var(--conf-blue); border-radius: 8px; background: var(--conf-blue-soft); padding: 18px 22px; color: var(--conf-ink); font-size: 25px; line-height: 1.34; } .reveal .conf-callout.teal { border-left-color: var(--conf-teal); background: var(--conf-teal-soft); } .reveal .conf-callout.amber { border-left-color: var(--conf-amber); background: var(--conf-amber-soft); } .reveal .conf-callout.rose { border-left-color: var(--conf-rose); background: var(--conf-rose-soft); } .reveal .conf-big-question { margin-top: 24px; padding: 26px 30px; color: var(--conf-ink); font-size: 35px; line-height: 1.2; } .reveal .conf-equation { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 0; min-height: 112px; max-width: 100%; overflow-x: auto; border: 1px solid rgba(15, 23, 42, 0.12); border-radius: 8px; background: rgba(15, 23, 42, 0.04); color: var(--conf-ink); font-size: 31px; line-height: 1.25; padding: 18px 22px; } .reveal .conf-equation .katex { max-width: 100%; } .reveal .conf-equation.sm { font-size: 24px; } .reveal .conf-figure { border: 1px solid rgba(15, 23, 42, 0.12); border-radius: 8px; background: rgba(255, 255, 255, 0.84); padding: 16px; } .reveal .conf-figure img { display: block; width: 100%; height: 100%; object-fit: contain; } .reveal .conf-figure figcaption { color: var(--conf-muted); font-size: 16px; line-height: 1.25; margin-top: 10px; } .reveal .conf-fig-short { height: 430px; } .reveal .conf-fig-mid { height: 540px; } .reveal .conf-fig-wide { height: 465px; } .reveal .conf-fig-tall { height: 610px; } .reveal .conf-error-stack { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 18px; height: 540px; } .reveal .conf-error-stack .conf-card { display: grid; align-content: center; min-height: 0; padding: 22px 26px; } .reveal .conf-error-stack .conf-card h3 { margin: 0 0 10px; line-height: 1.12; min-height: 40px; } .reveal .conf-error-stack .conf-card p { min-height: 72px; } .reveal .conf-quanto-layout { align-items: start; } .reveal .conf-metric.conf-quanto-metrics { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 10px; height: 246px; margin-top: 0; } .reveal .conf-metric.conf-quanto-metrics .conf-card { display: grid; align-content: center; min-height: 0; padding: 10px 20px; } .reveal .conf-metric.conf-quanto-metrics strong { font-size: 28px; line-height: 1.12; } .reveal .conf-metric.conf-quanto-metrics p > span { font-size: 15px; line-height: 1.15; margin-top: 4px; } .reveal .conf-hqq-board { display: grid; gap: 16px; margin-top: 20px; } .reveal .conf-hqq-evidence, .reveal .conf-hqq-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } .reveal .conf-hqq-card, .reveal .conf-hqq-metric { border: 1px solid rgba(15, 23, 42, 0.12); border-radius: 8px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.74)), linear-gradient(135deg, var(--hqq-soft), rgba(255, 255, 255, 0) 62%); box-shadow: 0 16px 32px rgba(15, 23, 42, 0.07); } .reveal .conf-hqq-card { min-height: 196px; padding: 20px 24px; border-top: 4px solid var(--hqq-accent); } .reveal .conf-hqq-card.teal, .reveal .conf-hqq-metric.teal { --hqq-accent: var(--conf-teal); --hqq-soft: var(--conf-teal-soft); } .reveal .conf-hqq-card.blue, .reveal .conf-hqq-metric.blue { --hqq-accent: var(--conf-blue); --hqq-soft: var(--conf-blue-soft); } .reveal .conf-hqq-card.amber, .reveal .conf-hqq-metric.amber { --hqq-accent: var(--conf-amber); --hqq-soft: var(--conf-amber-soft); } .reveal .conf-hqq-label { display: inline-flex; align-items: center; border-radius: 999px; background: var(--hqq-soft); color: var(--hqq-accent); font-size: 13px; font-weight: 820; line-height: 1; margin-bottom: 13px; padding: 7px 10px; } .reveal .conf-hqq-card h3 { font-size: 28px; line-height: 1.08; margin: 0 0 12px; min-height: 38px; } .reveal .conf-hqq-card p { color: var(--conf-muted); font-size: 19px; line-height: 1.32; margin: 0; } .reveal .conf-hqq-metric { display: grid; align-content: center; min-height: 118px; padding: 16px 24px; border-left: 5px solid var(--hqq-accent); } .reveal .conf-hqq-metric p { margin: 0; } .reveal .conf-hqq-metric strong { color: var(--hqq-accent); display: block; font-size: 43px; line-height: 1; min-height: 48px; } .reveal .conf-hqq-metric p > span { color: var(--conf-muted); display: block; font-size: 17px; line-height: 1.18; margin-top: 8px; min-height: 28px; } .reveal .conf-hqq-takeaway { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: center; border-left: 6px solid var(--conf-teal); border-radius: 8px; background: linear-gradient(90deg, rgba(15, 118, 110, 0.14), rgba(15, 118, 110, 0.07)), rgba(255, 255, 255, 0.7); color: var(--conf-ink); font-size: 23px; line-height: 1.28; padding: 18px 24px; } .reveal .conf-hqq-takeaway strong { color: var(--conf-teal); font-size: 19px; font-weight: 840; line-height: 1; min-height: 22px; white-space: nowrap; } .reveal .conf-hqq-keyword { color: var(--conf-teal); font-weight: 840; } .reveal .conf-split { display: grid; grid-template-columns: minmax(0, 0.98fr) minmax(420px, 0.82fr); gap: 30px; align-items: stretch; } .reveal .conf-split.reverse { grid-template-columns: minmax(420px, 0.76fr) minmax(0, 1fr); } .reveal .conf-memory-layout { display: grid; grid-template-columns: minmax(0, 0.98fr) minmax(420px, 0.82fr); gap: 24px 30px; align-items: stretch; } .reveal .conf-memory-context { display: grid; gap: 14px; } .reveal .conf-need-box { grid-column: 1 / -1; min-height: 134px; border-left: 5px solid var(--conf-teal); background: var(--conf-teal-soft); padding: 24px 30px; } .reveal .conf-need-box p { font-size: 28px; } .reveal .conf-metric { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; } .reveal .conf-metric .conf-card { min-height: 104px; } .reveal .conf-mini-table, .reveal .conf-table { width: 100%; border-collapse: collapse; } .reveal .conf-mini-table { font-size: 18px; } .reveal .conf-table { font-size: 20px; } .reveal .conf-mini-table th, .reveal .conf-mini-table td, .reveal .conf-table th, .reveal .conf-table td { border-bottom: 1px solid rgba(15, 23, 42, 0.12); padding: 11px 10px; text-align: right; color: var(--conf-muted); } .reveal .conf-mini-table th:first-child, .reveal .conf-mini-table td:first-child, .reveal .conf-table th:first-child, .reveal .conf-table td:first-child { text-align: left; } .reveal .conf-mini-table th, .reveal .conf-table th { color: var(--conf-ink); font-weight: 760; } .reveal .conf-accuracy-table { table-layout: fixed; overflow: hidden; border-collapse: separate; border-spacing: 0; background: rgba(255, 255, 255, 0.9); box-shadow: 0 18px 38px rgba(15, 23, 42, 0.09); } .reveal .conf-accuracy-table th, .reveal .conf-accuracy-table td { padding: 16px 20px; border-bottom: 1px solid rgba(15, 23, 42, 0.1); font-size: 21px; } .reveal .conf-accuracy-table th { background: linear-gradient(180deg, rgba(15, 23, 42, 0.055), rgba(15, 23, 42, 0.015)); font-size: 20px; } .reveal .conf-accuracy-table th:first-child, .reveal .conf-accuracy-table td:first-child { width: 42%; } .reveal .conf-accuracy-table td:first-child { color: var(--conf-ink); font-weight: 720; } .reveal .conf-accuracy-table th:not(:first-child), .reveal .conf-accuracy-table td:not(:first-child) { width: 29%; font-variant-numeric: tabular-nums; } .reveal .conf-accuracy-table tbody tr:nth-child(even) td:not(.conf-win) { background: rgba(15, 23, 42, 0.025); } .reveal .conf-accuracy-table tbody tr:last-child td { border-bottom: 0; } .reveal .conf-accuracy-table .conf-win { background: rgba(21, 128, 61, 0.13); color: var(--conf-green) !important; font-weight: 820; } .reveal .conf-win { color: var(--conf-green) !important; font-weight: 760; background: rgba(21, 128, 61, 0.08); } .reveal .conf-loss { color: var(--conf-rose) !important; } .reveal .conf-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px; } .reveal .conf-flow .conf-card { min-height: 148px; } .reveal .conf-flow h3 { font-size: 23px; } .reveal .conf-list { margin: 0; padding-left: 1.1em; } .reveal .conf-list li { margin: 0 0 12px; } .reveal .conf-footer-note { position: absolute; left: 70px; right: 70px; bottom: 28px; color: rgba(71, 85, 105, 0.78); font-size: 16px; } .reveal .conf-takeaway-header { display: flex; align-items: center; gap: 24px; margin: 0 0 34px; } .reveal .conf-takeaway-icon { display: block; width: 104px; height: 104px; max-width: none; max-height: none; object-fit: contain; border-radius: 0; box-shadow: none; margin: 0; } .reveal .conf-takeaway-title { color: var(--conf-ink); font-size: 62px; line-height: 0.98; margin: 0; } .reveal .conf-takeaway-subtitle { color: var(--conf-teal); font-size: 28px; font-weight: 760; line-height: 1.12; margin-top: 12px; } .reveal .conf-takeaway-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; } .reveal .conf-takeaway-card { position: relative; min-height: 250px; padding: 30px 30px 28px; overflow: hidden; border-top: 5px solid var(--conf-teal); background: linear-gradient(180deg, rgba(15, 118, 110, 0.08), rgba(255, 255, 255, 0.82) 42%), rgba(255, 255, 255, 0.84); box-shadow: 0 18px 42px rgba(15, 23, 42, 0.09); } .reveal .conf-takeaway-card:nth-child(2) { border-top-color: var(--conf-blue); background: linear-gradient(180deg, rgba(37, 99, 235, 0.08), rgba(255, 255, 255, 0.82) 42%), rgba(255, 255, 255, 0.84); } .reveal .conf-takeaway-card:nth-child(3) { border-top-color: var(--conf-amber); background: linear-gradient(180deg, rgba(180, 83, 9, 0.08), rgba(255, 255, 255, 0.82) 42%), rgba(255, 255, 255, 0.84); } .reveal .conf-takeaway-num { display: inline-grid; place-items: center; width: 42px; height: 42px; margin-bottom: 20px; border-radius: 50%; background: var(--conf-teal-soft); color: var(--conf-teal); font-size: 22px; font-weight: 820; } .reveal .conf-takeaway-card:nth-child(2) .conf-takeaway-num { background: var(--conf-blue-soft); color: var(--conf-blue); } .reveal .conf-takeaway-card:nth-child(3) .conf-takeaway-num { background: var(--conf-amber-soft); color: var(--conf-amber); } .reveal .conf-takeaway-card h3 { font-size: 30px; line-height: 1.08; min-height: 42px; margin-bottom: 16px; } .reveal .conf-takeaway-card p { font-size: 25px; line-height: 1.34; min-height: 128px; } .reveal .conf-closing-layout { display: grid; grid-template-rows: auto auto; align-content: start; gap: 52px; align-items: stretch; height: auto; } .reveal .conf-closing-main { display: grid; justify-items: center; align-content: start; text-align: center; padding-top: 8px; } .reveal .conf-closing-title { font-size: 72px; line-height: 1.03; margin: 0 0 18px; } .reveal .conf-closing-main .conf-subtitle { max-width: none; margin-top: 0; } .reveal .conf-qr-grid { display: grid; grid-template-columns: repeat(4, 260px); justify-content: center; gap: 24px; width: min(1120px, 100%); margin: 32px auto 0; } .reveal .conf-qr-item { border: 1px solid rgba(15, 23, 42, 0.13); border-radius: 8px; background: rgba(255, 255, 255, 0.82); padding: 18px; text-align: center; box-shadow: 0 12px 28px rgba(15, 23, 42, 0.055); } .reveal .conf-qr-item img { display: block; width: 210px; height: 210px; max-width: none; max-height: none; object-fit: contain; margin: 0 auto 12px; border-radius: 0; box-shadow: none; } .reveal .conf-qr-item strong { display: block; color: var(--conf-ink); font-size: 20px; line-height: 1.1; } .reveal .conf-contact-line { max-width: 1220px; margin: 18px auto 0; color: var(--conf-muted); font-size: 20px; line-height: 1.25; } .reveal .conf-contact-email { color: var(--conf-blue); font-weight: 780; white-space: nowrap; } .reveal .conf-ack-stack { display: grid; grid-template-columns: 450px 760px; justify-content: center; align-items: center; gap: 34px; width: 100%; margin: 0 auto; padding: 0; } .reveal .conf-ack-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 22px; align-items: center; border: 0; border-radius: 0; background: transparent; padding: 0; box-shadow: none; } .reveal .conf-ack-cwru { grid-template-columns: 290px minmax(0, 1fr); } .reveal .conf-ack-item img { display: block; width: auto; max-width: none; max-height: none; object-fit: contain; border-radius: 0; box-shadow: none; margin: 0; } .reveal .conf-ack-nsf img { width: 84px; height: 84px; } .reveal .conf-ack-cwru img { width: 270px; height: auto; } .reveal .conf-ack-item h3 { font-size: 26px; line-height: 1.08; margin: 0 0 8px; white-space: nowrap; } .reveal .conf-ack-item p { font-size: 22px; line-height: 1.18; margin: 0; white-space: nowrap; } .reveal .slides section.conf-slide .conf-acl-logo { width: 300px; max-width: none; height: auto; margin: 0 0 48px; border-radius: 0; box-shadow: none; } .reveal .slides section.conf-slide .conf-logo-row img { width: auto; max-width: none; height: 64px; max-height: none; border-radius: 0; box-shadow: none; margin: 0; } .reveal .slides section.conf-slide .conf-logo-badge.nsf img { width: 76px; height: 76px; } .reveal .slides section.conf-slide .conf-qr-item img { width: 210px; height: 210px; max-width: none; max-height: none; border-radius: 0; box-shadow: none; margin: 0 auto 12px; } .reveal .slides section.conf-slide .conf-title-qr img { width: 238px; height: 238px; max-width: none; max-height: none; border-radius: 0; box-shadow: none; margin: 0 auto 13px; } .reveal .slides section.conf-slide .conf-ack-item img { max-width: none; max-height: none; border-radius: 0; box-shadow: none; margin: 0; } .reveal .slides section.conf-slide .conf-ack-nsf img { width: 84px; height: 84px; } .reveal .slides section.conf-slide .conf-ack-cwru img { width: 270px; height: auto; } </style> <!-- .slide: class="conf-slide conf-title" data-background-color="#F8FAFC" --> <div class="conf-title-grid"> <div class="conf-title-main"> <img class="conf-acl-logo" src="/assets/slides/2026-07-05-more-for-keys-less-for-values/ACL.webp" alt="ACL 2026" /> <h1>Quantize What Counts: More for Keys, Less for Values</h1> <div class="conf-subtitle">A geometry-driven rule for mixed-precision KV-cache quantization.</div> <div class="conf-event-line">Grand Hall | July 5, 2026 | 4:00-5:30 PM</div> <div class="conf-meta"> <strong>Mohsen Hariri</strong>, Alan Luo, Weicong Chen, Tianyi Zhang, Qifan Wang, Xiaotian Han, Vipin Chaudhary </div> <div class="conf-logo-row"> <span class="conf-logo-badge"><img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/cwru.svg" alt="Case Western Reserve University" /></span> <span class="conf-logo-badge"><img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/rice.svg" alt="Rice University" /></span> <span class="conf-logo-badge nsf"><img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/nsf.svg" alt="National Science Foundation" /></span> </div> </div> <aside class="conf-title-qr conf-panel" aria-label="Interactive slides QR code"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/slide_qr.webp" alt="QR code for the interactive slides" /> <strong>Scan for interactive slides</strong> </aside> </div> Note: The main message is simple: keys and values should not automatically receive the same precision. We show that key projections and key caches carry larger norm and larger quantization error, so a fixed memory budget should protect keys first. The practical rule is K4V2 rather than K2V4 or always K4V4. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <h2>A bit-allocation problem: How to split bits between keys and values?</h2> <div class="conf-flow"> <div class="conf-card"> <div class="conf-num">01</div> <h3>The bottleneck</h3> <p>KV cache memory grows with context length during decoding.</p> </div> <div class="conf-card"> <div class="conf-num">02</div> <h3>The asymmetry</h3> <p>Key weights and key caches have larger norms than value counterparts.</p> </div> <div class="conf-card"> <div class="conf-num">03</div> <h3>The theorem</h3> <p>Quantization error scales with norms, so keys deserve more bits.</p> </div> <div class="conf-card"> <div class="conf-num">04</div> <h3>The rule</h3> <p>Use key-favored precision, then tune rotation and group size around keys.</p> </div> </div> <div class="conf-callout teal" style="margin-top: 30px;"> ☝️🔑👇🔢 is a lightweight, model-geometry diagnostic that tells existing quantizers where to spend precision. </div> Note: I will first set up the deployment pain point. Then I will show why keys and values are geometrically different. The core derivation is that larger norms produce larger reconstruction error at equal bit width. Finally I will show the empirical and practical consequences. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <h2>KV cache dominates long-context inference memory</h2> <div class="conf-memory-layout"> <div> <div class="conf-equation"> \[ M_{\mathrm{KV}} = L\,n_{\mathrm{layers}}\,n_{\mathrm{KV}}\,d_{\mathrm{head}}\, \frac{b_K + b_V}{8} \] </div> <div class="conf-big-question conf-panel"> If the budget is fixed, should a bit go to \(K\) or to \(V\)? </div> </div> <div class="conf-memory-context"> <div class="conf-card"> <h3>Common default</h3> <p>Use the same precision for key and value caches: \(K_4V_4\), \(K_2V_2\), and so on.</p> </div> <div class="conf-card"> <h3>Existing mixed precision</h3> <p>Often tunes bit splits through grid search or runtime cache statistics.</p> </div> </div> <div class="conf-card conf-need-box"> <h3>Need</h3> <p>A principled rule that generalizes across models, prompts, and quantization backends.</p> </div> </div> Note: In decoding, the KV cache grows with the number of generated and retained tokens. Quantization reduces the total bit budget, but it still leaves an allocation question. Equal precision is convenient, but the paper argues it is not the right default. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <h2>The extra bits should go to keys</h2> <div class="conf-split"> <figure class="conf-figure conf-fig-short"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/fig1_key_value_statistics.webp" alt="Spectral norm plot and GSM8K K2V4 versus K4V2 accuracy table" /> <figcaption>Key cache spectral norms are larger, and \(K_4V_2\) beats \(K_2V_4\) at the same average bit budget.</figcaption> </figure> <div> <table class="conf-mini-table conf-accuracy-table conf-panel" aria-label="GSM8K accuracy for K2V4 and K4V2"> <thead> <tr> <th>Model size</th> <th>\(K_2V_4\)</th> <th>\(K_4V_2\)</th> </tr> </thead> <tbody> <tr><td>1B</td><td>0.06</td><td class="conf-win">0.34</td></tr> <tr><td>8B</td><td>0.55</td><td class="conf-win">0.75</td></tr> <tr><td>14B</td><td>0.78</td><td class="conf-win">0.91</td></tr> <tr><td>70B</td><td>0.76</td><td class="conf-win">0.87</td></tr> </tbody> </table> <div class="conf-metric"> <div class="conf-card"><p><strong>Same budget</strong><span>\(K_2V_4\) and \(K_4V_2\) both average \(3\) bits per cache tensor.</span></p></div> <div class="conf-card"><p><strong>Different accuracy</strong><span>The key-favored split is consistently better.</span></p></div> <div class="conf-card"><p><strong>Core question</strong><span>What property of attention makes this happen?</span></p></div> </div> </div> </div> Note: The first figure is the talk in miniature. The two mixed-precision schemes use the same average bit budget. Swapping where the bits go changes accuracy substantially, which suggests the asymmetry is structural rather than an implementation artifact. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <h2>Move the decision from heuristic tuning to model geometry</h2> <div class="conf-grid three"> <div class="conf-card"> <h3>Fixed precision</h3> <p>Simple and stable, but treats keys and values as statistically interchangeable.</p> <div class="conf-chip-row"><span class="conf-chip">KIVI-style default</span><span class="conf-chip">FlexGen-style default</span></div> </div> <div class="conf-card"> <h3>Runtime heuristics</h3> <p>Can adapt to activations, but often requires prompt-dependent statistics or grid search.</p> <div class="conf-chip-row"><span class="conf-chip amber">activation ranges</span><span class="conf-chip amber">outlier rules</span></div> </div> <div class="conf-card"> <h3>Our approach</h3> <p>Inspect key and value projection geometry once, then allocate bits accordingly.</p> <div class="conf-chip-row"><span class="conf-chip teal">one-off diagnostic</span><span class="conf-chip teal">backend agnostic</span></div> </div> </div> <div class="conf-callout" style="margin-top: 32px;"> Weight norms are input-invariant. They give a cheap, general signal for which cache path is more fragile under quantization. </div> Note: The paper is intentionally modular. It does not require a new decoding kernel or a new quantizer. The idea is to supply a principled allocation rule that existing KV-cache quantization systems can use. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Theorem 1</div> <h2>Key weights dominate value weights in norm</h2> <div class="conf-grid two"> <div class="conf-card"> <h3>Key-Value Norm Disparity</h3> <div class="conf-equation"> \[ \mathbb{E}\left[\lVert W^K\rVert_F\right] > \mathbb{E}\left[\lVert W^V\rVert_F\right] \] </div> </div> <div class="conf-card"> <h3>Why the key path grows</h3> <ul class="conf-list"> <li>\(W^K\) shapes the attention map through \(QK^\top\).</li> <li>Query growth sharpens attention and amplifies gradients into \(W^K\).</li> <li>\(W^V\) mainly affects post-attention retrieved content.</li> </ul> </div> </div> <div class="conf-callout teal" style="margin-top: 28px;"> The proof starts from equal expected norms at Xavier initialization and tracks SGD updates. The architectural asymmetry gives keys systematically larger norm growth. </div> Note: The theorem is about projection weights, not a particular prompt. At initialization the expected norms are the same. During training, the key matrix receives gradients through the attention scores, while the value matrix is downstream of the attention weights. That gives the key path more norm growth. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Observation on Theorem 1</div> <h2>The weight-norm gap appears across Llama layers</h2> <div class="conf-split reverse"> <div> <div class="conf-card"> <h3>Empirical pattern</h3> <p>\(\lVert W^K\rVert_F\) exceeds \(\lVert W^V\rVert_F\) across nearly all Llama 3 layers and scales.</p> </div> <div class="conf-card" style="margin-top: 16px;"> <h3>Generalization check</h3> <p>The appendix reports analogous Frobenius norm behavior for Mistral-family models.</p> </div> <div class="conf-card" style="margin-top: 16px;"> <h3>Interpretation</h3> <p>Keys are the addressing channel. Larger energy there means quantization noise is more consequential.</p> </div> </div> <figure class="conf-figure conf-fig-mid"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/fig2_Frobenius_Norm_all_models_1_to_end_L.webp" alt="Frobenius norms of key and value weights across Llama 3 model sizes" /> <figcaption>Frobenius norms of \(W^K\) and \(W^V\) across Llama 3 family models.</figcaption> </figure> </div> Note: This slide gives the empirical anchor for the first theorem. The exact magnitudes differ by model size and layer, but the direction is stable. The exception noted in the paper is early layers in the 70B variant, but the overall trend remains key larger than value. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <h2>The gap persists in key and value caches</h2> <figure class="conf-figure conf-fig-wide"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/Llama3.3-70B-it_5_to_end_L.webp" alt="Singular value spectra of key and value caches for Llama 3.3 70B" /> <figcaption>Llama 3.3-70B on C4. key caches have larger singular values beyond the top mode across sampled layers.</figcaption> </figure> <div class="conf-grid three" style="margin-top: 18px;"> <div class="conf-card"><h3>Same input</h3><p>\(K = XW^K\) and \(V = XW^V\).</p></div> <div class="conf-card"><h3>Higher spectrum</h3><p>Keys retain larger magnitudes across much of the singular spectrum.</p></div> <div class="conf-card"><h3>Quantization implication</h3><p>Equal bit-widths leave the dominant distortion in \(K\).</p></div> </div> Note: The weight result matters because the same hidden states produce both key and value caches. If the key projection has larger norm, the resulting key cache tends to have larger energy as well. The singular spectra make that cache-level claim visible. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Theorem 2</div> <h2>Norm-scaled error gives a key-prioritized allocation rule</h2> <div class="conf-grid two"> <div class="conf-card"> <h3>Uniform scalar quantization</h3> <div class="conf-equation"> \[ \mathbb{E}\lVert M-\widetilde{M}\rVert_F^2 = \Theta\left(\lVert M\rVert_F^2 2^{-2b}\right) \] </div> </div> <div class="conf-card"> <h3>Key-Prioritized Quantization</h3> <div class="conf-equation"> \[ \begin{aligned} \mathbb{E}\lVert K\rVert_F^2 &> \mathbb{E}\lVert V\rVert_F^2 \\ &\Rightarrow \operatorname{Acc}(b_K,b_V) > \operatorname{Acc}(b_V,b_K) \end{aligned} \] </div> </div> </div> <div class="conf-callout amber" style="margin-top: 30px;"> If two cache tensors have the same shape but different energy, equal bits do not equalize error. To balance distortion, the larger-norm tensor needs more bits. </div> Note: The derivation uses standard quantization error bounds. The squared Frobenius norm is total signal energy. Because the error decays exponentially with bit width but scales with signal energy, the larger-norm key cache should receive more precision. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <!-- <div class="conf-kicker">Quantization error</div> --> <h2>At matched precision, keys have larger reconstruction MSE</h2> <div class="conf-split"> <figure class="conf-figure conf-fig-mid"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/fig8_error_larger.webp" alt="MSE quantization error curves for key and value caches from 2 to 8 bits" /> <figcaption>Llama 3.3-70B on C4. MSE is measured against the BF16 cache after dequantization.</figcaption> </figure> <div class="conf-error-stack"> <div class="conf-card"> <h3>Matched bits isolate sensitivity</h3> <p>The experiment quantizes both \(K\) and \(V\) to the same bit-width and compares reconstruction MSE.</p> </div> <div class="conf-card"> <h3>Stable direction</h3> <p>Across C4, MMLU, GSM8K, and multiple model families, \(K\) incurs larger error than \(V\).</p> </div> <div class="conf-card"> <h3>Design consequence</h3> <p>Spend precision where equal precision still leaves the largest residual: keys.</p> </div> </div> </div> Note: This is the direct empirical counterpart of the theorem. The paper measures reconstruction MSE after quantizing and dequantizing the cache. Key error remains larger over the bit range, so adding precision to keys attacks the main distortion term. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Experimental design</div> <h2>The rule is tested across models, tasks, and backends</h2> <div class="conf-grid three"> <div class="conf-card"> <h3>Quantization error</h3> <p>PyTorch weight-packing quantization, no residual buffer or grouping, 10 random sequences per dataset, up to 1,000 generated tokens.</p> <div class="conf-chip-row"><span class="conf-chip blue">C4</span><span class="conf-chip blue">MMLU</span><span class="conf-chip blue">GSM8K</span></div> </div> <div class="conf-card"> <h3>Downstream accuracy</h3> <p>Optimum Quanto and HQQ with practical decoding settings: 64-token residual buffer and 128-element activation grouping.</p> <div class="conf-chip-row"><span class="conf-chip teal">GSM8K</span><span class="conf-chip teal">CoQA</span><span class="conf-chip teal">EQ-Bench</span></div> </div> <div class="conf-card"> <h3>Integration study</h3> <p>QuaRot-style outlier redistribution across bit allocation, rotation scope, and key/value group sizes.</p> <div class="conf-chip-row"><span class="conf-chip amber">CoQA</span><span class="conf-chip amber">GSM8K</span><span class="conf-chip amber">LongBench</span></div> </div> </div> <div class="conf-callout" style="margin-top: 30px;"> Models span Llama, Phi, Mistral, Qwen, DeepSeek, and Nemotron variants, including scales from sub-billion to 70B-class models. </div> Note: The experiments are designed to avoid a one-model or one-backend story. The paper checks raw reconstruction error, downstream accuracy, and compatibility with an orthogonal outlier redistribution method. That matters because an allocation rule is only useful if it works with existing systems. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Downstream accuracy: Optimum Quanto</div> <h2>\(K_4V_2\) nearly matches \(K_4V_4\) while \(K_2V_4\) falls behind</h2> <div class="conf-split reverse conf-quanto-layout"> <div> <table class="conf-table conf-panel" aria-label="GSM8K 1-shot Optimum Quanto results"> <thead> <tr> <th>GSM8K 1-shot</th> <th>\(K_2V_4\)</th> <th>\(K_4V_2\)</th> <th>\(K_4V_4\)</th> </tr> </thead> <tbody> <tr><td>Llama 3.2-1B</td><td>0.035</td><td class="conf-win">0.338</td><td>0.357</td></tr> <tr><td>Llama 3.1-8B</td><td>0.547</td><td class="conf-win">0.752</td><td>0.754</td></tr> <tr><td>Phi-4-14B</td><td>0.783</td><td class="conf-win">0.913</td><td>0.923</td></tr> <tr><td>DeepSeek R1Q-14B</td><td>0.775</td><td class="conf-win">0.865</td><td>0.867</td></tr> </tbody> </table> </div> <div> <div class="conf-metric conf-quanto-metrics"> <div class="conf-card"><p><strong>~94%</strong><span>average full-precision baseline recovery for K4V2 with Optimum Quanto.</span></p></div> <div class="conf-card"><p><strong>+30 pp</strong><span>1B GSM8K gain for K4V2 over K2V4.</span></p></div> <div class="conf-card"><p><strong>near K4V4</strong><span>Higher key precision preserves downstream performance while values use fewer bits.</span></p></div> </div> </div> </div> Note: This table focuses on 1-shot GSM8K from the Optimum Quanto backend. The practical pattern is that K4V2 is close to K4V4, while K2V4 can lose heavily. The conclusion is not that values are irrelevant. It is that, under a constrained split, keys are the binding constraint. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Downstream accuracy: HQQ</div> <h2>The key-first advantage persists beyond one backend</h2> <div class="conf-hqq-board"> <div class="conf-hqq-evidence"> <div class="conf-hqq-card teal"> <div class="conf-hqq-label">Setup</div> <h3>Question asked</h3> <p>For \(i \in \{1,2,4,6,8\}\), compare \(K_iV_x\) against \(K_xV_i\), where \(x\) averages over the other cache's bit-widths.</p> </div> <div class="conf-hqq-card blue"> <div class="conf-hqq-label">1-2 bits</div> <h3>Low precision</h3> <p>At 1-2 bits, the advantage is largest. On GSM8K, Qwen3-8B gains up to +48 pp when the extra bit goes to keys.</p> </div> <div class="conf-hqq-card amber"> <div class="conf-hqq-label">4-6 bits</div> <h3>Moderate precision</h3> <p>At 4-6 bits, key-centric allocation still gives 7-12 pp improvements for 8B-14B-class settings.</p> </div> </div> <div class="conf-hqq-metrics"> <div class="conf-hqq-metric teal"><p><strong>98.3%</strong><span>average \(K_4V_4\) accuracy retained by \(K_4V_2\).</span></p></div> <div class="conf-hqq-metric blue"><p><strong>99.2%</strong><span>CoQA retention.</span></p></div> <div class="conf-hqq-metric amber"><p><strong>97.7%</strong><span>GSM8K retention.</span></p></div> </div> <div class="conf-hqq-takeaway"> <strong>Consistent answer</strong> <span>Across model scales from 0.6B to 32B and tasks GSM8K, CoQA, and EQ-Parseable, the answer to "where should this bit go?" is consistently: <span class="conf-hqq-keyword">keys.</span></span> </div> </div> Note: HQQ gives a broader bit-width sweep. The comparison averages the other cache over bit widths, so it asks the allocation question directly. The headline is the 98.3 percent average retention of K4V4 by K4V2. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Orthogonal integration</div> <h2>Rotation helps most when it targets keys</h2> <div class="conf-split"> <figure class="conf-figure conf-fig-tall"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/rotation_impact_heatmap.webp" alt="Heatmaps showing rotation effects with different mixed precision KV cache configurations" /> <figcaption>Downstream accuracy under four rotation scopes and four bit allocations, fixed group size 64.</figcaption> </figure> <div> <div class="conf-card"> <h3>Rotation redistributes outliers</h3> <p>QuaRot-style Hadamard rotations make activation distributions easier to quantize.</p> </div> <div class="conf-card" style="margin-top: 16px;"> <h3>Key-only is the main gain</h3> <p>Applying rotation to keys consistently improves low-bit settings more than rotating values.</p> </div> <div class="conf-card" style="margin-top: 16px;"> <h3>Synergy</h3> <p>\(K_4V_2\) plus key-only rotation closely tracks the \(K_4V_4\) baseline and can outperform it by 4.4-18% across tasks.</p> </div> </div> </div> Note: The allocation rule is orthogonal to outlier handling. Rotation attacks distribution shape, while bit allocation decides where precision is spent. The paper finds that key-only rotation captures most of the benefit, again pointing to keys as the high-sensitivity channel. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <h2>Use finer groups for keys, coarser groups for values</h2> <div class="conf-split reverse"> <div> <div class="conf-card"> <h3>Group size controls scale granularity</h3> <p>Smaller groups give finer quantization scales, but add metadata and overhead.</p> </div> <div class="conf-card" style="margin-top: 16px;"> <h3>Observed rule</h3> <p>Under \(K_4V_2\), \(gs_K=32\) performs best overall, while \(gs_V=64\) or \(128\) usually preserves accuracy.</p> </div> <div class="conf-card" style="margin-top: 16px;"> <h3>Interpretation</h3> <p>Key caches need both more bits and finer scaling because their quantization distortion dominates.</p> </div> </div> <figure class="conf-figure conf-fig-mid"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/group_size_comparison_bars.webp" alt="Bar charts comparing downstream accuracy for key and value group sizes" /> <figcaption>Group-size sweep for \(K_4V_2\) across CoQA, GSM8K, EQ-Bench, and LongBench.</figcaption> </figure> </div> Note: This slide turns the theory into a systems guideline. If smaller groups are expensive, spend that granularity on keys first. Values can often tolerate coarser groups because they are less sensitive to distortion. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-kicker">Deployment rule</div> <h2>A compact playbook for KV-cache compression</h2> <div class="conf-grid four"> <div class="conf-card"> <div class="conf-num">1</div> <h3>Measure once</h3> <p>Inspect \(W^K\) and \(W^V\) norms as a model-level diagnostic.</p> </div> <div class="conf-card"> <div class="conf-num">2</div> <h3>Allocate first</h3> <p>Use \(b_K > b_V\) under a fixed memory budget.</p> </div> <div class="conf-card"> <div class="conf-num">3</div> <h3>Fix outliers</h3> <p>Apply rotation primarily to keys when using rotation-based methods.</p> </div> <div class="conf-card"> <div class="conf-num">4</div> <h3>Tune groups</h3> <p>Prefer finer key groups and coarser value groups when overhead matters.</p> </div> </div> <div class="conf-callout teal" style="margin-top: 32px;"> Recommended default: start with \(K_4V_2\), key-only rotation if outliers dominate, \(gs_K=32\), and \(gs_V \in \{64,128\}\). </div> <div class="conf-footer-note">The exact setting still depends on latency, kernel support, and acceptable task-level accuracy loss.</div> Note: This is the action slide. The default is not the end of tuning, but it is a principled starting point. It also separates independent knobs: bits, rotation, and group size. --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" <div class="conf-kicker">Scope and limitations</div> <h2>What the result does and does not claim</h2> <div class="conf-grid two"> <div class="conf-card"> <h3>What it claims</h3> <ul class="conf-list"> <li>Key projection and cache geometry are systematically higher-energy.</li> <li>Higher key precision lowers the dominant reconstruction error under fixed budget.</li> <li>The rule generalizes across evaluated families, tasks, and two backends.</li> </ul> </div> <div class="conf-card"> <h3>What remains open</h3> <ul class="conf-list"> <li>Experiments use maximum context length 2,000 tokens.</li> <li>Very long-context behavior may introduce new sensitivity and memory-management effects.</li> <li>Safety-critical deployments still need task-specific validation after compression.</li> </ul> </div> </div> <div class="conf-callout rose" style="margin-top: 30px;"> Do not hide accuracy trade-offs behind compression wins. The rule reduces avoidable distortion, but it does not remove the need for downstream evaluation. </div> Note: The paper is careful about scope. It establishes a strong allocation principle within the evaluated setting, but very long context windows remain future work. Compression should still be validated in the deployment domain. --- --> <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-takeaway-header"> <img class="conf-takeaway-icon" src="/assets/slides/2026-07-05-more-for-keys-less-for-values/takeaway.webp" alt="" aria-hidden="true" /> <div> <h2 class="conf-takeaway-title">Takeaways</h2> <div class="conf-takeaway-subtitle">More for keys, less for values</div> </div> </div> <div class="conf-takeaway-grid"> <div class="conf-card conf-takeaway-card"> <div class="conf-takeaway-num">1</div> <h3>Keys are not values</h3> <p>Key projections and key caches carry larger norm and larger singular spectra.</p> </div> <div class="conf-card conf-takeaway-card"> <div class="conf-takeaway-num">2</div> <h3>Equal bits are inefficient</h3> <p>At matched precision, keys incur larger reconstruction MSE; \(K_4V_2\) beats \(K_2V_4\).</p> </div> <div class="conf-card conf-takeaway-card"> <div class="conf-takeaway-num">3</div> <h3>The rule is modular</h3> <p>Key-prioritized allocation composes with HQQ, Optimum Quanto, rotation, and group-size tuning.</p> </div> </div> --- <!-- .slide: class="conf-slide" data-background-color="#F8FAFC" --> <div class="conf-closing-layout"> <div class="conf-closing-main"> <h1 class="conf-closing-title">Thank you! Question?</h1> <div class="conf-subtitle">Quantize What Counts: More for Keys, Less for Values</div> <div class="conf-qr-grid" aria-label="Project links"> <div class="conf-qr-item"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/qr_poster.svg" alt="QR code for the interactive poster" /> <strong>Poster</strong> </div> <div class="conf-qr-item"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/qr_github.svg" alt="QR code for the GitHub repository" /> <strong>GitHub</strong> </div> <div class="conf-qr-item"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/qr_arxiv.svg" alt="QR code for the arXiv paper" /> <strong>arXiv</strong> </div> <div class="conf-qr-item"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/qr_pypi.svg" alt="QR code for the PyPI package" /> <strong>PyPI</strong> </div> </div> <div class="conf-contact-line">Please feel free to contact <span class="conf-contact-email">mohsen.hariri@case.edu</span> with any questions or feedback, especially if you'd like to collaborate</div> </div> <div class="conf-ack-stack" aria-label="Acknowledgments"> <div class="conf-ack-item conf-ack-nsf"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/nsf.svg" alt="National Science Foundation" /> <div> <h3>NSF Awards</h3> <p>2117439, 2112606, 2320952</p> </div> </div> <div class="conf-ack-item conf-ack-cwru"> <img src="/assets/slides/2026-07-05-more-for-keys-less-for-values/cwru_hpc_logo.webp" alt="Case Western Reserve University" /> <div> <h3>High Performance Computing (HPC)</h3> <p>Center at CWRU</p> </div> </div> </div> </div> Note: Close with links to the poster, code, paper, and package. Acknowledge NSF support and the High Performance Computing Center at CWRU.