# 압축과 LLM에 공통되는 본질은 '데이터 예측'

> https://bookfactory.kr/c/news/10884
> 게시판: 뉴스
> 작성자: tachikoma43
> 작성일: 2026-09-06T03:41:41.632Z

---

「데이터의 압축」과 「거대언어모델(LLM)」은 언뜻 보기에는 전혀 다른 분야이지만, 근본적으로는 「데이터의 예측」이라는 같은 과제를 해결하고자 하고 있습니다.

둘 다 「데이터의 중복성을 절감」「보다 효율적인 표현」을 목표로 하는 것이며, 나아가 정보 이론의 엔트로피라는 수학적 틀로 연결되어 있습니다.

ngrok의 디벨로퍼 에듀케이터인 애니 섹스턴 씨는 「압축은 예측」이라는 제목의 블로그를 공개하여, 압축과 LLM에 공통되는 본질에 대해 이야기하고 있습니다.

Compression is prediction | ngrok bloghttps://ngrok.

com/blog/compression-is-prediction◆압축의 기본압축 알고리즘은 데이터에 포함된 「중복성」을 이용하여 파일 크기를 줄입니다.

・미니피케이션코드를 단축하는 수법으로서, 사람이 읽을 수 있는 변수명・주석・공백 등을 삭제 또는 단축하고, 기계가 해석하는 데 최소한으로 필요한 부분만을 남기는 수법입니다.

예를 들어 다음 코드에 대해 생각해 봅니다.

// Sum every number in the list
function sumNumbers(numbers) {
  let total = 0;
  for (const number of numbers) {
    total += number;
  }
  return total;
}미니피케이션 결과, 위 코드는 다음과 같이 됩니다.

function sumNumbers(n){let t=0;for(const r of n)t+=r;return t}다만 미니피케이션은 어디까지나 구문상의 불필요한 요소를 삭제하는 것이며, 중복성 데이터를 압축하는 「진정한 압축」과는 다른 것입니다.

・런 렝스 인코딩「AAAAAAAAAABBBBBCCDAAADDDDD」와 같은 반복 패턴을 압축하는 방법 중 하나입니다.

어떤 문자가 몇 개 연속되어 있는지를 데이터화하여 「A9B4C2D1A3D9」로 만듦으로써 보다 짧은 문자열로 인코딩할 수 있습니다.

8비트 ASCII 인코딩의 경우, 원래 문자열은 224비트 사용되었으나, 압축한 문자열은 96비트밖에 사용하지 않습니다.

・압축 알고리즘의 구조gzip이나 Brotli와 같은 압축 툴은 데이터를 더욱 압축하기 위해 다양한 수법을 사용하고 있습니다.

최신 압축 툴은 대략 3가지 구성 요소를 가지고 있습니다.

・변환・모델・엔트로피 코더상기 용어에 대해서는 편의상 명확하고 구별 가능한 것으로 다루지만, 실제로는 각각의 경계가 약간 모호해지기도 하며 단독으로 사용되는 경우는 거의 없습니다.

「변환」은 데이터를 압축하기 쉽게 만들기 위한 전처리이며, 예를 들어 런 렝스 인코딩도 수법 중 하나가 되지만, 변환으로 인해 반드시 데이터량이 축소되는 것은 아닙니다.

경우에 따라서는 변환으로 인해 중복성을 높이는 것도 가능하며, 중복성을 갖게 함으로써 후속 공정에서 보다 높은 압축률을 실현할 수 있는 경우가 있습니다.

「모델」은 각 심볼(문자・숫자・토큰・바이너리 코드 등)의 출현 빈도에 기반하여 데이터의 형상을 기술합니다.

실제 모델은 보다 고도화된 것이지만, 간단한 예시로 모델을 각 기호와 출현 확률과의 대응표로 생각해 봅니다.

'엔트로피 코더'는 거의 모든 압축 알고리즘에서 최종 단계에 위치하며, 최종적인 압축 결과인 '순수 비트스트림', 즉 파일 포맷과 같은 구조를 전혀 갖지 않는 단순한 비트스트림을 생성합니다.

보다 중요한 '모델'과 '엔트로피 코더' 두 가지에 주목하면, 우리의 데이터 모델은 데이터를 가능한 한 효율적으로 인코딩하기 위해 엔트로피 코더에 일련의 확률을 전달하고, 엔트로피 코더는 압축된 비트스트림을 출력합니다.

