Juntos, AI Open-Sources OSCAR: un sistema de cuantificación de caché KV de 2 bits consciente de la atención para servicios de LLM de contexto prolongado

La inferencia de contexto largo hace que la caché KV sea uno de los principales costos de prestar servicios a los LLM. Durante la decodificación autorregresiva, la caché crece con la longitud del contexto, el tamaño del lote y la profundidad del modelo. En lotes de gran tamaño y contextos prolongados con tokens de 100 000 en docenas de solicitudes simultáneas, la caché KV consume una gran fracción de la memoria de la GPU. Comprimirlo es una forma directa de aumentar el tamaño del lote y reducir el tráfico de memoria.

El enfoque obvio es la cuantización. Pero llevar las cachés KV a una precisión INT2 (2 bits) ha resultado en gran medida poco práctico. Los métodos anteriores pierden precisión o requieren diseños de servicio personalizados incompatibles con los sistemas de caché KV paginados. En conjunto, OSCAR (rotación consciente de la covarianza espectral fuera de línea) de AI aborda ambos problemas.

Por qué la cuantificación de caché INT2 KV es difícil

Las activaciones de KV contienen valores atípicos en cuanto a canales. Un pequeño subconjunto de canales tiene valores extremadamente grandes. La mayoría de los canales se portan bien. Cuando aplica la cuantificación INT2, que tiene solo cuatro niveles representables y esos valores atípicos dominan el factor de escala. El cuantificador desperdicia la mayor parte de su alcance en picos raros. Los valores normales se comprimen en sólo uno o dos niveles efectivos. Esto degrada sustancialmente la calidad de la atención.

La cuantización basada en rotación soluciona este problema aplicando una transformación ortogonal fija, normalmente una transformada de Hadamard, para redistribuir la energía atípica en todos los canales. Este enfoque funciona razonablemente bien en INT4. En INT2, persiste un problema más profundo: la rotación no tiene en cuenta los datos. Puede suavizar los rangos de activación, pero no sabe qué direcciones lee realmente el mecanismo de atención. Distribuir el error de cuantificación de manera uniforme no es lo mismo que empujarlo hacia direcciones de baja importancia. En INT2, con sólo cuatro niveles, esa distinción determina si el modelo funciona.

https://arxiv.org/pdf/2605.17757v1

Lo que OSCAR hace diferente

La observación clave de OSCAR es que la rotación aplicada antes de la cuantificación debe derivarse de las estadísticas de atención en sí mismas, no de la distribución bruta de las activaciones de KV.

Para las claves, el error descendente que importa no es el error de reconstrucción euclidiana de K. Es el error en los logits de atención. El equipo de investigación demostró que este error es: ‖QK⊤ − QK̂⊤‖²F = tr((K − K̂)Q⊤Q(K − K̂)⊤). La matriz de ponderación es la covarianza de la consulta Q⊤Q, no K⊤K. Las direcciones donde las consultas tienen gran energía amplifican los errores de cuantificación en logits. OSCAR estima la covarianza de la consulta empírica CQ = (1/N) Σ qn⊤qn a partir de un conjunto de calibración, la descompone automáticamente y utiliza los vectores propios UQ como base de rotación de claves.

Para los valores, el error relevante está en la salida de atención SV. Esto depende de cómo la matriz S de puntuación de atención pondera cada fila de valores. El equipo de investigación define la covarianza del valor ponderado por puntuación CS = (1/N) V⊤S⊤SV. Las direcciones que permanecen grandes después de la agregación por S son por las que se propaga el error de cuantificación. OSCAR utiliza los vectores propios US de CS como base de rotación de valores.

Las rotaciones compuestas finales son:

RK = UQ · HHad · Pbr
RV = EE.UU. · HHad · Pbr

Cada uno de los tres factores aborda un modo de falla distinto de la cuantificación de bits bajos por grupo:

UQ/US alinea los canales con direcciones de atención-importancia. Esto diagonaliza la matriz de ponderación de errores para que las direcciones más importantes sean identificables. HHad (transformada de Walsh-Hadamard) iguala exactamente la importancia del canal. El lema 1 del artículo de investigación demuestra que cada entrada diagonal de HHad⊤ Λ HHad es igual a tr(Λ)/d: el espectro propio máximo expuesto por UQ se comprime a un valor uniforme en todos los canales. Pbr (inversión de bits permutados) reordena los canales de modo que para cualquier tamaño de grupo de cuantificación de potencia de dos, cada grupo recibe un representante de cada nivel de la jerarquía de importancia.

