Model API Reference¶
free_transformer.model.FreeTransformer(config)
¶
Bases: Module
Free Transformer: Conditional VAE-based language model with latent planning.
Implements the architecture from the Free Transformer paper with: - Split decoder stack (first half for context, second half for generation) - Non-causal encoder for latent plan inference - Binary mapper for differentiable discrete sampling - Injection mechanism for plan integration
Source code in src/free_transformer/model.py
forward(tokens, mode='training')
¶
Forward pass with mode switching.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tokens
|
Tensor
|
Input token IDs [batch, seq_len] |
required |
mode
|
Literal['training', 'inference']
|
'training' uses encoder path, 'inference' samples random Z |
'training'
|
Returns:
| Name | Type | Description |
|---|---|---|
logits |
Tensor
|
Output logits [batch, seq_len, vocab_size] |
z_logits |
Optional[Tensor]
|
Encoder logits for Z (only in training mode) [batch, seq_len, latent_dim] |
Source code in src/free_transformer/model.py
generate(prompt_tokens, max_new_tokens=100, temperature=1.0, top_k=None)
¶
Autoregressive generation with random latent plans.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
prompt_tokens
|
Tensor
|
Initial tokens [batch, prompt_len] |
required |
max_new_tokens
|
int
|
Number of tokens to generate |
100
|
temperature
|
float
|
Sampling temperature |
1.0
|
top_k
|
Optional[int]
|
Top-k filtering |
None
|
Returns:
| Type | Description |
|---|---|
Tensor
|
Generated tokens [batch, prompt_len + max_new_tokens] |
Source code in src/free_transformer/model.py
free_transformer.baseline.TransformerBaseline(config)
¶
Bases: Module
Standard autoregressive Transformer without latent planning.