그렇다면 엔트로피 코더는 전달받은 확률을 어떻게 활용하며, 압축을 수행하는 데 있어 어떻게 도움을 주고 있을까요?

・엔트로피 코더의 역할
내용을 단순화하기 위해 엔트로피 코더의 역할 중 '산술 부호화'에만 초점을 맞춥니다.

산술 부호화는 심볼의 출현 확률에 기초하여 데이터를 인코딩합니다.

'ABABAAC'라는 데이터를 압축하는 경우, 우선은 각 심볼의 확률을 구합니다.

어떤 심볼이 출현하는지의 확률을 정리하면 0~1의 범위로 나타낼 수 있습니다.

이것으로 실제 압축을 수행할 준비가 갖추어졌습니다.

데이터의 첫 번째 심볼은 'A'이므로, 범위는 0~0.

571이 됩니다.

두 번째 심볼은 'B'이므로 범위는 0.

571~0.

857이 됩니다만, 첫 번째 심볼 'A'의 범위 0~0.

571 내부에 포함된다는 점을 고려하면 'AB'의 범위는 0.

327~0.

490이 됩니다.

마찬가지로 모든 심볼을 처리하면, 최종적으로 'ABABAAC'의 범위는 0.

3873~0.

3885가 됩니다.

즉 'ABABAAC'를 압축한 값으로는 0.

3873~0.

3885 범위에 포함되는 어떤 수치라도 정답이지만, 압축률을 생각하면 가능한 한 적은 비트 수로 표현할 수 있는 값으로 하는 것이 이상적이며, 아주 간단한 연산을 거치면 '0.

3876953125'라는 매직 넘버를 산출할 수 있습니다.

원래 데이터 'ABABAAC'는 8비트 ASCII 코드로 총 56비트가 필요하지만, 최종적으로 얻은 매직 넘버 '0.

3876953125'는 10비트밖에 필요하지 않습니다.

그럼 매직 넘버로부터 원래 데이터를 얻는 방법을 살펴보겠습니다.

압축 해제기는 매직 넘버에 더해 압축에 사용한 것과 동일한 확률 및 원래 데이터의 길이를 전달받습니다.

매직 넘버가 확률의 어느 범위에 위치하는지 확인함으로써 첫 번째 심볼이 'A'임을 알 수 있습니다.

'A'의 범위 0~0.

571을 더욱 확률의 범위로 세분화함으로써 두 번째 심볼이 'B'임을 알 수 있습니다.

마찬가지로 범위를 세분화함으로써 원래 데이터가 'ABABAAC'임을 알 수 있게 되는 것입니다.

・확률이 압축에 미치는 영향
확률이 어떻게 압축 효과에 영향을 미치는지 보기 위해, 새롭게 'A'가 극단적으로 많이 포함된 데이터를 사용합니다.

처음에 사용한 비교적 균등하게 심볼이 포함된 데이터의 경우는 '평균 비트/심볼' 값이 1.

38이지만, 'A'가 극단적으로 많이 포함된 데이터의 경우는 0.

82가 됩니다.

즉 특정 심볼의 출현 확률이 높을수록(데이터의 편차가 클수록) 압축률은 향상됩니다.

이 '평균 비트/심볼'은 '정보 엔트로피'라고 불리며, 가역 압축에 있어서 압축의 한계를 나타내는 지표가 됩니다.

◆컨텍스트의 중요성
여기까지는 심볼의 출현 빈도만을 고려하는 매우 단순한 모델을 다루고 있었습니다.

하지만 실제 심볼의 확률은 '컨텍스트(문맥)'에 크게 영향을 받습니다.

영어의 경우를 예로 들면, 'U'가 나타날 확률은 약 0.

028입니다.

하지만 「Q」의 직후에 「U」가 나타날 확률은 약 0.

999로 급상승합니다.

단일 컨텍스트를 사용하여 기호의 출현 확률을 결정하는 것을 「오더 1 모델」이라고 부릅니다.

오더 1 모델에서는 직전의 기호 1개만을 컨텍스트로 고려하지만, 오더 2·오더 3·오더 4……로 확장하는 것도 가능하며, 직전 N개의 기호를 컨텍스트로 고려하게 되므로 「오더 N 모델」이라고 부릅니다.