El equipo de investigación proporciona el Teorema 1 que demuestra que UQ y US son óptimos bajo un objetivo sustituto de error congelado con supuestos residuales diagonales.

El sistema de servicio: diseño de caché de precisión mixta

OSCAR se integra en la pila de servicio de producción de SGLang como modo de caché INT2 KV con total compatibilidad con atención paginada.

El diseño de caché de KV utiliza tres regiones por solicitud:

Tokens de fregadero (primer S0 = 64 tokens): almacenados en BF16. Estos funcionan como sumideros de atención. Tokens recientes (último W = 256 tokens antes de la posición actual): almacenados en BF16. Tokens de historial (todo lo demás): almacenados como INT2 después de la rotación y el recorte de OSCAR.

Con una longitud de contexto de 128K, el sumidero BF16 y las ventanas recientes representan solo el 0,24% del total de tokens. La ablación (Tabla 5 en el artículo de investigación) muestra que (S=64, R=256) es la rodilla entre precisión y eficiencia: las ventanas más pequeñas perjudican notablemente la precisión; Las ventanas más grandes brindan un beneficio adicional insignificante a un mayor costo de memoria BF16.

https://arxiv.org/pdf/2605.17757

Las rutas de escritura y lectura utilizan núcleos Triton fusionados. En la ruta de escritura, cada token se gira, se recorta a un umbral percentil derivado de la calibración (valores típicos: cK = 0,96, cV = 0,92) y luego se cuantifica con INT2 asimétrico por token en un tamaño de grupo predeterminado de GK = 64 canales por grupo. En la ruta de lectura, el kernel INT2 descomprime bytes, descuantifica, realiza rotaciones inversas y pasa los resultados al kernel de atención, todo en una sola pasada sin tráfico de memoria adicional. La rotación de valor RV se absorbe en los pesos de proyección del modelo fuera de línea, lo que elimina su costo de cómputo en línea.

Resultado

El equipo de investigación evaluó OSCAR en cuatro configuraciones de modelos: Qwen3-4B-Thinking-2507, Qwen3-8B, Qwen3-32B y GLM-4.7-FP8 (parámetros 358B). Los puntos de referencia incluyen AIME25, GPQA-Diamond, HumanEval, LiveCodeBench v6 y MATH500, todos con una longitud de generación máxima de 32K.

Precisión (a 2,28 bits por elemento KV):

ModeloBF16 MeanOSCAR MeanGap a BF16Qwen3-4B-Thinking-250775.6471.86−3.78Qwen3-8B70.8469.42−1.42Qwen3-32B74.1974.17−0.02GLM-4.7-FP8 (358B)77.8978.16+0.27

Para contextualizar cómo se comparan los métodos en competencia: INT2 ingenuo (sin rotación) obtiene una puntuación de 0,00 tanto en Qwen3-4B como en Qwen3-8B. QuaRot-INT2 (rotación exclusiva de Hadamard) obtiene una puntuación de 1,40 en Qwen3-4B y 10,14 en Qwen3-8B. TurboQuant a 3,25 bits cae 43,90 puntos en Qwen3-4B-Thinking. Saw-INT4 a 4,25 bits alcanza 73,11 en Qwen3-4B — OSCAR a 2,28 bits alcanza 71,86.

https://arxiv.org/pdf/2605.17757

El equipo de investigación también comparó los métodos por canales en AIME25 (Tabla 1). En Qwen3-8B, OSCAR con 2,38 BPE alcanza 66,67±3,33, por encima de KIVI-KV2* con 57,67 (2,26 BPE) y Kitty con 59,67 (2,39 BPE). Tenga en cuenta que los métodos por canal requieren búferes residuales o diseños de página personalizados que no se ajustan al servicio de atención de paginación estándar, por lo que esta comparación se limita al único punto de referencia compartido donde los resultados estaban disponibles.

Robustez de contexto largo (RULER-NIAH):

