AI Briefing

n-gram 압축, zlib 대비 33% 개선

Language-model-based compression for Python source using n-grams + arithmetic coding (~33% better than zlib on Flask) [P]

·2026.05.03 19:26

Python source를 n-gram과 arithmetic coding으로 압축해 zlib보다 33% 개선했다.

order-4 n-gram 모델이 Python source의 다음 token 확률을 추정하고, 그 확률을 arithmetic coding에 넣어 압축했다.

  • Flask의 약 575 KB .py 파일을 **101 KB (0.176x)**로 줄여 **82.4%**를 압축했다.
  • 같은 데이터에서 zlib 151 KB, lzma 152 KB, zstd 147 KB보다 작았다.
  • 구현은 tokenizer와 model이 Python, arithmetic coder가 Zig이며 ctypes로 연결했다.
  • 인코딩 속도는 약 75초로, **zlib(0.05초)**보다 약 1600배 느렸다.
  • 병목은 토큰별 확률 계산이 Python에서 이뤄지고 caching과 batching이 없다는 점이다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.