「오더 N 모델」을 엔트로피 코더에 편입하려면 직전의 컨텍스트에 따라 별개의 확률표를 사용하면 될 것으로 보입니다.

케이스를 간략화하기 위해, 오더 1 모델을 사용하여 「TO BE OR NOT TO BE」라는 문자열에 산술 부호화를 적용해 봅시다.

문자열의 맨 앞에 「T」가 출현할 확률의 범위가 아래 그림과 같았다고 합시다.

「T」의 다음에 「O」가 출현할 확률의 범위는 다른 것이 적용됩니다.

「O」의 다음에 공백이 출현할 확률의 범위.

공백의 다음에 「B」가 출현하는 경우의……라는 식으로 차례차례 다른 확률의 범위가 적용되어 갑니다.

최종적으로, 「TO BE OR NOT TO BE」의 범위는 0.

05870～0.

05871이 됩니다.

컨텍스트를 사용하지 않는 경우와 오더 1 모델을 사용한 경우를 비교하면 아래 표와 같습니다.

컨텍스트를 사용하는 편이 더욱 강력한 확률을 얻을 수 있음이 명확하게 드러납니다.

◆LLM과 압축LLM은 고도의 예측 능력을 보유하고 있어, 압축 알고리즘과 매우 밀접한 관계가 있습니다.

2023년에 Google DeepMind가 발표한 논문에 따르면, 언어 모델링과 압축은 「동일한 것의 두 가지 관점」이라고 합니다.

・LLM의 압축 메커니즘LLM은 주어진 컨텍스트에 기반하여 다음에 올 단어(토큰)의 확률 분포를 예측합니다.

이 예측 능력은 압축에서의 「모델」 성능에 직결됩니다.

LLM은 훈련을 통해 「비트/기호」 수를 최소화하도록 최적화되는데, 이는 압축에서의 엔트로피를 낮추는 것에 해당합니다.

・LLM에 의한 압축 실험LLM을 압축에 이용할 경우, 모델의 예측이 얼마나 실제 기호에 가까웠는지가 중요해집니다.

예측이 정확하다면 적은 비트 수로 표현할 수 있어 높은 압축률을 얻을 수 있습니다.

다만, 이미 구형으로 분류되는 LLM이라 할지라도 뛰어난 압축률을 보여줄 수 있습니다.

찰스 디킨스의 문장을 산술 부호화로 압축하는 실험을 진행한 결과, 오더 1 모델을 사용했을 때 원본 대비 24%로 압축되었던 반면, GPT-2를 사용하자 원본 대비 10%까지 압축률이 향상되었습니다.

・현실적인 관점에서 본 LLM 압축의 과제높은 압축률을 달성할 수 있음에도 불구하고 압축이 필요한 현장에서 LLM이 그다지 사용되지 않는 이유는, 압축 툴의 목적이 단순히 데이터를 가능한 한 작게 만드는 것만은 아니기 때문이며, 특히 HTTP 응답과 같은 단순한 작업에서의 실용화는 어렵다고 여겨집니다.

모델 자체의 크기나 압축·해제 시에 필요한 계산 리소스의 크기가, 압축을 통해 절약되는 데이터 양보다 커져 버리기 때문입니다.

◆정리압축 알고리즘과 LLM은 모두 「예측」이라는 공통의 기반을 가지고 있습니다.

압축은 데이터의 중복성을 예측하여 보다 효율적인 표현을 찾는 프로세스이며, LLM은 문맥에 기반하여 다음 기호를 예측하는 데 특화되어 있습니다.

이 둘은 정보 엔트로피라는 수학적 틀로 연결되어 있으며, 근본적으로는 동일한 수학적 원리에 기반한 두 가지 표현에 불과하다고 할 수 있습니다.

미니피케이션의 결과, 위의 코드는 다음과 같이 됩니다.

function sumNumbers(n){let t=0;for(const r of n)t+=r;return t}다만 미니피케이션은 어디까지나 구문상의 불필요한 요소를 제거하는 것일 뿐, 중복 데이터를 압축하는 '진정한 압축'과는 다른 것입니다.