ModeloMétodo16K32K64K128KQwen3-4B-ThinkingBF1699.799.385.381.0Qwen3-4B-ThinkingQuaRot-INT20.00.015.60.0Qwen3-4B-Thi nkingOSCAR97.887.661.939.5Qwen3-8BBF1698.997.379.278.2Qwen3-8BQuaRot-INT219.09.80.00.0Qwen3-8BOSCAR93.986.361.945.0

En GLM-4.7-FP8, OSCAR iguala la curva BF16 hasta 128K.

Rendimiento (H100, contexto de 100 K, tamaño de lote 1):

Aceleración del rendimiento de decodificación en relación con BF16, en longitudes de contexto cada vez mayores:

Modelo30K60K100KQwen3-4B-Thinking1.98×2.52×3.08×Qwen3-8B1.84×2.29×2.88×GLM-4.7-FP81.98×2.49×2.83×

Con un tamaño de lote 32, el rendimiento a nivel de trabajo en un contexto de 100K alcanza 6,17 veces más que BF16 en Qwen3-4B-Thinking y 7,83 veces más en GLM-4.7-FP8. La aceleración aumenta con la longitud del contexto porque la decodificación se limita cada vez más al ancho de banda KV. Reducir la memoria KV en 8 × reduce directamente ese cuello de botella. La sobrecarga de rotación en línea se absorbe en los núcleos de decodificación.

Explicador visual de Marktechpost

OSCAR — Guía práctica 01 / 08

01

Descripción general

¿Qué es Óscar?

OSCAR (Rotación consciente de la covarianza espectral fuera de línea) es un sistema de cuantificación de caché KV de 2 bits de Together AI para servicio LLM de contexto prolongado.

En lugar de aplicar una rotación genérica de Hadamard, OSCAR deriva rotaciones conscientes de la atención a partir de una única pasada de calibración fuera de línea, alineando el ruido de cuantificación con direcciones a las que la atención es menos sensible.

El resultado: precisión INT2 con una precisión cercana a BF16 y compatibilidad total con el servicio de caché KV paginado.

Reducción de memoria de 8× KV

Aceleración de decodificación 3×

2,28 bits por elemento KV

02

Configuración

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente en su lugar:

01 Hardware: Se recomienda GPU NVIDIA H100 (80 GB). A100 puede funcionar para modelos más pequeños. 02 SGLang instalado: OSCAR está integrado en el marco de servicio SGLang. Instale la última versión desde la fuente. 03 Triton: Los núcleos fusionados personalizados están escritos en Triton. Triton se envía con las instalaciones más recientes de PyTorch/SGLang. 04 Un modelo compatible: Qwen3-4B, Qwen3-8B, Qwen3-32B, GLM-4.7-FP8 o MiniMax-M2.7. Para todos ellos hay disponibles rotaciones precalculadas. pip install sglang[todos] –actualizar pip install triton

03

Paso 1

Descargue rotaciones precalculadas a través de RotationZoo

Together AI publica matrices de rotación precalculadas y umbrales de recorte para modelos compatibles en RotationZoo en ModelScope. No se necesita recalibración.

desde modelscope import snapshot_download # Descargue RotationZoo para su modelo rotation_path = snapshot_download( 'togethercomputer/OSCAR-RotationZoo' )

El artefacto descargado contiene matrices de rotación RK y RV por capa y umbrales de clip cK, cV para cada modelo compatible. Estos son parámetros fijos fuera de línea: no se actualizan en tiempo de ejecución.

Qwen3-4B/8B/32B 2,28 BPE

GLM-4.7-FP8 (358B) 2,28 BPE

MiniMax-M2.7 2,28 BPE

Personalizado (ejecutar calibración) cualquier modelo

04

Paso 2 (opcional)

Ejecute la calibración sin conexión para un modelo personalizado

Si su modelo no está en RotationZoo, ejecute el pase de calibración único. OSCAR descarta activaciones Q, K, V de un pequeño conjunto de datos, estima la covarianza consciente de la atención y escribe matrices de rotación y umbrales de recorte.

python calibrate_oscar.py –model-path /ruta/a/su-modelo –calib-data gpqa_diamond –calib-tokens 8192 –output-dir ./oscar_rotations/

