summarization¶
Sequence summarization implementation.
Functions
|
Evaluate generated summaries. |
|
Summarize a given tokenized dataset. |
|
Tokenize a summarized dataset for GPT2. |
Classes
|
A transformer encoder for multi-modal sequence summarization. |
|
A simple multi-layer perceptron language connector. |
|
Collation function for sequence summarization. |
|
A transformer language connector. |
- undertale.models.summarization.tokenize_summaries_gpt2(input: str, output: str) str¶
Tokenize a summarized dataset for GPT2.
- Parameters:
input – Path to the summarized dataset.
output – Path where the tokenized summarized dataset should be written.
- Returns:
The path to the tokenized dataset.
- class undertale.models.summarization.SummarizationCollator(summary_length: int)¶
Bases:
objectCollation function for sequence summarization.
- Parameters:
summary_length – Optional maximum summary token length. Sequences are truncated after padding. Should be set to the language model’s context window minus the number of prefix tokens produced by the connector.
- class undertale.models.summarization.MLPConnector(hidden_dimensions: int, connector_dimensions: int, language_dimensions: int, language_tokens: int)¶
Bases:
ModuleA simple multi-layer perceptron language connector.
- Parameters:
hidden_dimensions – The size of the hidden state space.
connector_dimensions – Scaling factor; intermediate MLP size is
language_dimensions × connector_dimensions.language_dimensions – The size of the language state space.
language_tokens – The number of language tokens to produce.
- forward(state: Tensor, mask: Tensor | None = None) Tensor¶
Project the input tensor into language token space.
- Parameters:
state – Encoder hidden states of shape
(batch, seq_len, hidden_dimensions).mask – Optional attention mask used for pooling.
- Returns:
A batched projection into a tensor of shape
(batch, language_tokens, language_dimensions).
- class undertale.models.summarization.TransformerConnector(hidden_dimensions: int, connector_dimensions: int, language_dimensions: int, language_tokens: int)¶
Bases:
ModuleA transformer language connector.
Design inspiration taken from the paper “ClipCap: CLIP Prefix for Image Captioning.”
Uses learnable prefix queries that attend over the full encoder sequence via transformer self-attention to produce richer prefix representations than the MLP connector.
- Parameters:
hidden_dimensions – The size of the hidden state space.
connector_dimensions – Number of attention heads and transformer layers. Must evenly divide
language_dimensions.language_dimensions – The size of the language state space.
language_tokens – The number of language tokens to produce.
- forward(state: Tensor, mask: Tensor | None = None) Tensor¶
Project the input tensor into language token space.
- Parameters:
state – Encoder hidden states of shape
(batch, seq_len, hidden_dimensions).mask – Optional attention mask over the encoder sequence.
- Returns:
A batched projection into a tensor of shape
(batch, language_tokens, language_dimensions).
- class undertale.models.summarization.InstructionTraceTransformerEncoderForSequenceSummarizationGPT2(depth: int, hidden_dimensions: int, vocab_size: int, sequence_length: int, heads: int, intermediate_dimensions: int, next_token_id: int, dropout: float, eps: float, lr: float = 0.0001, warmup: float = 0.025, connector_dimensions: int = 8, language_tokens: int = 40)¶
Bases:
LightningModule,ModuleA transformer encoder for multi-modal sequence summarization.
- Parameters:
depth – The number of stacked transformer layers.
hidden_dimensions – The size of the hidden state space.
vocab_size – The size of the vocabulary.
sequence_length – The fixed size of the input vector.
heads – The number of attention heads.
intermediate_dimensions – The size of the intermediate state space.
next_token_id – The ID of the special
NEXTtoken.connector_dimensions – The size of the intermediate state space.
language_dimensions – The size of the language state space.
language_tokens – The number of language tokens to produce.
dropout – Dropout probability.
eps – Layer normalization stabalization parameter.
lr – Peak learning rate reached after warmup.
warmup – Fraction of total steps used for linear warmup.
- encode(state: Tensor, mask: Tensor | None = None) Tensor¶
Encode and compute language tokens.
- Parameters:
state – The tokenized input state tensor.
mask – Optional attention mask.
- Returns:
A tensor in language token space encoding the given input.
- forward(state: Tensor, mask: Tensor | None = None, labels: Tensor | None = None) Tensor | Tuple[Tensor, Tensor]¶
Encode and summarize the input sequence.
- Parameters:
state – The tokenized input state tensor.
mask – Optional attention mask.
labels – Optional summary ground truth tokens.
- Returns:
Language model summary logits. If
labelsare provided a tuple of summary logits and computed loss are returned.
- generate(state: Tensor, mask: Tensor | None = None, **kwargs) Tensor¶
Generate a summary from a given input.
- Parameters:
state – The tokenized input state tensor.
mask – Optional attention mask.
**kwargs – Forwarded to
GPT2LMHeadModel.generate(e.g.max_new_tokens,do_sample,temperature).
- Returns:
A tensor of generated token IDs.
- undertale.models.summarization.summarize_tokenized(input: str, output: str, tokenizer: str, checkpoint: str) str¶
Summarize a given tokenized dataset.
- Parameters:
input – Path to the tokenized dataset.
output – Path where the summarized dataset should be written.
tokenizer – Path to a trained tokenizer file.
checkpoint – Path to a trained model checkpoint.
- Returns:
The path to the summarized dataset - adds a
generatedfield containing the generated summary.
- undertale.models.summarization.evaluate_summarized(input: str, output: str) str¶
Evaluate generated summaries.
- Parameters:
input – Path to the summarized dataset.
output – Path where the evaluated dataset should be written.
- Returns:
The path where the evaluation results are written (JSON).