한국정보기술진흥원
한국정보기술신문
thumbnail

정보기술 ·

파이썬 3.14 표준 라이브러리에 Zstd 압축 모듈 추가...텍스트 분류 성능 획기적 개선

발행일
읽는 시간1분 54초

페이스북 개발 압축 알고리즘, 기존 대비 속도 960배 향상하며 머신러닝 적용 가능성 입증

[한국정보기술신문] 파이썬 3.14 버전에 페이스북이 개발한 Zstd 압축 알고리즘이 표준 라이브러리로 추가되면서 텍스트 분류 작업에 혁신적인 성능 개선이 이뤄졌다. 지난 6일 공개된 맥스 하포드의 블로그 게시물에 따르면, 새로운 압축 기반 텍스트 분류 방식은 기존 방법 대비 속도와 정확도 모두에서 뛰어난 성능을 보였다.

Zstandard(Zstd)는 약 10년 전 얀 코렛이 개발한 압축 알고리즘으로, 특히 작은 데이터 압축에 최적화되어 있다. 파이썬 3.14는 이를 compression.zstd 모듈로 표준 라이브러리에 포함시켰다.

증분 압축이 가능한 Zstd의 차별점

Zstd의 가장 큰 장점은 증분 압축을 지원한다는 점이다. 기존의 gzip이나 LZW 같은 압축 알고리즘은 알고리즘적으로는 증분 압축이 가능하지만 실제 구현에서는 증분 API를 제공하지 않았다. 이로 인해 테스트 문서마다 훈련 데이터를 재압축해야 하는 비효율이 발생했다.

반면 Zstd는 데이터를 청크 단위로 압축할 수 있으며, 내부 상태를 유지하는 방식으로 작동한다. 개발자는 ZstdCompressor 클래스를 통해 각 클래스별로 압축기를 구축하고, 새 문서에 대해 가장 작은 압축 출력을 생성하는 압축기를 찾아 분류를 수행할 수 있다.

91% 정확도에 2초 미만 소요

하포드는 20 newsgroups 데이터셋을 활용한 벤치마크 테스트에서 Zstd 기반 분류기가 91%의 정확도를 1.9초 만에 달성했다고 밝혔다. 이는 5년 전 개발한 LZW 기반 방식이 89% 정확도에 약 32분이 소요된 것과 비교하면 속도는 약 960배, 정확도는 2%포인트 향상된 수치다.

비교 실험을 위해 진행한 TF-IDF와 로지스틱 회귀를 결합한 전통적인 머신러닝 방식은 91.8%의 정확도를 기록했으나 12초가 소요되어, Zstd 방식이 속도 면에서 약 6배 이상 빠른 것으로 나타났다.

단순한 구조로 높은 유지보수성 확보

Zstd 기반 분류기의 또 다른 장점은 구현의 단순성이다. 행렬 연산, 그래디언트, 역전파와 같은 복잡한 수학적 연산이 필요 없으며, 모든 학습 과정을 압축 알고리즘에 위임한다. ZstdClassifier 클래스는 압축기에 적절한 데이터를 공급하고 출력을 해석하는 얇은 래퍼에 불과하다.

개발자는 윈도우 크기, 압축 레벨, 재구축 빈도 등 세 가지 주요 파라미터를 조정하여 처리량과 정확도 간 균형을 맞출 수 있다. 윈도우 크기는 각 클래스의 버퍼에 보관할 최대 바이트 수를 결정하며, 압축 레벨은 1부터 22까지 선택 가능하다.

실무 적용 가능성과 향후 전망

하포드는 "프로덕션 환경에서 사용할 것을 권장하기는 어렵지만, 유지보수와 이해가 쉽다는 장점이 있다"며 신중한 입장을 보였다. 그러나 Zstd가 파이썬 표준 라이브러리에 포함되고 양호한 처리량을 보여주는 만큼, 보유한 텍스트 분류 데이터셋으로 벤치마크를 수행해 볼 가치가 있다고 덧붙였다.

이 방식은 2023년 발표된 논문 "Low-Resource Text Classification: A Parameter-Free Classification Method with Compressors"에서 제시된 접근법과도 맥을 같이한다. 압축 길이가 Kolmogorov 복잡도를 근사한다는 아이디어에 기반한 이 기법은 자원이 제한된 환경에서도 효과적인 텍스트 분류가 가능함을 보여줬다.

한국정보기술신문 인공지능분과 박정후 기자 news@kitpa.org