・런 랭스 인코딩 'AAAAAAAAAABBBBBCCDAAADDDDD'와 같은 반복 패턴을 압축하는 방법 중 하나입니다.

어떤 문자가 몇 개 연속되는지를 데이터화하여 'A9B4C2D1A3D9'로 만듦으로써 더 짧은 문자열로 인코딩할 수 있습니다.

8비트 ASCII 인코딩의 경우, 원래 문자열은 224비트 사용되었지만 압축한 문자열은 96비트만 사용합니다.

・압축 알고리즘의 구조 gzip이나 Brotli와 같은 압축 툴은 데이터를 더욱 압축하기 위해 다양한 기법을 사용하고 있습니다.

최신 압축 툴은 대략 3가지 구성 요소를 가지고 있습니다.

・변환 ・모델 ・엔트로피 코더 위의 용어에 대해서는 편의상 명확히 구분 가능한 것으로 다루지만, 실제로는 각각의 경계가 약간 모호해지기도 하며 단독으로 사용되는 경우는 거의 없습니다.

'변환'은 데이터를 압축하기 쉽게 만들기 위한 전처리이며, 예를 들어 런 랭스 인코딩도 기법 중 하나가 됩니다만, 변환으로 인해 반드시 데이터양이 줄어드는 것은 아닙니다.

경우에 따라서는 변환을 통해 중복성을 높이는 것도 가능하며, 중복성을 갖게 함으로써 후속 공정에서 더 높은 압축률을 실현할 수 있는 경우가 있습니다.

'모델'은 각 심볼(문자·숫자·토큰·바이너리 코드 등)의 출현 빈도에 기반하여 데이터의 형상을 기술합니다.

실제 모델은 더욱 고도화되어 있지만, 간단한 예시로 모델을 각 기호와 출현 확률 간의 대응표로 생각해 보겠습니다.

'엔트로피 코더'는 거의 모든 압축 알고리즘에서 최종 단계에 위치하며, 최종 압축 결과인 '생 비트스트림', 즉 파일 포맷과 같은 구조를 일절 가지지 않는 단순한 비트스트림을 생성합니다.

더 중요한 '모델'과 '엔트로피 코더' 두 가지에 주목해 보면, 우리의 데이터 모델은 데이터를 가능한 한 효율적으로 인코딩하기 위해 엔트로피 코더에 일련의 확률을 전달하고, 엔트로피 코더는 압축된 비트스트림을 출력합니다.

그렇다면 엔트로피 코더는 전달받은 확률을 어떻게 활용하여 압축을 수행하는 데 도움을 주고 있는 걸까요?

・엔트로피 코더의 역할 단순화를 위해 엔트로피 코더의 역할 중 '산술 부호화'에만 초점을 맞춥니다.

산술 부호화는 심볼의 출현 확률에 기반하여 데이터를 인코딩합니다.

'ABABAAC'라는 데이터를 압축하는 경우, 우선 각 심볼의 확률을 구합니다.

어떤 심볼이 출현할지에 대한 확률을 정리하면 0~1의 범위로 나타낼 수 있습니다.

이것으로 실제 압축을 수행할 준비가 되었습니다.

데이터의 첫 번째 심볼은 'A'이므로 범위는 0~0.

571이 됩니다.

두 번째 심볼은 'B'이므로 범위는 0.

571~0.

857이 되지만, 첫 번째 심볼 'A'의 범위 0~0.

571 내부에 포함된다는 것을 고려하면 'AB'의 범위는 0.

327~0.

490이 됩니다.

동일한 방식으로 모든 심볼을 처리하면 최종적으로 'ABABAAC'의 범위는 0.

3873~0.

3885가 됩니다.

즉 'ABABAAC'를 압축한 값으로는 0.

3873~0.

3885 범위에 포함되는 어떤 수치라도 정답이지만, 압축률을 고려하면 가능한 한 적은 비트 수로 표현할 수 있는 값으로 하는 것이 이상적이며, 아주 간단한 연산을 수행하면 「0.

3876953125」라는 매직 넘버를 산출할 수 있습니다.

원래 데이터 「ABABAAC」는 8비트 ASCII 코드로 총 56비트가 필요하지만, 최종적으로 얻은 매직 넘버 「0.

3876953125」는 10비트밖에 필요하지 않습니다.

