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이 없다는 점이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.