피드로 돌아가기
Dev.toAI/ML
원문 읽기
LLM 대화 데이터 특화 도메인 사전 기반 최대 12.4배 압축 달성
gni-compression is on npm — What a month of building a domain-adaptive LLM compressor taught me
AI 요약
Context
LLM 대화 데이터의 반복적 특성을 일반 압축 알고리즘이 충분히 활용하지 못하는 한계 발생. 특히 짧은 메시지 단위의 대화에서 Brotli-6 등의 범용 압축 방식이 낮은 효율을 보이는 문제 해결 필요.
Technical Solution
- Domain-adaptive 사전(gcdict.bin)을 Rust 기반의 Native Binary로 구현하여 처리 속도 및 효율 최적화
- 입력 데이터를 Token-ID 스트림과 Literal 스트림으로 분리하여 특성별 독립 압축 수행
- Token-ID 스트림은 정수형의 높은 중복성을 활용하고, Literal 스트림은 사전 기반 Deflate 방식으로 처리
- Phrase Length 분석을 통해 불필요한 Filler Token을 우선적으로 제거하는 최적의 사전 크기 도출
- Interleaved Format 설계를 통해 원본 버퍼 없이도 복원이 가능한 Lossless Round-trip 구조 확보
- napi-rs를 통한 Thin JS Wrapper 제공으로 Node.js 환경의 접근성 확보
Impact
- Claude 대화 데이터 기준 최대 12.40배 압축 및 91.9% 저장 공간 절감
- Ubuntu IRC 등 짧은 메시지(평균 67 bytes) 환경에서 Brotli-6(1.2x) 대비 8.40배의 압축 성능 기록
- ShareGPT 및 LMSYS 코퍼스에서 각각 8.65배(88.4%), 10.38배(90.4%)의 압축 효율 달성
Key Takeaway
데이터의 도메인 특성이 강한 경우, 범용 알고리즘보다 사전 학습된 도메인 지식을 활용한 전용 압축 계층을 도입하여 비약적인 효율 개선 가능
실천 포인트
- 반복적인 패턴이 강한 도메인 특화 데이터셋으로 전용 Dictionary 구축 검토 - CPU 오버헤드 감소를 위해 핵심 로직을 Rust 등 Native 언어로 구현하고 인터페이스만 JS로 노출하는 구조 적용 - 데이터 스트림을 특성에 따라 분리(Split)하여 서로 다른 압축 전략을 적용하는 파이프라인 설계