그럼 매직 넘버로부터 원래 데이터를 얻는 방법을 살펴보겠습니다.

압축 해제기는 매직 넘버에 더해 압축에 사용한 것과 동일한 확률 및 원래 데이터의 길이를 전달받습니다.

매직 넘バー가 확률의 어느 범위에 위치하는지 확인함으로써, 첫 번째 심볼이 「A」임을 알 수 있습니다.

「A」의 범위 0~0.

571을 다시 확률의 범위로 세분화함으로써, 두 번째 심볼이 「B」임을 알 수 있습니다.

마찬가지로 범위를 세분화함으로써, 원래 데이터가 「ABABAAC」임을 알 수 있는 것입니다.

・확률이 압축에 미치는 영향 확률이 어떻게 압축 효과에 영향을 미치는지 보기 위해, 새롭게 「A」가 극단적으로 많이 포함된 데이터를 사용합니다.

처음에 사용한 비교적 균등하게 심볼이 포함된 데이터의 경우에는 「평균 비트/심볼」의 값이 1.

38이지만, 「A」가 극단적으로 많이 포함된 데이터의 경우에는 0.

82가 됩니다.

즉 특정 심볼의 출현 확률이 높을수록(데이터의 편차가 클수록) 압축률은 향상됩니다.

이 「평균 비트/심볼」은 「정보 엔트로피」라고 불리며, 가역 압축에서의 압축 한계를 나타내는 지표가 됩니다.

◆ 컨텍スト의 중요성 지금까지는 심볼의 출현 빈도만을 고려하는 매우 단순한 모델을 다루고 있었습니다.

하지만 실제 심볼의 확률은 「컨텍스트(문맥)」에 크게 영향을 받습니다.

영어의 경우를 예로 들면, 「U」가 나타날 확률은 약 0.

028입니다.

단, 「Q」 바로 뒤에 「U」가 나타날 확률은 약 0.

999로 급증합니다.

단일 컨텍스트를 사용하여 심볼의 출현 확률을 결정하는 것을 「오더 1 모델」이라고 부릅니다.

오더 1 모델에서는 직전의 심볼 1개만을 컨텍스트로 고려하지만, 오더 2·오더 3·오더 4……로 확장하는 것도 가능하며, 직전 N개의 심볼을 컨텍스트로 고려하게 되므로 「오더 N 모델」이라고 부릅니다.

「오더 N 모델」을 엔트로피 코ダー에 편입하려면, 직전의 컨텍스트에 따라 별개의 확률표를 사용하면 될 것 같습니다.

케이스를 단순화하기 위해, 오더 1 모델을 사용하여 「TO BE OR NOT TO BE」라는 문자열에 산술 부호화를 적용해 봅시다.

문자열의 맨 앞에 「T」가 출현할 확률의 범위가 아래 그림과 같았다고 가정해 봅시다.

「T」 다음에 「O」가 출현할 확률의 범위는 다른 것이 적용됩니다.

「O」 다음에 공백이 출현할 확률의 범위.

공백 다음에 「B」가 출현하는 경우의……와 같은 방식으로 차례차례 다른 확률의 범위가 적용되어 갑니다.

최종적으로, 「TO BE OR NOT TO BE」의 범위는 0.

05870~0.

05871이 됩니다.

컨텍스트를 사용하지 않는 경우와 오더 1 모델을 사용하는 경우를 비교하면 아래 표와 같습니다.

컨텍스트를 사용하는 편이 더욱 강력한 확률을 얻을 수 있다는 것이 명확해집니다.

◆ LLM과 압축 LLM은 고도의 예측 능력을 가지고 있어, 압축 알고리즘과 매우 밀접한 관계가 있습니다.

Google 우선 소스로 설정 Clipboard 기사 제목과 URL 복사 X Facebook Bluesky Discord Threads

2023년 Google DeepMind가 발표한 논문에 따르면, 언어 모델링과 압축은 "같은 것에 대한 두 가지 관점"으로 여겨집니다.

・LLM의 압축 메커니즘 LLM은 주어진 컨텍스트를 바탕으로 다음에 올 단어(토큰)의 확률 분포를 예측합니다.

이 예측 능력은 압축에 있어서 "모델"의 성능에 직결됩니다.

