압축은 예측이다

3 hours ago 1

우리가 데이터를 작게 압축할 수 있는 이유는 다음에 무엇이 나올지 어느 정도 예상할 수 있기 때문임. 반복되거나 자주 등장하는 패턴일수록 적은 정보만 저장해도 됨 예를 들어 영어에서 Q 다음에는 거의 항상 U가 오므로, U를 매번 길게 기록할 필요가 없음. 문맥을 잘 알수록 다음 문자를 더 잘 예측하고 더 많이 압축할 수 있음 LLM도 똑같이 앞에 나온 문장을 보고 다음 토큰이 무엇일지 확률로 예측함. 실제 다음 토큰에 높은 확률을 줄수록 좋은 언어 모델이 됨 이 확률을 압축에 이용하면, 모델이 잘 맞힌 토큰은 적은 비트로 저장하고 예상 밖의 토큰은 많은 비트로 저장할 수 있어 좋은 LLM일수록 좋은 압축기가 될 수 있음 실제로 LLM을 gzip 대신 쓰기에는 모델 크기와 계산 비용이 너무 크지만, 핵심 원리는 같음 결국 압축과 LLM은 겉보기에는 전혀 다르지만 "다음에 무엇이 올지 얼마나 잘 예측하느냐"라는 같은 문제를 풀고 있음. 둘 다 문맥을 이용해 다음에 무엇이 올지 확률로 예측하고, 그 예측이 정확할수록 성능이 좋아짐 압축이 잘 되는 데이터에는 패턴이 있음 AAAAAAAAAA처럼 같은 문자가 반복되는 데이터는 모든 A를 하나씩 기록하는 대신 "A가 10번"이라고 저장할 수 있음 실제 압축기는 이보다 훨씬 복잡하지만 기본 아이디어는 같음 자주 반복되는 것에는 짧은 표현 드물게 등장하는 것에는 긴 표현을 사용함 그래서 데이터가 일정한 패턴을 가지고 있을수록 더 작게 압축할 수 있음 핵심은 다음에 무엇이 올지 맞히는 것 단순히 각 문자가 전체에서 얼마나 자주 등장하는지만 알아도 어느 정도 압축할 수 있음 하지만 앞에 나온 내용을 함께 보면 훨씬 정확한 확률을 구할 수 있음 영어에서 U는 전체적으로는 흔하지 않지만 Q 다음에서는 거의 확실하게 등장함 따라서 Q 다음의 U는 매우 적은 정보만으로 표현할 수 있음 실제 예제에서도 이전 문자 하나를 문맥으로 사용했을 때 TO BE OR NOT TO BE의 압축 크기가 약 47비트에서 21비트로 줄어듦 즉, 더 좋은 문맥 모델은 곧 더 좋은 예측기이자 더 좋은 압축기임 LLM이 하는 일도 사실상 같음 LLM은 문장을 통째로 이해한 뒤 답을 한 번에 만드는 것이 아니라, 앞에 나온 토큰들을 보고 다음 토큰들의 확률을 계산하는 과정을 반복함 예를 들어 The rain in 다음에 Spain이 올 확률은 높게 엉뚱한 단어가 올 확률은 낮게 주는 식임 텍스트를 생성할 때는 ...

Read Entire Article