langflow-owt / config.py
chumengl's picture
upload model
d443994
"""HuggingFace configuration class for LangFlow."""
import transformers
class LangFlowConfig(transformers.PretrainedConfig):
"""HuggingFace configuration class for LangFlow.
LangFlow is a continuous diffusion language model that operates in embedding space.
It uses a DiT (Diffusion Transformer) backbone with adaptive layer normalization.
Key features:
- Continuous diffusion in embedding space
- Self-conditioning: uses previous predictions as additional input
- Bias (preconditioning): skip connection for improved training
- Normalized embeddings: layernorm on embedding vectors
- Learnable Gumbel proposal for gamma (log-SNR) sampling
"""
model_type = "LangFlow"
def __init__(
self,
vocab_size: int = 50257,
hidden_size: int = 768,
cond_dim: int = 128,
n_blocks: int = 12,
n_heads: int = 12,
dropout: float = 0.1,
model_length: int = 1024,
# Embedding normalization
use_normalized_embedding: bool = True,
embedding_norm_method: str = "layernorm",
# Self-conditioning
self_conditioning: bool = True,
# Bias (preconditioning) - always enabled for inference
use_bias: bool = True,
# Gumbel proposal parameters (learnable)
gumbel_loc: float = 4.723,
gumbel_scale: float = 0.852,
gumbel_cutoff: float = 1e-5,
gumbel_entropy: float = 7.02,
**kwargs
):
super().__init__(**kwargs)
self.vocab_size = vocab_size
self.hidden_size = hidden_size
self.cond_dim = cond_dim
self.n_blocks = n_blocks
self.n_heads = n_heads
self.dropout = dropout
self.model_length = model_length
# Embedding normalization
self.use_normalized_embedding = use_normalized_embedding
self.embedding_norm_method = embedding_norm_method
# Self-conditioning
self.self_conditioning = self_conditioning
# Bias (preconditioning)
self.use_bias = use_bias
# Gumbel proposal parameters
self.gumbel_loc = gumbel_loc
self.gumbel_scale = gumbel_scale
self.gumbel_cutoff = gumbel_cutoff
self.gumbel_entropy = gumbel_entropy