LLM은 훈련을 통해 "비트/심볼" 수를 최소화하도록 최적화되는데, 이는 압축에서 엔트로피를 낮추는 것에 해당합니다.

・LLM을 통한 압축 실험 LLM을 압축에 이용할 경우, 모델의 예측이 얼마나 실제 심볼에 가까웠는지가 중요해집니다.

예측이 정확하면 적은 비트 수로 표현할 수 있어 높은 압축률을 얻을 수 있습니다.

다만, 이미 구식이 된 LLM이라 할지라도 뛰어난 압축률을 보여줄 수 있습니다.

찰스 디킨스의 문장을 산술 부호화로 압축하는 실험을 진행한 결과, 오더 1 모델을 사용했을 때 원본 대비 24%로 압축되었던 것이 GPT-2를 사용하자 원본 대비 10%까지 압축률이 향상되었습니다.

・현실적인 측면에서 본 LLM 압축의 과제 높은 압축률을 달성할 수 있음에도 불구하고 압축이 필요한 상황에서 LLM이 그다지 사용되지 않는 이유는, 압축 툴의 목적이 단순히 데이터를 가능한 한 작게 만드는 것만이 아니기 때문이며, 특히 HTTP 응답과 같은 단순한 작업에서의 실용화는 어렵다고 일컬어집니다.

모델 자체의 크기나 압축·해제 시에 필요한 계산 리소스의 크기가 압축을 통해 절약되는 데이터 양보다 더 커져 버리기 때문입니다.

◆ 요약 압축 알고리즘과 LLM은 모두 "예측"이라는 공통의 기반을 가지고 있습니다.

압축은 데이터의 중복성을 예측하여 보다 효율적인 표현을 찾는 프로세스이며, LLM은 문맥에 기반하여 다음 심볼을 예측하는 데 특화되어 있습니다.

이 둘은 정보 엔트로피라는 수학적 틀로 연결되어 있으며, 근본적으로는 동일한 수학적 원리에 기반한 두 가지 표현에 불과하다고 할 수 있습니다.

Google 우선 소스로 설정 Clipboard 기사 제목과 URL 복사 X Facebook Bluesky Discord Threads

단, 미니피케이션은 어디까지나 구문상의 불필요한 요소를 삭제하는 것일 뿐, 중복 데이터를 압축하는 "진정한 압축"과는 다른 것입니다. ・런 렝스 인코딩 "AAAAAAAAAABBBBBCCDAAADDDDD"와 같은 반복 패턴을 압축하는 방법 중 하나입니다.

어떤 문자가 몇 개 연속되는지를 데이터화하여 "A9B4C2D1A3D9"로 만듦으로써 더 짧은 문자열로 인코딩할 수 있습니다.

8비트 ASCII 인코딩의 경우, 원래 문자열은 224비트를 사용했으나, 압축한 문자열은 96비트만 사용합니다. ・압축 알고리즘의 구조 gzip이나 Brotli와 같은 압축 툴은 데이터를 더욱 압축하기 위해 다양한 기법을 이용하고 있습니다. 최신 압축 툴은 대략 3가지 구성 요소를 가지고 있습니다. ・변환 ・모델 ・엔트로피 코더 위의 용어에 대해서는 편의상 명확하고 구별 가능한 것으로 다루지만, 실제로는 각각의 경계가 다소 모호해지기도 하며 단독으로 사용되는 경우는 거의 없습니다.

'변환'은 데이터를 압축하기 쉽게 만들기 위한 전처리이며, 예를 들어 런랭스 인코딩도 하나의 기법이지만, 변환에 의해 반드시 데이터 양이 축소되는 것은 아닙니다. 경우에 따라서는 변환을 통해 중복성을 높이는 것도 가능하며, 중복성을 부여함으로써 후속 공정에서 더 높은 압축률을 실현할 수 있는 경우가 있습니다. '모델'은 각 심볼(문자·숫자·토큰·바이너리 코드 등)의 출현 빈도에 기반하여 데이터의 형상을 기술합니다. 실제 모델은 보다 고도화된 것이지만, 간단한 예로 모델을 각 기호와 출현 확률 간의 대응표로 생각해 보겠습니다.

