topicjev.compress¶
Document compression backends. The Compression guide compares them and lists the options that each one reads from its keyword arguments.
Compressor
¶
Bases: ModelBackend
Base class for document summarization and token-level prompt compression.
Provides device management, maximum context length resolution, and resource lifecycle handling across compression strategies.
Source code in topicjev/compress/base.py
max_enc_len
property
¶
Maximum context length supported by tokenizer or model configuration.
compress
abstractmethod
¶
close
¶
Offload model to CPU, release tokenizer, and clear GPU cache.
Source code in topicjev/compress/base.py
CausalCompressor
¶
Bases: CausalLMBackend, Compressor
Summarizes text using a causal language model with dynamic input-relative token budgets.
Formats prompts using chat templates (via CausalLMBackend) and restricts generated
token count to ratio * prompt_length.
Source code in topicjev/compress/causal.py
compress
¶
Summarize a list of documents in batches.
Source code in topicjev/compress/causal.py
CNNCompressor
¶
Bases: Compressor
Summarizes text using seq2seq models fine-tuned for summarization (e.g. BART, PEGASUS).
Target length is computed as ratio * max_enc_len.
Source code in topicjev/compress/seq2seq.py
load_model
¶
Load encoder-decoder seq2seq model and tokenizer.
Source code in topicjev/compress/seq2seq.py
compress
¶
Summarize documents using beam search generation.
Source code in topicjev/compress/seq2seq.py
Seq2SeqCompressor
¶
Bases: CNNCompressor
Instruction-guided seq2seq summarizer for general instruction-tuned checkpoints (e.g. FLAN-T5).
Source code in topicjev/compress/seq2seq.py
compress
¶
Format input documents with instruction prefix before running seq2seq generation.
LinguaCompressor
¶
Bases: Compressor
Performs token-level prompt pruning using LLMLingua2 without autoregressive
text generation (Pan et al., 2024)_.
.. _(Pan et al., 2024): https://arxiv.org/abs/2403.12968
Source code in topicjev/compress/lingua.py
load_model
¶
Initialize LLMLingua PromptCompressor.
Source code in topicjev/compress/lingua.py
compress
¶
Prune input documents to the configured compression rate.