La calibración no es específica de la tarea. El artículo muestra que los resultados tienen baja sensibilidad al dominio (MMLU, WikiText, GPQA-Diamond producen una precisión similar). Ejecútelo una vez y reutilícelo en todas las tareas.

Valores típicos producidos: cK ≈ 0,96, cV ≈ 0,92 por capa.

05

Paso 3

Inicie SGLang con la caché INT2 KV habilitada

Pase la ruta de rotación y habilite el modo INT2 KV al iniciar el servidor SGLang.

python -m sglang.launch_server –model-path Qwen/Qwen3-8B –kv-cache-dtype int2 –oscar-rotation-path ./oscar_rotations/ –oscar-sink-size 64 –oscar-recent-size 256 –tp 1 –port 30000

Se admite el paralelismo tensorial. Para Qwen3-32B utilice –tp 2 (2×H100). Para GLM-4.7-FP8 utilice –tp 8 (8×H100).

El servidor expone una API estándar compatible con OpenAI. No se necesitan cambios del lado del cliente.

06

Paso 4

Parámetros de configuración clave

Parámetro predeterminado Lo que controla –oscar-sink-size 64 Los primeros N tokens se mantienen en BF16 como receptores de atención –oscar-recent-size 256 Los últimos N tokens se mantienen en BF16 antes de la posición actual cK (relación de clip) 0,96 Clip percentil para activaciones de teclas rotadas cV (proporción de clip) 0,92 Clip percentil para activaciones de valores rotados Tamaño del grupo GK 64 canales por grupo de cuantificación INT2 (cabeza) tenue) El artículo identifica (sumidero = 64, reciente = 256) como la rodilla de precisión-eficiencia. Las ventanas más pequeñas reducen notablemente la precisión; Las ventanas más grandes añaden una sobrecarga de memoria BF16 con una ganancia insignificante.

07

Paso 5

Ejecutar inferencia y verificar

Una vez que el servidor se esté ejecutando, consúltelo con el cliente OpenAI estándar:

from openai import Cliente OpenAI = OpenAI( base_url="http://localhost:30000/v1", api_key="none" ) respuesta = client.chat.completions.create( model="Qwen/Qwen3-8B", mensajes=[{"role": "user", "content": "Su mensaje de contexto largo aquí"}], max_tokens=1024 ) print(response.choices[0].mensaje.contenido)

El almacenamiento en caché de prefijos funciona de forma inmediata. OSCAR conserva la abstracción de caché KV paginada estándar, por lo que la caché de base y la reutilización de prefijos de SGLang funcionan normalmente. No se necesitan cambios a nivel de aplicación.

08

Resultados

Precisión frente a la línea base BF16

Promediado en AIME25, GPQA-Diamond, HumanEval, LiveCodeBench v6 y MATH500 con una longitud de generación de 32K.

Qwen3-4B-Pensamiento −3,78

Documento: arXiv:2605.17757 RotationZoo: modelscope.cn/models/togethercomputer/OSCAR-RotationZoo

Conclusiones clave

OSCAR cuantifica los cachés LLM KV con una precisión de 2 bits mediante activaciones rotativas utilizando matrices de covarianza conscientes de la atención, no transformaciones genéricas de Hadamard. A 2,28 bits por elemento KV, OSCAR se mantiene dentro de los 3,78 puntos de precisión de BF16 en Qwen3-4B-Thinking, mientras que el ingenuo INT2 colapsa a cero. La memoria caché KV disminuye aproximadamente 8 veces, la velocidad de decodificación mejora hasta 3 veces en un contexto de 100 K y el rendimiento a nivel de trabajo alcanza hasta 7,83 veces en lotes de gran tamaño. Las matrices de rotación precalculadas para Qwen3-4B/8B/32B, GLM-4.7-FP8 y MiniMax-M2.7 están disponibles en RotationZoo, sin necesidad de recalibración. OSCAR se integra directamente en SGLang con compatibilidad con caché KV de paginación completa y caché de prefijo, sin requerir cambios en el cliente de inferencia.

Consulte el repositorio en GitHub, Modelscope y Research Paper. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 150.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

¿Necesita asociarse con nosotros para promocionar su repositorio de GitHub O su página principal de Hugging O su lanzamiento de producto O seminario web, etc.? Conéctate con nosotros