'엔트로피 코더'는 거의 모든 압축 알고리즘에서 최종 단계에 위치하며, 최종적인 압축 결과인 '생 비트스트림', 즉 파일 포맷과 같은 구조를 전혀 갖지 않는 단순한 비트스트림을 생성합니다. 보다 중요한 '모델'과 '엔트로피 코더' 두 가지에 주목하면, 우리의 데이터 모델은 데이터를 가능한 한 효율적으로 인코딩하기 위해 엔트로피 코더에 일련의 확률을 전달하고, 엔트로피 코더는 압축된 비트스트림을 출력합니다. 그렇다면 엔트로피 코더는 전달받은 확률을 어떻게 활용하며, 압축을 진행하는 데 있어 어떻게 도움을 주는 것일까요?

・엔트로피 코더의 역할
단순화를 위해 엔트로피 코더의 역할 중 '산술 부호화'에만 초점을 맞춥니다. 산술 부호화는 심볼의 출현 확률에 기반하여 데이터를 인코딩합니다. 'ABABAAC'라는 데이터를 압축하는 경우, 우선은 각 심볼의 확률을 구합니다.

어떤 심볼이 출현할지의 확률을 정리하면 0~1의 범위로 나타낼 수 있습니다. 이것으로 실제 압축을 진행할 준비가 갖추어졌습니다.

데이터의 첫 번째 심볼은 'A'이므로, 범위는 0~0.571가 됩니다.

두 번째 심볼은 'B'이므로 범위는 0.571~0.857이 되지만, 첫 번째 심볼 'A'의 범위 0~0.571 내부에 포함된다는 점을 고려하면 'AB'의 범위는 0.327~0.490이 됩니다.

동일한 방식으로 모든 심볼을 처리하면, 최종적으로 'ABABAAC'의 범위는 0.3873~0.3885가 됩니다.

즉 'ABABAAC'를 압축한 값으로는 0.3873~0.3885 범위에 포함되는 어떤 수치라도 정답이지만, 압축률을 고려하면 가능한 한 적은 비트 수로 표현할 수 있는 값으로 만드는 것이 이상적이며, 아주 간단한 연산을 수행하면 '0.3876953125'라는 매직 넘버를 산출할 수 있습니다. 원본 데이터 'ABABAAC'는 8비트 ASCII 코드로 총 56비트가 필요하지만, 최종적으로 얻은 매직 넘버 '0.3876953125'는 10비트만 필요합니다. 그럼 매직 넘버로부터 원본 데이터를 복원하는 방법을 살펴보겠습니다. 압축 해제기는 매직 넘버와 함께 압축에 사용한 것과 동일한 확률 및 원본 데이터의 길이를 전달받습니다. 매직 넘버가 확률의 어느 범위에 위치하는지 확인함으로써, 첫 번째 심볼이 'A'라는 것을 알 수 있습니다.

'A'의 범위 0~0.571를 다시 확률의 범위로 세분화함으로써, 두 번째 심볼이 'B'라는 것을 알 수 있습니다.

마찬가지로 범위를 세분화함으로써, 원본 데이터가 'ABABAAC'라는 것을 알 수 있게 되는 것입니다.

・확률이 압축에 미치는 영향
확률이 어떻게 압축 효과에 영향을 미치는지 알아보기 위해, 이번에는 'A'가 극단적으로 많이 포함된 데이터를 새롭게 사용합니다.

처음에 사용한 비교적 균등하게 심볼이 포함된 데이터의 경우는 '평균 비트/심볼'의 값이 1.38이지만, 'A'가 극단적으로 많이 포함된 데이터의 경우는 0.82가 됩니다. 즉, 특정 심볼의 출현 확률이 높을수록(데이터의 편차가 클수록) 압축률은 향상됩니다. 이 '평균 비트/심볼'은 '정보 엔트로피'라고 불리며, 가역 압축에서의 압축 한계를 나타내는 지표가 됩니다.

◆ 컨텍스트의 중요성
여기까지는 심볼의 출현 빈도만을 고려하는 매우 단순한 모델을 다루었습니다. 하지만 실제 심볼의 확률은 '컨텍스트(문맥)'에 크게 영향을 받습니다. 영어의 경우를 예로 들면, 'U'가 나타날 확률은 약 0.028입니다. 하지만 'Q' 바로 뒤에 'U'가 나타날 확률은 약 0.999로 치솟습니다. 단일 컨텍스트를 사용하여 심볼의 출현 확률을 결정하는 것을 '오더 1 모델'이라고 부릅니다. 오더 1 모델에서는 직전의 심볼 1개만을 컨텍스트로 고려하지만, 오더 2·오더 3·오더 4……와 같이 확장하는 것도 가능하며, 직전 N개의 심볼을 컨텍스트로 고려하게 되므로 '오더 N 모델'이라고 부릅니다.

'오더 N 모델'을 엔트로피 코더에 포함하려면 직전의 컨텍스트에 따라 별개의 확률표를 사용하면 될 것 같습니다. 사례를 단순화하기 위해 오더 1 모델을 사용하여 'TO BE OR NOT TO BE'라는 문자열에 산술 부호화를 적용해 봅시다. 문자열의 맨 처음에 'T'가 출현할 확률의 범위가 아래 그림과 같았다고 가정해 봅시다.

'T' 다음에 'O'가 출현할 확률의 범위는 다른 것이 적용됩니다.

'O' 다음에 공백이 출현할 확률의 범위.

공백 다음에 'B'가 출현하는 경우의……라는 식으로 계속해서 다른 확률 범위가 적용되어 갑니다.

최종적으로 'TO BE OR NOT TO BE'의 범위는 0.05870~0.05871이 됩니다.

컨텍스트를 사용하지 않는 경우와 오더 1 모델을 사용하는 경우를 비교하면 아래 표와 같습니다. 컨텍스트를 사용하는 편이 더 강력한 확률을 얻을 수 있다는 점이 명확해집니다.

◆ LLM과 압축
LLM은 고도의 예측 능력을 보유하고 있어 압축 알고리즘과 매우 밀접한 관계가 있습니다. 2023년에 Google DeepMind가 발표한 논문에 따르면 언어 모델링과 압축은 '동일한 것의 두 가지 관점'이라고 합니다.
・LLM의 압축 메커니즘
LLM은 주어진 컨텍스트를 바탕으로 다음에 올 단어(토큰)의 확률 분포를 예측합니다. 이 예측 능력은 압축에서의 '모델' 성능과 직결됩니다. LLM은 훈련을 통해 '비트/심볼' 수를 최소화하도록 최적화되는데, 이는 압축에서 엔트로피를 낮추는 것에 해당합니다.

・LLM을 통한 압축 실험
LLM을 압축에 이용할 경우, 모델의 예측이 실제 심볼에 얼마나 가깝게 맞았는지가 중요해집니다. 예측이 정확하면 적은 비트 수로 표현할 수 있어 높은 압축률을 얻을 수 있습니다.

단, 이미 구형으로 분류되는 LLM이라도 뛰어난 압축률을 보여줄 수 있습니다. 찰스 디킨스의 문장을 산술 부호화로 압축하는 실험을 진행한 결과, 오더 1 모델을 사용했을 때 원본 대비 24%로 압축했던 것에 비해, GPT-2를 사용하면 원본 대비 10%까지 압축률이 향상되었습니다.

・현실적인 관점에서 본 LLM 압축의 과제
높은 압축률을 달성할 수 있음에도 불구하고 압축이 필요한 상황에서 LLM이 그다지 사용되지 않는 이유는, 압축 툴의 목적이 단순히 데이터를 가능한 한 작게 만드는 것만이 아니기 때문이며, 특히 HTTP 응답과 같은 단순한 작업에서의 실용화는 어렵다고 알려져 있습니다. 모델 자체의 크기나 압축·해제 시 필요한 계산 리소스의 크기가 압축을 통해 절약되는 데이터 양보다 더 커지기 때문입니다.

◆ 요약
압축 알고리즘과 LLM은 모두 '예측'이라는 공통의 기반을 갖고 있습니다. 압축은 데이터의 중복성을 예측하여 보다 효율적인 표현을 찾는 프로세스이며, LLM은 문맥에 기반하여 다음 심볼을 예측하는 데 특화되어 있습니다. 이 둘은 정보 엔트로피라는 수학적 틀로 연결되어 있으며, 근본적으로는 동일한 수학적 원리에 기반한 두 가지 표현에 불과하다고 할 수 있습니다.

[원문 보기](https://gigazine.net/news/20260906-compression-is-prediction/) | 출처: Gigazine