From c666481e5dc9b1e869da35e10720a7b918c45217 Mon Sep 17 00:00:00 2001 From: rrutmann <97447451+rrutmann@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:16:33 +0200 Subject: [PATCH 01/25] feat(mamba): Define Mamba model as in the original implementation of the authors --- src/modalities/models/mamba/__init__.py | 0 src/modalities/models/mamba/mamba_model.py | 368 +++++++++++++++++++++ 2 files changed, 368 insertions(+) create mode 100644 src/modalities/models/mamba/__init__.py create mode 100644 src/modalities/models/mamba/mamba_model.py diff --git a/src/modalities/models/mamba/__init__.py b/src/modalities/models/mamba/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py new file mode 100644 index 00000000..0a796a13 --- /dev/null +++ b/src/modalities/models/mamba/mamba_model.py @@ -0,0 +1,368 @@ +# Copyright (c) 2023, Tri Dao, Albert Gu. + +import math +from typing import Optional + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch import Tensor + +from einops import rearrange, repeat + +from mamba_ssm.ops.selective_scan_interface import selective_scan_fn, mamba_inner_fn + +try: + from causal_conv1d import causal_conv1d_fn, causal_conv1d_update +except ImportError: + causal_conv1d_fn, causal_conv1d_update = None, None + +try: + from mamba_ssm.ops.triton.selective_state_update import selective_state_update +except ImportError: + selective_state_update = None + +try: + from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn +except ImportError: + RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None + + +class Mamba(nn.Module): + def __init__( + self, + d_model, + d_state=16, + d_conv=4, + expand=2, + dt_rank="auto", + dt_min=0.001, + dt_max=0.1, + dt_init="random", + dt_scale=1.0, + dt_init_floor=1e-4, + conv_bias=True, + bias=False, + use_fast_path=True, # Fused kernel options + layer_idx=None, + device=None, + dtype=None, + ): + factory_kwargs = {"device": device, "dtype": dtype} + super().__init__() + self.d_model = d_model + self.d_state = d_state + self.d_conv = d_conv + self.expand = expand + self.d_inner = int(self.expand * self.d_model) + self.dt_rank = math.ceil(self.d_model / 16) if dt_rank == "auto" else dt_rank + self.use_fast_path = use_fast_path + self.layer_idx = layer_idx + + self.in_proj = nn.Linear(self.d_model, self.d_inner * 2, bias=bias, **factory_kwargs) + + self.conv1d = nn.Conv1d( + in_channels=self.d_inner, + out_channels=self.d_inner, + bias=conv_bias, + kernel_size=d_conv, + groups=self.d_inner, + padding=d_conv - 1, + **factory_kwargs, + ) + + self.activation = "silu" + self.act = nn.SiLU() + + self.x_proj = nn.Linear( + self.d_inner, self.dt_rank + self.d_state * 2, bias=False, **factory_kwargs + ) + self.dt_proj = nn.Linear(self.dt_rank, self.d_inner, bias=True, **factory_kwargs) + + # Initialize special dt projection to preserve variance at initialization + dt_init_std = self.dt_rank**-0.5 * dt_scale + if dt_init == "constant": + nn.init.constant_(self.dt_proj.weight, dt_init_std) + elif dt_init == "random": + nn.init.uniform_(self.dt_proj.weight, -dt_init_std, dt_init_std) + else: + raise NotImplementedError + + # Initialize dt bias so that F.softplus(dt_bias) is between dt_min and dt_max + dt = torch.exp( + torch.rand(self.d_inner, **factory_kwargs) * (math.log(dt_max) - math.log(dt_min)) + + math.log(dt_min) + ).clamp(min=dt_init_floor) + # Inverse of softplus: https://github.com/pytorch/pytorch/issues/72759 + inv_dt = dt + torch.log(-torch.expm1(-dt)) + with torch.no_grad(): + self.dt_proj.bias.copy_(inv_dt) + # Our initialization would set all Linear.bias to zero, need to mark this one as _no_reinit + self.dt_proj.bias._no_reinit = True + + # S4D real initialization + A = repeat( + torch.arange(1, self.d_state + 1, dtype=torch.float32, device=device), + "n -> d n", + d=self.d_inner, + ).contiguous() + A_log = torch.log(A) # Keep A_log in fp32 + self.A_log = nn.Parameter(A_log) + self.A_log._no_weight_decay = True + + # D "skip" parameter + self.D = nn.Parameter(torch.ones(self.d_inner, device=device)) # Keep in fp32 + self.D._no_weight_decay = True + + self.out_proj = nn.Linear(self.d_inner, self.d_model, bias=bias, **factory_kwargs) + + def forward(self, hidden_states, inference_params=None): + """ + hidden_states: (B, L, D) + Returns: same shape as hidden_states + """ + batch, seqlen, dim = hidden_states.shape + + conv_state, ssm_state = None, None + if inference_params is not None: + conv_state, ssm_state = self._get_states_from_cache(inference_params, batch) + if inference_params.seqlen_offset > 0: + # The states are updated inplace + out, _, _ = self.step(hidden_states, conv_state, ssm_state) + return out + + # We do matmul and transpose BLH -> HBL at the same time + xz = rearrange( + self.in_proj.weight @ rearrange(hidden_states, "b l d -> d (b l)"), + "d (b l) -> b d l", + l=seqlen, + ) + if self.in_proj.bias is not None: + xz = xz + rearrange(self.in_proj.bias.to(dtype=xz.dtype), "d -> d 1") + + A = -torch.exp(self.A_log.float()) # (d_inner, d_state) + # In the backward pass we write dx and dz next to each other to avoid torch.cat + if self.use_fast_path and causal_conv1d_fn is not None and inference_params is None: # Doesn't support outputting the states + out = mamba_inner_fn( + xz, + self.conv1d.weight, + self.conv1d.bias, + self.x_proj.weight, + self.dt_proj.weight, + self.out_proj.weight, + self.out_proj.bias, + A, + None, # input-dependent B + None, # input-dependent C + self.D.float(), + delta_bias=self.dt_proj.bias.float(), + delta_softplus=True, + ) + else: + x, z = xz.chunk(2, dim=1) + # Compute short convolution + if conv_state is not None: + # If we just take x[:, :, -self.d_conv :], it will error if seqlen < self.d_conv + # Instead F.pad will pad with zeros if seqlen < self.d_conv, and truncate otherwise. + conv_state.copy_(F.pad(x, (self.d_conv - x.shape[-1], 0))) # Update state (B D W) + if causal_conv1d_fn is None: + x = self.act(self.conv1d(x)[..., :seqlen]) + else: + assert self.activation in ["silu", "swish"] + x = causal_conv1d_fn( + x=x, + weight=rearrange(self.conv1d.weight, "d 1 w -> d w"), + bias=self.conv1d.bias, + activation=self.activation, + ) + + # We're careful here about the layout, to avoid extra transposes. + # We want dt to have d as the slowest moving dimension + # and L as the fastest moving dimension, since those are what the ssm_scan kernel expects. + x_dbl = self.x_proj(rearrange(x, "b d l -> (b l) d")) # (bl d) + dt, B, C = torch.split(x_dbl, [self.dt_rank, self.d_state, self.d_state], dim=-1) + dt = self.dt_proj.weight @ dt.t() + dt = rearrange(dt, "d (b l) -> b d l", l=seqlen) + B = rearrange(B, "(b l) dstate -> b dstate l", l=seqlen).contiguous() + C = rearrange(C, "(b l) dstate -> b dstate l", l=seqlen).contiguous() + assert self.activation in ["silu", "swish"] + y = selective_scan_fn( + x, + dt, + A, + B, + C, + self.D.float(), + z=z, + delta_bias=self.dt_proj.bias.float(), + delta_softplus=True, + return_last_state=ssm_state is not None, + ) + if ssm_state is not None: + y, last_state = y + ssm_state.copy_(last_state) + y = rearrange(y, "b d l -> b l d") + out = self.out_proj(y) + return out + + def step(self, hidden_states, conv_state, ssm_state): + dtype = hidden_states.dtype + assert hidden_states.shape[1] == 1, "Only support decoding with 1 token at a time for now" + xz = self.in_proj(hidden_states.squeeze(1)) # (B 2D) + x, z = xz.chunk(2, dim=-1) # (B D) + + # Conv step + if causal_conv1d_update is None: + conv_state.copy_(torch.roll(conv_state, shifts=-1, dims=-1)) # Update state (B D W) + conv_state[:, :, -1] = x + x = torch.sum(conv_state * rearrange(self.conv1d.weight, "d 1 w -> d w"), dim=-1) # (B D) + if self.conv1d.bias is not None: + x = x + self.conv1d.bias + x = self.act(x).to(dtype=dtype) + else: + x = causal_conv1d_update( + x, + conv_state, + rearrange(self.conv1d.weight, "d 1 w -> d w"), + self.conv1d.bias, + self.activation, + ) + + x_db = self.x_proj(x) # (B dt_rank+2*d_state) + dt, B, C = torch.split(x_db, [self.dt_rank, self.d_state, self.d_state], dim=-1) + # Don't add dt_bias here + dt = F.linear(dt, self.dt_proj.weight) # (B d_inner) + A = -torch.exp(self.A_log.float()) # (d_inner, d_state) + + # SSM step + if selective_state_update is None: + # Discretize A and B + dt = F.softplus(dt + self.dt_proj.bias.to(dtype=dt.dtype)) + dA = torch.exp(torch.einsum("bd,dn->bdn", dt, A)) + dB = torch.einsum("bd,bn->bdn", dt, B) + ssm_state.copy_(ssm_state * dA + rearrange(x, "b d -> b d 1") * dB) + y = torch.einsum("bdn,bn->bd", ssm_state.to(dtype), C) + y = y + self.D.to(dtype) * x + y = y * self.act(z) # (B D) + else: + y = selective_state_update( + ssm_state, x, dt, A, B, C, self.D, z=z, dt_bias=self.dt_proj.bias, dt_softplus=True + ) + + out = self.out_proj(y) + return out.unsqueeze(1), conv_state, ssm_state + + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + device = self.out_proj.weight.device + conv_dtype = self.conv1d.weight.dtype if dtype is None else dtype + conv_state = torch.zeros( + batch_size, self.d_model * self.expand, self.d_conv, device=device, dtype=conv_dtype + ) + ssm_dtype = self.dt_proj.weight.dtype if dtype is None else dtype + # ssm_dtype = torch.float32 + ssm_state = torch.zeros( + batch_size, self.d_model * self.expand, self.d_state, device=device, dtype=ssm_dtype + ) + return conv_state, ssm_state + + def _get_states_from_cache(self, inference_params, batch_size, initialize_states=False): + assert self.layer_idx is not None + if self.layer_idx not in inference_params.key_value_memory_dict: + batch_shape = (batch_size,) + conv_state = torch.zeros( + batch_size, + self.d_model * self.expand, + self.d_conv, + device=self.conv1d.weight.device, + dtype=self.conv1d.weight.dtype, + ) + ssm_state = torch.zeros( + batch_size, + self.d_model * self.expand, + self.d_state, + device=self.dt_proj.weight.device, + dtype=self.dt_proj.weight.dtype, + # dtype=torch.float32, + ) + inference_params.key_value_memory_dict[self.layer_idx] = (conv_state, ssm_state) + else: + conv_state, ssm_state = inference_params.key_value_memory_dict[self.layer_idx] + # TODO: What if batch size changes between generation, and we reuse the same states? + if initialize_states: + conv_state.zero_() + ssm_state.zero_() + return conv_state, ssm_state + + +class Block(nn.Module): + def __init__( + self, dim, mixer_cls, norm_cls=nn.LayerNorm, fused_add_norm=False, residual_in_fp32=False + ): + """ + Simple block wrapping a mixer class with LayerNorm/RMSNorm and residual connection" + + This Block has a slightly different structure compared to a regular + prenorm Transformer block. + The standard block is: LN -> MHA/MLP -> Add. + [Ref: https://arxiv.org/abs/2002.04745] + Here we have: Add -> LN -> Mixer, returning both + the hidden_states (output of the mixer) and the residual. + This is purely for performance reasons, as we can fuse add and LayerNorm. + The residual needs to be provided (except for the very first block). + """ + super().__init__() + self.residual_in_fp32 = residual_in_fp32 + self.fused_add_norm = fused_add_norm + self.mixer = mixer_cls(dim) + self.norm = norm_cls(dim) + if self.fused_add_norm: + assert RMSNorm is not None, "RMSNorm import fails" + assert isinstance( + self.norm, (nn.LayerNorm, RMSNorm) + ), "Only LayerNorm and RMSNorm are supported for fused_add_norm" + + def forward( + self, hidden_states: Tensor, residual: Optional[Tensor] = None, inference_params=None + ): + r"""Pass the input through the encoder layer. + + Args: + hidden_states: the sequence to the encoder layer (required). + residual: hidden_states = Mixer(LN(residual)) + """ + if not self.fused_add_norm: + residual = (hidden_states + residual) if residual is not None else hidden_states + hidden_states = self.norm(residual.to(dtype=self.norm.weight.dtype)) + if self.residual_in_fp32: + residual = residual.to(torch.float32) + else: + fused_add_norm_fn = rms_norm_fn if isinstance(self.norm, RMSNorm) else layer_norm_fn + hidden_states, residual = fused_add_norm_fn( + hidden_states, + self.norm.weight, + self.norm.bias, + residual=residual, + prenorm=True, + residual_in_fp32=self.residual_in_fp32, + eps=self.norm.eps, + ) + hidden_states = self.mixer(hidden_states, inference_params=inference_params) + return hidden_states, residual + + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + return self.mixer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + + +if __name__ == '__main__': + batch, length, dim = 2, 64, 16 + x = torch.randn(batch, length, dim).to("cuda") + model = Mamba( + # This module uses roughly 3 * expand * d_model^2 parameters + d_model=dim, # Model dimension d_model + d_state=16, # SSM state expansion factor + d_conv=4, # Local convolution width + expand=2, # Block expansion factor + ).to("cuda") + y = model(x) + assert y.shape == x.shape + print(y) From 060aa44266d8edc4c3291023bc2c728fb276280e Mon Sep 17 00:00:00 2001 From: rrutmann <97447451+rrutmann@users.noreply.github.com> Date: Mon, 15 Apr 2024 11:42:40 +0200 Subject: [PATCH 02/25] feat(mamba): Add full language model based on mamba blocks --- .../models/mamba/mixer_seq_simple.py | 264 ++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 src/modalities/models/mamba/mixer_seq_simple.py diff --git a/src/modalities/models/mamba/mixer_seq_simple.py b/src/modalities/models/mamba/mixer_seq_simple.py new file mode 100644 index 00000000..79fb64c5 --- /dev/null +++ b/src/modalities/models/mamba/mixer_seq_simple.py @@ -0,0 +1,264 @@ +# Copyright (c) 2023, Albert Gu, Tri Dao. + +import math +from functools import partial +import json +import os + +from collections import namedtuple + +import torch +import torch.nn as nn + +from mamba_ssm.models.config_mamba import MambaConfig +from mamba_ssm.modules.mamba_simple import Mamba, Block +from mamba_ssm.utils.generation import GenerationMixin +from mamba_ssm.utils.hf import load_config_hf, load_state_dict_hf + +try: + from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn +except ImportError: + RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None + + +def create_block( + d_model, + ssm_cfg=None, + norm_epsilon=1e-5, + rms_norm=False, + residual_in_fp32=False, + fused_add_norm=False, + layer_idx=None, + device=None, + dtype=None, +): + if ssm_cfg is None: + ssm_cfg = {} + factory_kwargs = {"device": device, "dtype": dtype} + mixer_cls = partial(Mamba, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) + norm_cls = partial( + nn.LayerNorm if not rms_norm else RMSNorm, eps=norm_epsilon, **factory_kwargs + ) + block = Block( + d_model, + mixer_cls, + norm_cls=norm_cls, + fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32, + ) + block.layer_idx = layer_idx + return block + + +# https://github.com/huggingface/transformers/blob/c28d04e9e252a1a099944e325685f14d242ecdcd/src/transformers/models/gpt2/modeling_gpt2.py#L454 +def _init_weights( + module, + n_layer, + initializer_range=0.02, # Now only used for embedding layer. + rescale_prenorm_residual=True, + n_residuals_per_layer=1, # Change to 2 if we have MLP +): + if isinstance(module, nn.Linear): + if module.bias is not None: + if not getattr(module.bias, "_no_reinit", False): + nn.init.zeros_(module.bias) + elif isinstance(module, nn.Embedding): + nn.init.normal_(module.weight, std=initializer_range) + + if rescale_prenorm_residual: + # Reinitialize selected weights subject to the OpenAI GPT-2 Paper Scheme: + # > A modified initialization which accounts for the accumulation on the residual path with model depth. Scale + # > the weights of residual layers at initialization by a factor of 1/√N where N is the # of residual layers. + # > -- GPT-2 :: https://openai.com/blog/better-language-models/ + # + # Reference (Megatron-LM): https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/model/gpt_model.py + for name, p in module.named_parameters(): + if name in ["out_proj.weight", "fc2.weight"]: + # Special Scaled Initialization --> There are 2 Layer Norms per Transformer Block + # Following Pytorch init, except scale by 1/sqrt(2 * n_layer) + # We need to reinit p since this code could be called multiple times + # Having just p *= scale would repeatedly scale it down + nn.init.kaiming_uniform_(p, a=math.sqrt(5)) + with torch.no_grad(): + p /= math.sqrt(n_residuals_per_layer * n_layer) + + +class MixerModel(nn.Module): + def __init__( + self, + d_model: int, + n_layer: int, + vocab_size: int, + ssm_cfg=None, + norm_epsilon: float = 1e-5, + rms_norm: bool = False, + initializer_cfg=None, + fused_add_norm=False, + residual_in_fp32=False, + device=None, + dtype=None, + ) -> None: + factory_kwargs = {"device": device, "dtype": dtype} + super().__init__() + self.residual_in_fp32 = residual_in_fp32 + + self.embedding = nn.Embedding(vocab_size, d_model, **factory_kwargs) + + # We change the order of residual and layer norm: + # Instead of LN -> Attn / MLP -> Add, we do: + # Add -> LN -> Attn / MLP / Mixer, returning both the residual branch (output of Add) and + # the main branch (output of MLP / Mixer). The model definition is unchanged. + # This is for performance reason: we can fuse add + layer_norm. + self.fused_add_norm = fused_add_norm + if self.fused_add_norm: + if layer_norm_fn is None or rms_norm_fn is None: + raise ImportError("Failed to import Triton LayerNorm / RMSNorm kernels") + + self.layers = nn.ModuleList( + [ + create_block( + d_model, + ssm_cfg=ssm_cfg, + norm_epsilon=norm_epsilon, + rms_norm=rms_norm, + residual_in_fp32=residual_in_fp32, + fused_add_norm=fused_add_norm, + layer_idx=i, + **factory_kwargs, + ) + for i in range(n_layer) + ] + ) + + self.norm_f = (nn.LayerNorm if not rms_norm else RMSNorm)( + d_model, eps=norm_epsilon, **factory_kwargs + ) + + self.apply( + partial( + _init_weights, + n_layer=n_layer, + **(initializer_cfg if initializer_cfg is not None else {}), + ) + ) + + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + return { + i: layer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + for i, layer in enumerate(self.layers) + } + + def forward(self, input_ids, inference_params=None): + hidden_states = self.embedding(input_ids) + residual = None + for layer in self.layers: + hidden_states, residual = layer( + hidden_states, residual, inference_params=inference_params + ) + if not self.fused_add_norm: + residual = (hidden_states + residual) if residual is not None else hidden_states + hidden_states = self.norm_f(residual.to(dtype=self.norm_f.weight.dtype)) + else: + # Set prenorm=False here since we don't need the residual + fused_add_norm_fn = rms_norm_fn if isinstance(self.norm_f, RMSNorm) else layer_norm_fn + hidden_states = fused_add_norm_fn( + hidden_states, + self.norm_f.weight, + self.norm_f.bias, + eps=self.norm_f.eps, + residual=residual, + prenorm=False, + residual_in_fp32=self.residual_in_fp32, + ) + return hidden_states + + +class MambaLMHeadModel(nn.Module, GenerationMixin): + + def __init__( + self, + config: MambaConfig, + initializer_cfg=None, + device=None, + dtype=None, + ) -> None: + self.config = config + d_model = config.d_model + n_layer = config.n_layer + vocab_size = config.vocab_size + ssm_cfg = config.ssm_cfg + rms_norm = config.rms_norm + residual_in_fp32 = config.residual_in_fp32 + fused_add_norm = config.fused_add_norm + pad_vocab_size_multiple = config.pad_vocab_size_multiple + factory_kwargs = {"device": device, "dtype": dtype} + + super().__init__() + if vocab_size % pad_vocab_size_multiple != 0: + vocab_size += pad_vocab_size_multiple - (vocab_size % pad_vocab_size_multiple) + self.backbone = MixerModel( + d_model=d_model, + n_layer=n_layer, + vocab_size=vocab_size, + ssm_cfg=ssm_cfg, + rms_norm=rms_norm, + initializer_cfg=initializer_cfg, + fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32, + **factory_kwargs, + ) + self.lm_head = nn.Linear(d_model, vocab_size, bias=False, **factory_kwargs) + + # Initialize weights and apply final processing + self.apply( + partial( + _init_weights, + n_layer=n_layer, + **(initializer_cfg if initializer_cfg is not None else {}), + ) + ) + self.tie_weights() + + def tie_weights(self): + if self.config.tie_embeddings: + self.lm_head.weight = self.backbone.embedding.weight + + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + return self.backbone.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + + def forward(self, input_ids, position_ids=None, inference_params=None, num_last_tokens=0): + """ + "position_ids" is just to be compatible with Transformer generation. We don't use it. + num_last_tokens: if > 0, only return the logits for the last n tokens + """ + hidden_states = self.backbone(input_ids, inference_params=inference_params) + if num_last_tokens > 0: + hidden_states = hidden_states[:, -num_last_tokens:] + lm_logits = self.lm_head(hidden_states) + CausalLMOutput = namedtuple("CausalLMOutput", ["logits"]) + return CausalLMOutput(logits=lm_logits) + + @classmethod + def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwargs): + config_data = load_config_hf(pretrained_model_name) + config = MambaConfig(**config_data) + model = cls(config, device=device, dtype=dtype, **kwargs) + model.load_state_dict(load_state_dict_hf(pretrained_model_name, device=device, dtype=dtype)) + return model + + def save_pretrained(self, save_directory): + """ + Minimal implementation of save_pretrained for MambaLMHeadModel. + Save the model and its configuration file to a directory. + """ + # Ensure save_directory exists + os.makedirs(save_directory, exist_ok=True) + + # Save the model's state_dict + model_path = os.path.join(save_directory, 'pytorch_model.bin') + torch.save(self.state_dict(), model_path) + + # Save the configuration of the model + config_path = os.path.join(save_directory, 'config.json') + with open(config_path, 'w') as f: + json.dump(self.config.__dict__, f) From 04c40463bb81813c23d1e1590d929eb4ad55b80d Mon Sep 17 00:00:00 2001 From: ajude Date: Mon, 15 Apr 2024 14:15:17 +0200 Subject: [PATCH 03/25] feat(models): Added main function for mamba model. --- src/modalities/models/mamba/mamba_model.py | 4 +++- src/modalities/models/mamba/mixer_seq_simple.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index 0a796a13..e98967f5 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -131,7 +131,7 @@ def forward(self, hidden_states, inference_params=None): out, _, _ = self.step(hidden_states, conv_state, ssm_state) return out - # We do matmul and transpose BLH -> HBL at the same time + # We do matmul and transpose BLH -> HBL at the same time (Batch size, sequence length, hidden dim) xz = rearrange( self.in_proj.weight @ rearrange(hidden_states, "b l d -> d (b l)"), "d (b l) -> b d l", @@ -209,6 +209,8 @@ def step(self, hidden_states, conv_state, ssm_state): dtype = hidden_states.dtype assert hidden_states.shape[1] == 1, "Only support decoding with 1 token at a time for now" xz = self.in_proj(hidden_states.squeeze(1)) # (B 2D) + + # x goes to the left and z goes to the right in the mamba block x, z = xz.chunk(2, dim=-1) # (B D) # Conv step diff --git a/src/modalities/models/mamba/mixer_seq_simple.py b/src/modalities/models/mamba/mixer_seq_simple.py index 79fb64c5..c3292df1 100644 --- a/src/modalities/models/mamba/mixer_seq_simple.py +++ b/src/modalities/models/mamba/mixer_seq_simple.py @@ -262,3 +262,18 @@ def save_pretrained(self, save_directory): config_path = os.path.join(save_directory, 'config.json') with open(config_path, 'w') as f: json.dump(self.config.__dict__, f) + + +if __name__ == '__main__': + batch, length, dim = 2, 64, 16 + vocab_size = 1024 + n_layers = 2 + x = torch.randint(0, vocab_size, (batch, length)).to("cuda") + model = MixerModel( + # This module uses roughly 3 * expand * d_model^2 parameters + d_model=dim, # Model dimension d_model + n_layer=n_layers, + vocab_size=vocab_size + ).to("cuda") + y = model(x) + print(y) \ No newline at end of file From 20d714bef436e04ae2e85e7c0de3180fad605a37 Mon Sep 17 00:00:00 2001 From: ajude Date: Mon, 15 Apr 2024 15:23:02 +0200 Subject: [PATCH 04/25] fix(models): Added seed as a parameter in the gpt2 model. --- src/modalities/models/gpt2/gpt2_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modalities/models/gpt2/gpt2_model.py b/src/modalities/models/gpt2/gpt2_model.py index 7db8e068..74277dbc 100644 --- a/src/modalities/models/gpt2/gpt2_model.py +++ b/src/modalities/models/gpt2/gpt2_model.py @@ -359,8 +359,10 @@ def __init__( attention_norm: nn.Module, ffn_norm: nn.Module, lm_head_norm: nn.Module, + seed: int = None ): - super().__init__() + + super().__init__(seed=seed) self.sample_key = sample_key self.prediction_key = prediction_key self.block_size = block_size From e897f0cbca3f79e767b4162612b1adb4e2259220 Mon Sep 17 00:00:00 2001 From: ajude Date: Mon, 15 Apr 2024 15:52:59 +0200 Subject: [PATCH 05/25] feat(models): Renamed the mamba files and Added MambaLMHead to the main(). --- src/modalities/models/mamba/mamba_block.py | 370 +++++++++++ src/modalities/models/mamba/mamba_model.py | 612 ++++++++---------- .../models/mamba/mixer_seq_simple.py | 279 -------- 3 files changed, 656 insertions(+), 605 deletions(-) create mode 100644 src/modalities/models/mamba/mamba_block.py delete mode 100644 src/modalities/models/mamba/mixer_seq_simple.py diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py new file mode 100644 index 00000000..4a68e307 --- /dev/null +++ b/src/modalities/models/mamba/mamba_block.py @@ -0,0 +1,370 @@ +# Copyright (c) 2023, Tri Dao, Albert Gu. + +import math +from typing import Optional + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch import Tensor + +from einops import rearrange, repeat + +from mamba_ssm.ops.selective_scan_interface import selective_scan_fn, mamba_inner_fn + +try: + from causal_conv1d import causal_conv1d_fn, causal_conv1d_update +except ImportError: + causal_conv1d_fn, causal_conv1d_update = None, None + +try: + from mamba_ssm.ops.triton.selective_state_update import selective_state_update +except ImportError: + selective_state_update = None + +try: + from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn +except ImportError: + RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None + + +class MambaBlock(nn.Module): + def __init__( + self, + d_model, + d_state=16, + d_conv=4, + expand=2, + dt_rank="auto", + dt_min=0.001, + dt_max=0.1, + dt_init="random", + dt_scale=1.0, + dt_init_floor=1e-4, + conv_bias=True, + bias=False, + use_fast_path=True, # Fused kernel options + layer_idx=None, + device=None, + dtype=None, + ): + factory_kwargs = {"device": device, "dtype": dtype} + super().__init__() + self.d_model = d_model + self.d_state = d_state + self.d_conv = d_conv + self.expand = expand + self.d_inner = int(self.expand * self.d_model) + self.dt_rank = math.ceil(self.d_model / 16) if dt_rank == "auto" else dt_rank + self.use_fast_path = use_fast_path + self.layer_idx = layer_idx + + self.in_proj = nn.Linear(self.d_model, self.d_inner * 2, bias=bias, **factory_kwargs) + + self.conv1d = nn.Conv1d( + in_channels=self.d_inner, + out_channels=self.d_inner, + bias=conv_bias, + kernel_size=d_conv, + groups=self.d_inner, + padding=d_conv - 1, + **factory_kwargs, + ) + + self.activation = "silu" + self.act = nn.SiLU() + + self.x_proj = nn.Linear( + self.d_inner, self.dt_rank + self.d_state * 2, bias=False, **factory_kwargs + ) + self.dt_proj = nn.Linear(self.dt_rank, self.d_inner, bias=True, **factory_kwargs) + + # Initialize special dt projection to preserve variance at initialization + dt_init_std = self.dt_rank**-0.5 * dt_scale + if dt_init == "constant": + nn.init.constant_(self.dt_proj.weight, dt_init_std) + elif dt_init == "random": + nn.init.uniform_(self.dt_proj.weight, -dt_init_std, dt_init_std) + else: + raise NotImplementedError + + # Initialize dt bias so that F.softplus(dt_bias) is between dt_min and dt_max + dt = torch.exp( + torch.rand(self.d_inner, **factory_kwargs) * (math.log(dt_max) - math.log(dt_min)) + + math.log(dt_min) + ).clamp(min=dt_init_floor) + # Inverse of softplus: https://github.com/pytorch/pytorch/issues/72759 + inv_dt = dt + torch.log(-torch.expm1(-dt)) + with torch.no_grad(): + self.dt_proj.bias.copy_(inv_dt) + # Our initialization would set all Linear.bias to zero, need to mark this one as _no_reinit + self.dt_proj.bias._no_reinit = True + + # S4D real initialization + A = repeat( + torch.arange(1, self.d_state + 1, dtype=torch.float32, device=device), + "n -> d n", + d=self.d_inner, + ).contiguous() + A_log = torch.log(A) # Keep A_log in fp32 + self.A_log = nn.Parameter(A_log) + self.A_log._no_weight_decay = True + + # D "skip" parameter + self.D = nn.Parameter(torch.ones(self.d_inner, device=device)) # Keep in fp32 + self.D._no_weight_decay = True + + self.out_proj = nn.Linear(self.d_inner, self.d_model, bias=bias, **factory_kwargs) + + def forward(self, hidden_states, inference_params=None): + """ + hidden_states: (B, L, D) + Returns: same shape as hidden_states + """ + batch, seqlen, dim = hidden_states.shape + + conv_state, ssm_state = None, None + if inference_params is not None: + conv_state, ssm_state = self._get_states_from_cache(inference_params, batch) + if inference_params.seqlen_offset > 0: + # The states are updated inplace + out, _, _ = self.step(hidden_states, conv_state, ssm_state) + return out + + # We do matmul and transpose BLH -> HBL at the same time (Batch size, sequence length, hidden dim) + xz = rearrange( + self.in_proj.weight @ rearrange(hidden_states, "b l d -> d (b l)"), + "d (b l) -> b d l", + l=seqlen, + ) + if self.in_proj.bias is not None: + xz = xz + rearrange(self.in_proj.bias.to(dtype=xz.dtype), "d -> d 1") + + A = -torch.exp(self.A_log.float()) # (d_inner, d_state) + # In the backward pass we write dx and dz next to each other to avoid torch.cat + if self.use_fast_path and causal_conv1d_fn is not None and inference_params is None: # Doesn't support outputting the states + out = mamba_inner_fn( + xz, + self.conv1d.weight, + self.conv1d.bias, + self.x_proj.weight, + self.dt_proj.weight, + self.out_proj.weight, + self.out_proj.bias, + A, + None, # input-dependent B + None, # input-dependent C + self.D.float(), + delta_bias=self.dt_proj.bias.float(), + delta_softplus=True, + ) + else: + x, z = xz.chunk(2, dim=1) + # Compute short convolution + if conv_state is not None: + # If we just take x[:, :, -self.d_conv :], it will error if seqlen < self.d_conv + # Instead F.pad will pad with zeros if seqlen < self.d_conv, and truncate otherwise. + conv_state.copy_(F.pad(x, (self.d_conv - x.shape[-1], 0))) # Update state (B D W) + if causal_conv1d_fn is None: + x = self.act(self.conv1d(x)[..., :seqlen]) + else: + assert self.activation in ["silu", "swish"] + x = causal_conv1d_fn( + x=x, + weight=rearrange(self.conv1d.weight, "d 1 w -> d w"), + bias=self.conv1d.bias, + activation=self.activation, + ) + + # We're careful here about the layout, to avoid extra transposes. + # We want dt to have d as the slowest moving dimension + # and L as the fastest moving dimension, since those are what the ssm_scan kernel expects. + x_dbl = self.x_proj(rearrange(x, "b d l -> (b l) d")) # (bl d) + dt, B, C = torch.split(x_dbl, [self.dt_rank, self.d_state, self.d_state], dim=-1) + dt = self.dt_proj.weight @ dt.t() + dt = rearrange(dt, "d (b l) -> b d l", l=seqlen) + B = rearrange(B, "(b l) dstate -> b dstate l", l=seqlen).contiguous() + C = rearrange(C, "(b l) dstate -> b dstate l", l=seqlen).contiguous() + assert self.activation in ["silu", "swish"] + y = selective_scan_fn( + x, + dt, + A, + B, + C, + self.D.float(), + z=z, + delta_bias=self.dt_proj.bias.float(), + delta_softplus=True, + return_last_state=ssm_state is not None, + ) + if ssm_state is not None: + y, last_state = y + ssm_state.copy_(last_state) + y = rearrange(y, "b d l -> b l d") + out = self.out_proj(y) + return out + + def step(self, hidden_states, conv_state, ssm_state): + dtype = hidden_states.dtype + assert hidden_states.shape[1] == 1, "Only support decoding with 1 token at a time for now" + xz = self.in_proj(hidden_states.squeeze(1)) # (B 2D) + + # x goes to the left and z goes to the right in the mamba block + x, z = xz.chunk(2, dim=-1) # (B D) + + # Conv step + if causal_conv1d_update is None: + conv_state.copy_(torch.roll(conv_state, shifts=-1, dims=-1)) # Update state (B D W) + conv_state[:, :, -1] = x + x = torch.sum(conv_state * rearrange(self.conv1d.weight, "d 1 w -> d w"), dim=-1) # (B D) + if self.conv1d.bias is not None: + x = x + self.conv1d.bias + x = self.act(x).to(dtype=dtype) + else: + x = causal_conv1d_update( + x, + conv_state, + rearrange(self.conv1d.weight, "d 1 w -> d w"), + self.conv1d.bias, + self.activation, + ) + + x_db = self.x_proj(x) # (B dt_rank+2*d_state) + dt, B, C = torch.split(x_db, [self.dt_rank, self.d_state, self.d_state], dim=-1) + # Don't add dt_bias here + dt = F.linear(dt, self.dt_proj.weight) # (B d_inner) + A = -torch.exp(self.A_log.float()) # (d_inner, d_state) + + # SSM step + if selective_state_update is None: + # Discretize A and B + dt = F.softplus(dt + self.dt_proj.bias.to(dtype=dt.dtype)) + dA = torch.exp(torch.einsum("bd,dn->bdn", dt, A)) + dB = torch.einsum("bd,bn->bdn", dt, B) + ssm_state.copy_(ssm_state * dA + rearrange(x, "b d -> b d 1") * dB) + y = torch.einsum("bdn,bn->bd", ssm_state.to(dtype), C) + y = y + self.D.to(dtype) * x + y = y * self.act(z) # (B D) + else: + y = selective_state_update( + ssm_state, x, dt, A, B, C, self.D, z=z, dt_bias=self.dt_proj.bias, dt_softplus=True + ) + + out = self.out_proj(y) + return out.unsqueeze(1), conv_state, ssm_state + + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + device = self.out_proj.weight.device + conv_dtype = self.conv1d.weight.dtype if dtype is None else dtype + conv_state = torch.zeros( + batch_size, self.d_model * self.expand, self.d_conv, device=device, dtype=conv_dtype + ) + ssm_dtype = self.dt_proj.weight.dtype if dtype is None else dtype + # ssm_dtype = torch.float32 + ssm_state = torch.zeros( + batch_size, self.d_model * self.expand, self.d_state, device=device, dtype=ssm_dtype + ) + return conv_state, ssm_state + + def _get_states_from_cache(self, inference_params, batch_size, initialize_states=False): + assert self.layer_idx is not None + if self.layer_idx not in inference_params.key_value_memory_dict: + batch_shape = (batch_size,) + conv_state = torch.zeros( + batch_size, + self.d_model * self.expand, + self.d_conv, + device=self.conv1d.weight.device, + dtype=self.conv1d.weight.dtype, + ) + ssm_state = torch.zeros( + batch_size, + self.d_model * self.expand, + self.d_state, + device=self.dt_proj.weight.device, + dtype=self.dt_proj.weight.dtype, + # dtype=torch.float32, + ) + inference_params.key_value_memory_dict[self.layer_idx] = (conv_state, ssm_state) + else: + conv_state, ssm_state = inference_params.key_value_memory_dict[self.layer_idx] + # TODO: What if batch size changes between generation, and we reuse the same states? + if initialize_states: + conv_state.zero_() + ssm_state.zero_() + return conv_state, ssm_state + + +class Block(nn.Module): + def __init__( + self, dim, mixer_cls, norm_cls=nn.LayerNorm, fused_add_norm=False, residual_in_fp32=False + ): + """ + Simple block wrapping a mixer class with LayerNorm/RMSNorm and residual connection" + + This Block has a slightly different structure compared to a regular + prenorm Transformer block. + The standard block is: LN -> MHA/MLP -> Add. + [Ref: https://arxiv.org/abs/2002.04745] + Here we have: Add -> LN -> Mixer, returning both + the hidden_states (output of the mixer) and the residual. + This is purely for performance reasons, as we can fuse add and LayerNorm. + The residual needs to be provided (except for the very first block). + """ + super().__init__() + self.residual_in_fp32 = residual_in_fp32 + self.fused_add_norm = fused_add_norm + self.mixer = mixer_cls(dim) + self.norm = norm_cls(dim) + if self.fused_add_norm: + assert RMSNorm is not None, "RMSNorm import fails" + assert isinstance( + self.norm, (nn.LayerNorm, RMSNorm) + ), "Only LayerNorm and RMSNorm are supported for fused_add_norm" + + def forward( + self, hidden_states: Tensor, residual: Optional[Tensor] = None, inference_params=None + ): + r"""Pass the input through the encoder layer. + + Args: + hidden_states: the sequence to the encoder layer (required). + residual: hidden_states = Mixer(LN(residual)) + """ + if not self.fused_add_norm: + residual = (hidden_states + residual) if residual is not None else hidden_states + hidden_states = self.norm(residual.to(dtype=self.norm.weight.dtype)) + if self.residual_in_fp32: + residual = residual.to(torch.float32) + else: + fused_add_norm_fn = rms_norm_fn if isinstance(self.norm, RMSNorm) else layer_norm_fn + hidden_states, residual = fused_add_norm_fn( + hidden_states, + self.norm.weight, + self.norm.bias, + residual=residual, + prenorm=True, + residual_in_fp32=self.residual_in_fp32, + eps=self.norm.eps, + ) + hidden_states = self.mixer(hidden_states, inference_params=inference_params) + return hidden_states, residual + + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + return self.mixer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + + +if __name__ == '__main__': + batch, length, dim = 2, 64, 16 + x = torch.randn(batch, length, dim).to("cuda") + model = MambaBlock( + # This module uses roughly 3 * expand * d_model^2 parameters + d_model=dim, # Model dimension d_model + d_state=16, # SSM state expansion factor + d_conv=4, # Local convolution width + expand=2, # Block expansion factor + ).to("cuda") + y = model(x) + assert y.shape == x.shape + print(y) diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index e98967f5..cad7e30b 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -1,26 +1,23 @@ -# Copyright (c) 2023, Tri Dao, Albert Gu. +# Copyright (c) 2023, Albert Gu, Tri Dao. import math -from typing import Optional +from dataclasses import field +from functools import partial +import json +import os + +from collections import namedtuple +from typing import Dict import torch import torch.nn as nn -import torch.nn.functional as F -from torch import Tensor -from einops import rearrange, repeat +from mamba_ssm.models.config_mamba import MambaConfig +from mamba_ssm.modules.mamba_simple import Mamba, Block +from mamba_ssm.utils.generation import GenerationMixin +from mamba_ssm.utils.hf import load_config_hf, load_state_dict_hf -from mamba_ssm.ops.selective_scan_interface import selective_scan_fn, mamba_inner_fn - -try: - from causal_conv1d import causal_conv1d_fn, causal_conv1d_update -except ImportError: - causal_conv1d_fn, causal_conv1d_update = None, None - -try: - from mamba_ssm.ops.triton.selective_state_update import selective_state_update -except ImportError: - selective_state_update = None +from modalities.models.model import NNModel try: from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn @@ -28,343 +25,306 @@ RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None -class Mamba(nn.Module): - def __init__( - self, +def create_block( d_model, - d_state=16, - d_conv=4, - expand=2, - dt_rank="auto", - dt_min=0.001, - dt_max=0.1, - dt_init="random", - dt_scale=1.0, - dt_init_floor=1e-4, - conv_bias=True, - bias=False, - use_fast_path=True, # Fused kernel options + ssm_cfg=None, + norm_epsilon=1e-5, + rms_norm=False, + residual_in_fp32=False, + fused_add_norm=False, layer_idx=None, device=None, dtype=None, - ): +): + if ssm_cfg is None: + ssm_cfg = {} + factory_kwargs = {"device": device, "dtype": dtype} + mixer_cls = partial(Mamba, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) + norm_cls = partial( + nn.LayerNorm if not rms_norm else RMSNorm, eps=norm_epsilon, **factory_kwargs + ) + block = Block( + d_model, + mixer_cls, + norm_cls=norm_cls, + fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32, + ) + block.layer_idx = layer_idx + return block + + +# https://github.com/huggingface/transformers/blob/c28d04e9e252a1a099944e325685f14d242ecdcd/src/transformers/models/gpt2/modeling_gpt2.py#L454 +def _init_weights( + module, + n_layer, + initializer_range=0.02, # Now only used for embedding layer. + rescale_prenorm_residual=True, + n_residuals_per_layer=1, # Change to 2 if we have MLP +): + if isinstance(module, nn.Linear): + if module.bias is not None: + if not getattr(module.bias, "_no_reinit", False): + nn.init.zeros_(module.bias) + elif isinstance(module, nn.Embedding): + nn.init.normal_(module.weight, std=initializer_range) + + if rescale_prenorm_residual: + # Reinitialize selected weights subject to the OpenAI GPT-2 Paper Scheme: + # > A modified initialization which accounts for the accumulation on the residual path with model depth. Scale + # > the weights of residual layers at initialization by a factor of 1/√N where N is the # of residual layers. + # > -- GPT-2 :: https://openai.com/blog/better-language-models/ + # + # Reference (Megatron-LM): https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/model/gpt_model.py + for name, p in module.named_parameters(): + if name in ["out_proj.weight", "fc2.weight"]: + # Special Scaled Initialization --> There are 2 Layer Norms per Transformer Block + # Following Pytorch init, except scale by 1/sqrt(2 * n_layer) + # We need to reinit p since this code could be called multiple times + # Having just p *= scale would repeatedly scale it down + nn.init.kaiming_uniform_(p, a=math.sqrt(5)) + with torch.no_grad(): + p /= math.sqrt(n_residuals_per_layer * n_layer) + + +class MixerModel(nn.Module): + def __init__( + self, + d_model: int, + n_layer: int, + vocab_size: int, + ssm_cfg=None, + norm_epsilon: float = 1e-5, + rms_norm: bool = False, + initializer_cfg=None, + fused_add_norm=False, + residual_in_fp32=False, + device=None, + dtype=None, + ) -> None: factory_kwargs = {"device": device, "dtype": dtype} super().__init__() - self.d_model = d_model - self.d_state = d_state - self.d_conv = d_conv - self.expand = expand - self.d_inner = int(self.expand * self.d_model) - self.dt_rank = math.ceil(self.d_model / 16) if dt_rank == "auto" else dt_rank - self.use_fast_path = use_fast_path - self.layer_idx = layer_idx - - self.in_proj = nn.Linear(self.d_model, self.d_inner * 2, bias=bias, **factory_kwargs) - - self.conv1d = nn.Conv1d( - in_channels=self.d_inner, - out_channels=self.d_inner, - bias=conv_bias, - kernel_size=d_conv, - groups=self.d_inner, - padding=d_conv - 1, - **factory_kwargs, - ) + self.residual_in_fp32 = residual_in_fp32 - self.activation = "silu" - self.act = nn.SiLU() + self.embedding = nn.Embedding(vocab_size, d_model, **factory_kwargs) - self.x_proj = nn.Linear( - self.d_inner, self.dt_rank + self.d_state * 2, bias=False, **factory_kwargs + # We change the order of residual and layer norm: + # Instead of LN -> Attn / MLP -> Add, we do: + # Add -> LN -> Attn / MLP / Mixer, returning both the residual branch (output of Add) and + # the main branch (output of MLP / Mixer). The model definition is unchanged. + # This is for performance reason: we can fuse add + layer_norm. + self.fused_add_norm = fused_add_norm + if self.fused_add_norm: + if layer_norm_fn is None or rms_norm_fn is None: + raise ImportError("Failed to import Triton LayerNorm / RMSNorm kernels") + + self.layers = nn.ModuleList( + [ + create_block( + d_model, + ssm_cfg=ssm_cfg, + norm_epsilon=norm_epsilon, + rms_norm=rms_norm, + residual_in_fp32=residual_in_fp32, + fused_add_norm=fused_add_norm, + layer_idx=i, + **factory_kwargs, + ) + for i in range(n_layer) + ] ) - self.dt_proj = nn.Linear(self.dt_rank, self.d_inner, bias=True, **factory_kwargs) - - # Initialize special dt projection to preserve variance at initialization - dt_init_std = self.dt_rank**-0.5 * dt_scale - if dt_init == "constant": - nn.init.constant_(self.dt_proj.weight, dt_init_std) - elif dt_init == "random": - nn.init.uniform_(self.dt_proj.weight, -dt_init_std, dt_init_std) - else: - raise NotImplementedError - - # Initialize dt bias so that F.softplus(dt_bias) is between dt_min and dt_max - dt = torch.exp( - torch.rand(self.d_inner, **factory_kwargs) * (math.log(dt_max) - math.log(dt_min)) - + math.log(dt_min) - ).clamp(min=dt_init_floor) - # Inverse of softplus: https://github.com/pytorch/pytorch/issues/72759 - inv_dt = dt + torch.log(-torch.expm1(-dt)) - with torch.no_grad(): - self.dt_proj.bias.copy_(inv_dt) - # Our initialization would set all Linear.bias to zero, need to mark this one as _no_reinit - self.dt_proj.bias._no_reinit = True - - # S4D real initialization - A = repeat( - torch.arange(1, self.d_state + 1, dtype=torch.float32, device=device), - "n -> d n", - d=self.d_inner, - ).contiguous() - A_log = torch.log(A) # Keep A_log in fp32 - self.A_log = nn.Parameter(A_log) - self.A_log._no_weight_decay = True - - # D "skip" parameter - self.D = nn.Parameter(torch.ones(self.d_inner, device=device)) # Keep in fp32 - self.D._no_weight_decay = True - - self.out_proj = nn.Linear(self.d_inner, self.d_model, bias=bias, **factory_kwargs) - - def forward(self, hidden_states, inference_params=None): - """ - hidden_states: (B, L, D) - Returns: same shape as hidden_states - """ - batch, seqlen, dim = hidden_states.shape - - conv_state, ssm_state = None, None - if inference_params is not None: - conv_state, ssm_state = self._get_states_from_cache(inference_params, batch) - if inference_params.seqlen_offset > 0: - # The states are updated inplace - out, _, _ = self.step(hidden_states, conv_state, ssm_state) - return out - - # We do matmul and transpose BLH -> HBL at the same time (Batch size, sequence length, hidden dim) - xz = rearrange( - self.in_proj.weight @ rearrange(hidden_states, "b l d -> d (b l)"), - "d (b l) -> b d l", - l=seqlen, + + self.norm_f = (nn.LayerNorm if not rms_norm else RMSNorm)( + d_model, eps=norm_epsilon, **factory_kwargs ) - if self.in_proj.bias is not None: - xz = xz + rearrange(self.in_proj.bias.to(dtype=xz.dtype), "d -> d 1") - - A = -torch.exp(self.A_log.float()) # (d_inner, d_state) - # In the backward pass we write dx and dz next to each other to avoid torch.cat - if self.use_fast_path and causal_conv1d_fn is not None and inference_params is None: # Doesn't support outputting the states - out = mamba_inner_fn( - xz, - self.conv1d.weight, - self.conv1d.bias, - self.x_proj.weight, - self.dt_proj.weight, - self.out_proj.weight, - self.out_proj.bias, - A, - None, # input-dependent B - None, # input-dependent C - self.D.float(), - delta_bias=self.dt_proj.bias.float(), - delta_softplus=True, + + self.apply( + partial( + _init_weights, + n_layer=n_layer, + **(initializer_cfg if initializer_cfg is not None else {}), ) - else: - x, z = xz.chunk(2, dim=1) - # Compute short convolution - if conv_state is not None: - # If we just take x[:, :, -self.d_conv :], it will error if seqlen < self.d_conv - # Instead F.pad will pad with zeros if seqlen < self.d_conv, and truncate otherwise. - conv_state.copy_(F.pad(x, (self.d_conv - x.shape[-1], 0))) # Update state (B D W) - if causal_conv1d_fn is None: - x = self.act(self.conv1d(x)[..., :seqlen]) - else: - assert self.activation in ["silu", "swish"] - x = causal_conv1d_fn( - x=x, - weight=rearrange(self.conv1d.weight, "d 1 w -> d w"), - bias=self.conv1d.bias, - activation=self.activation, - ) + ) - # We're careful here about the layout, to avoid extra transposes. - # We want dt to have d as the slowest moving dimension - # and L as the fastest moving dimension, since those are what the ssm_scan kernel expects. - x_dbl = self.x_proj(rearrange(x, "b d l -> (b l) d")) # (bl d) - dt, B, C = torch.split(x_dbl, [self.dt_rank, self.d_state, self.d_state], dim=-1) - dt = self.dt_proj.weight @ dt.t() - dt = rearrange(dt, "d (b l) -> b d l", l=seqlen) - B = rearrange(B, "(b l) dstate -> b dstate l", l=seqlen).contiguous() - C = rearrange(C, "(b l) dstate -> b dstate l", l=seqlen).contiguous() - assert self.activation in ["silu", "swish"] - y = selective_scan_fn( - x, - dt, - A, - B, - C, - self.D.float(), - z=z, - delta_bias=self.dt_proj.bias.float(), - delta_softplus=True, - return_last_state=ssm_state is not None, + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + return { + i: layer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + for i, layer in enumerate(self.layers) + } + + def forward(self, input_ids, inference_params=None): + hidden_states = self.embedding(input_ids) + residual = None + for layer in self.layers: + hidden_states, residual = layer( + hidden_states, residual, inference_params=inference_params ) - if ssm_state is not None: - y, last_state = y - ssm_state.copy_(last_state) - y = rearrange(y, "b d l -> b l d") - out = self.out_proj(y) - return out - - def step(self, hidden_states, conv_state, ssm_state): - dtype = hidden_states.dtype - assert hidden_states.shape[1] == 1, "Only support decoding with 1 token at a time for now" - xz = self.in_proj(hidden_states.squeeze(1)) # (B 2D) - - # x goes to the left and z goes to the right in the mamba block - x, z = xz.chunk(2, dim=-1) # (B D) - - # Conv step - if causal_conv1d_update is None: - conv_state.copy_(torch.roll(conv_state, shifts=-1, dims=-1)) # Update state (B D W) - conv_state[:, :, -1] = x - x = torch.sum(conv_state * rearrange(self.conv1d.weight, "d 1 w -> d w"), dim=-1) # (B D) - if self.conv1d.bias is not None: - x = x + self.conv1d.bias - x = self.act(x).to(dtype=dtype) + if not self.fused_add_norm: + residual = (hidden_states + residual) if residual is not None else hidden_states + hidden_states = self.norm_f(residual.to(dtype=self.norm_f.weight.dtype)) else: - x = causal_conv1d_update( - x, - conv_state, - rearrange(self.conv1d.weight, "d 1 w -> d w"), - self.conv1d.bias, - self.activation, + # Set prenorm=False here since we don't need the residual + fused_add_norm_fn = rms_norm_fn if isinstance(self.norm_f, RMSNorm) else layer_norm_fn + hidden_states = fused_add_norm_fn( + hidden_states, + self.norm_f.weight, + self.norm_f.bias, + eps=self.norm_f.eps, + residual=residual, + prenorm=False, + residual_in_fp32=self.residual_in_fp32, ) + return hidden_states - x_db = self.x_proj(x) # (B dt_rank+2*d_state) - dt, B, C = torch.split(x_db, [self.dt_rank, self.d_state, self.d_state], dim=-1) - # Don't add dt_bias here - dt = F.linear(dt, self.dt_proj.weight) # (B d_inner) - A = -torch.exp(self.A_log.float()) # (d_inner, d_state) - - # SSM step - if selective_state_update is None: - # Discretize A and B - dt = F.softplus(dt + self.dt_proj.bias.to(dtype=dt.dtype)) - dA = torch.exp(torch.einsum("bd,dn->bdn", dt, A)) - dB = torch.einsum("bd,bn->bdn", dt, B) - ssm_state.copy_(ssm_state * dA + rearrange(x, "b d -> b d 1") * dB) - y = torch.einsum("bdn,bn->bd", ssm_state.to(dtype), C) - y = y + self.D.to(dtype) * x - y = y * self.act(z) # (B D) - else: - y = selective_state_update( - ssm_state, x, dt, A, B, C, self.D, z=z, dt_bias=self.dt_proj.bias, dt_softplus=True - ) - out = self.out_proj(y) - return out.unsqueeze(1), conv_state, ssm_state +class MambaLMHeadModel(nn.Module, GenerationMixin): - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): - device = self.out_proj.weight.device - conv_dtype = self.conv1d.weight.dtype if dtype is None else dtype - conv_state = torch.zeros( - batch_size, self.d_model * self.expand, self.d_conv, device=device, dtype=conv_dtype - ) - ssm_dtype = self.dt_proj.weight.dtype if dtype is None else dtype - # ssm_dtype = torch.float32 - ssm_state = torch.zeros( - batch_size, self.d_model * self.expand, self.d_state, device=device, dtype=ssm_dtype + def __init__( + self, + config: MambaConfig, + initializer_cfg=None, + device=None, + dtype=None, + ) -> None: + self.config = config + d_model = config.d_model + n_layer = config.n_layer + vocab_size = config.vocab_size + ssm_cfg = config.ssm_cfg + rms_norm = config.rms_norm + residual_in_fp32 = config.residual_in_fp32 + fused_add_norm = config.fused_add_norm + pad_vocab_size_multiple = config.pad_vocab_size_multiple + factory_kwargs = {"device": device, "dtype": dtype} + + super().__init__() + if vocab_size % pad_vocab_size_multiple != 0: + vocab_size += pad_vocab_size_multiple - (vocab_size % pad_vocab_size_multiple) + self.backbone = MixerModel( + d_model=d_model, + n_layer=n_layer, + vocab_size=vocab_size, + ssm_cfg=ssm_cfg, + rms_norm=rms_norm, + initializer_cfg=initializer_cfg, + fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32, + **factory_kwargs, ) - return conv_state, ssm_state - - def _get_states_from_cache(self, inference_params, batch_size, initialize_states=False): - assert self.layer_idx is not None - if self.layer_idx not in inference_params.key_value_memory_dict: - batch_shape = (batch_size,) - conv_state = torch.zeros( - batch_size, - self.d_model * self.expand, - self.d_conv, - device=self.conv1d.weight.device, - dtype=self.conv1d.weight.dtype, + self.lm_head = nn.Linear(d_model, vocab_size, bias=False, **factory_kwargs) + + # Initialize weights and apply final processing + self.apply( + partial( + _init_weights, + n_layer=n_layer, + **(initializer_cfg if initializer_cfg is not None else {}), ) - ssm_state = torch.zeros( - batch_size, - self.d_model * self.expand, - self.d_state, - device=self.dt_proj.weight.device, - dtype=self.dt_proj.weight.dtype, - # dtype=torch.float32, - ) - inference_params.key_value_memory_dict[self.layer_idx] = (conv_state, ssm_state) - else: - conv_state, ssm_state = inference_params.key_value_memory_dict[self.layer_idx] - # TODO: What if batch size changes between generation, and we reuse the same states? - if initialize_states: - conv_state.zero_() - ssm_state.zero_() - return conv_state, ssm_state + ) + self.tie_weights() + def tie_weights(self): + if self.config.tie_embeddings: + self.lm_head.weight = self.backbone.embedding.weight -class Block(nn.Module): - def __init__( - self, dim, mixer_cls, norm_cls=nn.LayerNorm, fused_add_norm=False, residual_in_fp32=False - ): + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + return self.backbone.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + + def forward(self, input_ids, position_ids=None, inference_params=None, num_last_tokens=0): """ - Simple block wrapping a mixer class with LayerNorm/RMSNorm and residual connection" - - This Block has a slightly different structure compared to a regular - prenorm Transformer block. - The standard block is: LN -> MHA/MLP -> Add. - [Ref: https://arxiv.org/abs/2002.04745] - Here we have: Add -> LN -> Mixer, returning both - the hidden_states (output of the mixer) and the residual. - This is purely for performance reasons, as we can fuse add and LayerNorm. - The residual needs to be provided (except for the very first block). + "position_ids" is just to be compatible with Transformer generation. We don't use it. + num_last_tokens: if > 0, only return the logits for the last n tokens """ - super().__init__() - self.residual_in_fp32 = residual_in_fp32 - self.fused_add_norm = fused_add_norm - self.mixer = mixer_cls(dim) - self.norm = norm_cls(dim) - if self.fused_add_norm: - assert RMSNorm is not None, "RMSNorm import fails" - assert isinstance( - self.norm, (nn.LayerNorm, RMSNorm) - ), "Only LayerNorm and RMSNorm are supported for fused_add_norm" + hidden_states = self.backbone(input_ids, inference_params=inference_params) + if num_last_tokens > 0: + hidden_states = hidden_states[:, -num_last_tokens:] + lm_logits = self.lm_head(hidden_states) + CausalLMOutput = namedtuple("CausalLMOutput", ["logits"]) + return CausalLMOutput(logits=lm_logits) + + @classmethod + def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwargs): + config_data = load_config_hf(pretrained_model_name) + config = MambaConfig(**config_data) + model = cls(config, device=device, dtype=dtype, **kwargs) + model.load_state_dict(load_state_dict_hf(pretrained_model_name, device=device, dtype=dtype)) + return model + + def save_pretrained(self, save_directory): + """ + Minimal implementation of save_pretrained for MambaLMHeadModel. + Save the model and its configuration file to a directory. + """ + # Ensure save_directory exists + os.makedirs(save_directory, exist_ok=True) - def forward( - self, hidden_states: Tensor, residual: Optional[Tensor] = None, inference_params=None - ): - r"""Pass the input through the encoder layer. + # Save the model's state_dict + model_path = os.path.join(save_directory, 'pytorch_model.bin') + torch.save(self.state_dict(), model_path) - Args: - hidden_states: the sequence to the encoder layer (required). - residual: hidden_states = Mixer(LN(residual)) - """ - if not self.fused_add_norm: - residual = (hidden_states + residual) if residual is not None else hidden_states - hidden_states = self.norm(residual.to(dtype=self.norm.weight.dtype)) - if self.residual_in_fp32: - residual = residual.to(torch.float32) - else: - fused_add_norm_fn = rms_norm_fn if isinstance(self.norm, RMSNorm) else layer_norm_fn - hidden_states, residual = fused_add_norm_fn( - hidden_states, - self.norm.weight, - self.norm.bias, - residual=residual, - prenorm=True, - residual_in_fp32=self.residual_in_fp32, - eps=self.norm.eps, - ) - hidden_states = self.mixer(hidden_states, inference_params=inference_params) - return hidden_states, residual + # Save the configuration of the model + config_path = os.path.join(save_directory, 'config.json') + with open(config_path, 'w') as f: + json.dump(self.config.__dict__, f) - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): - return self.mixer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) + +class MambaLLM(NNModel): + + def __init__( + self, + d_model: int, + n_layer: int, + vocab_size: int, + ssm_cfg: dict, + rms_norm: bool, + residual_in_fp32: bool, + fused_add_norm: bool, + pad_vocab_size_multiple: int, + tie_embeddings: bool, + seed: int = None + ): + super().__init__(seed=seed) + self.d_model = d_model + self.n_layer = n_layer + self.vocab_size = vocab_size + self.ssm_cfg = ssm_cfg + self.rms_norm = rms_norm + self.residual_in_fp32 = residual_in_fp32 + self.fused_add_norm = fused_add_norm + self.pad_vocab_size_multiple = pad_vocab_size_multiple + self.tie_embeddings = tie_embeddings + + def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: + self.model(inputs) if __name__ == '__main__': - batch, length, dim = 2, 64, 16 - x = torch.randn(batch, length, dim).to("cuda") - model = Mamba( - # This module uses roughly 3 * expand * d_model^2 parameters - d_model=dim, # Model dimension d_model - d_state=16, # SSM state expansion factor - d_conv=4, # Local convolution width - expand=2, # Block expansion factor - ).to("cuda") - y = model(x) - assert y.shape == x.shape - print(y) + device = "cuda" + config = MambaConfig( + d_model=16, + n_layer=2, + vocab_size=1024, + rms_norm=True, + ssm_cfg={}, + residual_in_fp32=True, + fused_add_norm=True, + pad_vocab_size_multiple=8, + tie_embeddings=True + ) + + batch, length = 2, 64 + x = torch.randint(0, config.vocab_size, (batch, length)).to(device) + + # model = MixerModel( + # # This module uses roughly 3 * expand * d_model^2 parameters + # d_model=config.d_model, # Model dimension d_model + # n_layer=config.n_layer, + # vocab_size=config.vocab_size + # ).to("cuda") + # y = model(x) + + lm_head = MambaLMHeadModel( + config=config, device=device + ) + y = lm_head(input_ids=x) + print(y.logits.shape) diff --git a/src/modalities/models/mamba/mixer_seq_simple.py b/src/modalities/models/mamba/mixer_seq_simple.py deleted file mode 100644 index c3292df1..00000000 --- a/src/modalities/models/mamba/mixer_seq_simple.py +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright (c) 2023, Albert Gu, Tri Dao. - -import math -from functools import partial -import json -import os - -from collections import namedtuple - -import torch -import torch.nn as nn - -from mamba_ssm.models.config_mamba import MambaConfig -from mamba_ssm.modules.mamba_simple import Mamba, Block -from mamba_ssm.utils.generation import GenerationMixin -from mamba_ssm.utils.hf import load_config_hf, load_state_dict_hf - -try: - from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn -except ImportError: - RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None - - -def create_block( - d_model, - ssm_cfg=None, - norm_epsilon=1e-5, - rms_norm=False, - residual_in_fp32=False, - fused_add_norm=False, - layer_idx=None, - device=None, - dtype=None, -): - if ssm_cfg is None: - ssm_cfg = {} - factory_kwargs = {"device": device, "dtype": dtype} - mixer_cls = partial(Mamba, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) - norm_cls = partial( - nn.LayerNorm if not rms_norm else RMSNorm, eps=norm_epsilon, **factory_kwargs - ) - block = Block( - d_model, - mixer_cls, - norm_cls=norm_cls, - fused_add_norm=fused_add_norm, - residual_in_fp32=residual_in_fp32, - ) - block.layer_idx = layer_idx - return block - - -# https://github.com/huggingface/transformers/blob/c28d04e9e252a1a099944e325685f14d242ecdcd/src/transformers/models/gpt2/modeling_gpt2.py#L454 -def _init_weights( - module, - n_layer, - initializer_range=0.02, # Now only used for embedding layer. - rescale_prenorm_residual=True, - n_residuals_per_layer=1, # Change to 2 if we have MLP -): - if isinstance(module, nn.Linear): - if module.bias is not None: - if not getattr(module.bias, "_no_reinit", False): - nn.init.zeros_(module.bias) - elif isinstance(module, nn.Embedding): - nn.init.normal_(module.weight, std=initializer_range) - - if rescale_prenorm_residual: - # Reinitialize selected weights subject to the OpenAI GPT-2 Paper Scheme: - # > A modified initialization which accounts for the accumulation on the residual path with model depth. Scale - # > the weights of residual layers at initialization by a factor of 1/√N where N is the # of residual layers. - # > -- GPT-2 :: https://openai.com/blog/better-language-models/ - # - # Reference (Megatron-LM): https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/model/gpt_model.py - for name, p in module.named_parameters(): - if name in ["out_proj.weight", "fc2.weight"]: - # Special Scaled Initialization --> There are 2 Layer Norms per Transformer Block - # Following Pytorch init, except scale by 1/sqrt(2 * n_layer) - # We need to reinit p since this code could be called multiple times - # Having just p *= scale would repeatedly scale it down - nn.init.kaiming_uniform_(p, a=math.sqrt(5)) - with torch.no_grad(): - p /= math.sqrt(n_residuals_per_layer * n_layer) - - -class MixerModel(nn.Module): - def __init__( - self, - d_model: int, - n_layer: int, - vocab_size: int, - ssm_cfg=None, - norm_epsilon: float = 1e-5, - rms_norm: bool = False, - initializer_cfg=None, - fused_add_norm=False, - residual_in_fp32=False, - device=None, - dtype=None, - ) -> None: - factory_kwargs = {"device": device, "dtype": dtype} - super().__init__() - self.residual_in_fp32 = residual_in_fp32 - - self.embedding = nn.Embedding(vocab_size, d_model, **factory_kwargs) - - # We change the order of residual and layer norm: - # Instead of LN -> Attn / MLP -> Add, we do: - # Add -> LN -> Attn / MLP / Mixer, returning both the residual branch (output of Add) and - # the main branch (output of MLP / Mixer). The model definition is unchanged. - # This is for performance reason: we can fuse add + layer_norm. - self.fused_add_norm = fused_add_norm - if self.fused_add_norm: - if layer_norm_fn is None or rms_norm_fn is None: - raise ImportError("Failed to import Triton LayerNorm / RMSNorm kernels") - - self.layers = nn.ModuleList( - [ - create_block( - d_model, - ssm_cfg=ssm_cfg, - norm_epsilon=norm_epsilon, - rms_norm=rms_norm, - residual_in_fp32=residual_in_fp32, - fused_add_norm=fused_add_norm, - layer_idx=i, - **factory_kwargs, - ) - for i in range(n_layer) - ] - ) - - self.norm_f = (nn.LayerNorm if not rms_norm else RMSNorm)( - d_model, eps=norm_epsilon, **factory_kwargs - ) - - self.apply( - partial( - _init_weights, - n_layer=n_layer, - **(initializer_cfg if initializer_cfg is not None else {}), - ) - ) - - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): - return { - i: layer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) - for i, layer in enumerate(self.layers) - } - - def forward(self, input_ids, inference_params=None): - hidden_states = self.embedding(input_ids) - residual = None - for layer in self.layers: - hidden_states, residual = layer( - hidden_states, residual, inference_params=inference_params - ) - if not self.fused_add_norm: - residual = (hidden_states + residual) if residual is not None else hidden_states - hidden_states = self.norm_f(residual.to(dtype=self.norm_f.weight.dtype)) - else: - # Set prenorm=False here since we don't need the residual - fused_add_norm_fn = rms_norm_fn if isinstance(self.norm_f, RMSNorm) else layer_norm_fn - hidden_states = fused_add_norm_fn( - hidden_states, - self.norm_f.weight, - self.norm_f.bias, - eps=self.norm_f.eps, - residual=residual, - prenorm=False, - residual_in_fp32=self.residual_in_fp32, - ) - return hidden_states - - -class MambaLMHeadModel(nn.Module, GenerationMixin): - - def __init__( - self, - config: MambaConfig, - initializer_cfg=None, - device=None, - dtype=None, - ) -> None: - self.config = config - d_model = config.d_model - n_layer = config.n_layer - vocab_size = config.vocab_size - ssm_cfg = config.ssm_cfg - rms_norm = config.rms_norm - residual_in_fp32 = config.residual_in_fp32 - fused_add_norm = config.fused_add_norm - pad_vocab_size_multiple = config.pad_vocab_size_multiple - factory_kwargs = {"device": device, "dtype": dtype} - - super().__init__() - if vocab_size % pad_vocab_size_multiple != 0: - vocab_size += pad_vocab_size_multiple - (vocab_size % pad_vocab_size_multiple) - self.backbone = MixerModel( - d_model=d_model, - n_layer=n_layer, - vocab_size=vocab_size, - ssm_cfg=ssm_cfg, - rms_norm=rms_norm, - initializer_cfg=initializer_cfg, - fused_add_norm=fused_add_norm, - residual_in_fp32=residual_in_fp32, - **factory_kwargs, - ) - self.lm_head = nn.Linear(d_model, vocab_size, bias=False, **factory_kwargs) - - # Initialize weights and apply final processing - self.apply( - partial( - _init_weights, - n_layer=n_layer, - **(initializer_cfg if initializer_cfg is not None else {}), - ) - ) - self.tie_weights() - - def tie_weights(self): - if self.config.tie_embeddings: - self.lm_head.weight = self.backbone.embedding.weight - - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): - return self.backbone.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) - - def forward(self, input_ids, position_ids=None, inference_params=None, num_last_tokens=0): - """ - "position_ids" is just to be compatible with Transformer generation. We don't use it. - num_last_tokens: if > 0, only return the logits for the last n tokens - """ - hidden_states = self.backbone(input_ids, inference_params=inference_params) - if num_last_tokens > 0: - hidden_states = hidden_states[:, -num_last_tokens:] - lm_logits = self.lm_head(hidden_states) - CausalLMOutput = namedtuple("CausalLMOutput", ["logits"]) - return CausalLMOutput(logits=lm_logits) - - @classmethod - def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwargs): - config_data = load_config_hf(pretrained_model_name) - config = MambaConfig(**config_data) - model = cls(config, device=device, dtype=dtype, **kwargs) - model.load_state_dict(load_state_dict_hf(pretrained_model_name, device=device, dtype=dtype)) - return model - - def save_pretrained(self, save_directory): - """ - Minimal implementation of save_pretrained for MambaLMHeadModel. - Save the model and its configuration file to a directory. - """ - # Ensure save_directory exists - os.makedirs(save_directory, exist_ok=True) - - # Save the model's state_dict - model_path = os.path.join(save_directory, 'pytorch_model.bin') - torch.save(self.state_dict(), model_path) - - # Save the configuration of the model - config_path = os.path.join(save_directory, 'config.json') - with open(config_path, 'w') as f: - json.dump(self.config.__dict__, f) - - -if __name__ == '__main__': - batch, length, dim = 2, 64, 16 - vocab_size = 1024 - n_layers = 2 - x = torch.randint(0, vocab_size, (batch, length)).to("cuda") - model = MixerModel( - # This module uses roughly 3 * expand * d_model^2 parameters - d_model=dim, # Model dimension d_model - n_layer=n_layers, - vocab_size=vocab_size - ).to("cuda") - y = model(x) - print(y) \ No newline at end of file From cb6b06630c895d4570122c93b32f0df441bb8e66 Mon Sep 17 00:00:00 2001 From: mrudat Date: Mon, 15 Apr 2024 16:11:43 +0200 Subject: [PATCH 06/25] refactor(mamba): delete comment --- src/modalities/models/mamba/mamba_model.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index cad7e30b..fd96f0a9 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -311,18 +311,8 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: pad_vocab_size_multiple=8, tie_embeddings=True ) - batch, length = 2, 64 x = torch.randint(0, config.vocab_size, (batch, length)).to(device) - - # model = MixerModel( - # # This module uses roughly 3 * expand * d_model^2 parameters - # d_model=config.d_model, # Model dimension d_model - # n_layer=config.n_layer, - # vocab_size=config.vocab_size - # ).to("cuda") - # y = model(x) - lm_head = MambaLMHeadModel( config=config, device=device ) From 46238ca5ec04104479c85e90c4c79dd0b8c938c9 Mon Sep 17 00:00:00 2001 From: mrudat Date: Mon, 22 Apr 2024 14:19:17 +0200 Subject: [PATCH 07/25] feat(models): we can now train a mamba model - new component "mamba" registered - mamba config file with small training setting in config_mem_map_mamba.yaml - mamba model implemented (with config pydantic) - changed forward() abstract method in model.py --- .../training/config_mem_map_mamba.yaml | 217 ++++++++++++++++++ .../checkpointing/checkpointing_execution.py | 3 + src/modalities/config/config.py | 16 +- src/modalities/models/mamba/mamba_model.py | 173 +++++--------- src/modalities/models/model.py | 2 +- src/modalities/registry/components.py | 3 + 6 files changed, 292 insertions(+), 122 deletions(-) create mode 100644 config_files/training/config_mem_map_mamba.yaml diff --git a/config_files/training/config_mem_map_mamba.yaml b/config_files/training/config_mem_map_mamba.yaml new file mode 100644 index 00000000..2bdd6c41 --- /dev/null +++ b/config_files/training/config_mem_map_mamba.yaml @@ -0,0 +1,217 @@ +settings: + experiment_id: ${modalities_env:experiment_id} + referencing_keys: + sample_key: input_ids + target_key: target_ids + prediction_key: logits + training: + callback_interval_in_samples: 32768 + global_num_training_samples: 2048 + global_num_seen_samples: 0 + do_apply_activation_checkpointing: false + gradient_acc_steps: 1 + local_train_micro_batch_size: 16 + sequence_length: 4096 + gradient_clipping: + mode: NONE + cuda_env: + local_rank: ${cuda_env:LOCAL_RANK} + global_rank: ${cuda_env:RANK} + world_size: ${cuda_env:WORLD_SIZE} + paths: + checkpointing_path: data/checkpoints + + +collate_fn: + component_key: collate_fn + variant_key: gpt_2_llm_collator + config: + sample_key: ${settings.referencing_keys.sample_key} + target_key: ${settings.referencing_keys.target_key} + +train_dataset: + component_key: dataset + variant_key: packed_mem_map_dataset_megatron + config: + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpyjama_v2_default_DE_num_docs_1024/redpyjama_v2_default_DE_num_docs_1024.pbin + block_size: ${settings.training.sequence_length} + sample_key: ${settings.referencing_keys.sample_key} + +train_dataloader: + component_key: data_loader + variant_key: default + config: + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: "train" + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default + config: + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: true + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE + +val_dataset: + component_key: dataset + variant_key: packed_mem_map_dataset_megatron + config: + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpyjama_v2_default_DE_num_docs_1024/redpyjama_v2_default_DE_num_docs_1024.pbin + block_size: ${settings.training.sequence_length} + sample_key: ${settings.referencing_keys.sample_key} + +val_dataloader: + component_key: data_loader + variant_key: default + config: + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: "val" + dataset: + instance_key: val_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default + config: + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: true + dataset: + instance_key: val_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE + +eval_dataloaders: + - instance_key: val_dataloader + pass_type: BY_REFERENCE + +checkpointing: + component_key: checkpointing + variant_key: default + config: + checkpointing_strategy: + component_key: checkpointing_strategy + variant_key: save_k_most_recent_checkpoints_strategy + config: + k: -1 # -1 to save all checkpoints + checkpointing_execution: + component_key: checkpointing_execution + variant_key: fsdp_to_disc_checkpointing + config: + checkpoint_path: ${settings.paths.checkpointing_path} + global_rank: ${settings.cuda_env.global_rank} + experiment_id: ${settings.experiment_id} + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [ MambaBlock ] + +model: + component_key: model + variant_key: mamba + config: + d_model: 16 + n_layer: 2 + vocab_size: 50257 + rms_norm: True + ssm_cfg: {} + residual_in_fp32: True + fused_add_norm: True + pad_vocab_size_multiple: 8 + tie_embeddings: True + prediction_key: logits + +wrapped_model: + component_key: model + variant_key: fsdp_wrapped + config: + model: + instance_key: model + pass_type: BY_REFERENCE + sync_module_states: true + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [ MambaBlock ] + +scheduler: + component_key: scheduler + variant_key: onecycle_lr + config: + optimizer: + instance_key: optimizer + pass_type: BY_REFERENCE + max_lr: 6e-4 + div_factor: 10 + final_div_factor: 1 + total_steps: 64 + pct_start: 0.01 + anneal_strategy: cos + +loss_fn: + component_key: loss + variant_key: clm_cross_entropy_loss + config: + target_key: ${settings.referencing_keys.target_key} + prediction_key: ${settings.referencing_keys.prediction_key} + +optimizer: + component_key: optimizer + variant_key: adam_w + config: + lr: 0.0001 + betas: [ 0.9, 0.95 ] + eps: 1e-8 + weight_decay: 1e-1 + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + +batch_progress_subscriber: + component_key: progress_subscriber + variant_key: rich + config: + local_rank: ${settings.cuda_env.local_rank} + world_size: ${settings.cuda_env.world_size} + global_num_seen_samples: ${settings.training.global_num_seen_samples} + train_dataloader: + instance_key: train_dataloader + pass_type: BY_REFERENCE + eval_dataloaders: + - instance_key: val_dataloader + pass_type: BY_REFERENCE + + +evaluation_subscriber: + component_key: results_subscriber + variant_key: wandb + config: + local_rank: ${settings.cuda_env.local_rank} + project: modalities + mode: ONLINE + experiment_id: ${settings.experiment_id} + directory: "." \ No newline at end of file diff --git a/src/modalities/checkpointing/checkpointing_execution.py b/src/modalities/checkpointing/checkpointing_execution.py index cfe89306..e5a4c868 100644 --- a/src/modalities/checkpointing/checkpointing_execution.py +++ b/src/modalities/checkpointing/checkpointing_execution.py @@ -16,6 +16,8 @@ from modalities.running_env.env_utils import MixedPrecisionSettings + + class CheckpointingEntityType(Enum): MODEL = "model" OPTIMIZER = "optimizer" @@ -133,6 +135,7 @@ def _save_checkpoint(self, model: FSDP, optimizer: Optimizer, global_train_sampl global_train_sample_id=global_train_sample_id, entity_type=CheckpointingEntityType.MODEL, ) + model_checkpoint_path.parent.mkdir(parents=True, exist_ok=True) torch.save(model_state, model_checkpoint_path) diff --git a/src/modalities/config/config.py b/src/modalities/config/config.py index a1c8e6f3..b02ae76b 100644 --- a/src/modalities/config/config.py +++ b/src/modalities/config/config.py @@ -32,9 +32,9 @@ def __init__(self, third_party_type): self.third_party_type = third_party_type def __get_pydantic_core_schema__( - self, - _source_type: Any, - _handler: GetCoreSchemaHandler, + self, + _source_type: Any, + _handler: GetCoreSchemaHandler, ) -> core_schema.CoreSchema: # see: https://docs.pydantic.dev/latest/concepts/types/#handling-third-party-types return core_schema.json_or_python_schema( @@ -129,8 +129,8 @@ def parse_mixed_precision_setting_by_name(cls, name): name=name, enum_type=MixedPrecisionSettings ) if not has_bfloat_support() and ( - mixed_precision_settings == MixedPrecisionSettings.BF_16 - or mixed_precision_settings == MixedPrecisionSettings.BF_16_WORKING + mixed_precision_settings == MixedPrecisionSettings.BF_16 + or mixed_precision_settings == MixedPrecisionSettings.BF_16_WORKING ): raise ValueError("BF16 not supported in the current environment") return mixed_precision_settings @@ -243,8 +243,8 @@ def parse_mixed_precision_setting_by_name(cls, name): name=name, enum_type=MixedPrecisionSettings ) if not has_bfloat_support() and ( - mixed_precision_settings == MixedPrecisionSettings.BF_16 - or mixed_precision_settings == MixedPrecisionSettings.BF_16_WORKING + mixed_precision_settings == MixedPrecisionSettings.BF_16 + or mixed_precision_settings == MixedPrecisionSettings.BF_16_WORKING ): raise ValueError("BF16 not supported in the current environment") return mixed_precision_settings @@ -308,7 +308,7 @@ class OpenGPTXMMapDatasetConfig(BaseModel): class BatchSamplerConfig(BaseModel): sampler: PydanticSamplerIFType batch_size: Annotated[int, Field(strict=True, gt=0)] - drop_last: Literal[True] = True + drop_last: Literal[True] = True # todo why is this even here if only true is allowed? class ResumableBatchSamplerConfig(BaseModel): diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index fd96f0a9..a617e10b 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -1,23 +1,16 @@ # Copyright (c) 2023, Albert Gu, Tri Dao. import math -from dataclasses import field from functools import partial -import json -import os - -from collections import namedtuple from typing import Dict import torch import torch.nn as nn - from mamba_ssm.models.config_mamba import MambaConfig -from mamba_ssm.modules.mamba_simple import Mamba, Block -from mamba_ssm.utils.generation import GenerationMixin from mamba_ssm.utils.hf import load_config_hf, load_state_dict_hf - +from modalities.models.mamba.mamba_block import Block, MambaBlock from modalities.models.model import NNModel +from pydantic import BaseModel try: from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn @@ -39,7 +32,7 @@ def create_block( if ssm_cfg is None: ssm_cfg = {} factory_kwargs = {"device": device, "dtype": dtype} - mixer_cls = partial(Mamba, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) + mixer_cls = partial(MambaBlock, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) norm_cls = partial( nn.LayerNorm if not rms_norm else RMSNorm, eps=norm_epsilon, **factory_kwargs ) @@ -152,7 +145,7 @@ def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs) for i, layer in enumerate(self.layers) } - def forward(self, input_ids, inference_params=None): + def forward(self, input_ids: torch.Tensor, inference_params=None): hidden_states = self.embedding(input_ids) residual = None for layer in self.layers: @@ -177,70 +170,80 @@ def forward(self, input_ids, inference_params=None): return hidden_states -class MambaLMHeadModel(nn.Module, GenerationMixin): +class MambaLLM(NNModel): def __init__( self, - config: MambaConfig, + d_model: int, + n_layer: int, + vocab_size: int, + ssm_cfg: dict, + rms_norm: bool, + residual_in_fp32: bool, + fused_add_norm: bool, + pad_vocab_size_multiple: int, + tie_embeddings: bool, + prediction_key: str, + seed: int = None, + dtype: str = None, initializer_cfg=None, - device=None, - dtype=None, - ) -> None: - self.config = config - d_model = config.d_model - n_layer = config.n_layer - vocab_size = config.vocab_size - ssm_cfg = config.ssm_cfg - rms_norm = config.rms_norm - residual_in_fp32 = config.residual_in_fp32 - fused_add_norm = config.fused_add_norm - pad_vocab_size_multiple = config.pad_vocab_size_multiple - factory_kwargs = {"device": device, "dtype": dtype} + ): + super().__init__(seed=seed) + if initializer_cfg is None: + initializer_cfg = {} - super().__init__() - if vocab_size % pad_vocab_size_multiple != 0: - vocab_size += pad_vocab_size_multiple - (vocab_size % pad_vocab_size_multiple) + self.d_model = d_model + self.n_layer = n_layer + self.vocab_size = vocab_size + self.ssm_cfg = ssm_cfg + self.rms_norm = rms_norm + self.residual_in_fp32 = residual_in_fp32 + self.fused_add_norm = fused_add_norm + self.pad_vocab_size_multiple = pad_vocab_size_multiple + self.tie_embeddings = tie_embeddings + self.prediction_key = prediction_key + if self.vocab_size % self.pad_vocab_size_multiple != 0: + self.vocab_size += self.pad_vocab_size_multiple - (self.vocab_size % self.pad_vocab_size_multiple) self.backbone = MixerModel( - d_model=d_model, - n_layer=n_layer, - vocab_size=vocab_size, - ssm_cfg=ssm_cfg, - rms_norm=rms_norm, + d_model=self.d_model, + n_layer=self.n_layer, + vocab_size=self.vocab_size, + ssm_cfg=self.ssm_cfg, + rms_norm=self.rms_norm, initializer_cfg=initializer_cfg, - fused_add_norm=fused_add_norm, - residual_in_fp32=residual_in_fp32, - **factory_kwargs, + fused_add_norm=self.fused_add_norm, + residual_in_fp32=self.residual_in_fp32, + dtype=dtype, ) - self.lm_head = nn.Linear(d_model, vocab_size, bias=False, **factory_kwargs) + self.lm_head = nn.Linear(self.d_model, self.vocab_size, bias=False, dtype=dtype) # Initialize weights and apply final processing self.apply( partial( _init_weights, - n_layer=n_layer, - **(initializer_cfg if initializer_cfg is not None else {}), + n_layer=self.n_layer, + **initializer_cfg, ) ) self.tie_weights() def tie_weights(self): - if self.config.tie_embeddings: + if self.tie_embeddings: self.lm_head.weight = self.backbone.embedding.weight def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): return self.backbone.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) - def forward(self, input_ids, position_ids=None, inference_params=None, num_last_tokens=0): + def forward(self, inputs: Dict[str, torch.Tensor], **kwargs) -> Dict[str, torch.Tensor]: """ - "position_ids" is just to be compatible with Transformer generation. We don't use it. num_last_tokens: if > 0, only return the logits for the last n tokens """ - hidden_states = self.backbone(input_ids, inference_params=inference_params) + num_last_tokens = kwargs.pop("num_last_tokens", 0) + hidden_states = self.backbone(inputs["input_ids"], **kwargs) if num_last_tokens > 0: hidden_states = hidden_states[:, -num_last_tokens:] lm_logits = self.lm_head(hidden_states) - CausalLMOutput = namedtuple("CausalLMOutput", ["logits"]) - return CausalLMOutput(logits=lm_logits) + return {self.prediction_key: lm_logits} @classmethod def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwargs): @@ -250,71 +253,15 @@ def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwarg model.load_state_dict(load_state_dict_hf(pretrained_model_name, device=device, dtype=dtype)) return model - def save_pretrained(self, save_directory): - """ - Minimal implementation of save_pretrained for MambaLMHeadModel. - Save the model and its configuration file to a directory. - """ - # Ensure save_directory exists - os.makedirs(save_directory, exist_ok=True) - # Save the model's state_dict - model_path = os.path.join(save_directory, 'pytorch_model.bin') - torch.save(self.state_dict(), model_path) - - # Save the configuration of the model - config_path = os.path.join(save_directory, 'config.json') - with open(config_path, 'w') as f: - json.dump(self.config.__dict__, f) - - -class MambaLLM(NNModel): - - def __init__( - self, - d_model: int, - n_layer: int, - vocab_size: int, - ssm_cfg: dict, - rms_norm: bool, - residual_in_fp32: bool, - fused_add_norm: bool, - pad_vocab_size_multiple: int, - tie_embeddings: bool, - seed: int = None - ): - super().__init__(seed=seed) - self.d_model = d_model - self.n_layer = n_layer - self.vocab_size = vocab_size - self.ssm_cfg = ssm_cfg - self.rms_norm = rms_norm - self.residual_in_fp32 = residual_in_fp32 - self.fused_add_norm = fused_add_norm - self.pad_vocab_size_multiple = pad_vocab_size_multiple - self.tie_embeddings = tie_embeddings - - def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: - self.model(inputs) - - -if __name__ == '__main__': - device = "cuda" - config = MambaConfig( - d_model=16, - n_layer=2, - vocab_size=1024, - rms_norm=True, - ssm_cfg={}, - residual_in_fp32=True, - fused_add_norm=True, - pad_vocab_size_multiple=8, - tie_embeddings=True - ) - batch, length = 2, 64 - x = torch.randint(0, config.vocab_size, (batch, length)).to(device) - lm_head = MambaLMHeadModel( - config=config, device=device - ) - y = lm_head(input_ids=x) - print(y.logits.shape) +class MambaLLMConfig(BaseModel): + d_model: int + n_layer: int + vocab_size: int + ssm_cfg: dict + rms_norm: bool + residual_in_fp32: bool + fused_add_norm: bool + pad_vocab_size_multiple: int + tie_embeddings: bool + prediction_key: str diff --git a/src/modalities/models/model.py b/src/modalities/models/model.py index 511419b9..1ff76872 100644 --- a/src/modalities/models/model.py +++ b/src/modalities/models/model.py @@ -14,7 +14,7 @@ def __init__(self, seed: int = None): super(NNModel, self).__init__() @abstractmethod - def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: + def forward(self, inputs: Dict[str, torch.Tensor], **kwargs) -> Dict[str, torch.Tensor]: raise NotImplementedError def get_parameters(self) -> Dict[str, torch.Tensor]: diff --git a/src/modalities/registry/components.py b/src/modalities/registry/components.py index f0561842..af8fb6a9 100644 --- a/src/modalities/registry/components.py +++ b/src/modalities/registry/components.py @@ -66,6 +66,8 @@ from modalities.optimizers.optimizer_factory import OptimizerFactory from modalities.tokenization.tokenizer_wrapper import PreTrainedHFTokenizer, PreTrainedSPTokenizer +from modalities.models.mamba.mamba_model import MambaLLM, MambaLLMConfig + @dataclass class ComponentEntity: @@ -78,6 +80,7 @@ class ComponentEntity: COMPONENTS = [ # models ComponentEntity("model", "gpt2", GPT2LLM, GPT2LLMConfig), + ComponentEntity("model", "mamba", MambaLLM, MambaLLMConfig), ComponentEntity( "model", "huggingface_pretrained_model", HuggingFacePretrainedModel, HuggingFacePretrainedModelConfig ), From 108af99afc8118ffa1280e206bc80b7c16fd219f Mon Sep 17 00:00:00 2001 From: mrudat Date: Mon, 22 Apr 2024 16:01:22 +0200 Subject: [PATCH 08/25] feat(tests): tests for mamba blocks are written --- tests/models/mamba/__init__.py | 0 tests/models/mamba/test_mamba_block.py | 119 +++++++++++++++++++++++++ tests/models/mamba/test_mamba_model.py | 0 3 files changed, 119 insertions(+) create mode 100644 tests/models/mamba/__init__.py create mode 100644 tests/models/mamba/test_mamba_block.py create mode 100644 tests/models/mamba/test_mamba_model.py diff --git a/tests/models/mamba/__init__.py b/tests/models/mamba/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/models/mamba/test_mamba_block.py b/tests/models/mamba/test_mamba_block.py new file mode 100644 index 00000000..032db3e1 --- /dev/null +++ b/tests/models/mamba/test_mamba_block.py @@ -0,0 +1,119 @@ +import torch + +from modalities.models.mamba.mamba_block import MambaBlock +import pytest +from mamba_ssm.utils.generation import InferenceParams + + +@pytest.fixture() +def batch_size(): + return 2 + + +@pytest.fixture() +def expansion_factor(): + return 2 + + +@pytest.fixture() +def d_model(): + return 16 + + +@pytest.fixture() +def d_state(): + return 3 + + +@pytest.fixture() +def d_conv(): + return 4 + + +@pytest.fixture() +def sequence_length(): + return 64 + + +@pytest.fixture() +def conv_state(batch_size, expansion_factor, d_model, d_conv): + return torch.rand((batch_size, expansion_factor * d_model, d_conv)) + + +@pytest.fixture() +def ssm_state(batch_size, expansion_factor, d_model, d_state): + return torch.rand((batch_size, expansion_factor * d_model, d_state)) + + +@pytest.fixture() +def model(d_model, d_state, d_conv, expansion_factor): + return MambaBlock(d_model=d_model, d_state=d_state, d_conv=d_conv, expand=expansion_factor) + + +@pytest.fixture() +def hidden_states(d_model, + batch_size, ): + return torch.randn(batch_size, 1, d_model) + + +@pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") +def test_forward(batch_size, + sequence_length, + d_model, + d_state, + d_conv, + expansion_factor, + model): + x = torch.randn(batch_size, sequence_length, d_model).to("cuda") + model = model.to("cuda") + y = model(x) + assert y.shape == x.shape + + +@pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") +def test_get_states_from_cache(conv_state, + ssm_state, + batch_size, + expansion_factor, + d_model, + d_state, + d_conv, + model + ): + inference_params = InferenceParams(max_seqlen=16, max_batch_size=3, seqlen_offset=0, batch_size_offset=0, + key_value_memory_dict={7: (conv_state, ssm_state)}, + lengths_per_sample=None) + model = model.to("cuda") + computed_conv_state, computed_ssm_state = model._get_states_from_cache(inference_params, batch_size) + assert (conv_state == computed_conv_state).all() + assert (ssm_state == computed_ssm_state).all() + + +@pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") +def test_step(conv_state, ssm_state, model, hidden_states): + device = "cuda" + model = model.to(device) + hidden_states = hidden_states.to(device) + conv_state = conv_state.to(device) + ssm_state = ssm_state.to(device) + computed_hidden_states, computed_conv_state, computed_ssm_state = model.step( + hidden_states=hidden_states.detach().clone(), + conv_state=conv_state.detach().clone(), + ssm_state=ssm_state.detach().clone()) + assert computed_hidden_states.shape == hidden_states.shape + assert computed_conv_state.shape == conv_state.shape + assert computed_ssm_state.shape == ssm_state.shape + assert (computed_hidden_states != hidden_states).any() + assert (computed_conv_state != conv_state).any() + assert (computed_ssm_state != ssm_state).any() + + +def test_allocate_inference_cache(model, batch_size, sequence_length, conv_state, ssm_state): + device = "cuda" + model.to(device) + computed_conv_state, computed_ssm_state = model.allocate_inference_cache(batch_size=batch_size, max_seqlen=sequence_length, + dtype=torch.float32) + assert (computed_conv_state == torch.zeros(conv_state.shape).to(device)).all() + assert (computed_ssm_state == torch.zeros(ssm_state.shape).to(device)).all() + + diff --git a/tests/models/mamba/test_mamba_model.py b/tests/models/mamba/test_mamba_model.py new file mode 100644 index 00000000..e69de29b From 05b7d50ed145b8396dc7b3849dbbb810e894e5d4 Mon Sep 17 00:00:00 2001 From: mrudat Date: Mon, 22 Apr 2024 16:24:09 +0200 Subject: [PATCH 09/25] refactor(models): added and removed todo(s) --- src/modalities/config/config.py | 2 +- src/modalities/models/mamba/mamba_model.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modalities/config/config.py b/src/modalities/config/config.py index b02ae76b..486b948c 100644 --- a/src/modalities/config/config.py +++ b/src/modalities/config/config.py @@ -308,7 +308,7 @@ class OpenGPTXMMapDatasetConfig(BaseModel): class BatchSamplerConfig(BaseModel): sampler: PydanticSamplerIFType batch_size: Annotated[int, Field(strict=True, gt=0)] - drop_last: Literal[True] = True # todo why is this even here if only true is allowed? + drop_last: Literal[True] = True class ResumableBatchSamplerConfig(BaseModel): diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index a617e10b..5ce0a849 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -243,7 +243,7 @@ def forward(self, inputs: Dict[str, torch.Tensor], **kwargs) -> Dict[str, torch. if num_last_tokens > 0: hidden_states = hidden_states[:, -num_last_tokens:] lm_logits = self.lm_head(hidden_states) - return {self.prediction_key: lm_logits} + return {self.prediction_key: lm_logits} # todo integrate state in inputs and return dict and remove **kwargs in signature @classmethod def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwargs): From fe591ffd3bd3f41a2139e2c64ff80ca3a15bc44f Mon Sep 17 00:00:00 2001 From: ajude Date: Wed, 24 Apr 2024 16:00:00 +0200 Subject: [PATCH 10/25] feat(models): - Remove the kwargs from the forward function. - Removed the from_pretrained() from mamba_model.py --- src/modalities/models/mamba/mamba_model.py | 32 ++++++++++------------ src/modalities/models/model.py | 2 +- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index 5ce0a849..88d3f099 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -6,11 +6,10 @@ import torch import torch.nn as nn -from mamba_ssm.models.config_mamba import MambaConfig -from mamba_ssm.utils.hf import load_config_hf, load_state_dict_hf +from pydantic import BaseModel + from modalities.models.mamba.mamba_block import Block, MambaBlock from modalities.models.model import NNModel -from pydantic import BaseModel try: from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn @@ -187,6 +186,8 @@ def __init__( seed: int = None, dtype: str = None, initializer_cfg=None, + num_last_tokens=0, + inference_params=None ): super().__init__(seed=seed) if initializer_cfg is None: @@ -202,6 +203,11 @@ def __init__( self.pad_vocab_size_multiple = pad_vocab_size_multiple self.tie_embeddings = tie_embeddings self.prediction_key = prediction_key + + # todo: How to pass these variables in the forward method? + self.inference_params = inference_params + self.num_last_tokens = num_last_tokens + if self.vocab_size % self.pad_vocab_size_multiple != 0: self.vocab_size += self.pad_vocab_size_multiple - (self.vocab_size % self.pad_vocab_size_multiple) self.backbone = MixerModel( @@ -234,24 +240,16 @@ def tie_weights(self): def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): return self.backbone.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) - def forward(self, inputs: Dict[str, torch.Tensor], **kwargs) -> Dict[str, torch.Tensor]: + def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: """ num_last_tokens: if > 0, only return the logits for the last n tokens """ - num_last_tokens = kwargs.pop("num_last_tokens", 0) - hidden_states = self.backbone(inputs["input_ids"], **kwargs) - if num_last_tokens > 0: - hidden_states = hidden_states[:, -num_last_tokens:] - lm_logits = self.lm_head(hidden_states) - return {self.prediction_key: lm_logits} # todo integrate state in inputs and return dict and remove **kwargs in signature - @classmethod - def from_pretrained(cls, pretrained_model_name, device=None, dtype=None, **kwargs): - config_data = load_config_hf(pretrained_model_name) - config = MambaConfig(**config_data) - model = cls(config, device=device, dtype=dtype, **kwargs) - model.load_state_dict(load_state_dict_hf(pretrained_model_name, device=device, dtype=dtype)) - return model + hidden_states = self.backbone(inputs["input_ids"], inference_params=self.inference_params) + if self.num_last_tokens > 0: + hidden_states = hidden_states[:, -self.num_last_tokens:] + lm_logits = self.lm_head(hidden_states) + return {self.prediction_key: lm_logits} class MambaLLMConfig(BaseModel): diff --git a/src/modalities/models/model.py b/src/modalities/models/model.py index 1ff76872..511419b9 100644 --- a/src/modalities/models/model.py +++ b/src/modalities/models/model.py @@ -14,7 +14,7 @@ def __init__(self, seed: int = None): super(NNModel, self).__init__() @abstractmethod - def forward(self, inputs: Dict[str, torch.Tensor], **kwargs) -> Dict[str, torch.Tensor]: + def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: raise NotImplementedError def get_parameters(self) -> Dict[str, torch.Tensor]: From b4409d419fb5b3187f387b50f080802e8dbc97c2 Mon Sep 17 00:00:00 2001 From: ajude Date: Wed, 24 Apr 2024 16:03:12 +0200 Subject: [PATCH 11/25] test(mamba): Added tests for mamba. --- tests/models/mamba/test_mamba_block.py | 82 +++++++++++------- tests/models/mamba/test_mamba_model.py | 110 +++++++++++++++++++++++++ 2 files changed, 160 insertions(+), 32 deletions(-) diff --git a/tests/models/mamba/test_mamba_block.py b/tests/models/mamba/test_mamba_block.py index 032db3e1..63a3fb74 100644 --- a/tests/models/mamba/test_mamba_block.py +++ b/tests/models/mamba/test_mamba_block.py @@ -1,6 +1,6 @@ import torch -from modalities.models.mamba.mamba_block import MambaBlock +from modalities.models.mamba.mamba_block import MambaBlock, Block import pytest from mamba_ssm.utils.generation import InferenceParams @@ -46,8 +46,18 @@ def ssm_state(batch_size, expansion_factor, d_model, d_state): @pytest.fixture() -def model(d_model, d_state, d_conv, expansion_factor): - return MambaBlock(d_model=d_model, d_state=d_state, d_conv=d_conv, expand=expansion_factor) +def layer_idx(): + return 0 + + +@pytest.fixture() +def mamba_block(d_model, d_state, d_conv, expansion_factor, layer_idx): + return MambaBlock(d_model=d_model, d_state=d_state, d_conv=d_conv, expand=expansion_factor, layer_idx=layer_idx) + + +@pytest.fixture() +def block(d_model, mamba_block): + return Block(dim=d_model, mixer_cls=MambaBlock) @pytest.fixture() @@ -57,46 +67,55 @@ def hidden_states(d_model, @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") -def test_forward(batch_size, - sequence_length, - d_model, - d_state, - d_conv, - expansion_factor, - model): +def test_mamba_block_forward(batch_size, + sequence_length, + d_model, + d_state, + d_conv, + expansion_factor, + mamba_block): x = torch.randn(batch_size, sequence_length, d_model).to("cuda") - model = model.to("cuda") - y = model(x) + mamba_block = mamba_block.to("cuda") + y = mamba_block(x) assert y.shape == x.shape @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") +def test_block_forward(hidden_states, block): + block = block.to("cuda") + hidden_states = hidden_states.to("cuda") + computed_hidden_states, computed_residuals = block(hidden_states) + assert (hidden_states == computed_residuals).all() + assert hidden_states.shape == computed_hidden_states.shape + assert (hidden_states != computed_hidden_states).any() + + def test_get_states_from_cache(conv_state, - ssm_state, - batch_size, - expansion_factor, - d_model, - d_state, - d_conv, - model - ): + ssm_state, + batch_size, + expansion_factor, + d_model, + d_state, + d_conv, + mamba_block, + layer_idx + ): inference_params = InferenceParams(max_seqlen=16, max_batch_size=3, seqlen_offset=0, batch_size_offset=0, - key_value_memory_dict={7: (conv_state, ssm_state)}, + key_value_memory_dict={layer_idx: (conv_state, ssm_state)}, lengths_per_sample=None) - model = model.to("cuda") - computed_conv_state, computed_ssm_state = model._get_states_from_cache(inference_params, batch_size) + computed_conv_state, computed_ssm_state = mamba_block._get_states_from_cache(inference_params, batch_size) assert (conv_state == computed_conv_state).all() assert (ssm_state == computed_ssm_state).all() @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") -def test_step(conv_state, ssm_state, model, hidden_states): +def test_step(conv_state, ssm_state, mamba_block, hidden_states): device = "cuda" - model = model.to(device) + mamba_block = mamba_block.to(device) hidden_states = hidden_states.to(device) conv_state = conv_state.to(device) ssm_state = ssm_state.to(device) - computed_hidden_states, computed_conv_state, computed_ssm_state = model.step( + computed_hidden_states, computed_conv_state, computed_ssm_state = mamba_block.step( hidden_states=hidden_states.detach().clone(), conv_state=conv_state.detach().clone(), ssm_state=ssm_state.detach().clone()) @@ -108,12 +127,11 @@ def test_step(conv_state, ssm_state, model, hidden_states): assert (computed_ssm_state != ssm_state).any() -def test_allocate_inference_cache(model, batch_size, sequence_length, conv_state, ssm_state): +def test_allocate_inference_cache(mamba_block, batch_size, sequence_length, conv_state, ssm_state): device = "cuda" - model.to(device) - computed_conv_state, computed_ssm_state = model.allocate_inference_cache(batch_size=batch_size, max_seqlen=sequence_length, - dtype=torch.float32) + mamba_block.to(device) + computed_conv_state, computed_ssm_state = mamba_block.allocate_inference_cache(batch_size=batch_size, + max_seqlen=sequence_length, + dtype=torch.float32) assert (computed_conv_state == torch.zeros(conv_state.shape).to(device)).all() assert (computed_ssm_state == torch.zeros(ssm_state.shape).to(device)).all() - - diff --git a/tests/models/mamba/test_mamba_model.py b/tests/models/mamba/test_mamba_model.py index e69de29b..8bf93616 100644 --- a/tests/models/mamba/test_mamba_model.py +++ b/tests/models/mamba/test_mamba_model.py @@ -0,0 +1,110 @@ +import pytest +import torch +from torch import nn + +from modalities.models.mamba.mamba_model import MixerModel, _init_weights, MambaLLM, create_block + + +@pytest.fixture() +def batch_size(): + return 2 + + +@pytest.fixture() +def vocab_size(): + return 1024 + + +@pytest.fixture() +def sequence_length(): + return 64 + + +@pytest.fixture() +def n_layer(): + return 2 + + +@pytest.fixture() +def d_model(): + return 12 + + +@pytest.fixture() +def ssm_config(): + return {} + + +@pytest.fixture() +def mixer_model(d_model, n_layer, vocab_size): + return MixerModel(d_model, n_layer, vocab_size) + + +@pytest.fixture() +def prediction_key(): + return "logits" + + +@pytest.fixture() +def mamba_llm(d_model, n_layer, vocab_size, prediction_key): + return MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=vocab_size, ssm_cfg={}, rms_norm=True, + residual_in_fp32=False, fused_add_norm=False, pad_vocab_size_multiple=1, tie_embeddings=False, + prediction_key=prediction_key) + + +@pytest.fixture() +def linear_layer(): + return nn.Linear(in_features=16, out_features=24) + + +@pytest.fixture() +def embedding_layer(vocab_size, d_model): + return nn.Embedding(num_embeddings=vocab_size, embedding_dim=d_model) + + +@pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") +def test_mixer_model_forward(batch_size, sequence_length, vocab_size, mixer_model, d_model): + x = torch.randint(size=(batch_size, sequence_length), high=vocab_size).to("cuda") + mixer_model = mixer_model.to("cuda") + y = mixer_model(x) + assert y.shape == (batch_size, sequence_length, d_model) + assert y.shape != x.shape + + +@pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") +def test_mixer_model_allocate_inference_cache(batch_size, sequence_length, mixer_model, n_layer): + mixer_model = mixer_model.to("cuda") + computed_inference_cache = mixer_model.allocate_inference_cache(batch_size, sequence_length) + assert len(computed_inference_cache) == n_layer + + +def test__init_weights(linear_layer, embedding_layer, n_layer): + _init_weights(linear_layer, n_layer) + assert int(linear_layer.bias.sum()) == 0 + + embedding_layer_weights_before = embedding_layer.weight.clone().detach() + _init_weights(embedding_layer, n_layer) + embedding_layer_weights_after = embedding_layer.weight + assert (embedding_layer_weights_before != embedding_layer_weights_after).any() + + +def test_mamba_llm_forward(mamba_llm, batch_size, sequence_length, vocab_size, prediction_key): + mamba_llm = mamba_llm.to("cuda") + x = torch.randint(size=(batch_size, sequence_length), high=vocab_size).to("cuda") + inputs = {"input_ids": x} + y = mamba_llm(inputs) + assert prediction_key in y.keys() + assert y[prediction_key].shape == (batch_size, sequence_length, vocab_size) + + +def test__create_block(d_model): + test_block = create_block(d_model=d_model) + assert test_block.norm.normalized_shape[0] == d_model + assert test_block.mixer.d_model == d_model + + +def test_tie_weights(mamba_llm): + assert (mamba_llm.lm_head.weight != mamba_llm.backbone.embedding.weight).any() + mamba_llm.tie_embeddings = True + mamba_llm.tie_weights() + assert (mamba_llm.lm_head.weight == mamba_llm.backbone.embedding.weight).all() From 0a044635f0e24191aa05a7a1d2c2c953839fb891 Mon Sep 17 00:00:00 2001 From: rrutmann Date: Mon, 29 Apr 2024 15:46:32 +0200 Subject: [PATCH 12/25] feat(mamba): Add generation capabilities to Mamba model --- .../config_mem_map_mampa_overfitting.yaml | 234 ++++++++++++++++++ src/modalities/__main__.py | 3 +- src/modalities/models/mamba/mamba_block.py | 2 +- src/modalities/models/mamba/mamba_model.py | 36 ++- src/modalities/utils/generate_text.py | 22 +- 5 files changed, 291 insertions(+), 6 deletions(-) create mode 100644 config_files/training/config_mem_map_mampa_overfitting.yaml diff --git a/config_files/training/config_mem_map_mampa_overfitting.yaml b/config_files/training/config_mem_map_mampa_overfitting.yaml new file mode 100644 index 00000000..3b586dd2 --- /dev/null +++ b/config_files/training/config_mem_map_mampa_overfitting.yaml @@ -0,0 +1,234 @@ +settings: + experiment_id: ${modalities_env:experiment_id} + referencing_keys: + sample_key: input_ids + target_key: target_ids + prediction_key: logits + training: + global_training_log_interval_in_steps: 10 + global_checkpointing_interval_in_steps: 1000 + global_evaluation_interval_in_steps: 64 + global_num_seen_steps: 0 + do_apply_activation_checkpointing: false + gradient_acc_steps: 1 + local_train_micro_batch_size: 4 + sequence_length: 2048 + gradient_clipping: + mode: p2_norm + threshold: 1.0 + cuda_env: + local_rank: ${cuda_env:LOCAL_RANK} + global_rank: ${cuda_env:RANK} + world_size: ${cuda_env:WORLD_SIZE} + paths: + checkpointing_path: data/checkpoints + +collate_fn: + component_key: collate_fn + variant_key: gpt_2_llm_collator + config: + sample_key: ${settings.referencing_keys.sample_key} + target_key: ${settings.referencing_keys.target_key} + +train_dataset: + component_key: dataset + variant_key: packed_mem_map_dataset_continuous + config: + raw_data_path: /raid/s3/opengptx/user/richard-rutmann/projects/Modalities/modalities/data/data_overfitting/data_overfitting_en.pbin + block_size: ${settings.training.sequence_length} + sample_key: ${settings.referencing_keys.sample_key} + +val_dataset: + component_key: dataset + variant_key: packed_mem_map_dataset_continuous + config: + raw_data_path: /raid/s3/opengptx/user/richard-rutmann/projects/Modalities/modalities/data/data_overfitting/data_overfitting_en.pbin + block_size: ${settings.training.sequence_length} + sample_key: ${settings.referencing_keys.sample_key} + +train_dataloader: + component_key: data_loader + variant_key: repeating_data_loader + config: + reshuffle_after_epoch: false + num_epochs: 1 # 100 epochs + dataloader: + component_key: data_loader + variant_key: default + config: + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: train + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default + config: + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: true + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE + +val_dataloader: + component_key: data_loader + variant_key: default + config: + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: val + dataset: + instance_key: val_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default + config: + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: false + dataset: + instance_key: val_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE + +eval_dataloaders: + - instance_key: val_dataloader + pass_type: BY_REFERENCE + + +checkpointing: + component_key: checkpointing + variant_key: default + config: + checkpointing_strategy: + component_key: checkpointing_strategy + variant_key: save_k_most_recent_checkpoints_strategy + config: + k: -1 # -1 to save all checkpoints + checkpointing_execution: + component_key: checkpointing_execution + variant_key: fsdp_to_disc_checkpointing + config: + checkpoint_path: ${settings.paths.checkpointing_path} + global_rank: ${settings.cuda_env.global_rank} + experiment_id: ${settings.experiment_id} + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [ MambaBlock ] + +wrapped_model: + component_key: model + variant_key: fsdp_wrapped + config: + model: + instance_key: model + pass_type: BY_REFERENCE + sync_module_states: true + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [MambaBlock] + +model: + component_key: model + variant_key: mamba + config: + d_model: 768 + n_layer: 24 + vocab_size: 50257 + rms_norm: True + ssm_cfg: + d_state: 16 + d_conv: 4 + expand: 2 + dt_rank: "auto" + dt_min: 0.001 + dt_max: 0.1 + dt_init: "random" + dt_scale: 1.0 + dt_init_floor: 1e-4 + conv_bias: True + bias: False + use_fast_path: True + residual_in_fp32: True + fused_add_norm: True + pad_vocab_size_multiple: 8 + tie_embeddings: True + prediction_key: logits + # dtype: null # TODO make this an optional parameter + + +loss_fn: + component_key: loss + variant_key: clm_cross_entropy_loss + config: + target_key: ${settings.referencing_keys.target_key} + prediction_key: ${settings.referencing_keys.prediction_key} + +optimizer: + component_key: optimizer + variant_key: adam_w + config: + lr: 0.0001 + betas: [0.9, 0.95] + eps: 1e-8 + weight_decay: 1e-1 + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + +scheduler: + component_key: scheduler + variant_key: dummy_lr + config: + optimizer: + instance_key: optimizer + pass_type: BY_REFERENCE + + +batch_progress_subscriber: + component_key: progress_subscriber + variant_key: rich + config: + local_rank: ${settings.cuda_env.local_rank} + world_size: ${settings.cuda_env.world_size} + global_num_seen_steps: ${settings.training.global_num_seen_steps} + train_dataloader: + instance_key: train_dataloader + pass_type: BY_REFERENCE + eval_dataloaders: + - instance_key: val_dataloader + pass_type: BY_REFERENCE + + +evaluation_subscriber: + component_key: results_subscriber + variant_key: wandb + config: + local_rank: ${settings.cuda_env.local_rank} + project: modalities + mode: ONLINE + experiment_id: ${settings.experiment_id} + directory: "." \ No newline at end of file diff --git a/src/modalities/__main__.py b/src/modalities/__main__.py index f590f332..7d926f22 100644 --- a/src/modalities/__main__.py +++ b/src/modalities/__main__.py @@ -79,7 +79,8 @@ def entry_point_run_modalities(config_file_path: Path): @click.option("--chat", is_flag=True, show_default=True, default=False, help="activate 'chat' mode") def entry_point_generate_text(model_path, config_path, tokenizer_type, tokenizer_file, max_new_tokens, chat): tokenizer = tokenizer_type.value(tokenizer_file=str(tokenizer_file)) - generate_text_main(model_path, config_path, tokenizer, max_new_tokens, chat) + with CudaEnv(process_group_backend=ProcessGroupBackendType.nccl): + generate_text_main(model_path, config_path, tokenizer, max_new_tokens, chat) @main.group(name="data") diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py index 4a68e307..ee8e1eff 100644 --- a/src/modalities/models/mamba/mamba_block.py +++ b/src/modalities/models/mamba/mamba_block.py @@ -133,7 +133,7 @@ def forward(self, hidden_states, inference_params=None): # We do matmul and transpose BLH -> HBL at the same time (Batch size, sequence length, hidden dim) xz = rearrange( - self.in_proj.weight @ rearrange(hidden_states, "b l d -> d (b l)"), + self.in_proj.weight @ rearrange(hidden_states.to(self.in_proj.weight.dtype), "b l d -> d (b l)"), "d (b l) -> b d l", l=seqlen, ) diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index 88d3f099..d4acada7 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -2,11 +2,14 @@ import math from functools import partial -from typing import Dict +import sys +from typing import Dict, Optional import torch import torch.nn as nn +import torch.nn.functional as F from pydantic import BaseModel +from transformers import PreTrainedTokenizer from modalities.models.mamba.mamba_block import Block, MambaBlock from modalities.models.model import NNModel @@ -248,8 +251,36 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: hidden_states = self.backbone(inputs["input_ids"], inference_params=self.inference_params) if self.num_last_tokens > 0: hidden_states = hidden_states[:, -self.num_last_tokens:] - lm_logits = self.lm_head(hidden_states) + lm_logits = self.lm_head(hidden_states.to(self.lm_head.weight.dtype)) return {self.prediction_key: lm_logits} + + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + if not context: + raise ValueError("Context must be not empty") + + in_batch = tokenizer([context]) + in_batch["input_ids"] = torch.Tensor(in_batch["input_ids"]).to(torch.int32).to(next(self.parameters()).device) + + for _ in range(max_new_tokens): + logits = self.forward(in_batch)["logits"] + logits = logits[:, -1, :] / temperature + probs = F.softmax(logits, dim=-1) + idx_next = torch.multinomial(probs, num_samples=1) + idx_next_str = tokenizer.decode(idx_next[0]) + if idx_next_str == tokenizer.eos_token: + print("\n", end="") + break + else: + print(idx_next_str, end="") + sys.stdout.flush() + in_batch["input_ids"] = torch.cat((in_batch["input_ids"], idx_next), dim=1) + print("") class MambaLLMConfig(BaseModel): @@ -263,3 +294,4 @@ class MambaLLMConfig(BaseModel): pad_vocab_size_multiple: int tie_embeddings: bool prediction_key: str + #dtype: Optional[str] diff --git a/src/modalities/utils/generate_text.py b/src/modalities/utils/generate_text.py index d503b4fd..c6eb329f 100755 --- a/src/modalities/utils/generate_text.py +++ b/src/modalities/utils/generate_text.py @@ -4,6 +4,7 @@ # 2) How do we make the inference script robust against (architecture) changes? Maybe save the commit hash in the model state dict? # noqa: E501 # 3) Register script in the pyproject toml? +from functools import partial import os import readline # noqa: F401 import sys @@ -15,6 +16,7 @@ from modalities.config.component_factory import ComponentFactory from modalities.config.config import ComponentsInferenceModel, load_app_config_dict +from modalities.models.mamba.mamba_model import MambaLLM from modalities.registry.components import COMPONENTS from modalities.registry.registry import Registry @@ -107,6 +109,11 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma model.load_state_dict(state_dict) model.eval() + if type(model.module) == MambaLLM: + generate_fn = model.module.generate + else: + seq_len = model.config.block_size + generate_fn = partial(generate, model=model, seq_len=seq_len) while True: try: @@ -114,11 +121,22 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma if chat is True: prompt = input("enter question> ").strip() prompt = chat_prefix + chat_prompt_template.format(prompt=prompt) - generate(model, tokenizer, prompt, model.config.block_size, max_new_tokens) + generate_fn( + tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens + ) else: prompt = input("enter prompt> ") print(prompt, end="") - generate(model, tokenizer, prompt, model.config.block_size, max_new_tokens) + generate_fn( + tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens + ) + except ValueError as e: + print(e) + continue except KeyboardInterrupt: print("closing app...") break From 67280c502ce5ef448f4a8ac834443f5f186135fe Mon Sep 17 00:00:00 2001 From: rrutmann Date: Mon, 6 May 2024 10:16:41 +0200 Subject: [PATCH 13/25] feat(mamba): Add config for small scale experiments --- .../config_mem_map_mamba_small_scale.yaml | 234 ++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 config_files/training/config_mem_map_mamba_small_scale.yaml diff --git a/config_files/training/config_mem_map_mamba_small_scale.yaml b/config_files/training/config_mem_map_mamba_small_scale.yaml new file mode 100644 index 00000000..cb92610a --- /dev/null +++ b/config_files/training/config_mem_map_mamba_small_scale.yaml @@ -0,0 +1,234 @@ +settings: + experiment_id: ${modalities_env:experiment_id} + referencing_keys: + sample_key: input_ids + target_key: target_ids + prediction_key: logits + training: + global_training_log_interval_in_steps: 10 + global_checkpointing_interval_in_steps: 1000 + global_evaluation_interval_in_steps: 64 + global_num_seen_steps: 0 + do_apply_activation_checkpointing: false + gradient_acc_steps: 1 + local_train_micro_batch_size: 4 + sequence_length: 0 # TODO: Is sequence_length used in training? + gradient_clipping: + mode: p2_norm + threshold: 1.0 + cuda_env: + local_rank: ${cuda_env:LOCAL_RANK} + global_rank: ${cuda_env:RANK} + world_size: ${cuda_env:WORLD_SIZE} + paths: + checkpointing_path: data/checkpoints + +collate_fn: + component_key: collate_fn + variant_key: gpt_2_llm_collator + config: + sample_key: ${settings.referencing_keys.sample_key} + target_key: ${settings.referencing_keys.target_key} + +train_dataset: + component_key: dataset + variant_key: packed_mem_map_dataset_continuous + config: + raw_data_path: /raid/fhgiais/opengptx/michaelf/git_repos/modalities/data-temp/en/modalities/2048/train_2048.pbin + block_size: ${settings.training.sequence_length} + sample_key: ${settings.referencing_keys.sample_key} + +val_dataset: + component_key: dataset + variant_key: packed_mem_map_dataset_continuous + config: + raw_data_path: /raid/fhgiais/opengptx/michaelf/git_repos/modalities/data-temp/en/modalities/2048/valid_2048.pbin + block_size: ${settings.training.sequence_length} + sample_key: ${settings.referencing_keys.sample_key} + +train_dataloader: + component_key: data_loader + variant_key: repeating_data_loader + config: + reshuffle_after_epoch: false + num_epochs: 1 # 100 epochs + dataloader: + component_key: data_loader + variant_key: default + config: + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: train + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default + config: + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: true + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE + +val_dataloader: + component_key: data_loader + variant_key: default + config: + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: val + dataset: + instance_key: val_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default + config: + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: false + dataset: + instance_key: val_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE + +eval_dataloaders: + - instance_key: val_dataloader + pass_type: BY_REFERENCE + + +checkpointing: + component_key: checkpointing + variant_key: default + config: + checkpointing_strategy: + component_key: checkpointing_strategy + variant_key: save_k_most_recent_checkpoints_strategy + config: + k: 3 # -1 to save all checkpoints + checkpointing_execution: + component_key: checkpointing_execution + variant_key: fsdp_to_disc_checkpointing + config: + checkpoint_path: ${settings.paths.checkpointing_path} + global_rank: ${settings.cuda_env.global_rank} + experiment_id: ${settings.experiment_id} + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [ MambaBlock ] + +wrapped_model: + component_key: model + variant_key: fsdp_wrapped + config: + model: + instance_key: model + pass_type: BY_REFERENCE + sync_module_states: true + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [MambaBlock] + +model: + component_key: model + variant_key: mamba + config: + d_model: 768 + n_layer: 24 + vocab_size: 50257 + rms_norm: True + ssm_cfg: + d_state: 16 + d_conv: 4 + expand: 2 + dt_rank: "auto" + dt_min: 0.001 + dt_max: 0.1 + dt_init: "random" + dt_scale: 1.0 + dt_init_floor: 1e-4 + conv_bias: True + bias: False + use_fast_path: True + residual_in_fp32: True + fused_add_norm: True + pad_vocab_size_multiple: 8 + tie_embeddings: True + prediction_key: logits + # dtype: null # TODO make this an optional parameter + + +loss_fn: + component_key: loss + variant_key: clm_cross_entropy_loss + config: + target_key: ${settings.referencing_keys.target_key} + prediction_key: ${settings.referencing_keys.prediction_key} + +optimizer: + component_key: optimizer + variant_key: adam_w + config: + lr: 0.0001 + betas: [0.9, 0.95] + eps: 1e-8 + weight_decay: 1e-1 + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + +scheduler: + component_key: scheduler + variant_key: dummy_lr + config: + optimizer: + instance_key: optimizer + pass_type: BY_REFERENCE + + +batch_progress_subscriber: + component_key: progress_subscriber + variant_key: rich + config: + local_rank: ${settings.cuda_env.local_rank} + world_size: ${settings.cuda_env.world_size} + global_num_seen_steps: ${settings.training.global_num_seen_steps} + train_dataloader: + instance_key: train_dataloader + pass_type: BY_REFERENCE + eval_dataloaders: + - instance_key: val_dataloader + pass_type: BY_REFERENCE + + +evaluation_subscriber: + component_key: results_subscriber + variant_key: wandb + config: + local_rank: ${settings.cuda_env.local_rank} + project: modalities + mode: ONLINE + experiment_id: ${settings.experiment_id} + directory: "." \ No newline at end of file From 9fded2a85c28b2228f83065bc7e97a789b8b6af8 Mon Sep 17 00:00:00 2001 From: mrudat-iais Date: Wed, 8 May 2024 10:05:26 +0200 Subject: [PATCH 14/25] refactor(mamba): - generate method now in interface - "input_ids" now as variable saved in models and configs --- ... => config_mem_map_mamba_overfitting.yaml} | 6 + .../config_mem_map_mamba_small_scale.yaml | 1 + src/modalities/models/coca/coca_model.py | 10 ++ .../models/coca/multi_modal_decoder.py | 62 ++++---- src/modalities/models/coca/text_decoder.py | 38 +++-- src/modalities/models/gpt2/gpt2_model.py | 137 +++++++++++------- .../models/huggingface/huggingface_models.py | 28 ++-- src/modalities/models/mamba/mamba_model.py | 46 +++--- src/modalities/models/model.py | 11 ++ src/modalities/utils/generate_text.py | 43 +----- tests/models/mamba/test_mamba_model.py | 13 +- tests/utils/test_gradient_clipping.py | 10 ++ 12 files changed, 243 insertions(+), 162 deletions(-) rename config_files/training/{config_mem_map_mampa_overfitting.yaml => config_mem_map_mamba_overfitting.yaml} (97%) diff --git a/config_files/training/config_mem_map_mampa_overfitting.yaml b/config_files/training/config_mem_map_mamba_overfitting.yaml similarity index 97% rename from config_files/training/config_mem_map_mampa_overfitting.yaml rename to config_files/training/config_mem_map_mamba_overfitting.yaml index 3b586dd2..81bddc36 100644 --- a/config_files/training/config_mem_map_mampa_overfitting.yaml +++ b/config_files/training/config_mem_map_mamba_overfitting.yaml @@ -23,6 +23,11 @@ settings: paths: checkpointing_path: data/checkpoints +cuda_env: + local_rank: ${cuda_env:LOCAL_RANK} + global_rank: ${cuda_env:RANK} + world_size: ${cuda_env:WORLD_SIZE} + collate_fn: component_key: collate_fn variant_key: gpt_2_llm_collator @@ -177,6 +182,7 @@ model: pad_vocab_size_multiple: 8 tie_embeddings: True prediction_key: logits + sample_key: input_ids # dtype: null # TODO make this an optional parameter diff --git a/config_files/training/config_mem_map_mamba_small_scale.yaml b/config_files/training/config_mem_map_mamba_small_scale.yaml index cb92610a..26c4686b 100644 --- a/config_files/training/config_mem_map_mamba_small_scale.yaml +++ b/config_files/training/config_mem_map_mamba_small_scale.yaml @@ -177,6 +177,7 @@ model: pad_vocab_size_multiple: 8 tie_embeddings: True prediction_key: logits + sample_key: input_ids # dtype: null # TODO make this an optional parameter diff --git a/src/modalities/models/coca/coca_model.py b/src/modalities/models/coca/coca_model.py index b531cf21..86009169 100644 --- a/src/modalities/models/coca/coca_model.py +++ b/src/modalities/models/coca/coca_model.py @@ -14,6 +14,7 @@ from modalities.models.model import NNModel from modalities.models.vision_transformer.vision_transformer_model import VisionTransformer, VisionTransformerConfig from modalities.nn.attention import AttentionConfig +from transformers import PreTrainedTokenizer class TextDecoderConfig(BaseModel): @@ -176,3 +177,12 @@ def _forward_decode(self, text_embd: torch.Tensor, vision_embd: torch.Tensor) -> decoder_outputs = self.multimodal_decoder(decoder_inputs) logits = decoder_outputs[self.multimodal_decoder.prediction_key] return logits + + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + raise NotImplementedError \ No newline at end of file diff --git a/src/modalities/models/coca/multi_modal_decoder.py b/src/modalities/models/coca/multi_modal_decoder.py index cced19b4..4ae468cf 100644 --- a/src/modalities/models/coca/multi_modal_decoder.py +++ b/src/modalities/models/coca/multi_modal_decoder.py @@ -9,22 +9,23 @@ from modalities.models.model import NNModel from modalities.nn.attention import AttentionConfig, AttentionType, MultiHeadAttention from modalities.nn.mlp import MLP +from transformers import PreTrainedTokenizer class TransformerBlock(nn.Module): def __init__( - self, - n_embd: int, - bias: bool, - epsilon: float, - activation: ActivationType, - n_head: int, - dropout: float, - ffn_hidden: int, - with_context: bool, - attention_type: AttentionType, - attention_config: AttentionConfig = None, - add_extra_mlp: bool = False, + self, + n_embd: int, + bias: bool, + epsilon: float, + activation: ActivationType, + n_head: int, + dropout: float, + ffn_hidden: int, + with_context: bool, + attention_type: AttentionType, + attention_config: AttentionConfig = None, + add_extra_mlp: bool = False, ): super().__init__() self.with_context = with_context @@ -70,20 +71,20 @@ def forward(self, x: torch.Tensor, context: torch.Tensor = None) -> torch.Tensor class MultiModalTextDecoder(NNModel): def __init__( - self, - sample_key: str, - prediction_key: str, - block_size: int, - vocab_size: int, - n_layer: int, - n_head: int, - n_embd: int, - ffn_hidden: int, - dropout: float, - bias: bool, - activation: ActivationType, - epsilon: float, - attention_config: AttentionConfig, + self, + sample_key: str, + prediction_key: str, + block_size: int, + vocab_size: int, + n_layer: int, + n_head: int, + n_embd: int, + ffn_hidden: int, + dropout: float, + bias: bool, + activation: ActivationType, + epsilon: float, + attention_config: AttentionConfig, ): super().__init__() self.sample_key = sample_key @@ -122,3 +123,12 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: x = self.transformer.ln_f(x) logits = self.lm_head(x) return {self.prediction_key: logits} + + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + raise NotImplementedError diff --git a/src/modalities/models/coca/text_decoder.py b/src/modalities/models/coca/text_decoder.py index aab7c8f8..c753058a 100644 --- a/src/modalities/models/coca/text_decoder.py +++ b/src/modalities/models/coca/text_decoder.py @@ -7,24 +7,25 @@ from modalities.models.gpt2.gpt2_model import ActivationType from modalities.models.model import NNModel from modalities.nn.attention import AttentionConfig, AttentionType +from transformers import PreTrainedTokenizer class TextDecoder(NNModel): def __init__( - self, - sample_key: str, - prediction_key: str, - block_size: int, - vocab_size: int, - n_layer: int, - n_head: int, - n_embd: int, - ffn_hidden: int, - dropout: float, - bias: bool, - activation: ActivationType, - epsilon: float, - attention_config: AttentionConfig = None, + self, + sample_key: str, + prediction_key: str, + block_size: int, + vocab_size: int, + n_layer: int, + n_head: int, + n_embd: int, + ffn_hidden: int, + dropout: float, + bias: bool, + activation: ActivationType, + epsilon: float, + attention_config: AttentionConfig = None, ): super().__init__() self.sample_key = sample_key @@ -71,3 +72,12 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: for block in self.transformer.h: x = block(x) return {self.prediction_key: x} + + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + raise NotImplementedError diff --git a/src/modalities/models/gpt2/gpt2_model.py b/src/modalities/models/gpt2/gpt2_model.py index 74277dbc..b31be9fd 100644 --- a/src/modalities/models/gpt2/gpt2_model.py +++ b/src/modalities/models/gpt2/gpt2_model.py @@ -1,4 +1,5 @@ import math +import sys from copy import deepcopy from enum import Enum from functools import partial @@ -9,12 +10,15 @@ import xformers.ops as xops from flash_attn import flash_attn_func from pydantic import BaseModel, Field, model_validator, validator +from torch.nn import functional as F +from transformers import PreTrainedTokenizer from modalities.config.config import PydanticPytorchModuleType from modalities.config.utils import convert_base_model_config_to_dict from modalities.models.model import NNModel from modalities.util import parse_enum_by_name + # GPT2 implementation taken from nanogpt https://github.com/karpathy/nanoGPT @@ -25,20 +29,20 @@ class PositionTypes(str, Enum): class QueryKeyValueTransform(nn.Module): def forward( - self, - q: torch.Tensor, - k: torch.Tensor, - v: torch.Tensor, + self, + q: torch.Tensor, + k: torch.Tensor, + v: torch.Tensor, ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: pass class IdentityTransform(QueryKeyValueTransform): def forward( - self, - q: torch.Tensor, - k: torch.Tensor, - v: torch.Tensor, + self, + q: torch.Tensor, + k: torch.Tensor, + v: torch.Tensor, ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: return q, k, v @@ -90,7 +94,7 @@ def apply_rotary_pos_emb(self, x, cos, sin): return (x * cos) + (self.rotate_half(x) * sin) def forward( - self, q: torch.Tensor, k: torch.Tensor, v: torch.Tensor + self, q: torch.Tensor, k: torch.Tensor, v: torch.Tensor ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: self._cos_cached, self._sin_cached = self._update_cos_sin_tables(k) q = self.apply_rotary_pos_emb(q, self._cos_cached, self._sin_cached) @@ -165,7 +169,7 @@ def check_divisibility(self) -> "GPT2LLMConfig": @model_validator(mode="after") def validate_sizes(self) -> "GPT2LLMConfig": for param, param_name in zip( - [self.ffn_hidden, self.vocab_size, self.n_embd], ["ffn_hidden", "vocab_size", "n_embd"] + [self.ffn_hidden, self.vocab_size, self.n_embd], ["ffn_hidden", "vocab_size", "n_embd"] ): if param % 128 != 0: # See https://docs.nvidia.com/deeplearning/performance/dl-performance-matrix-multiplication/index.html#requirements-tc @@ -175,14 +179,14 @@ def validate_sizes(self) -> "GPT2LLMConfig": class CausalSelfAttention(nn.Module): def __init__( - self, - n_head_q: int, - n_head_kv: int, - n_embd: int, - attention_config: AttentionConfig, - bias: bool, - dropout: float, - block_size: int, + self, + n_head_q: int, + n_head_kv: int, + n_embd: int, + attention_config: AttentionConfig, + bias: bool, + dropout: float, + block_size: int, ): super().__init__() assert n_embd % n_head_q == 0, "`n_embd needs` to be divisible by `n_head_q`." @@ -235,7 +239,7 @@ def projection(self, x: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor, torch @staticmethod def execute_qkv_transforms( - q: torch.Tensor, k: torch.Tensor, v: torch.Tensor, qkv_transforms: nn.ModuleList, n_head_q: int + q: torch.Tensor, k: torch.Tensor, v: torch.Tensor, qkv_transforms: nn.ModuleList, n_head_q: int ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: batch_size = q.shape[0] block_size = q.shape[1] @@ -297,18 +301,18 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: class GPT2Block(nn.Module): def __init__( - self, - n_embd: int, - bias: bool, - n_head_q: int, - n_head_kv: int, - activation_type: ActivationType, - attention_config: AttentionConfig, - dropout: float, - block_size: int, - ffn_hidden: int, - attention_norm: nn.Module, - ffn_norm: nn.Module, + self, + n_embd: int, + bias: bool, + n_head_q: int, + n_head_kv: int, + activation_type: ActivationType, + attention_config: AttentionConfig, + dropout: float, + block_size: int, + ffn_hidden: int, + attention_norm: nn.Module, + ffn_norm: nn.Module, ): super().__init__() self.attention_norm = attention_norm @@ -340,26 +344,26 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: class GPT2LLM(NNModel): def __init__( - self, - sample_key: str, - prediction_key: str, - poe_type: PositionTypes, - block_size: int, - vocab_size: int, - n_layer: int, - n_head_q: int, - n_head_kv: int, - n_embd: int, - ffn_hidden: int, - dropout: float, - bias: bool, - activation_type: ActivationType, - weight_init: WeightInitializationConfig, - attention_config: AttentionConfig, - attention_norm: nn.Module, - ffn_norm: nn.Module, - lm_head_norm: nn.Module, - seed: int = None + self, + sample_key: str, + prediction_key: str, + poe_type: PositionTypes, + block_size: int, + vocab_size: int, + n_layer: int, + n_head_q: int, + n_head_kv: int, + n_embd: int, + ffn_hidden: int, + dropout: float, + bias: bool, + activation_type: ActivationType, + weight_init: WeightInitializationConfig, + attention_config: AttentionConfig, + attention_norm: nn.Module, + ffn_norm: nn.Module, + lm_head_norm: nn.Module, + seed: int = None ): super().__init__(seed=seed) @@ -460,3 +464,34 @@ def forward_impl(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tenso def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: return self.forward_impl(inputs) + + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + in_batch = tokenizer([context]) + in_batch[self.sample_key] = torch.Tensor(in_batch[self.sample_key]).to(torch.int64) + + for _ in range(max_new_tokens): + in_batch[self.sample_key] = ( + in_batch[self.sample_key] if in_batch[self.sample_key].size(1) <= self.block_size else in_batch[ + self.sample_key][ + :, + -self.block_size:] + ) + logits = self.forward(in_batch)[self.prediction_key] + logits = logits[:, -1, :] / temperature + probs = F.softmax(logits, dim=-1) + idx_next = torch.multinomial(probs, num_samples=1) + idx_next_str = tokenizer.decode(idx_next[0]) + if idx_next_str == tokenizer.eos_token: + print("\n", end="") + break + else: + print(idx_next_str, end="") + sys.stdout.flush() + in_batch[self.sample_key] = torch.cat((in_batch[self.sample_key], idx_next), dim=1) + print("") diff --git a/src/modalities/models/huggingface/huggingface_models.py b/src/modalities/models/huggingface/huggingface_models.py index 4c66d46f..5e958138 100644 --- a/src/modalities/models/huggingface/huggingface_models.py +++ b/src/modalities/models/huggingface/huggingface_models.py @@ -3,11 +3,12 @@ import torch from pydantic import BaseModel -from transformers import AutoModelForCausalLM, AutoModelForMaskedLM, AutoTokenizer +from transformers import AutoModelForCausalLM, AutoModelForMaskedLM, AutoTokenizer, PreTrainedTokenizer from modalities.config.lookup_enum import LookupEnum from modalities.models.model import NNModel + # Huggingface Model dependencies # # ModuleUtilsMixin @@ -38,14 +39,14 @@ class HuggingFacePretrainedModelConfig(BaseModel): class HuggingFacePretrainedModel(NNModel): def __init__( - self, - model_type: HuggingFaceModelTypes, - model_name: str, - prediction_key: str, - huggingface_prediction_subscription_key: str, - sample_key: str, - model_args: Optional[Any] = None, - kwargs: Optional[Any] = None, + self, + model_type: HuggingFaceModelTypes, + model_name: str, + prediction_key: str, + huggingface_prediction_subscription_key: str, + sample_key: str, + model_args: Optional[Any] = None, + kwargs: Optional[Any] = None, ): super().__init__() if model_args is None: @@ -71,6 +72,15 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: def fsdp_block_names(self) -> List[str]: return self.huggingface_model._no_split_modules + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + raise NotImplementedError + if __name__ == "__main__": tokenizer = AutoTokenizer.from_pretrained("epfl-llm/meditron-7b") diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index d4acada7..dab15bcb 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -1,18 +1,17 @@ # Copyright (c) 2023, Albert Gu, Tri Dao. import math -from functools import partial import sys -from typing import Dict, Optional +from functools import partial +from typing import Dict import torch import torch.nn as nn import torch.nn.functional as F -from pydantic import BaseModel -from transformers import PreTrainedTokenizer - from modalities.models.mamba.mamba_block import Block, MambaBlock from modalities.models.model import NNModel +from pydantic import BaseModel +from transformers import PreTrainedTokenizer try: from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn @@ -186,11 +185,12 @@ def __init__( pad_vocab_size_multiple: int, tie_embeddings: bool, prediction_key: str, + sample_key: str, seed: int = None, dtype: str = None, initializer_cfg=None, num_last_tokens=0, - inference_params=None + inference_params=None, ): super().__init__(seed=seed) if initializer_cfg is None: @@ -206,6 +206,8 @@ def __init__( self.pad_vocab_size_multiple = pad_vocab_size_multiple self.tie_embeddings = tie_embeddings self.prediction_key = prediction_key + self.sample_key = sample_key + self.dtype = dtype # todo: How to pass these variables in the forward method? self.inference_params = inference_params @@ -222,9 +224,9 @@ def __init__( initializer_cfg=initializer_cfg, fused_add_norm=self.fused_add_norm, residual_in_fp32=self.residual_in_fp32, - dtype=dtype, + dtype=self.dtype, ) - self.lm_head = nn.Linear(self.d_model, self.vocab_size, bias=False, dtype=dtype) + self.lm_head = nn.Linear(self.d_model, self.vocab_size, bias=False, dtype=self.dtype) # Initialize weights and apply final processing self.apply( @@ -248,24 +250,25 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: num_last_tokens: if > 0, only return the logits for the last n tokens """ - hidden_states = self.backbone(inputs["input_ids"], inference_params=self.inference_params) + hidden_states = self.backbone(inputs[self.sample_key], inference_params=self.inference_params) if self.num_last_tokens > 0: hidden_states = hidden_states[:, -self.num_last_tokens:] lm_logits = self.lm_head(hidden_states.to(self.lm_head.weight.dtype)) return {self.prediction_key: lm_logits} - + def generate( - self, - tokenizer: PreTrainedTokenizer, - context: str, - max_new_tokens: int, - temperature: float = 1.0, + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, ): if not context: raise ValueError("Context must be not empty") - + in_batch = tokenizer([context]) - in_batch["input_ids"] = torch.Tensor(in_batch["input_ids"]).to(torch.int32).to(next(self.parameters()).device) + in_batch[self.sample_key] = torch.Tensor(in_batch[self.sample_key]).to(torch.int32).to( + next(self.parameters()).device) for _ in range(max_new_tokens): logits = self.forward(in_batch)["logits"] @@ -279,7 +282,7 @@ def generate( else: print(idx_next_str, end="") sys.stdout.flush() - in_batch["input_ids"] = torch.cat((in_batch["input_ids"], idx_next), dim=1) + in_batch[self.sample_key] = torch.cat((in_batch[self.sample_key], idx_next), dim=1) print("") @@ -294,4 +297,9 @@ class MambaLLMConfig(BaseModel): pad_vocab_size_multiple: int tie_embeddings: bool prediction_key: str - #dtype: Optional[str] + sample_key: str + # dtype: Optional[str] + + +if __name__ == '__main__': + print("hello") diff --git a/src/modalities/models/model.py b/src/modalities/models/model.py index dfcb02f6..840beab1 100644 --- a/src/modalities/models/model.py +++ b/src/modalities/models/model.py @@ -5,6 +5,7 @@ import torch.nn as nn from modalities.batch import DatasetBatch, InferenceResultBatch +from transformers import PreTrainedTokenizer class NNModel(nn.Module): @@ -20,6 +21,16 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: def get_parameters(self) -> Dict[str, torch.Tensor]: return {name: param for name, param in self.named_parameters()} + @abstractmethod + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + ... + def model_predict_batch(model: nn.Module, batch: DatasetBatch) -> InferenceResultBatch: forward_result = model.forward(batch.samples) diff --git a/src/modalities/utils/generate_text.py b/src/modalities/utils/generate_text.py index c6eb329f..cf25506e 100755 --- a/src/modalities/utils/generate_text.py +++ b/src/modalities/utils/generate_text.py @@ -4,19 +4,15 @@ # 2) How do we make the inference script robust against (architecture) changes? Maybe save the commit hash in the model state dict? # noqa: E501 # 3) Register script in the pyproject toml? -from functools import partial import os import readline # noqa: F401 -import sys from pathlib import Path import torch -from torch.nn import functional as F from transformers import PreTrainedTokenizer from modalities.config.component_factory import ComponentFactory from modalities.config.config import ComponentsInferenceModel, load_app_config_dict -from modalities.models.mamba.mamba_model import MambaLLM from modalities.registry.components import COMPONENTS from modalities.registry.registry import Registry @@ -59,36 +55,6 @@ bot: """ -def generate( - model: torch.nn.Module, - tokenizer: PreTrainedTokenizer, - context: str, - seq_len: int, - max_new_tokens: int, - temperature: float = 1.0, -): - in_batch = tokenizer([context]) - in_batch["input_ids"] = torch.Tensor(in_batch["input_ids"]).to(torch.int64) - - for _ in range(max_new_tokens): - in_batch["input_ids"] = ( - in_batch["input_ids"] if in_batch["input_ids"].size(1) <= seq_len else in_batch["input_ids"][:, -seq_len:] - ) - logits = model.forward(in_batch)["logits"] - logits = logits[:, -1, :] / temperature - probs = F.softmax(logits, dim=-1) - idx_next = torch.multinomial(probs, num_samples=1) - idx_next_str = tokenizer.decode(idx_next[0]) - if idx_next_str == tokenizer.eos_token: - print("\n", end="") - break - else: - print(idx_next_str, end="") - sys.stdout.flush() - in_batch["input_ids"] = torch.cat((in_batch["input_ids"], idx_next), dim=1) - print("") - - def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, max_new_tokens: int, chat: bool): os.environ["LOCAL_RANK"] = "1" os.environ["RANK"] = "1" @@ -109,11 +75,6 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma model.load_state_dict(state_dict) model.eval() - if type(model.module) == MambaLLM: - generate_fn = model.module.generate - else: - seq_len = model.config.block_size - generate_fn = partial(generate, model=model, seq_len=seq_len) while True: try: @@ -121,7 +82,7 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma if chat is True: prompt = input("enter question> ").strip() prompt = chat_prefix + chat_prompt_template.format(prompt=prompt) - generate_fn( + model.module.generate( tokenizer=tokenizer, context=prompt, max_new_tokens=max_new_tokens @@ -129,7 +90,7 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma else: prompt = input("enter prompt> ") print(prompt, end="") - generate_fn( + model.module.generate( tokenizer=tokenizer, context=prompt, max_new_tokens=max_new_tokens diff --git a/tests/models/mamba/test_mamba_model.py b/tests/models/mamba/test_mamba_model.py index 8bf93616..dc8181c6 100644 --- a/tests/models/mamba/test_mamba_model.py +++ b/tests/models/mamba/test_mamba_model.py @@ -46,10 +46,15 @@ def prediction_key(): @pytest.fixture() -def mamba_llm(d_model, n_layer, vocab_size, prediction_key): +def sample_key(): + return "input_ids" + + +@pytest.fixture() +def mamba_llm(d_model, n_layer, vocab_size, prediction_key, sample_key): return MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=vocab_size, ssm_cfg={}, rms_norm=True, residual_in_fp32=False, fused_add_norm=False, pad_vocab_size_multiple=1, tie_embeddings=False, - prediction_key=prediction_key) + prediction_key=prediction_key, sample_key=sample_key) @pytest.fixture() @@ -108,3 +113,7 @@ def test_tie_weights(mamba_llm): mamba_llm.tie_embeddings = True mamba_llm.tie_weights() assert (mamba_llm.lm_head.weight == mamba_llm.backbone.embedding.weight).all() + + +def test_generate(mamba_llm): + raise NotImplementedError diff --git a/tests/utils/test_gradient_clipping.py b/tests/utils/test_gradient_clipping.py index ac7eff05..897c680f 100644 --- a/tests/utils/test_gradient_clipping.py +++ b/tests/utils/test_gradient_clipping.py @@ -8,6 +8,7 @@ from modalities.config.config import GradientClippingMode from modalities.models.model import NNModel from modalities.utils.gradient_clipping import build_gradient_clipper +from transformers import PreTrainedTokenizer @pytest.mark.parametrize( @@ -48,6 +49,15 @@ def get_aggregated_grad_norm(self, gradient_clipping_mode: GradientClippingMode) if gradient_clipping_mode == GradientClippingMode.VALUE: return gradient_vector.abs().sum() + def generate( + self, + tokenizer: PreTrainedTokenizer, + context: str, + max_new_tokens: int, + temperature: float = 1.0, + ): + raise NotImplementedError + def _run_gradient_clipping_experiment(gradient_clipping_mode: GradientClippingMode, threshold: Optional[float] = None): model = TestModel() From d9be9453287c2ca134d5c76392bede151025941c Mon Sep 17 00:00:00 2001 From: mrudat-iais Date: Wed, 8 May 2024 16:42:25 +0200 Subject: [PATCH 15/25] refactor(mamba): - generate method now in interface - "input_ids" now as variable saved in models and configs --- .../config_mem_map_mamba_overfitting.yaml | 47 ++++---- .../config_mem_map_mamba_small_scale.yaml | 72 ++++++------ src/modalities/__main__.py | 2 +- src/modalities/config/config.py | 1 - src/modalities/models/mamba/mamba_block.py | 67 +++++------ src/modalities/models/mamba/mamba_config.py | 47 ++++++++ src/modalities/models/mamba/mamba_model.py | 109 ++++++------------ src/modalities/registry/components.py | 3 +- src/modalities/utils/generate_text.py | 20 ++++ 9 files changed, 201 insertions(+), 167 deletions(-) create mode 100644 src/modalities/models/mamba/mamba_config.py diff --git a/config_files/training/config_mem_map_mamba_overfitting.yaml b/config_files/training/config_mem_map_mamba_overfitting.yaml index 81bddc36..24ea0d1a 100644 --- a/config_files/training/config_mem_map_mamba_overfitting.yaml +++ b/config_files/training/config_mem_map_mamba_overfitting.yaml @@ -163,27 +163,34 @@ model: d_model: 768 n_layer: 24 vocab_size: 50257 - rms_norm: True - ssm_cfg: - d_state: 16 - d_conv: 4 - expand: 2 - dt_rank: "auto" - dt_min: 0.001 - dt_max: 0.1 - dt_init: "random" - dt_scale: 1.0 - dt_init_floor: 1e-4 - conv_bias: True - bias: False - use_fast_path: True - residual_in_fp32: True - fused_add_norm: True + rms_norm: true + residual_in_fp32: true + fused_add_norm: true pad_vocab_size_multiple: 8 - tie_embeddings: True - prediction_key: logits - sample_key: input_ids - # dtype: null # TODO make this an optional parameter + tie_embeddings: true + prediction_key: ${settings.referencing_keys.prediction_key} + sample_key: ${settings.referencing_keys.sample_key} + seed: null + dtype: null + initializer_cfg: {} + num_last_tokens: 0 + inference_params: {} + mixer_model_config: + norm_epsilon: 1e-5 + device: null + mamba_block_config: + d_state: 16 + d_conv: 4 + expand: 2 + dt_rank: auto + dt_min: 0.001 + dt_max: 0.1 + dt_init: random + dt_scale: 1.0 + dt_init_floor: 1e-4 + conv_bias: true + bias: false + use_fast_path: true loss_fn: diff --git a/config_files/training/config_mem_map_mamba_small_scale.yaml b/config_files/training/config_mem_map_mamba_small_scale.yaml index 26c4686b..80e99357 100644 --- a/config_files/training/config_mem_map_mamba_small_scale.yaml +++ b/config_files/training/config_mem_map_mamba_small_scale.yaml @@ -1,4 +1,4 @@ -settings: +settings: experiment_id: ${modalities_env:experiment_id} referencing_keys: sample_key: input_ids @@ -6,7 +6,7 @@ settings: prediction_key: logits training: global_training_log_interval_in_steps: 10 - global_checkpointing_interval_in_steps: 1000 + global_checkpointing_interval_in_steps: 1000 global_evaluation_interval_in_steps: 64 global_num_seen_steps: 0 do_apply_activation_checkpointing: false @@ -23,7 +23,7 @@ settings: paths: checkpointing_path: data/checkpoints -collate_fn: +collate_fn: component_key: collate_fn variant_key: gpt_2_llm_collator config: @@ -36,7 +36,7 @@ train_dataset: config: raw_data_path: /raid/fhgiais/opengptx/michaelf/git_repos/modalities/data-temp/en/modalities/2048/train_2048.pbin block_size: ${settings.training.sequence_length} - sample_key: ${settings.referencing_keys.sample_key} + sample_key: ${settings.referencing_keys.sample_key} val_dataset: component_key: dataset @@ -44,7 +44,7 @@ val_dataset: config: raw_data_path: /raid/fhgiais/opengptx/michaelf/git_repos/modalities/data-temp/en/modalities/2048/valid_2048.pbin block_size: ${settings.training.sequence_length} - sample_key: ${settings.referencing_keys.sample_key} + sample_key: ${settings.referencing_keys.sample_key} train_dataloader: component_key: data_loader @@ -52,7 +52,7 @@ train_dataloader: config: reshuffle_after_epoch: false num_epochs: 1 # 100 epochs - dataloader: + dataloader: component_key: data_loader variant_key: default config: @@ -134,7 +134,7 @@ checkpointing: config: checkpoint_path: ${settings.paths.checkpointing_path} global_rank: ${settings.cuda_env.global_rank} - experiment_id: ${settings.experiment_id} + experiment_id: ${settings.experiment_id} mixed_precision_settings: BF_16 sharding_strategy: FULL_SHARD block_names: [ MambaBlock ] @@ -149,7 +149,7 @@ wrapped_model: sync_module_states: true mixed_precision_settings: BF_16 sharding_strategy: FULL_SHARD - block_names: [MambaBlock] + block_names: [ MambaBlock ] model: component_key: model @@ -158,28 +158,34 @@ model: d_model: 768 n_layer: 24 vocab_size: 50257 - rms_norm: True - ssm_cfg: - d_state: 16 - d_conv: 4 - expand: 2 - dt_rank: "auto" - dt_min: 0.001 - dt_max: 0.1 - dt_init: "random" - dt_scale: 1.0 - dt_init_floor: 1e-4 - conv_bias: True - bias: False - use_fast_path: True - residual_in_fp32: True - fused_add_norm: True + rms_norm: true + residual_in_fp32: true + fused_add_norm: true pad_vocab_size_multiple: 8 - tie_embeddings: True - prediction_key: logits - sample_key: input_ids - # dtype: null # TODO make this an optional parameter - + tie_embeddings: true + prediction_key: ${settings.referencing_keys.prediction_key} + sample_key: ${settings.referencing_keys.sample_key} + seed: null + dtype: null + initializer_cfg: {} + num_last_tokens: 0 + inference_params: {} + mixer_model_config: + norm_epsilon: 1e-5 + device: null + mamba_block_config: + d_state: 16 + d_conv: 4 + expand: 2 + dt_rank: auto + dt_min: 0.001 + dt_max: 0.1 + dt_init: random + dt_scale: 1.0 + dt_init_floor: 1e-4 + conv_bias: true + bias: false + use_fast_path: true loss_fn: component_key: loss @@ -188,15 +194,15 @@ loss_fn: target_key: ${settings.referencing_keys.target_key} prediction_key: ${settings.referencing_keys.prediction_key} -optimizer: +optimizer: component_key: optimizer variant_key: adam_w config: lr: 0.0001 - betas: [0.9, 0.95] + betas: [ 0.9, 0.95 ] eps: 1e-8 weight_decay: 1e-1 - wrapped_model: + wrapped_model: instance_key: wrapped_model pass_type: BY_REFERENCE @@ -223,7 +229,7 @@ batch_progress_subscriber: - instance_key: val_dataloader pass_type: BY_REFERENCE - + evaluation_subscriber: component_key: results_subscriber variant_key: wandb diff --git a/src/modalities/__main__.py b/src/modalities/__main__.py index 7d926f22..deda3246 100644 --- a/src/modalities/__main__.py +++ b/src/modalities/__main__.py @@ -286,4 +286,4 @@ def get_logging_publishers( if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/src/modalities/config/config.py b/src/modalities/config/config.py index a8df7531..d874ae95 100644 --- a/src/modalities/config/config.py +++ b/src/modalities/config/config.py @@ -439,7 +439,6 @@ class PackedDatasetComponentsInstantiationModel(BaseModel): class ComponentsInferenceModel(BaseModel): wrapped_model: PydanticPytorchModuleType - cuda_env: CudaEnvConfig def load_app_config_dict(config_file_path: Path) -> Dict: diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py index ee8e1eff..a2e7527e 100644 --- a/src/modalities/models/mamba/mamba_block.py +++ b/src/modalities/models/mamba/mamba_block.py @@ -6,6 +6,7 @@ import torch import torch.nn as nn import torch.nn.functional as F +from pydantic import BaseModel from torch import Tensor from einops import rearrange, repeat @@ -30,23 +31,23 @@ class MambaBlock(nn.Module): def __init__( - self, - d_model, - d_state=16, - d_conv=4, - expand=2, - dt_rank="auto", - dt_min=0.001, - dt_max=0.1, - dt_init="random", - dt_scale=1.0, - dt_init_floor=1e-4, - conv_bias=True, - bias=False, - use_fast_path=True, # Fused kernel options - layer_idx=None, - device=None, - dtype=None, + self, + d_model, + d_state=16, + d_conv=4, + expand=2, + dt_rank="auto", + dt_min=0.001, + dt_max=0.1, + dt_init="random", + dt_scale=1.0, + dt_init_floor=1e-4, + conv_bias=True, + bias=False, + use_fast_path=True, + layer_idx=None, + device=None, + dtype=None, ): factory_kwargs = {"device": device, "dtype": dtype} super().__init__() @@ -80,7 +81,7 @@ def __init__( self.dt_proj = nn.Linear(self.dt_rank, self.d_inner, bias=True, **factory_kwargs) # Initialize special dt projection to preserve variance at initialization - dt_init_std = self.dt_rank**-0.5 * dt_scale + dt_init_std = self.dt_rank ** -0.5 * dt_scale if dt_init == "constant": nn.init.constant_(self.dt_proj.weight, dt_init_std) elif dt_init == "random": @@ -124,7 +125,7 @@ def forward(self, hidden_states, inference_params=None): batch, seqlen, dim = hidden_states.shape conv_state, ssm_state = None, None - if inference_params is not None: + if inference_params: conv_state, ssm_state = self._get_states_from_cache(inference_params, batch) if inference_params.seqlen_offset > 0: # The states are updated inplace @@ -298,7 +299,12 @@ def _get_states_from_cache(self, inference_params, batch_size, initialize_states class Block(nn.Module): def __init__( - self, dim, mixer_cls, norm_cls=nn.LayerNorm, fused_add_norm=False, residual_in_fp32=False + self, + d_model: int, + mixer_cls: MambaBlock, + norm_cls: nn.LayerNorm, + fused_add_norm: bool, + residual_in_fp32: bool, ): """ Simple block wrapping a mixer class with LayerNorm/RMSNorm and residual connection" @@ -315,8 +321,8 @@ def __init__( super().__init__() self.residual_in_fp32 = residual_in_fp32 self.fused_add_norm = fused_add_norm - self.mixer = mixer_cls(dim) - self.norm = norm_cls(dim) + self.mixer = mixer_cls(d_model) + self.norm = norm_cls(d_model) if self.fused_add_norm: assert RMSNorm is not None, "RMSNorm import fails" assert isinstance( @@ -324,7 +330,7 @@ def __init__( ), "Only LayerNorm and RMSNorm are supported for fused_add_norm" def forward( - self, hidden_states: Tensor, residual: Optional[Tensor] = None, inference_params=None + self, hidden_states: Tensor, residual: Optional[Tensor] = None, inference_params=None ): r"""Pass the input through the encoder layer. @@ -353,18 +359,3 @@ def forward( def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): return self.mixer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) - - -if __name__ == '__main__': - batch, length, dim = 2, 64, 16 - x = torch.randn(batch, length, dim).to("cuda") - model = MambaBlock( - # This module uses roughly 3 * expand * d_model^2 parameters - d_model=dim, # Model dimension d_model - d_state=16, # SSM state expansion factor - d_conv=4, # Local convolution width - expand=2, # Block expansion factor - ).to("cuda") - y = model(x) - assert y.shape == x.shape - print(y) diff --git a/src/modalities/models/mamba/mamba_config.py b/src/modalities/models/mamba/mamba_config.py new file mode 100644 index 00000000..5c88b397 --- /dev/null +++ b/src/modalities/models/mamba/mamba_config.py @@ -0,0 +1,47 @@ +from typing import Optional + +from pydantic import BaseModel + + +class MambaBlockConfig(BaseModel): + d_state: int + d_conv: int + expand: int + dt_rank: str + dt_min: float + dt_max: float + dt_init: str + dt_scale: float + dt_init_floor: float + conv_bias: bool + bias: bool + use_fast_path: bool + + +class MixerModelConfig(BaseModel): + norm_epsilon: float + device: Optional[str] + mamba_block_config: MambaBlockConfig + + +class BlockConfig(BaseModel): + ... + + +class MambaLLMConfig(BaseModel): + d_model: int + n_layer: int + vocab_size: int + rms_norm: bool + residual_in_fp32: bool + fused_add_norm: bool + pad_vocab_size_multiple: int + tie_embeddings: bool + prediction_key: str + sample_key: str + seed: Optional[int] + dtype: Optional[int] + initializer_cfg: dict + num_last_tokens: int + inference_params: dict + mixer_model_config: MixerModelConfig diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index dab15bcb..22bc6979 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -9,8 +9,8 @@ import torch.nn as nn import torch.nn.functional as F from modalities.models.mamba.mamba_block import Block, MambaBlock +from modalities.models.mamba.mamba_config import MixerModelConfig, MambaBlockConfig from modalities.models.model import NNModel -from pydantic import BaseModel from transformers import PreTrainedTokenizer try: @@ -20,30 +20,23 @@ def create_block( - d_model, - ssm_cfg=None, - norm_epsilon=1e-5, - rms_norm=False, - residual_in_fp32=False, - fused_add_norm=False, - layer_idx=None, - device=None, - dtype=None, + d_model: int, + ssm_cfg: dict, + norm_epsilon: float, + rms_norm: bool, + residual_in_fp32: bool, + fused_add_norm: bool, + layer_idx: int, + device: str, + dtype: str, ): - if ssm_cfg is None: - ssm_cfg = {} factory_kwargs = {"device": device, "dtype": dtype} mixer_cls = partial(MambaBlock, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) norm_cls = partial( nn.LayerNorm if not rms_norm else RMSNorm, eps=norm_epsilon, **factory_kwargs ) - block = Block( - d_model, - mixer_cls, - norm_cls=norm_cls, - fused_add_norm=fused_add_norm, - residual_in_fp32=residual_in_fp32, - ) + block = Block(d_model=d_model, mixer_cls=mixer_cls, norm_cls=norm_cls, fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32) block.layer_idx = layer_idx return block @@ -87,51 +80,41 @@ def __init__( d_model: int, n_layer: int, vocab_size: int, - ssm_cfg=None, - norm_epsilon: float = 1e-5, - rms_norm: bool = False, - initializer_cfg=None, - fused_add_norm=False, - residual_in_fp32=False, - device=None, - dtype=None, + norm_epsilon: float, + rms_norm: bool, + initializer_cfg: dict, + fused_add_norm: bool, + residual_in_fp32: bool, + device: str, + dtype: str, + mamba_block_config: MambaBlockConfig, ) -> None: - factory_kwargs = {"device": device, "dtype": dtype} super().__init__() - self.residual_in_fp32 = residual_in_fp32 - + factory_kwargs = {"device": device, "dtype": dtype} self.embedding = nn.Embedding(vocab_size, d_model, **factory_kwargs) - - # We change the order of residual and layer norm: - # Instead of LN -> Attn / MLP -> Add, we do: - # Add -> LN -> Attn / MLP / Mixer, returning both the residual branch (output of Add) and - # the main branch (output of MLP / Mixer). The model definition is unchanged. - # This is for performance reason: we can fuse add + layer_norm. + self.residual_in_fp32 = residual_in_fp32 self.fused_add_norm = fused_add_norm if self.fused_add_norm: if layer_norm_fn is None or rms_norm_fn is None: raise ImportError("Failed to import Triton LayerNorm / RMSNorm kernels") - self.layers = nn.ModuleList( [ create_block( d_model, - ssm_cfg=ssm_cfg, norm_epsilon=norm_epsilon, rms_norm=rms_norm, residual_in_fp32=residual_in_fp32, fused_add_norm=fused_add_norm, layer_idx=i, + ssm_cfg=mamba_block_config.dict(), **factory_kwargs, ) for i in range(n_layer) ] ) - self.norm_f = (nn.LayerNorm if not rms_norm else RMSNorm)( d_model, eps=norm_epsilon, **factory_kwargs ) - self.apply( partial( _init_weights, @@ -178,7 +161,6 @@ def __init__( d_model: int, n_layer: int, vocab_size: int, - ssm_cfg: dict, rms_norm: bool, residual_in_fp32: bool, fused_add_norm: bool, @@ -186,20 +168,18 @@ def __init__( tie_embeddings: bool, prediction_key: str, sample_key: str, - seed: int = None, - dtype: str = None, - initializer_cfg=None, - num_last_tokens=0, - inference_params=None, + seed: int, + dtype: str, + initializer_cfg: dict, + num_last_tokens: int, + inference_params: dict, + mixer_model_config: MixerModelConfig, ): super().__init__(seed=seed) - if initializer_cfg is None: - initializer_cfg = {} self.d_model = d_model self.n_layer = n_layer self.vocab_size = vocab_size - self.ssm_cfg = ssm_cfg self.rms_norm = rms_norm self.residual_in_fp32 = residual_in_fp32 self.fused_add_norm = fused_add_norm @@ -208,6 +188,8 @@ def __init__( self.prediction_key = prediction_key self.sample_key = sample_key self.dtype = dtype + self.initializer_cfg = initializer_cfg + self.mixer_model_config = mixer_model_config # todo: How to pass these variables in the forward method? self.inference_params = inference_params @@ -219,16 +201,16 @@ def __init__( d_model=self.d_model, n_layer=self.n_layer, vocab_size=self.vocab_size, - ssm_cfg=self.ssm_cfg, rms_norm=self.rms_norm, - initializer_cfg=initializer_cfg, + initializer_cfg=self.initializer_cfg, fused_add_norm=self.fused_add_norm, residual_in_fp32=self.residual_in_fp32, dtype=self.dtype, + norm_epsilon=self.mixer_model_config.norm_epsilon, + device=self.mixer_model_config.device, + mamba_block_config=self.mixer_model_config.mamba_block_config ) self.lm_head = nn.Linear(self.d_model, self.vocab_size, bias=False, dtype=self.dtype) - - # Initialize weights and apply final processing self.apply( partial( _init_weights, @@ -271,7 +253,7 @@ def generate( next(self.parameters()).device) for _ in range(max_new_tokens): - logits = self.forward(in_batch)["logits"] + logits = self.forward(in_batch)[self.prediction_key] logits = logits[:, -1, :] / temperature probs = F.softmax(logits, dim=-1) idx_next = torch.multinomial(probs, num_samples=1) @@ -284,22 +266,3 @@ def generate( sys.stdout.flush() in_batch[self.sample_key] = torch.cat((in_batch[self.sample_key], idx_next), dim=1) print("") - - -class MambaLLMConfig(BaseModel): - d_model: int - n_layer: int - vocab_size: int - ssm_cfg: dict - rms_norm: bool - residual_in_fp32: bool - fused_add_norm: bool - pad_vocab_size_multiple: int - tie_embeddings: bool - prediction_key: str - sample_key: str - # dtype: Optional[str] - - -if __name__ == '__main__': - print("hello") diff --git a/src/modalities/registry/components.py b/src/modalities/registry/components.py index 4025bede..a0375e95 100644 --- a/src/modalities/registry/components.py +++ b/src/modalities/registry/components.py @@ -62,12 +62,13 @@ HuggingFacePretrainedModel, HuggingFacePretrainedModelConfig, ) +from modalities.models.mamba.mamba_config import MambaLLMConfig from modalities.models.model_factory import ModelFactory from modalities.optimizers.lr_schedulers import DummyLRScheduler from modalities.optimizers.optimizer_factory import OptimizerFactory from modalities.tokenization.tokenizer_wrapper import PreTrainedHFTokenizer, PreTrainedSPTokenizer -from modalities.models.mamba.mamba_model import MambaLLM, MambaLLMConfig +from modalities.models.mamba.mamba_model import MambaLLM @dataclass diff --git a/src/modalities/utils/generate_text.py b/src/modalities/utils/generate_text.py index cf25506e..d526bd27 100755 --- a/src/modalities/utils/generate_text.py +++ b/src/modalities/utils/generate_text.py @@ -76,6 +76,26 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma model.load_state_dict(state_dict) model.eval() + # todo change back + # enter_interactive(chat, model, tokenizer, max_new_tokens) + enter_manual("My", model, tokenizer, max_new_tokens) + + +def enter_manual(prompt: str, model, tokenizer, max_new_tokens): + while True: + try: + prompt = prompt + print(prompt, end="") + model.module.generate( + tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens + ) + except ValueError as e: + print(e) + + +def enter_interactive(chat, model, tokenizer, max_new_tokens): while True: try: print("-" * 50) From 73a0c2bd333177b350ad8278491ef1eda01a4b90 Mon Sep 17 00:00:00 2001 From: mrudat-iais Date: Wed, 8 May 2024 16:43:08 +0200 Subject: [PATCH 16/25] refactor(mamba): - generate method now in interface - "input_ids" now as variable saved in models and configs --- src/modalities/utils/generate_text.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/modalities/utils/generate_text.py b/src/modalities/utils/generate_text.py index d526bd27..e3bcf11a 100755 --- a/src/modalities/utils/generate_text.py +++ b/src/modalities/utils/generate_text.py @@ -76,23 +76,20 @@ def main(model_path: Path, config_path: Path, tokenizer: PreTrainedTokenizer, ma model.load_state_dict(state_dict) model.eval() - # todo change back - # enter_interactive(chat, model, tokenizer, max_new_tokens) - enter_manual("My", model, tokenizer, max_new_tokens) + enter_interactive(chat, model, tokenizer, max_new_tokens) def enter_manual(prompt: str, model, tokenizer, max_new_tokens): - while True: - try: - prompt = prompt - print(prompt, end="") - model.module.generate( - tokenizer=tokenizer, - context=prompt, - max_new_tokens=max_new_tokens - ) - except ValueError as e: - print(e) + try: + prompt = prompt + print(prompt, end="") + model.module.generate( + tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens + ) + except ValueError as e: + print(e) def enter_interactive(chat, model, tokenizer, max_new_tokens): From eab721f87a501e9304abe48f26721d6c2f3f76ec Mon Sep 17 00:00:00 2001 From: mrudat-iais Date: Wed, 8 May 2024 16:51:28 +0200 Subject: [PATCH 17/25] refactor(mamba): - generate method now in interface - "input_ids" now as variable saved in models and configs --- src/modalities/models/mamba/mamba_block.py | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py index a2e7527e..09228d59 100644 --- a/src/modalities/models/mamba/mamba_block.py +++ b/src/modalities/models/mamba/mamba_block.py @@ -32,22 +32,22 @@ class MambaBlock(nn.Module): def __init__( self, - d_model, - d_state=16, - d_conv=4, - expand=2, - dt_rank="auto", - dt_min=0.001, - dt_max=0.1, - dt_init="random", - dt_scale=1.0, - dt_init_floor=1e-4, - conv_bias=True, - bias=False, - use_fast_path=True, - layer_idx=None, - device=None, - dtype=None, + d_model: int, + d_state: int, + d_conv: int, + expand: int, + dt_rank: str, + dt_min: float, + dt_max: float, + dt_init: str, + dt_scale: float, + dt_init_floor: float, + conv_bias: bool, + bias: bool, + use_fast_path: bool, + layer_idx: int, + device: str, + dtype: str, ): factory_kwargs = {"device": device, "dtype": dtype} super().__init__() From a92193efe9c8ac61f9eed35216077fe742be7712 Mon Sep 17 00:00:00 2001 From: ajude Date: Mon, 13 May 2024 16:38:09 +0200 Subject: [PATCH 18/25] feat(models): - Adapted the tests for the new configs - Changed the interface for generate and generate_text functions for all the models --- src/modalities/models/coca/coca_model.py | 8 +- .../models/coca/multi_modal_decoder.py | 8 +- src/modalities/models/coca/text_decoder.py | 8 +- src/modalities/models/gpt2/gpt2_model.py | 8 +- .../models/huggingface/huggingface_models.py | 7 +- src/modalities/models/mamba/mamba_block.py | 4 +- src/modalities/models/mamba/mamba_config.py | 4 - src/modalities/models/mamba/mamba_model.py | 44 ++- src/modalities/models/model.py | 16 +- src/modalities/utils/generate_text.py | 24 +- tests/models/mamba/conftest.py | 266 ++++++++++++++++++ tests/models/mamba/test_mamba_block.py | 67 +---- tests/models/mamba/test_mamba_model.py | 95 ++----- tests/utils/test_gradient_clipping.py | 8 +- 14 files changed, 384 insertions(+), 183 deletions(-) create mode 100644 tests/models/mamba/conftest.py diff --git a/src/modalities/models/coca/coca_model.py b/src/modalities/models/coca/coca_model.py index 86009169..f0bdf5f6 100644 --- a/src/modalities/models/coca/coca_model.py +++ b/src/modalities/models/coca/coca_model.py @@ -1,6 +1,6 @@ import math from functools import partial -from typing import Annotated, Dict, Tuple +from typing import Annotated, Dict, Tuple, List import torch from einops import repeat @@ -178,11 +178,15 @@ def _forward_decode(self, text_embd: torch.Tensor, vision_embd: torch.Tensor) -> logits = decoder_outputs[self.multimodal_decoder.prediction_key] return logits - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, max_new_tokens: int, temperature: float = 1.0, ): + raise NotImplementedError + + def generate(self, stop_token_ids: List[int], input_ids: torch.Tensor, max_new_tokens: int, + temperature: float = 1.0) -> torch.Tensor: raise NotImplementedError \ No newline at end of file diff --git a/src/modalities/models/coca/multi_modal_decoder.py b/src/modalities/models/coca/multi_modal_decoder.py index 4ae468cf..dfe3b6cd 100644 --- a/src/modalities/models/coca/multi_modal_decoder.py +++ b/src/modalities/models/coca/multi_modal_decoder.py @@ -1,5 +1,5 @@ from functools import partial -from typing import Dict +from typing import Dict, List import torch import xformers.ops as xops @@ -124,7 +124,7 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: logits = self.lm_head(x) return {self.prediction_key: logits} - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, @@ -132,3 +132,7 @@ def generate( temperature: float = 1.0, ): raise NotImplementedError + + def generate(self, stop_token_ids: List[int], input_ids: torch.Tensor, max_new_tokens: int, + temperature: float = 1.0) -> torch.Tensor: + raise NotImplementedError diff --git a/src/modalities/models/coca/text_decoder.py b/src/modalities/models/coca/text_decoder.py index c753058a..f72035c8 100644 --- a/src/modalities/models/coca/text_decoder.py +++ b/src/modalities/models/coca/text_decoder.py @@ -1,4 +1,4 @@ -from typing import Dict +from typing import Dict, List import torch from torch import nn @@ -73,7 +73,7 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: x = block(x) return {self.prediction_key: x} - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, @@ -81,3 +81,7 @@ def generate( temperature: float = 1.0, ): raise NotImplementedError + + def generate(self, stop_token_ids: List[int], input_ids: torch.Tensor, max_new_tokens: int, + temperature: float = 1.0) -> torch.Tensor: + raise NotImplementedError diff --git a/src/modalities/models/gpt2/gpt2_model.py b/src/modalities/models/gpt2/gpt2_model.py index b31be9fd..5231ad6a 100644 --- a/src/modalities/models/gpt2/gpt2_model.py +++ b/src/modalities/models/gpt2/gpt2_model.py @@ -343,6 +343,8 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: class GPT2LLM(NNModel): + + def __init__( self, sample_key: str, @@ -465,7 +467,7 @@ def forward_impl(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tenso def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: return self.forward_impl(inputs) - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, @@ -495,3 +497,7 @@ def generate( sys.stdout.flush() in_batch[self.sample_key] = torch.cat((in_batch[self.sample_key], idx_next), dim=1) print("") + + def generate(self, stop_token_ids: List[int], input_ids: torch.Tensor, max_new_tokens: int, + temperature: float = 1.0) -> torch.Tensor: + raise NotImplementedError \ No newline at end of file diff --git a/src/modalities/models/huggingface/huggingface_models.py b/src/modalities/models/huggingface/huggingface_models.py index 5e958138..71b5dcf1 100644 --- a/src/modalities/models/huggingface/huggingface_models.py +++ b/src/modalities/models/huggingface/huggingface_models.py @@ -38,6 +38,7 @@ class HuggingFacePretrainedModelConfig(BaseModel): class HuggingFacePretrainedModel(NNModel): + def __init__( self, model_type: HuggingFaceModelTypes, @@ -72,7 +73,7 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: def fsdp_block_names(self) -> List[str]: return self.huggingface_model._no_split_modules - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, @@ -81,6 +82,10 @@ def generate( ): raise NotImplementedError + def generate(self, stop_token_ids: List[int], input_ids: torch.Tensor, max_new_tokens: int, + temperature: float = 1.0) -> torch.Tensor: + raise NotImplementedError + if __name__ == "__main__": tokenizer = AutoTokenizer.from_pretrained("epfl-llm/meditron-7b") diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py index 09228d59..e5b1349a 100644 --- a/src/modalities/models/mamba/mamba_block.py +++ b/src/modalities/models/mamba/mamba_block.py @@ -46,8 +46,8 @@ def __init__( bias: bool, use_fast_path: bool, layer_idx: int, - device: str, - dtype: str, + device: Optional[str], + dtype: Optional[str], ): factory_kwargs = {"device": device, "dtype": dtype} super().__init__() diff --git a/src/modalities/models/mamba/mamba_config.py b/src/modalities/models/mamba/mamba_config.py index 5c88b397..573e7681 100644 --- a/src/modalities/models/mamba/mamba_config.py +++ b/src/modalities/models/mamba/mamba_config.py @@ -24,10 +24,6 @@ class MixerModelConfig(BaseModel): mamba_block_config: MambaBlockConfig -class BlockConfig(BaseModel): - ... - - class MambaLLMConfig(BaseModel): d_model: int n_layer: int diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index 22bc6979..8644df18 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -3,7 +3,7 @@ import math import sys from functools import partial -from typing import Dict +from typing import Dict, Optional, List import torch import torch.nn as nn @@ -85,8 +85,8 @@ def __init__( initializer_cfg: dict, fused_add_norm: bool, residual_in_fp32: bool, - device: str, - dtype: str, + device: Optional[str], + dtype: Optional[str], mamba_block_config: MambaBlockConfig, ) -> None: super().__init__() @@ -106,7 +106,7 @@ def __init__( residual_in_fp32=residual_in_fp32, fused_add_norm=fused_add_norm, layer_idx=i, - ssm_cfg=mamba_block_config.dict(), + ssm_cfg=mamba_block_config.model_dump(), **factory_kwargs, ) for i in range(n_layer) @@ -168,8 +168,8 @@ def __init__( tie_embeddings: bool, prediction_key: str, sample_key: str, - seed: int, - dtype: str, + seed: Optional[int], + dtype: Optional[str], initializer_cfg: dict, num_last_tokens: int, inference_params: dict, @@ -238,13 +238,14 @@ def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: lm_logits = self.lm_head(hidden_states.to(self.lm_head.weight.dtype)) return {self.prediction_key: lm_logits} - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, max_new_tokens: int, temperature: float = 1.0, ): + assert temperature > 0 if not context: raise ValueError("Context must be not empty") @@ -252,17 +253,30 @@ def generate( in_batch[self.sample_key] = torch.Tensor(in_batch[self.sample_key]).to(torch.int32).to( next(self.parameters()).device) + generated_ids = self.generate(stop_token_ids=[tokenizer.eos_token_id], + input_ids=in_batch[self.sample_key], + max_new_tokens=max_new_tokens, temperature=temperature) + + generated_string = tokenizer.decode(generated_ids.tolist()[0]) + return generated_string + + def generate( + self, + stop_token_ids: List[int], + input_ids: torch.Tensor, + max_new_tokens: int, + temperature: float = 1.0, + ) -> torch.Tensor: + for _ in range(max_new_tokens): - logits = self.forward(in_batch)[self.prediction_key] + logits = self.forward({self.sample_key: input_ids})[ + self.prediction_key] logits = logits[:, -1, :] / temperature probs = F.softmax(logits, dim=-1) idx_next = torch.multinomial(probs, num_samples=1) - idx_next_str = tokenizer.decode(idx_next[0]) - if idx_next_str == tokenizer.eos_token: - print("\n", end="") + + if idx_next.item() in stop_token_ids: break else: - print(idx_next_str, end="") - sys.stdout.flush() - in_batch[self.sample_key] = torch.cat((in_batch[self.sample_key], idx_next), dim=1) - print("") + input_ids = torch.cat([input_ids, idx_next], dim=1) + return input_ids diff --git a/src/modalities/models/model.py b/src/modalities/models/model.py index 840beab1..6ae84a47 100644 --- a/src/modalities/models/model.py +++ b/src/modalities/models/model.py @@ -1,5 +1,5 @@ from abc import abstractmethod -from typing import Dict +from typing import Dict, List import torch import torch.nn as nn @@ -22,13 +22,23 @@ def get_parameters(self) -> Dict[str, torch.Tensor]: return {name: param for name, param in self.named_parameters()} @abstractmethod - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, max_new_tokens: int, temperature: float = 1.0, - ): + ) -> str: + ... + + @abstractmethod + def generate( + self, + stop_token_ids: List[int], + input_ids: torch.Tensor, + max_new_tokens: int, + temperature: float = 1.0, + ) -> torch.Tensor: ... diff --git a/src/modalities/utils/generate_text.py b/src/modalities/utils/generate_text.py index e3bcf11a..9b442eb9 100755 --- a/src/modalities/utils/generate_text.py +++ b/src/modalities/utils/generate_text.py @@ -83,11 +83,9 @@ def enter_manual(prompt: str, model, tokenizer, max_new_tokens): try: prompt = prompt print(prompt, end="") - model.module.generate( - tokenizer=tokenizer, - context=prompt, - max_new_tokens=max_new_tokens - ) + model.module.generate_text(tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens) except ValueError as e: print(e) @@ -99,19 +97,15 @@ def enter_interactive(chat, model, tokenizer, max_new_tokens): if chat is True: prompt = input("enter question> ").strip() prompt = chat_prefix + chat_prompt_template.format(prompt=prompt) - model.module.generate( - tokenizer=tokenizer, - context=prompt, - max_new_tokens=max_new_tokens - ) + model.module.generate_text(tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens) else: prompt = input("enter prompt> ") print(prompt, end="") - model.module.generate( - tokenizer=tokenizer, - context=prompt, - max_new_tokens=max_new_tokens - ) + model.module.generate_text(tokenizer=tokenizer, + context=prompt, + max_new_tokens=max_new_tokens) except ValueError as e: print(e) continue diff --git a/tests/models/mamba/conftest.py b/tests/models/mamba/conftest.py new file mode 100644 index 00000000..89aa1178 --- /dev/null +++ b/tests/models/mamba/conftest.py @@ -0,0 +1,266 @@ +import torch +from torch import nn + +from modalities.models.mamba.mamba_block import MambaBlock, Block +import pytest + +from functools import partial +from modalities.models.mamba.mamba_config import MambaBlockConfig, MixerModelConfig +from modalities.models.mamba.mamba_model import MambaLLM, MixerModel + + +@pytest.fixture() +def batch_size(): + return 2 + + +@pytest.fixture() +def expand(): + return 2 + + +@pytest.fixture(scope="session") +def d_model(): + return 16 + + +@pytest.fixture() +def d_state(): + return 3 + + +@pytest.fixture(scope="session") +def d_conv(): + return 4 + + +@pytest.fixture() +def vocab_size(): + return 1024 + + +@pytest.fixture() +def sequence_length(): + return 64 + + +@pytest.fixture() +def n_layer(): + return 2 + + +@pytest.fixture() +def conv_state(batch_size, expand, d_model, d_conv): + return torch.rand((batch_size, expand * d_model, d_conv)) + + +@pytest.fixture() +def ssm_state(batch_size, expand, d_model, d_state): + return torch.rand((batch_size, expand * d_model, d_state)) + + +@pytest.fixture() +def layer_idx(): + return 0 + + +@pytest.fixture() +def dt_rank(): + return "auto" + + +@pytest.fixture() +def dt_min(): + return 0.001 + + +@pytest.fixture() +def dt_max(): + return 0.1 + + +@pytest.fixture() +def dt_init(): + return "random" + + +@pytest.fixture() +def dt_scale(): + return 1.0 + + +@pytest.fixture() +def dt_init_floor(): + return 1e-4 + + +@pytest.fixture() +def conv_bias(): + return True + + +@pytest.fixture() +def bias(): + return False + + +@pytest.fixture() +def use_fast_path(): + return True + + +@pytest.fixture() +def device(): + return None + + +@pytest.fixture() +def dtype(): + return None + + +@pytest.fixture() +def ssm_cfg(mamba_block_config): + return mamba_block_config.model_dump() + + +@pytest.fixture() +def mamba_block_config(d_state, + d_conv, + expand, + dt_rank, + dt_min, + dt_max, + dt_init, + dt_scale, + dt_init_floor, + conv_bias, + bias, + use_fast_path): + return MambaBlockConfig(d_state=d_state, + d_conv=d_conv, + expand=expand, + dt_rank=dt_rank, + dt_min=dt_min, + dt_max=dt_max, + dt_init=dt_init, + dt_scale=dt_scale, + dt_init_floor=dt_init_floor, + conv_bias=conv_bias, + bias=bias, + use_fast_path=use_fast_path) + + +@pytest.fixture() +def mixer_model(d_model, n_layer, vocab_size, norm_epsilon, rms_norm, initializer_cfg, fused_add_norm, residual_in_fp32, + device, dtype, mamba_block_config): + return MixerModel(d_model=d_model, n_layer=n_layer, vocab_size=vocab_size, norm_epsilon=norm_epsilon, + rms_norm=rms_norm, initializer_cfg=initializer_cfg, fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32, device=device, dtype=dtype, + mamba_block_config=mamba_block_config) + + +@pytest.fixture() +def factory_kwargs(device, dtype): + return {"device": device, "dtype": dtype} + + +@pytest.fixture() +def norm_epsilon(): + return 1e-5 + + +@pytest.fixture() +def rms_norm(): + return False + + +@pytest.fixture() +def initializer_cfg(): + return {} + + +@pytest.fixture() +def mixer_cls(layer_idx, factory_kwargs, ssm_cfg): + return partial(MambaBlock, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) + + +@pytest.fixture() +def mamba_block(d_model, d_state, d_conv, expand, dt_rank, dt_min, dt_max, dt_init, dt_init_floor, dt_scale, + bias, conv_bias, use_fast_path, layer_idx, dtype, device): + return MambaBlock(d_model=d_model, d_state=d_state, d_conv=d_conv, expand=expand, dt_rank=dt_rank, + dt_min=dt_min, dt_max=dt_max, dt_init=dt_init, dt_scale=dt_scale, dt_init_floor=dt_init_floor, + bias=bias, conv_bias=conv_bias, use_fast_path=use_fast_path, layer_idx=layer_idx, dtype=dtype, + device=device) + + +@pytest.fixture() +def norm_cls(d_model, norm_epsilon, factory_kwargs): + return partial( + nn.LayerNorm, eps=norm_epsilon, **factory_kwargs + ) + + +@pytest.fixture() +def fused_add_norm(): + return True + + +@pytest.fixture() +def residual_in_fp32(): + return True + + +@pytest.fixture() +def block(d_model, mixer_cls, norm_cls, fused_add_norm, residual_in_fp32): + return Block(d_model=d_model, + mixer_cls=mixer_cls, + norm_cls=norm_cls, + fused_add_norm=fused_add_norm, + residual_in_fp32=residual_in_fp32) + + +@pytest.fixture() +def hidden_states(d_model, + batch_size, ): + return torch.randn(batch_size, 1, d_model) + + +@pytest.fixture() +def prediction_key(): + return "logits" + + +@pytest.fixture() +def sample_key(): + return "input_ids" + + +@pytest.fixture() +def seed(): + return 42 + + +@pytest.fixture() +def mixer_model_config(norm_epsilon, device, mamba_block_config): + return MixerModelConfig(norm_epsilon=norm_epsilon, device=device, mamba_block_config=mamba_block_config) + + +@pytest.fixture() +def mamba_llm(d_model, n_layer, vocab_size, rms_norm, residual_in_fp32, fused_add_norm, prediction_key, sample_key, + seed, dtype, initializer_cfg, mixer_model_config): + return MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=50257, rms_norm=rms_norm, + residual_in_fp32=residual_in_fp32, fused_add_norm=fused_add_norm, pad_vocab_size_multiple=1, + tie_embeddings=False, prediction_key=prediction_key, sample_key=sample_key, seed=seed, dtype=dtype, + initializer_cfg=initializer_cfg, num_last_tokens=0, inference_params={}, + mixer_model_config=mixer_model_config) + + +@pytest.fixture() +def linear_layer(): + return nn.Linear(in_features=16, out_features=24) + + +@pytest.fixture() +def embedding_layer(vocab_size, d_model): + return nn.Embedding(num_embeddings=vocab_size, embedding_dim=d_model) diff --git a/tests/models/mamba/test_mamba_block.py b/tests/models/mamba/test_mamba_block.py index 63a3fb74..bd8aeea3 100644 --- a/tests/models/mamba/test_mamba_block.py +++ b/tests/models/mamba/test_mamba_block.py @@ -1,78 +1,15 @@ import torch - -from modalities.models.mamba.mamba_block import MambaBlock, Block import pytest from mamba_ssm.utils.generation import InferenceParams -@pytest.fixture() -def batch_size(): - return 2 - - -@pytest.fixture() -def expansion_factor(): - return 2 - - -@pytest.fixture() -def d_model(): - return 16 - - -@pytest.fixture() -def d_state(): - return 3 - - -@pytest.fixture() -def d_conv(): - return 4 - - -@pytest.fixture() -def sequence_length(): - return 64 - - -@pytest.fixture() -def conv_state(batch_size, expansion_factor, d_model, d_conv): - return torch.rand((batch_size, expansion_factor * d_model, d_conv)) - - -@pytest.fixture() -def ssm_state(batch_size, expansion_factor, d_model, d_state): - return torch.rand((batch_size, expansion_factor * d_model, d_state)) - - -@pytest.fixture() -def layer_idx(): - return 0 - - -@pytest.fixture() -def mamba_block(d_model, d_state, d_conv, expansion_factor, layer_idx): - return MambaBlock(d_model=d_model, d_state=d_state, d_conv=d_conv, expand=expansion_factor, layer_idx=layer_idx) - - -@pytest.fixture() -def block(d_model, mamba_block): - return Block(dim=d_model, mixer_cls=MambaBlock) - - -@pytest.fixture() -def hidden_states(d_model, - batch_size, ): - return torch.randn(batch_size, 1, d_model) - - @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") def test_mamba_block_forward(batch_size, sequence_length, d_model, d_state, d_conv, - expansion_factor, + expand, mamba_block): x = torch.randn(batch_size, sequence_length, d_model).to("cuda") mamba_block = mamba_block.to("cuda") @@ -93,7 +30,7 @@ def test_block_forward(hidden_states, block): def test_get_states_from_cache(conv_state, ssm_state, batch_size, - expansion_factor, + expand, d_model, d_state, d_conv, diff --git a/tests/models/mamba/test_mamba_model.py b/tests/models/mamba/test_mamba_model.py index dc8181c6..f35dd8bc 100644 --- a/tests/models/mamba/test_mamba_model.py +++ b/tests/models/mamba/test_mamba_model.py @@ -1,70 +1,7 @@ import pytest import torch -from torch import nn - -from modalities.models.mamba.mamba_model import MixerModel, _init_weights, MambaLLM, create_block - - -@pytest.fixture() -def batch_size(): - return 2 - - -@pytest.fixture() -def vocab_size(): - return 1024 - - -@pytest.fixture() -def sequence_length(): - return 64 - - -@pytest.fixture() -def n_layer(): - return 2 - - -@pytest.fixture() -def d_model(): - return 12 - - -@pytest.fixture() -def ssm_config(): - return {} - - -@pytest.fixture() -def mixer_model(d_model, n_layer, vocab_size): - return MixerModel(d_model, n_layer, vocab_size) - - -@pytest.fixture() -def prediction_key(): - return "logits" - - -@pytest.fixture() -def sample_key(): - return "input_ids" - - -@pytest.fixture() -def mamba_llm(d_model, n_layer, vocab_size, prediction_key, sample_key): - return MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=vocab_size, ssm_cfg={}, rms_norm=True, - residual_in_fp32=False, fused_add_norm=False, pad_vocab_size_multiple=1, tie_embeddings=False, - prediction_key=prediction_key, sample_key=sample_key) - - -@pytest.fixture() -def linear_layer(): - return nn.Linear(in_features=16, out_features=24) - - -@pytest.fixture() -def embedding_layer(vocab_size, d_model): - return nn.Embedding(num_embeddings=vocab_size, embedding_dim=d_model) +from transformers import AutoTokenizer +from modalities.models.mamba.mamba_model import _init_weights, create_block @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") @@ -102,8 +39,11 @@ def test_mamba_llm_forward(mamba_llm, batch_size, sequence_length, vocab_size, p assert y[prediction_key].shape == (batch_size, sequence_length, vocab_size) -def test__create_block(d_model): - test_block = create_block(d_model=d_model) +def test__create_block(d_model, ssm_cfg, norm_epsilon, rms_norm, residual_in_fp32, fused_add_norm, layer_idx, device, + dtype): + test_block = create_block(d_model=d_model, ssm_cfg=ssm_cfg, norm_epsilon=norm_epsilon, rms_norm=rms_norm, + residual_in_fp32=residual_in_fp32, fused_add_norm=fused_add_norm, layer_idx=layer_idx, + device=device, dtype=dtype) assert test_block.norm.normalized_shape[0] == d_model assert test_block.mixer.d_model == d_model @@ -115,5 +55,22 @@ def test_tie_weights(mamba_llm): assert (mamba_llm.lm_head.weight == mamba_llm.backbone.embedding.weight).all() -def test_generate(mamba_llm): - raise NotImplementedError +def test_generate_text(mamba_llm): + tokenizer = AutoTokenizer.from_pretrained("../../../data/tokenizer/hf_gpt2") + context = "My name is" + output = mamba_llm.to("cuda").generate_text(tokenizer=tokenizer, context=context, max_new_tokens=5, + temperature=1) + assert type(output) == str + assert context in output + assert len(output) > len(context) + +def test_generate(mamba_llm, vocab_size): + num_input_tokens = 3 + max_new_tokens = 5 + input_ids = torch.randint(0, vocab_size, (1, num_input_tokens)).to("cuda") + output = mamba_llm.to("cuda").generate(stop_token_ids=[],input_ids=input_ids, max_new_tokens=max_new_tokens,temperature=1) + + assert type(output) == torch.Tensor + assert output.shape[1] == num_input_tokens + max_new_tokens + + diff --git a/tests/utils/test_gradient_clipping.py b/tests/utils/test_gradient_clipping.py index 897c680f..c5c50465 100644 --- a/tests/utils/test_gradient_clipping.py +++ b/tests/utils/test_gradient_clipping.py @@ -1,4 +1,4 @@ -from typing import Dict, Optional +from typing import Dict, Optional, List import pytest import torch @@ -49,7 +49,7 @@ def get_aggregated_grad_norm(self, gradient_clipping_mode: GradientClippingMode) if gradient_clipping_mode == GradientClippingMode.VALUE: return gradient_vector.abs().sum() - def generate( + def generate_text( self, tokenizer: PreTrainedTokenizer, context: str, @@ -58,6 +58,10 @@ def generate( ): raise NotImplementedError + def generate(self, stop_token_ids: List[int], input_ids: torch.Tensor, max_new_tokens: int, + temperature: float = 1.0) -> torch.Tensor: + raise NotImplementedError + def _run_gradient_clipping_experiment(gradient_clipping_mode: GradientClippingMode, threshold: Optional[float] = None): model = TestModel() From 3163c69824e0a35870a24154b89e913166339f34 Mon Sep 17 00:00:00 2001 From: rrutmann Date: Mon, 27 May 2024 10:40:21 +0200 Subject: [PATCH 19/25] test(mamba): Use correct vocab sizes in tests --- tests/models/mamba/conftest.py | 2 +- tests/models/mamba/test_mamba_model.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/models/mamba/conftest.py b/tests/models/mamba/conftest.py index 89aa1178..8f518ebb 100644 --- a/tests/models/mamba/conftest.py +++ b/tests/models/mamba/conftest.py @@ -249,7 +249,7 @@ def mixer_model_config(norm_epsilon, device, mamba_block_config): @pytest.fixture() def mamba_llm(d_model, n_layer, vocab_size, rms_norm, residual_in_fp32, fused_add_norm, prediction_key, sample_key, seed, dtype, initializer_cfg, mixer_model_config): - return MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=50257, rms_norm=rms_norm, + return MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=vocab_size, rms_norm=rms_norm, residual_in_fp32=residual_in_fp32, fused_add_norm=fused_add_norm, pad_vocab_size_multiple=1, tie_embeddings=False, prediction_key=prediction_key, sample_key=sample_key, seed=seed, dtype=dtype, initializer_cfg=initializer_cfg, num_last_tokens=0, inference_params={}, diff --git a/tests/models/mamba/test_mamba_model.py b/tests/models/mamba/test_mamba_model.py index f35dd8bc..51e287ce 100644 --- a/tests/models/mamba/test_mamba_model.py +++ b/tests/models/mamba/test_mamba_model.py @@ -1,7 +1,8 @@ import pytest import torch from transformers import AutoTokenizer -from modalities.models.mamba.mamba_model import _init_weights, create_block +from modalities.models.mamba.mamba_model import _init_weights, create_block, MambaLLM +from tests.conftest import _ROOT_DIR @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") @@ -55,8 +56,13 @@ def test_tie_weights(mamba_llm): assert (mamba_llm.lm_head.weight == mamba_llm.backbone.embedding.weight).all() -def test_generate_text(mamba_llm): - tokenizer = AutoTokenizer.from_pretrained("../../../data/tokenizer/hf_gpt2") +def test_generate_text(d_model, n_layer, rms_norm, residual_in_fp32, fused_add_norm, prediction_key, sample_key, seed, dtype, initializer_cfg, mixer_model_config): + mamba_llm = MambaLLM(d_model=d_model, n_layer=n_layer, vocab_size=50257, rms_norm=rms_norm, + residual_in_fp32=residual_in_fp32, fused_add_norm=fused_add_norm, pad_vocab_size_multiple=1, + tie_embeddings=False, prediction_key=prediction_key, sample_key=sample_key, seed=seed, dtype=dtype, + initializer_cfg=initializer_cfg, num_last_tokens=0, inference_params={}, + mixer_model_config=mixer_model_config) + tokenizer = AutoTokenizer.from_pretrained(_ROOT_DIR / "data/tokenizer/hf_gpt2") context = "My name is" output = mamba_llm.to("cuda").generate_text(tokenizer=tokenizer, context=context, max_new_tokens=5, temperature=1) From 575fd34c7fbf4457a736640ca17c7acae07e7617 Mon Sep 17 00:00:00 2001 From: rrutmann Date: Mon, 27 May 2024 10:57:26 +0200 Subject: [PATCH 20/25] feat(mamba): Add missing scripts from mamba_ssm to modalities --- src/modalities/models/mamba/mamba_block.py | 6 +- src/modalities/models/mamba/mamba_model.py | 2 +- src/modalities/models/mamba/ops/__init__.py | 0 .../mamba/ops/selective_scan_interface.py | 357 ++++++++++ .../models/mamba/ops/triton/__init__.py | 0 .../models/mamba/ops/triton/layernorm.py | 635 ++++++++++++++++++ .../ops/triton/selective_state_update.py | 263 ++++++++ src/modalities/models/mamba/utils/__init__.py | 0 .../models/mamba/utils/generation.py | 387 +++++++++++ tests/models/mamba/test_mamba_block.py | 2 +- 10 files changed, 1647 insertions(+), 5 deletions(-) create mode 100644 src/modalities/models/mamba/ops/__init__.py create mode 100644 src/modalities/models/mamba/ops/selective_scan_interface.py create mode 100644 src/modalities/models/mamba/ops/triton/__init__.py create mode 100644 src/modalities/models/mamba/ops/triton/layernorm.py create mode 100644 src/modalities/models/mamba/ops/triton/selective_state_update.py create mode 100644 src/modalities/models/mamba/utils/__init__.py create mode 100644 src/modalities/models/mamba/utils/generation.py diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py index e5b1349a..8d7b690d 100644 --- a/src/modalities/models/mamba/mamba_block.py +++ b/src/modalities/models/mamba/mamba_block.py @@ -11,7 +11,7 @@ from einops import rearrange, repeat -from mamba_ssm.ops.selective_scan_interface import selective_scan_fn, mamba_inner_fn +from modalities.models.mamba.ops.selective_scan_interface import selective_scan_fn, mamba_inner_fn try: from causal_conv1d import causal_conv1d_fn, causal_conv1d_update @@ -19,12 +19,12 @@ causal_conv1d_fn, causal_conv1d_update = None, None try: - from mamba_ssm.ops.triton.selective_state_update import selective_state_update + from modalities.models.mamba.ops.triton.selective_state_update import selective_state_update except ImportError: selective_state_update = None try: - from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn + from modalities.models.mamba.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn except ImportError: RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index 8644df18..0371b8ec 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -14,7 +14,7 @@ from transformers import PreTrainedTokenizer try: - from mamba_ssm.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn + from modalities.models.mamba.ops.triton.layernorm import RMSNorm, layer_norm_fn, rms_norm_fn except ImportError: RMSNorm, layer_norm_fn, rms_norm_fn = None, None, None diff --git a/src/modalities/models/mamba/ops/__init__.py b/src/modalities/models/mamba/ops/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/modalities/models/mamba/ops/selective_scan_interface.py b/src/modalities/models/mamba/ops/selective_scan_interface.py new file mode 100644 index 00000000..c3596bfe --- /dev/null +++ b/src/modalities/models/mamba/ops/selective_scan_interface.py @@ -0,0 +1,357 @@ +# Copyright (c) 2023, Tri Dao, Albert Gu. + +import torch +import torch.nn.functional as F +from torch.cuda.amp import custom_bwd, custom_fwd + +from einops import rearrange, repeat + +try: + from causal_conv1d import causal_conv1d_fn + import causal_conv1d_cuda +except ImportError: + causal_conv1d_fn = None + causal_conv1d_cuda = None + +import selective_scan_cuda + + +class SelectiveScanFn(torch.autograd.Function): + + @staticmethod + def forward(ctx, u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False, + return_last_state=False): + if u.stride(-1) != 1: + u = u.contiguous() + if delta.stride(-1) != 1: + delta = delta.contiguous() + if D is not None: + D = D.contiguous() + if B.stride(-1) != 1: + B = B.contiguous() + if C.stride(-1) != 1: + C = C.contiguous() + if z is not None and z.stride(-1) != 1: + z = z.contiguous() + if B.dim() == 3: + B = rearrange(B, "b dstate l -> b 1 dstate l") + ctx.squeeze_B = True + if C.dim() == 3: + C = rearrange(C, "b dstate l -> b 1 dstate l") + ctx.squeeze_C = True + out, x, *rest = selective_scan_cuda.fwd(u, delta, A, B, C, D, z, delta_bias, delta_softplus) + ctx.delta_softplus = delta_softplus + ctx.has_z = z is not None + last_state = x[:, :, -1, 1::2] # (batch, dim, dstate) + if not ctx.has_z: + ctx.save_for_backward(u, delta, A, B, C, D, delta_bias, x) + return out if not return_last_state else (out, last_state) + else: + ctx.save_for_backward(u, delta, A, B, C, D, z, delta_bias, x, out) + out_z = rest[0] + return out_z if not return_last_state else (out_z, last_state) + + @staticmethod + def backward(ctx, dout, *args): + if not ctx.has_z: + u, delta, A, B, C, D, delta_bias, x = ctx.saved_tensors + z = None + out = None + else: + u, delta, A, B, C, D, z, delta_bias, x, out = ctx.saved_tensors + if dout.stride(-1) != 1: + dout = dout.contiguous() + # The kernel supports passing in a pre-allocated dz (e.g., in case we want to fuse the + # backward of selective_scan_cuda with the backward of chunk). + # Here we just pass in None and dz will be allocated in the C++ code. + du, ddelta, dA, dB, dC, dD, ddelta_bias, *rest = selective_scan_cuda.bwd( + u, delta, A, B, C, D, z, delta_bias, dout, x, out, None, ctx.delta_softplus, + False # option to recompute out_z, not used here + ) + dz = rest[0] if ctx.has_z else None + dB = dB.squeeze(1) if getattr(ctx, "squeeze_B", False) else dB + dC = dC.squeeze(1) if getattr(ctx, "squeeze_C", False) else dC + return (du, ddelta, dA, dB, dC, + dD if D is not None else None, + dz, + ddelta_bias if delta_bias is not None else None, + None, + None) + + +def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False, + return_last_state=False): + """if return_last_state is True, returns (out, last_state) + last_state has shape (batch, dim, dstate). Note that the gradient of the last state is + not considered in the backward pass. + """ + return SelectiveScanFn.apply(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state) + + +def selective_scan_ref(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False, + return_last_state=False): + """ + u: r(B D L) + delta: r(B D L) + A: c(D N) or r(D N) + B: c(D N) or r(B N L) or r(B N 2L) or r(B G N L) or (B G N L) + C: c(D N) or r(B N L) or r(B N 2L) or r(B G N L) or (B G N L) + D: r(D) + z: r(B D L) + delta_bias: r(D), fp32 + + out: r(B D L) + last_state (optional): r(B D dstate) or c(B D dstate) + """ + dtype_in = u.dtype + u = u.float() + delta = delta.float() + if delta_bias is not None: + delta = delta + delta_bias[..., None].float() + if delta_softplus: + delta = F.softplus(delta) + batch, dim, dstate = u.shape[0], A.shape[0], A.shape[1] + is_variable_B = B.dim() >= 3 + is_variable_C = C.dim() >= 3 + if A.is_complex(): + if is_variable_B: + B = torch.view_as_complex(rearrange(B.float(), "... (L two) -> ... L two", two=2)) + if is_variable_C: + C = torch.view_as_complex(rearrange(C.float(), "... (L two) -> ... L two", two=2)) + else: + B = B.float() + C = C.float() + x = A.new_zeros((batch, dim, dstate)) + ys = [] + deltaA = torch.exp(torch.einsum('bdl,dn->bdln', delta, A)) + if not is_variable_B: + deltaB_u = torch.einsum('bdl,dn,bdl->bdln', delta, B, u) + else: + if B.dim() == 3: + deltaB_u = torch.einsum('bdl,bnl,bdl->bdln', delta, B, u) + else: + B = repeat(B, "B G N L -> B (G H) N L", H=dim // B.shape[1]) + deltaB_u = torch.einsum('bdl,bdnl,bdl->bdln', delta, B, u) + if is_variable_C and C.dim() == 4: + C = repeat(C, "B G N L -> B (G H) N L", H=dim // C.shape[1]) + last_state = None + for i in range(u.shape[2]): + x = deltaA[:, :, i] * x + deltaB_u[:, :, i] + if not is_variable_C: + y = torch.einsum('bdn,dn->bd', x, C) + else: + if C.dim() == 3: + y = torch.einsum('bdn,bn->bd', x, C[:, :, i]) + else: + y = torch.einsum('bdn,bdn->bd', x, C[:, :, :, i]) + if i == u.shape[2] - 1: + last_state = x + if y.is_complex(): + y = y.real * 2 + ys.append(y) + y = torch.stack(ys, dim=2) # (batch dim L) + out = y if D is None else y + u * rearrange(D, "d -> d 1") + if z is not None: + out = out * F.silu(z) + out = out.to(dtype=dtype_in) + return out if not return_last_state else (out, last_state) + + +class MambaInnerFn(torch.autograd.Function): + + @staticmethod + @custom_fwd + def forward(ctx, xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight, + out_proj_weight, out_proj_bias, + A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None, + C_proj_bias=None, delta_softplus=True, checkpoint_lvl=1): + """ + xz: (batch, dim, seqlen) + """ + assert causal_conv1d_cuda is not None, "causal_conv1d_cuda is not available. Please install causal-conv1d." + assert checkpoint_lvl in [0, 1] + L = xz.shape[-1] + delta_rank = delta_proj_weight.shape[1] + d_state = A.shape[-1] * (1 if not A.is_complex() else 2) + if torch.is_autocast_enabled(): + x_proj_weight = x_proj_weight.to(dtype=torch.get_autocast_gpu_dtype()) + delta_proj_weight = delta_proj_weight.to(dtype=torch.get_autocast_gpu_dtype()) + out_proj_weight = out_proj_weight.to(dtype=torch.get_autocast_gpu_dtype()) + out_proj_bias = (out_proj_bias.to(dtype=torch.get_autocast_gpu_dtype()) + if out_proj_bias is not None else None) + if xz.stride(-1) != 1: + xz = xz.contiguous() + conv1d_weight = rearrange(conv1d_weight, "d 1 w -> d w") + x, z = xz.chunk(2, dim=1) + conv1d_bias = conv1d_bias.contiguous() if conv1d_bias is not None else None + conv1d_out = causal_conv1d_cuda.causal_conv1d_fwd( + x, conv1d_weight, conv1d_bias, None, None, None, True + ) + # We're being very careful here about the layout, to avoid extra transposes. + # We want delta to have d as the slowest moving dimension + # and L as the fastest moving dimension, since those are what the ssm_scan kernel expects. + x_dbl = F.linear(rearrange(conv1d_out, 'b d l -> (b l) d'), x_proj_weight) # (bl d) + delta = rearrange(delta_proj_weight @ x_dbl[:, :delta_rank].t(), "d (b l) -> b d l", l = L) + ctx.is_variable_B = B is None + ctx.is_variable_C = C is None + ctx.B_proj_bias_is_None = B_proj_bias is None + ctx.C_proj_bias_is_None = C_proj_bias is None + if B is None: # variable B + B = x_dbl[:, delta_rank:delta_rank + d_state] # (bl dstate) + if B_proj_bias is not None: + B = B + B_proj_bias.to(dtype=B.dtype) + if not A.is_complex(): + # B = rearrange(B, "(b l) dstate -> b dstate l", l=L).contiguous() + B = rearrange(B, "(b l) dstate -> b 1 dstate l", l=L).contiguous() + else: + B = rearrange(B, "(b l) (dstate two) -> b 1 dstate (l two)", l=L, two=2).contiguous() + else: + if B.stride(-1) != 1: + B = B.contiguous() + if C is None: # variable C + C = x_dbl[:, -d_state:] # (bl dstate) + if C_proj_bias is not None: + C = C + C_proj_bias.to(dtype=C.dtype) + if not A.is_complex(): + # C = rearrange(C, "(b l) dstate -> b dstate l", l=L).contiguous() + C = rearrange(C, "(b l) dstate -> b 1 dstate l", l=L).contiguous() + else: + C = rearrange(C, "(b l) (dstate two) -> b 1 dstate (l two)", l=L, two=2).contiguous() + else: + if C.stride(-1) != 1: + C = C.contiguous() + if D is not None: + D = D.contiguous() + out, scan_intermediates, out_z = selective_scan_cuda.fwd( + conv1d_out, delta, A, B, C, D, z, delta_bias, delta_softplus + ) + ctx.delta_softplus = delta_softplus + ctx.out_proj_bias_is_None = out_proj_bias is None + ctx.checkpoint_lvl = checkpoint_lvl + if checkpoint_lvl >= 1: # Will recompute conv1d_out and delta in the backward pass + conv1d_out, delta = None, None + ctx.save_for_backward(xz, conv1d_weight, conv1d_bias, x_dbl, x_proj_weight, + delta_proj_weight, out_proj_weight, conv1d_out, delta, + A, B, C, D, delta_bias, scan_intermediates, out) + return F.linear(rearrange(out_z, "b d l -> b l d"), out_proj_weight, out_proj_bias) + + @staticmethod + @custom_bwd + def backward(ctx, dout): + # dout: (batch, seqlen, dim) + assert causal_conv1d_cuda is not None, "causal_conv1d_cuda is not available. Please install causal-conv1d." + (xz, conv1d_weight, conv1d_bias, x_dbl, x_proj_weight, delta_proj_weight, out_proj_weight, + conv1d_out, delta, A, B, C, D, delta_bias, scan_intermediates, out) = ctx.saved_tensors + L = xz.shape[-1] + delta_rank = delta_proj_weight.shape[1] + d_state = A.shape[-1] * (1 if not A.is_complex() else 2) + x, z = xz.chunk(2, dim=1) + if dout.stride(-1) != 1: + dout = dout.contiguous() + if ctx.checkpoint_lvl == 1: + conv1d_out = causal_conv1d_cuda.causal_conv1d_fwd( + x, conv1d_weight, conv1d_bias, None, None, None, True + ) + delta = rearrange(delta_proj_weight @ x_dbl[:, :delta_rank].t(), + "d (b l) -> b d l", l = L) + # The kernel supports passing in a pre-allocated dz (e.g., in case we want to fuse the + # backward of selective_scan_cuda with the backward of chunk). + dxz = torch.empty_like(xz) # (batch, dim, seqlen) + dx, dz = dxz.chunk(2, dim=1) + dout = rearrange(dout, "b l e -> e (b l)") + dout_y = rearrange(out_proj_weight.t() @ dout, "d (b l) -> b d l", l=L) + dconv1d_out, ddelta, dA, dB, dC, dD, ddelta_bias, dz, out_z = selective_scan_cuda.bwd( + conv1d_out, delta, A, B, C, D, z, delta_bias, dout_y, scan_intermediates, out, dz, + ctx.delta_softplus, + True # option to recompute out_z + ) + dout_proj_weight = torch.einsum("eB,dB->ed", dout, rearrange(out_z, "b d l -> d (b l)")) + dout_proj_bias = dout.sum(dim=(0, 1)) if not ctx.out_proj_bias_is_None else None + dD = dD if D is not None else None + dx_dbl = torch.empty_like(x_dbl) + dB_proj_bias = None + if ctx.is_variable_B: + if not A.is_complex(): + dB = rearrange(dB, "b 1 dstate l -> (b l) dstate").contiguous() + else: + dB = rearrange(dB, "b 1 dstate (l two) -> (b l) (dstate two)", two=2).contiguous() + dB_proj_bias = dB.sum(0) if not ctx.B_proj_bias_is_None else None + dx_dbl[:, delta_rank:delta_rank + d_state] = dB # (bl d) + dB = None + dC_proj_bias = None + if ctx.is_variable_C: + if not A.is_complex(): + dC = rearrange(dC, "b 1 dstate l -> (b l) dstate").contiguous() + else: + dC = rearrange(dC, "b 1 dstate (l two) -> (b l) (dstate two)", two=2).contiguous() + dC_proj_bias = dC.sum(0) if not ctx.C_proj_bias_is_None else None + dx_dbl[:, -d_state:] = dC # (bl d) + dC = None + ddelta = rearrange(ddelta, "b d l -> d (b l)") + ddelta_proj_weight = torch.einsum("dB,Br->dr", ddelta, x_dbl[:, :delta_rank]) + dx_dbl[:, :delta_rank] = torch.einsum("dB,dr->Br", ddelta, delta_proj_weight) + dconv1d_out = rearrange(dconv1d_out, "b d l -> d (b l)") + dx_proj_weight = torch.einsum("Br,Bd->rd", dx_dbl, rearrange(conv1d_out, "b d l -> (b l) d")) + dconv1d_out = torch.addmm(dconv1d_out, x_proj_weight.t(), dx_dbl.t(), out=dconv1d_out) + dconv1d_out = rearrange(dconv1d_out, "d (b l) -> b d l", b=x.shape[0], l=x.shape[-1]) + # The kernel supports passing in a pre-allocated dx (e.g., in case we want to fuse the + # backward of conv1d with the backward of chunk). + dx, dconv1d_weight, dconv1d_bias, *_ = causal_conv1d_cuda.causal_conv1d_bwd( + x, conv1d_weight, conv1d_bias, dconv1d_out, None, None, None, dx, False, True + ) + dconv1d_bias = dconv1d_bias if conv1d_bias is not None else None + dconv1d_weight = rearrange(dconv1d_weight, "d w -> d 1 w") + return (dxz, dconv1d_weight, dconv1d_bias, dx_proj_weight, ddelta_proj_weight, + dout_proj_weight, dout_proj_bias, + dA, dB, dC, dD, + ddelta_bias if delta_bias is not None else None, + dB_proj_bias, dC_proj_bias, None) + + +def mamba_inner_fn( + xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight, + out_proj_weight, out_proj_bias, + A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None, + C_proj_bias=None, delta_softplus=True +): + return MambaInnerFn.apply(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight, + out_proj_weight, out_proj_bias, + A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus) + + +def mamba_inner_ref( + xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight, + out_proj_weight, out_proj_bias, + A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None, + C_proj_bias=None, delta_softplus=True +): + assert causal_conv1d_fn is not None, "causal_conv1d_fn is not available. Please install causal-conv1d." + L = xz.shape[-1] + delta_rank = delta_proj_weight.shape[1] + d_state = A.shape[-1] * (1 if not A.is_complex() else 2) + x, z = xz.chunk(2, dim=1) + x = causal_conv1d_fn(x, rearrange(conv1d_weight, "d 1 w -> d w"), conv1d_bias, activation="silu") + # We're being very careful here about the layout, to avoid extra transposes. + # We want delta to have d as the slowest moving dimension + # and L as the fastest moving dimension, since those are what the ssm_scan kernel expects. + x_dbl = F.linear(rearrange(x, 'b d l -> (b l) d'), x_proj_weight) # (bl d) + delta = delta_proj_weight @ x_dbl[:, :delta_rank].t() + delta = rearrange(delta, "d (b l) -> b d l", l=L) + if B is None: # variable B + B = x_dbl[:, delta_rank:delta_rank + d_state] # (bl d) + if B_proj_bias is not None: + B = B + B_proj_bias.to(dtype=B.dtype) + if not A.is_complex(): + B = rearrange(B, "(b l) dstate -> b dstate l", l=L).contiguous() + else: + B = rearrange(B, "(b l) (dstate two) -> b dstate (l two)", l=L, two=2).contiguous() + if C is None: # variable B + C = x_dbl[:, -d_state:] # (bl d) + if C_proj_bias is not None: + C = C + C_proj_bias.to(dtype=C.dtype) + if not A.is_complex(): + C = rearrange(C, "(b l) dstate -> b dstate l", l=L).contiguous() + else: + C = rearrange(C, "(b l) (dstate two) -> b dstate (l two)", l=L, two=2).contiguous() + y = selective_scan_fn(x, delta, A, B, C, D, z=z, delta_bias=delta_bias, delta_softplus=True) + return F.linear(rearrange(y, "b d l -> b l d"), out_proj_weight, out_proj_bias) diff --git a/src/modalities/models/mamba/ops/triton/__init__.py b/src/modalities/models/mamba/ops/triton/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/modalities/models/mamba/ops/triton/layernorm.py b/src/modalities/models/mamba/ops/triton/layernorm.py new file mode 100644 index 00000000..ba33ce1e --- /dev/null +++ b/src/modalities/models/mamba/ops/triton/layernorm.py @@ -0,0 +1,635 @@ +# Copyright (c) 2023, Tri Dao. +# Implement residual + layer_norm / rms_norm. + +# Based on the Triton LayerNorm tutorial: https://triton-lang.org/main/getting-started/tutorials/05-layer-norm.html +# For the backward pass, we keep weight_grad and bias_grad in registers and accumulate. +# This is faster for dimensions up to 8k, but after that it's much slower due to register spilling. +# The models we train have hidden dim up to 8k anyway (e.g. Llama 70B), so this is fine. + +import math + +import torch +import torch.nn.functional as F +from torch.cuda.amp import custom_fwd, custom_bwd + +import triton +import triton.language as tl + + +def layer_norm_ref(x, weight, bias, residual=None, eps=1e-6, prenorm=False, upcast=False): + dtype = x.dtype + if upcast: + weight = weight.float() + bias = bias.float() if bias is not None else None + if upcast: + x = x.float() + residual = residual.float() if residual is not None else residual + if residual is not None: + x = (x + residual).to(x.dtype) + out = F.layer_norm(x.to(weight.dtype), x.shape[-1:], weight=weight, bias=bias, eps=eps).to( + dtype + ) + return out if not prenorm else (out, x) + + +def rms_norm_ref(x, weight, bias, residual=None, eps=1e-6, prenorm=False, upcast=False): + dtype = x.dtype + if upcast: + weight = weight.float() + bias = bias.float() if bias is not None else None + if upcast: + x = x.float() + residual = residual.float() if residual is not None else residual + if residual is not None: + x = (x + residual).to(x.dtype) + rstd = 1 / torch.sqrt((x.square()).mean(dim=-1, keepdim=True) + eps) + out = (x * rstd * weight) + bias if bias is not None else (x * rstd * weight) + out = out.to(dtype) + return out if not prenorm else (out, x) + + +@triton.autotune( + configs=[ + triton.Config({}, num_warps=1), + triton.Config({}, num_warps=2), + triton.Config({}, num_warps=4), + triton.Config({}, num_warps=8), + triton.Config({}, num_warps=16), + triton.Config({}, num_warps=32), + ], + key=["N", "HAS_RESIDUAL", "STORE_RESIDUAL_OUT", "IS_RMS_NORM", "HAS_BIAS"], +) +# @triton.heuristics({"HAS_BIAS": lambda args: args["B"] is not None}) +# @triton.heuristics({"HAS_RESIDUAL": lambda args: args["RESIDUAL"] is not None}) +@triton.jit +def _layer_norm_fwd_1pass_kernel( + X, # pointer to the input + Y, # pointer to the output + W, # pointer to the weights + B, # pointer to the biases + RESIDUAL, # pointer to the residual + RESIDUAL_OUT, # pointer to the residual + Mean, # pointer to the mean + Rstd, # pointer to the 1/std + stride_x_row, # how much to increase the pointer when moving by 1 row + stride_y_row, + stride_res_row, + stride_res_out_row, + N, # number of columns in X + eps, # epsilon to avoid division by zero + IS_RMS_NORM: tl.constexpr, + BLOCK_N: tl.constexpr, + HAS_RESIDUAL: tl.constexpr, + STORE_RESIDUAL_OUT: tl.constexpr, + HAS_BIAS: tl.constexpr, +): + # Map the program id to the row of X and Y it should compute. + row = tl.program_id(0) + X += row * stride_x_row + Y += row * stride_y_row + if HAS_RESIDUAL: + RESIDUAL += row * stride_res_row + if STORE_RESIDUAL_OUT: + RESIDUAL_OUT += row * stride_res_out_row + # Compute mean and variance + cols = tl.arange(0, BLOCK_N) + x = tl.load(X + cols, mask=cols < N, other=0.0).to(tl.float32) + if HAS_RESIDUAL: + residual = tl.load(RESIDUAL + cols, mask=cols < N, other=0.0).to(tl.float32) + x += residual + if STORE_RESIDUAL_OUT: + tl.store(RESIDUAL_OUT + cols, x, mask=cols < N) + if not IS_RMS_NORM: + mean = tl.sum(x, axis=0) / N + tl.store(Mean + row, mean) + xbar = tl.where(cols < N, x - mean, 0.0) + var = tl.sum(xbar * xbar, axis=0) / N + else: + xbar = tl.where(cols < N, x, 0.0) + var = tl.sum(xbar * xbar, axis=0) / N + rstd = 1 / tl.sqrt(var + eps) + tl.store(Rstd + row, rstd) + # Normalize and apply linear transformation + mask = cols < N + w = tl.load(W + cols, mask=mask).to(tl.float32) + if HAS_BIAS: + b = tl.load(B + cols, mask=mask).to(tl.float32) + x_hat = (x - mean) * rstd if not IS_RMS_NORM else x * rstd + y = x_hat * w + b if HAS_BIAS else x_hat * w + # Write output + tl.store(Y + cols, y, mask=mask) + + +def _layer_norm_fwd( + x, weight, bias, eps, residual=None, out_dtype=None, residual_dtype=None, is_rms_norm=False +): + if residual is not None: + residual_dtype = residual.dtype + M, N = x.shape + assert x.stride(-1) == 1 + if residual is not None: + assert residual.stride(-1) == 1 + assert residual.shape == (M, N) + assert weight.shape == (N,) + assert weight.stride(-1) == 1 + if bias is not None: + assert bias.stride(-1) == 1 + assert bias.shape == (N,) + # allocate output + y = torch.empty_like(x, dtype=x.dtype if out_dtype is None else out_dtype) + assert y.stride(-1) == 1 + if residual is not None or (residual_dtype is not None and residual_dtype != x.dtype): + residual_out = torch.empty(M, N, device=x.device, dtype=residual_dtype) + assert residual_out.stride(-1) == 1 + else: + residual_out = None + mean = torch.empty((M,), dtype=torch.float32, device=x.device) if not is_rms_norm else None + rstd = torch.empty((M,), dtype=torch.float32, device=x.device) + # Less than 64KB per feature: enqueue fused kernel + MAX_FUSED_SIZE = 65536 // x.element_size() + BLOCK_N = min(MAX_FUSED_SIZE, triton.next_power_of_2(N)) + if N > BLOCK_N: + raise RuntimeError("This layer norm doesn't support feature dim >= 64KB.") + # heuristics for number of warps + with torch.cuda.device(x.device.index): + _layer_norm_fwd_1pass_kernel[(M,)]( + x, + y, + weight, + bias, + residual, + residual_out, + mean, + rstd, + x.stride(0), + y.stride(0), + residual.stride(0) if residual is not None else 0, + residual_out.stride(0) if residual_out is not None else 0, + N, + eps, + is_rms_norm, + BLOCK_N, + residual is not None, + residual_out is not None, + bias is not None, + ) + # residual_out is None if residual is None and residual_dtype == input_dtype + return y, mean, rstd, residual_out if residual_out is not None else x + + +@triton.autotune( + configs=[ + triton.Config({}, num_warps=1), + triton.Config({}, num_warps=2), + triton.Config({}, num_warps=4), + triton.Config({}, num_warps=8), + triton.Config({}, num_warps=16), + triton.Config({}, num_warps=32), + ], + key=["N", "HAS_DRESIDUAL", "STORE_DRESIDUAL", "IS_RMS_NORM", "HAS_BIAS"], +) +# @triton.heuristics({"HAS_BIAS": lambda args: args["B"] is not None}) +# @triton.heuristics({"HAS_DRESIDUAL": lambda args: args["DRESIDUAL"] is not None}) +# @triton.heuristics({"STORE_DRESIDUAL": lambda args: args["DRESIDUAL_IN"] is not None}) +@triton.heuristics({"RECOMPUTE_OUTPUT": lambda args: args["Y"] is not None}) +@triton.jit +def _layer_norm_bwd_kernel( + X, # pointer to the input + W, # pointer to the weights + B, # pointer to the biases + Y, # pointer to the output to be recomputed + DY, # pointer to the output gradient + DX, # pointer to the input gradient + DW, # pointer to the partial sum of weights gradient + DB, # pointer to the partial sum of biases gradient + DRESIDUAL, + DRESIDUAL_IN, + Mean, # pointer to the mean + Rstd, # pointer to the 1/std + stride_x_row, # how much to increase the pointer when moving by 1 row + stride_y_row, + stride_dy_row, + stride_dx_row, + stride_dres_row, + stride_dres_in_row, + M, # number of rows in X + N, # number of columns in X + eps, # epsilon to avoid division by zero + rows_per_program, + IS_RMS_NORM: tl.constexpr, + BLOCK_N: tl.constexpr, + HAS_DRESIDUAL: tl.constexpr, + STORE_DRESIDUAL: tl.constexpr, + HAS_BIAS: tl.constexpr, + RECOMPUTE_OUTPUT: tl.constexpr, +): + # Map the program id to the elements of X, DX, and DY it should compute. + row_block_id = tl.program_id(0) + row_start = row_block_id * rows_per_program + cols = tl.arange(0, BLOCK_N) + mask = cols < N + X += row_start * stride_x_row + if HAS_DRESIDUAL: + DRESIDUAL += row_start * stride_dres_row + if STORE_DRESIDUAL: + DRESIDUAL_IN += row_start * stride_dres_in_row + DY += row_start * stride_dy_row + DX += row_start * stride_dx_row + if RECOMPUTE_OUTPUT: + Y += row_start * stride_y_row + w = tl.load(W + cols, mask=mask).to(tl.float32) + if RECOMPUTE_OUTPUT and HAS_BIAS: + b = tl.load(B + cols, mask=mask, other=0.0).to(tl.float32) + dw = tl.zeros((BLOCK_N,), dtype=tl.float32) + if HAS_BIAS: + db = tl.zeros((BLOCK_N,), dtype=tl.float32) + row_end = min((row_block_id + 1) * rows_per_program, M) + for row in range(row_start, row_end): + # Load data to SRAM + x = tl.load(X + cols, mask=mask, other=0).to(tl.float32) + dy = tl.load(DY + cols, mask=mask, other=0).to(tl.float32) + if not IS_RMS_NORM: + mean = tl.load(Mean + row) + rstd = tl.load(Rstd + row) + # Compute dx + xhat = (x - mean) * rstd if not IS_RMS_NORM else x * rstd + xhat = tl.where(mask, xhat, 0.0) + if RECOMPUTE_OUTPUT: + y = xhat * w + b if HAS_BIAS else xhat * w + tl.store(Y + cols, y, mask=mask) + wdy = w * dy + dw += dy * xhat + if HAS_BIAS: + db += dy + if not IS_RMS_NORM: + c1 = tl.sum(xhat * wdy, axis=0) / N + c2 = tl.sum(wdy, axis=0) / N + dx = (wdy - (xhat * c1 + c2)) * rstd + else: + c1 = tl.sum(xhat * wdy, axis=0) / N + dx = (wdy - xhat * c1) * rstd + if HAS_DRESIDUAL: + dres = tl.load(DRESIDUAL + cols, mask=mask, other=0).to(tl.float32) + dx += dres + # Write dx + if STORE_DRESIDUAL: + tl.store(DRESIDUAL_IN + cols, dx, mask=mask) + tl.store(DX + cols, dx, mask=mask) + + X += stride_x_row + if HAS_DRESIDUAL: + DRESIDUAL += stride_dres_row + if STORE_DRESIDUAL: + DRESIDUAL_IN += stride_dres_in_row + if RECOMPUTE_OUTPUT: + Y += stride_y_row + DY += stride_dy_row + DX += stride_dx_row + tl.store(DW + row_block_id * N + cols, dw, mask=mask) + if HAS_BIAS: + tl.store(DB + row_block_id * N + cols, db, mask=mask) + + +def _layer_norm_bwd( + dy, + x, + weight, + bias, + eps, + mean, + rstd, + dresidual=None, + has_residual=False, + is_rms_norm=False, + x_dtype=None, + recompute_output=False, +): + M, N = x.shape + assert x.stride(-1) == 1 + assert dy.stride(-1) == 1 + assert dy.shape == (M, N) + if dresidual is not None: + assert dresidual.stride(-1) == 1 + assert dresidual.shape == (M, N) + assert weight.shape == (N,) + assert weight.stride(-1) == 1 + if bias is not None: + assert bias.stride(-1) == 1 + assert bias.shape == (N,) + # allocate output + dx = ( + torch.empty_like(x) + if x_dtype is None + else torch.empty(M, N, dtype=x_dtype, device=x.device) + ) + dresidual_in = torch.empty_like(x) if has_residual and dx.dtype != x.dtype else None + y = torch.empty(M, N, dtype=dy.dtype, device=dy.device) if recompute_output else None + + # Less than 64KB per feature: enqueue fused kernel + MAX_FUSED_SIZE = 65536 // x.element_size() + BLOCK_N = min(MAX_FUSED_SIZE, triton.next_power_of_2(N)) + if N > BLOCK_N: + raise RuntimeError("This layer norm doesn't support feature dim >= 64KB.") + sm_count = torch.cuda.get_device_properties(x.device).multi_processor_count + _dw = torch.empty((sm_count, N), dtype=torch.float32, device=weight.device) + _db = ( + torch.empty((sm_count, N), dtype=torch.float32, device=bias.device) + if bias is not None + else None + ) + rows_per_program = math.ceil(M / sm_count) + grid = (sm_count,) + with torch.cuda.device(x.device.index): + _layer_norm_bwd_kernel[grid]( + x, + weight, + bias, + y, + dy, + dx, + _dw, + _db, + dresidual, + dresidual_in, + mean, + rstd, + x.stride(0), + 0 if not recompute_output else y.stride(0), + dy.stride(0), + dx.stride(0), + dresidual.stride(0) if dresidual is not None else 0, + dresidual_in.stride(0) if dresidual_in is not None else 0, + M, + N, + eps, + rows_per_program, + is_rms_norm, + BLOCK_N, + dresidual is not None, + dresidual_in is not None, + bias is not None, + ) + dw = _dw.sum(0).to(weight.dtype) + db = _db.sum(0).to(bias.dtype) if bias is not None else None + # Don't need to compute dresidual_in separately in this case + if has_residual and dx.dtype == x.dtype: + dresidual_in = dx + return (dx, dw, db, dresidual_in) if not recompute_output else (dx, dw, db, dresidual_in, y) + + +class LayerNormFn(torch.autograd.Function): + @staticmethod + def forward( + ctx, + x, + weight, + bias, + residual=None, + eps=1e-6, + prenorm=False, + residual_in_fp32=False, + is_rms_norm=False, + ): + x_shape_og = x.shape + # reshape input data into 2D tensor + x = x.reshape(-1, x.shape[-1]) + if x.stride(-1) != 1: + x = x.contiguous() + if residual is not None: + assert residual.shape == x_shape_og + residual = residual.reshape(-1, residual.shape[-1]) + if residual.stride(-1) != 1: + residual = residual.contiguous() + weight = weight.contiguous() + if bias is not None: + bias = bias.contiguous() + residual_dtype = ( + residual.dtype + if residual is not None + else (torch.float32 if residual_in_fp32 else None) + ) + y, mean, rstd, residual_out = _layer_norm_fwd( + x, weight, bias, eps, residual, residual_dtype=residual_dtype, is_rms_norm=is_rms_norm + ) + ctx.save_for_backward(residual_out, weight, bias, mean, rstd) + ctx.x_shape_og = x_shape_og + ctx.eps = eps + ctx.is_rms_norm = is_rms_norm + ctx.has_residual = residual is not None + ctx.prenorm = prenorm + ctx.x_dtype = x.dtype + y = y.reshape(x_shape_og) + return y if not prenorm else (y, residual_out.reshape(x_shape_og)) + + @staticmethod + def backward(ctx, dy, *args): + x, weight, bias, mean, rstd = ctx.saved_tensors + dy = dy.reshape(-1, dy.shape[-1]) + if dy.stride(-1) != 1: + dy = dy.contiguous() + assert dy.shape == x.shape + if ctx.prenorm: + dresidual = args[0] + dresidual = dresidual.reshape(-1, dresidual.shape[-1]) + if dresidual.stride(-1) != 1: + dresidual = dresidual.contiguous() + assert dresidual.shape == x.shape + else: + dresidual = None + dx, dw, db, dresidual_in = _layer_norm_bwd( + dy, + x, + weight, + bias, + ctx.eps, + mean, + rstd, + dresidual, + ctx.has_residual, + ctx.is_rms_norm, + x_dtype=ctx.x_dtype, + ) + return ( + dx.reshape(ctx.x_shape_og), + dw, + db, + dresidual_in.reshape(ctx.x_shape_og) if ctx.has_residual else None, + None, + None, + None, + None, + ) + + +def layer_norm_fn( + x, + weight, + bias, + residual=None, + eps=1e-6, + prenorm=False, + residual_in_fp32=False, + is_rms_norm=False, +): + return LayerNormFn.apply(x, weight, bias, residual, eps, prenorm, residual_in_fp32, is_rms_norm) + + +def rms_norm_fn(x, weight, bias, residual=None, prenorm=False, residual_in_fp32=False, eps=1e-6): + return LayerNormFn.apply(x, weight, bias, residual, eps, prenorm, residual_in_fp32, True) + + +class RMSNorm(torch.nn.Module): + def __init__(self, hidden_size, eps=1e-5, device=None, dtype=None): + factory_kwargs = {"device": device, "dtype": dtype} + super().__init__() + self.eps = eps + self.weight = torch.nn.Parameter(torch.empty(hidden_size, **factory_kwargs)) + self.register_parameter("bias", None) + self.reset_parameters() + + def reset_parameters(self): + torch.nn.init.ones_(self.weight) + + def forward(self, x, residual=None, prenorm=False, residual_in_fp32=False): + return rms_norm_fn( + x, + self.weight, + self.bias, + residual=residual, + eps=self.eps, + prenorm=prenorm, + residual_in_fp32=residual_in_fp32, + ) + + +class LayerNormLinearFn(torch.autograd.Function): + @staticmethod + @custom_fwd + def forward( + ctx, + x, + norm_weight, + norm_bias, + linear_weight, + linear_bias, + residual=None, + eps=1e-6, + prenorm=False, + residual_in_fp32=False, + is_rms_norm=False, + ): + x_shape_og = x.shape + # reshape input data into 2D tensor + x = x.reshape(-1, x.shape[-1]) + if x.stride(-1) != 1: + x = x.contiguous() + if residual is not None: + assert residual.shape == x_shape_og + residual = residual.reshape(-1, residual.shape[-1]) + if residual.stride(-1) != 1: + residual = residual.contiguous() + norm_weight = norm_weight.contiguous() + if norm_bias is not None: + norm_bias = norm_bias.contiguous() + residual_dtype = ( + residual.dtype + if residual is not None + else (torch.float32 if residual_in_fp32 else None) + ) + y, mean, rstd, residual_out = _layer_norm_fwd( + x, + norm_weight, + norm_bias, + eps, + residual, + out_dtype=None if not torch.is_autocast_enabled() else torch.get_autocast_gpu_dtype(), + residual_dtype=residual_dtype, + is_rms_norm=is_rms_norm, + ) + y = y.reshape(x_shape_og) + dtype = torch.get_autocast_gpu_dtype() if torch.is_autocast_enabled() else y.dtype + linear_weight = linear_weight.to(dtype) + linear_bias = linear_bias.to(dtype) if linear_bias is not None else None + out = F.linear(y.to(linear_weight.dtype), linear_weight, linear_bias) + # We don't store y, will be recomputed in the backward pass to save memory + ctx.save_for_backward(residual_out, norm_weight, norm_bias, linear_weight, mean, rstd) + ctx.x_shape_og = x_shape_og + ctx.eps = eps + ctx.is_rms_norm = is_rms_norm + ctx.has_residual = residual is not None + ctx.prenorm = prenorm + ctx.x_dtype = x.dtype + ctx.linear_bias_is_none = linear_bias is None + return out if not prenorm else (out, residual_out.reshape(x_shape_og)) + + @staticmethod + @custom_bwd + def backward(ctx, dout, *args): + x, norm_weight, norm_bias, linear_weight, mean, rstd = ctx.saved_tensors + dout = dout.reshape(-1, dout.shape[-1]) + dy = F.linear(dout, linear_weight.t()) + dlinear_bias = None if ctx.linear_bias_is_none else dout.sum(0) + if dy.stride(-1) != 1: + dy = dy.contiguous() + assert dy.shape == x.shape + if ctx.prenorm: + dresidual = args[0] + dresidual = dresidual.reshape(-1, dresidual.shape[-1]) + if dresidual.stride(-1) != 1: + dresidual = dresidual.contiguous() + assert dresidual.shape == x.shape + else: + dresidual = None + dx, dnorm_weight, dnorm_bias, dresidual_in, y = _layer_norm_bwd( + dy, + x, + norm_weight, + norm_bias, + ctx.eps, + mean, + rstd, + dresidual, + ctx.has_residual, + ctx.is_rms_norm, + x_dtype=ctx.x_dtype, + recompute_output=True, + ) + dlinear_weight = torch.einsum("bo,bi->oi", dout, y) + return ( + dx.reshape(ctx.x_shape_og), + dnorm_weight, + dnorm_bias, + dlinear_weight, + dlinear_bias, + dresidual_in.reshape(ctx.x_shape_og) if ctx.has_residual else None, + None, + None, + None, + None, + ) + + +def layer_norm_linear_fn( + x, + norm_weight, + norm_bias, + linear_weight, + linear_bias, + residual=None, + eps=1e-6, + prenorm=False, + residual_in_fp32=False, + is_rms_norm=False, +): + return LayerNormLinearFn.apply( + x, + norm_weight, + norm_bias, + linear_weight, + linear_bias, + residual, + eps, + prenorm, + residual_in_fp32, + is_rms_norm, + ) diff --git a/src/modalities/models/mamba/ops/triton/selective_state_update.py b/src/modalities/models/mamba/ops/triton/selective_state_update.py new file mode 100644 index 00000000..193552a0 --- /dev/null +++ b/src/modalities/models/mamba/ops/triton/selective_state_update.py @@ -0,0 +1,263 @@ +# Copyright (c) 2024, Tri Dao, Albert Gu. + +"""We want triton==2.1.0 or triton==2.2.0 or triton==2.3.0 for this +""" + +import math +import torch +import torch.nn.functional as F + +import triton +import triton.language as tl + +from einops import rearrange, repeat + + +@triton.heuristics({"HAS_DT_BIAS": lambda args: args["dt_bias_ptr"] is not None}) +@triton.heuristics({"HAS_D": lambda args: args["D_ptr"] is not None}) +@triton.heuristics({"HAS_Z": lambda args: args["z_ptr"] is not None}) +@triton.heuristics({"BLOCK_SIZE_DSTATE": lambda args: triton.next_power_of_2(args["dstate"])}) +@triton.jit +def _selective_scan_update_kernel( + # Pointers to matrices + state_ptr, x_ptr, dt_ptr, dt_bias_ptr, A_ptr, B_ptr, C_ptr, D_ptr, z_ptr, out_ptr, + # Matrix dimensions + batch, nheads, dim, dstate, nheads_ngroups_ratio, + # Strides + stride_state_batch, stride_state_head, stride_state_dim, stride_state_dstate, + stride_x_batch, stride_x_head, stride_x_dim, + stride_dt_batch, stride_dt_head, stride_dt_dim, + stride_dt_bias_head, stride_dt_bias_dim, + stride_A_head, stride_A_dim, stride_A_dstate, + stride_B_batch, stride_B_group, stride_B_dstate, + stride_C_batch, stride_C_group, stride_C_dstate, + stride_D_head, stride_D_dim, + stride_z_batch, stride_z_head, stride_z_dim, + stride_out_batch, stride_out_head, stride_out_dim, + # Meta-parameters + DT_SOFTPLUS: tl.constexpr, + TIE_HDIM: tl.constexpr, + BLOCK_SIZE_M: tl.constexpr, + HAS_DT_BIAS: tl.constexpr, + HAS_D: tl.constexpr, + HAS_Z: tl.constexpr, + BLOCK_SIZE_DSTATE: tl.constexpr, +): + pid_m = tl.program_id(axis=0) + pid_b = tl.program_id(axis=1) + pid_h = tl.program_id(axis=2) + state_ptr += pid_b * stride_state_batch + pid_h * stride_state_head + x_ptr += pid_b * stride_x_batch + pid_h * stride_x_head + dt_ptr += pid_b * stride_dt_batch + pid_h * stride_dt_head + if HAS_DT_BIAS: + dt_bias_ptr += pid_h * stride_dt_bias_head + A_ptr += pid_h * stride_A_head + B_ptr += pid_b * stride_B_batch + (pid_h // nheads_ngroups_ratio) * stride_B_group + C_ptr += pid_b * stride_C_batch + (pid_h // nheads_ngroups_ratio) * stride_C_group + if HAS_Z: + z_ptr += pid_b * stride_z_batch + pid_h * stride_z_head + out_ptr += pid_b * stride_out_batch + pid_h * stride_out_head + + offs_m = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_n = tl.arange(0, BLOCK_SIZE_DSTATE) + state_ptrs = state_ptr + (offs_m[:, None] * stride_state_dim + offs_n[None, :] * stride_state_dstate) + x_ptrs = x_ptr + offs_m * stride_x_dim + dt_ptrs = dt_ptr + offs_m * stride_dt_dim + if HAS_DT_BIAS: + dt_bias_ptrs = dt_bias_ptr + offs_m * stride_dt_bias_dim + if HAS_D: + D_ptr += pid_h * stride_D_head + A_ptrs = A_ptr + (offs_m[:, None] * stride_A_dim + offs_n[None, :] * stride_A_dstate) + B_ptrs = B_ptr + offs_n * stride_B_dstate + C_ptrs = C_ptr + offs_n * stride_C_dstate + if HAS_D: + D_ptrs = D_ptr + offs_m * stride_D_dim + if HAS_Z: + z_ptrs = z_ptr + offs_m * stride_z_dim + out_ptrs = out_ptr + offs_m * stride_out_dim + + state = tl.load(state_ptrs, mask=(offs_m[:, None] < dim) & (offs_n[None, :] < dstate), other=0.0) + x = tl.load(x_ptrs, mask=offs_m < dim, other=0.0).to(tl.float32) + if not TIE_HDIM: + dt = tl.load(dt_ptrs, mask=offs_m < dim, other=0.0).to(tl.float32) + if HAS_DT_BIAS: + dt += tl.load(dt_bias_ptrs, mask=offs_m < dim, other=0.0).to(tl.float32) + if DT_SOFTPLUS: + dt = tl.where(dt <= 20.0, tl.math.log1p(tl.exp(dt)), dt) + A = tl.load(A_ptrs, mask=(offs_m[:, None] < dim) & (offs_n[None, :] < dstate), other=0.0).to(tl.float32) + dA = tl.exp(A * dt[:, None]) + else: + dt = tl.load(dt_ptr).to(tl.float32) + if HAS_DT_BIAS: + dt += tl.load(dt_bias_ptr).to(tl.float32) + if DT_SOFTPLUS: + dt = tl.where(dt <= 20.0, tl.math.log1p(tl.exp(dt)), dt) + A = tl.load(A_ptr).to(tl.float32) + dA = tl.exp(A * dt) # scalar, not a matrix + + B = tl.load(B_ptrs, mask=offs_n < dstate, other=0.0).to(tl.float32) + C = tl.load(C_ptrs, mask=offs_n < dstate, other=0.0).to(tl.float32) + if HAS_D: + D = tl.load(D_ptrs, mask=offs_m < dim, other=0.0).to(tl.float32) + if HAS_Z: + z = tl.load(z_ptrs, mask=offs_m < dim, other=0.0).to(tl.float32) + + if not TIE_HDIM: + dB = B[None, :] * dt[:, None] + else: + dB = B * dt # vector of size (dstate,) + state = state * dA + dB * x[:, None] + tl.store(state_ptrs, state, mask=(offs_m[:, None] < dim) & (offs_n[None, :] < dstate)) + out = tl.sum(state * C[None, :], axis=1) + if HAS_D: + out += x * D + if HAS_Z: + out *= z * tl.sigmoid(z) + tl.store(out_ptrs, out, mask=offs_m < dim) + + +def selective_state_update(state, x, dt, A, B, C, D=None, z=None, dt_bias=None, dt_softplus=False): + """ + Argument: + state: (batch, dim, dstate) or (batch, nheads, dim, dstate) + x: (batch, dim) or (batch, nheads, dim) + dt: (batch, dim) or (batch, nheads, dim) + A: (dim, dstate) or (nheads, dim, dstate) + B: (batch, dstate) or (batch, ngroups, dstate) + C: (batch, dstate) or (batch, ngroups, dstate) + D: (dim,) or (nheads, dim) + z: (batch, dim) or (batch, nheads, dim) + dt_bias: (dim,) or (nheads, dim) + Return: + out: (batch, dim) or (batch, nheads, dim) + """ + has_heads = state.dim() > 3 + if state.dim() == 3: + state = state.unsqueeze(1) + if x.dim() == 2: + x = x.unsqueeze(1) + if dt.dim() == 2: + dt = dt.unsqueeze(1) + if A.dim() == 2: + A = A.unsqueeze(0) + if B.dim() == 2: + B = B.unsqueeze(1) + if C.dim() == 2: + C = C.unsqueeze(1) + if D is not None and D.dim() == 1: + D = D.unsqueeze(0) + if z is not None and z.dim() == 2: + z = z.unsqueeze(1) + if dt_bias is not None and dt_bias.dim() == 1: + dt_bias = dt_bias.unsqueeze(0) + batch, nheads, dim, dstate = state.shape + assert x.shape == (batch, nheads, dim) + assert dt.shape == x.shape + assert A.shape == (nheads, dim, dstate) + ngroups = B.shape[1] + assert nheads % ngroups == 0, "nheads must be divisible by ngroups" + assert B.shape == (batch, ngroups, dstate) + assert C.shape == B.shape + if D is not None: + assert D.shape == (nheads, dim) + if z is not None: + assert z.shape == x.shape + if dt_bias is not None: + assert dt_bias.shape == (nheads, dim) + out = torch.empty_like(x) + grid = lambda META: (triton.cdiv(dim, META['BLOCK_SIZE_M']), batch, nheads) + z_strides = ((z.stride(0), z.stride(1), z.stride(2)) if z is not None else (0, 0, 0)) + # We don't want autotune since it will overwrite the state + # We instead tune by hand. + BLOCK_SIZE_M, num_warps = ((32, 4) if dstate <= 16 + else ((16, 4) if dstate <= 32 else + ((8, 4) if dstate <= 64 else + ((4, 4) if dstate <= 128 else + ((4, 8)))))) + tie_hdim = A.stride(-1) == 0 and A.stride(-2) == 0 and dt.stride(-1) == 0 and dt_bias.stride(-1) == 0 + with torch.cuda.device(x.device.index): + _selective_scan_update_kernel[grid]( + state, x, dt, dt_bias, A, B, C, D, z, out, + batch, nheads, dim, dstate, nheads // ngroups, + state.stride(0), state.stride(1), state.stride(2), state.stride(3), + x.stride(0), x.stride(1), x.stride(2), + dt.stride(0), dt.stride(1), dt.stride(2), + *(dt_bias.stride(0), dt_bias.stride(1)) if dt_bias is not None else 0, + A.stride(0), A.stride(1), A.stride(2), + B.stride(0), B.stride(1), B.stride(2), + C.stride(0), C.stride(1), C.stride(2), + *(D.stride(0), D.stride(1)) if D is not None else 0, + z_strides[0], z_strides[1], z_strides[2], + out.stride(0), out.stride(1), out.stride(2), + dt_softplus, + tie_hdim, + BLOCK_SIZE_M, + num_warps=num_warps, + ) + if not has_heads: + out = out.squeeze(1) + return out + + +def selective_state_update_ref(state, x, dt, A, B, C, D=None, z=None, dt_bias=None, dt_softplus=False): + """ + Argument: + state: (batch, dim, dstate) or (batch, nheads, dim, dstate) + x: (batch, dim) or (batch, nheads, dim) + dt: (batch, dim) or (batch, nheads, dim) + A: (dim, dstate) or (nheads, dim, dstate) + B: (batch, dstate) or (batch, ngroups, dstate) + C: (batch, dstate) or (batch, ngroups, dstate) + D: (dim,) or (nheads, dim) + z: (batch, dim) or (batch, nheads, dim) + dt_bias: (dim,) or (nheads, dim) + Return: + out: (batch, dim) or (batch, nheads, dim) + """ + has_heads = state.dim() > 3 + if state.dim() == 3: + state = state.unsqueeze(1) + if x.dim() == 2: + x = x.unsqueeze(1) + if dt.dim() == 2: + dt = dt.unsqueeze(1) + if A.dim() == 2: + A = A.unsqueeze(0) + if B.dim() == 2: + B = B.unsqueeze(1) + if C.dim() == 2: + C = C.unsqueeze(1) + if D is not None and D.dim() == 1: + D = D.unsqueeze(0) + if z is not None and z.dim() == 2: + z = z.unsqueeze(1) + if dt_bias is not None and dt_bias.dim() == 1: + dt_bias = dt_bias.unsqueeze(0) + batch, nheads, dim, dstate = state.shape + assert x.shape == (batch, nheads, dim) + assert dt.shape == x.shape + assert A.shape == (nheads, dim, dstate) + ngroups = B.shape[1] + assert nheads % ngroups == 0, "nheads must be divisible by ngroups" + assert B.shape == (batch, ngroups, dstate) + assert C.shape == B.shape + if D is not None: + assert D.shape == (nheads, dim) + if z is not None: + assert z.shape == x.shape + if dt_bias is not None: + assert dt_bias.shape == (nheads, dim) + dt = dt + dt_bias + dt = F.softplus(dt) if dt_softplus else dt + dA = torch.exp(rearrange(dt, "b h d -> b h d 1") * A) # (batch, nheads, dim, dstate) + B = repeat(B, "b g n -> b (g h) n", h=nheads // ngroups) # (batch, nheads, dstate) + C = repeat(C, "b g n -> b (g h) n", h=nheads // ngroups) # (batch, nheads, dstate) + dB = rearrange(dt, "b h d -> b h d 1") * rearrange(B, "b h n -> b h 1 n") # (batch, nheads, dim, dstate) + state.copy_(state * dA + dB * rearrange(x, "b h d -> b h d 1")) # (batch, dim, dstate + out = torch.einsum("bhdn,bhn->bhd", state.to(C.dtype), C) + if D is not None: + out += (x * D).to(out.dtype) + out = (out if z is None else out * F.silu(z)).to(x.dtype) + if not has_heads: + out = out.squeeze(1) + return out diff --git a/src/modalities/models/mamba/utils/__init__.py b/src/modalities/models/mamba/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/modalities/models/mamba/utils/generation.py b/src/modalities/models/mamba/utils/generation.py new file mode 100644 index 00000000..369c7a14 --- /dev/null +++ b/src/modalities/models/mamba/utils/generation.py @@ -0,0 +1,387 @@ +# Copyright (c) 2023, Albert Gu, Tri Dao. +import gc +import time +from collections import namedtuple +from dataclasses import dataclass, field +from functools import partial +from typing import Callable, Optional, Sequence, Union + +import torch +import torch.nn.functional as F +from einops import rearrange, repeat +from torch import Tensor +from torch.profiler import ProfilerActivity, profile, record_function +from transformers.generation import GreedySearchDecoderOnlyOutput, SampleDecoderOnlyOutput, TextStreamer + + +@dataclass +class InferenceParams: + """Inference parameters that are passed to the main model in order + to efficienly calculate and store the context during inference.""" + + max_seqlen: int + max_batch_size: int + seqlen_offset: int = 0 + batch_size_offset: int = 0 + key_value_memory_dict: dict = field(default_factory=dict) + lengths_per_sample: Optional[Tensor] = None + + def reset(self, max_seqlen, max_batch_size): + self.max_seqlen = max_seqlen + self.max_batch_size = max_batch_size + self.seqlen_offset = 0 + if self.lengths_per_sample is not None: + self.lengths_per_sample.zero_() + + +def modify_logits_for_min_p_filtering(logits, min_p): + """Set the logits for none min_p values to -inf. Done in-place.""" + if min_p <= 0.0 or min_p >= 1.0: + return + indices_to_remove = logits < min_p + logits.masked_fill_(indices_to_remove, float("-Inf")) +# https://github.com/NVIDIA/Megatron-LM/blob/0bb597b42c53355a567aba2a1357cc34b9d99ddd/megatron/text_generation/sampling.py +# https://github.com/huggingface/transformers/blob/a44985b41cfa2de48a5e1de7f1f93b7483da25d1/src/transformers/generation/logits_process.py#L231 +def modify_logits_for_top_k_filtering(logits, top_k): + """Set the logits for none top-k values to -inf. Done in-place.""" + indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None] + logits.masked_fill_(indices_to_remove, float("-Inf")) + + +# https://github.com/NVIDIA/Megatron-LM/blob/0bb597b42c53355a567aba2a1357cc34b9d99ddd/megatron/text_generation/sampling.py +# https://github.com/huggingface/transformers/blob/a44985b41cfa2de48a5e1de7f1f93b7483da25d1/src/transformers/generation/logits_process.py#L170 +def modify_logits_for_top_p_filtering(logits, top_p): + """Set the logits for none top-p values to -inf. Done in-place.""" + if top_p <= 0.0 or top_p >= 1.0: + return + # First sort and calculate cumulative sum of probabilities. + sorted_logits, sorted_indices = torch.sort(logits, descending=False) + cumulative_probs = sorted_logits.softmax(dim=-1).cumsum(dim=-1) + # Remove tokens with cumulative top_p above the threshold (token with 0 are kept) + sorted_indices_to_remove = cumulative_probs <= (1 - top_p) + # scatter sorted tensors to original indexing + indices_to_remove = sorted_indices_to_remove.scatter( + 1, sorted_indices, sorted_indices_to_remove + ) + logits.masked_fill_(indices_to_remove, float("-inf")) + + +def modify_logit_for_repetition_penalty(logits, prev_output_tokens, repetition_penalty=1.0): + """Apply repetition penalty. See https://arxiv.org/abs/1909.05858 + logits: (batch_size, vocab_size) + prev_output_tokens: (batch_size, seq_len) + """ + if repetition_penalty == 1.0: + return logits + score = torch.gather(logits, 1, prev_output_tokens) + # if score < 0 then repetition penalty has to be multiplied to reduce the previous token probability + score = torch.where(score < 0, score * repetition_penalty, score / repetition_penalty) + logits.scatter_(1, prev_output_tokens, score) + return logits + + +def sample(logits, top_k=1, top_p=0.0, min_p=0.0, temperature=1.0): + """Sample from top-k logits. + Arguments: + logits: Tensor of shape (batch_size, vocab_size) + """ + if top_k == 1: # Short-circuit for greedy decoding + return logits.argmax(dim=-1) + else: + if top_p > 0.0: + assert top_p <= 1.0, "top-p should be in (0, 1]." + if top_k > 0: + top_k = min(top_k, logits.size(-1)) # Safety check + logits_top, indices = torch.topk(logits, top_k, dim=-1) + if temperature != 1.0: + logits_top /= temperature + modify_logits_for_top_p_filtering(logits_top, top_p) + return indices[ + torch.arange(indices.shape[0], device=indices.device), + torch.multinomial(torch.softmax(logits_top, dim=-1), num_samples=1).squeeze(dim=-1), + ] + else: + if min_p > 0.0: + logits_top = logits.clone() + max_prob = logits_top[..., 0].item() + min_prob = max_prob * min_p + modify_logits_for_min_p_filtering(logits_top, min_p) + if temperature != 1.0: + logits_top /= temperature + return torch.multinomial(torch.softmax(logits_top, dim=-1), num_samples=1).squeeze(dim=-1) + # Clone so that when we modify for top_p we don't change the original logits + logits_top = logits / temperature if temperature != 1.0 else logits.clone() + modify_logits_for_top_p_filtering(logits_top, top_p) + return torch.multinomial(torch.softmax(logits_top, dim=-1), num_samples=1).squeeze( + dim=-1 + ) + + +@torch.inference_mode() +def decode( + input_ids, + model, + max_length, + top_k=1, + top_p=0.0, + min_p=0.0, + temperature=1.0, + repetition_penalty=1.0, + eos_token_id=None, + teacher_outputs=None, + vocab_size=None, + cg=False, + enable_timing=False, + streamer: Optional[TextStreamer] = None +): + """Decoding, either greedy or with top-k or top-p sampling. + If top-k = 0, don't limit the number of candidates (pure sampling). + Top-k and top-p can be used together. If top_k > 0 and top_p > 0, then top-k is applied first, + then top-p. + We assume that all sequences in the same batch have the same length. + + Arguments: + input_ids: (batch, seq_len) + max_length: int + teacher_outputs (optional): (batch, seq_len). If provided, instead of sampling from the + logits, the next token is taken from the teacher_outputs. Useful for testing. + Returns: GreedySearchDecoderOnlyOutput or SampleDecoderOnlyOutput, with the following fields: + sequences: (batch, max_length) + scores: tuples of (batch, vocab_size) + """ + if streamer is not None: + streamer.put(input_ids.cpu()) + + batch_size, seqlen_og = input_ids.shape + teacher_output_len = teacher_outputs.shape[1] if teacher_outputs is not None else 0 + if cg: + if not hasattr(model, "_decoding_cache"): + model._decoding_cache = None + model._decoding_cache = update_graph_cache( + model, + model._decoding_cache, + batch_size, + seqlen_og, + max_length, + ) + inference_params = model._decoding_cache.inference_params + inference_params.reset(max_length, batch_size) + else: + inference_params = InferenceParams(max_seqlen=max_length, max_batch_size=batch_size) + + def get_logits(input_ids, inference_params): + decoding = inference_params.seqlen_offset > 0 + if decoding: + position_ids = torch.full( + (batch_size, 1), + inference_params.seqlen_offset, + dtype=torch.long, + device=input_ids.device, + ) + else: + position_ids = None + if not cg or not decoding: + logits = model( + input_ids, + position_ids=position_ids, + inference_params=inference_params, + num_last_tokens=1, + ).logits.squeeze(dim=1) + else: + logits = model._decoding_cache.run( + input_ids, position_ids, inference_params.seqlen_offset + ).squeeze(dim=1) + return logits[..., :vocab_size] if vocab_size is not None else logits + + def sample_tokens(logits, inference_params): + if teacher_outputs is None or teacher_output_len <= inference_params.seqlen_offset: + token = sample(logits, top_k=top_k, top_p=top_p, min_p=min_p, temperature=temperature) + else: + token = teacher_outputs[:, inference_params.seqlen_offset] + # return rearrange(token, "b -> b 1") + return token.unsqueeze(1) + + def should_stop(current_token, inference_params): + if inference_params.seqlen_offset == 0: + return False + if eos_token_id is not None and (current_token == eos_token_id).all(): + return True + if inference_params.seqlen_offset >= max_length - 1: + return True + return False + + start = torch.cuda.Event(enable_timing=enable_timing) + end = torch.cuda.Event(enable_timing=enable_timing) + + if enable_timing: + start.record() + scores, sequences = [], [input_ids] + sequences_cat = input_ids + while not should_stop(sequences[-1], inference_params): + scores.append(get_logits(sequences[-1], inference_params)) + inference_params.seqlen_offset += sequences[-1].shape[1] + if repetition_penalty == 1.0: + sampled_tokens = sample_tokens(scores[-1], inference_params) + else: + logits = modify_logit_for_repetition_penalty( + scores[-1].clone(), sequences_cat, repetition_penalty + ) + sampled_tokens = sample_tokens(logits, inference_params) + sequences_cat = torch.cat([sequences_cat, sampled_tokens], dim=1) + sequences.append(sampled_tokens) + if streamer is not None: + streamer.put(sampled_tokens.cpu()) + if streamer is not None: + streamer.end() + if enable_timing: + end.record() + torch.cuda.synchronize() + print(f"Prompt processing + decoding time: {(start.elapsed_time(end)):.0f}ms") + output_cls = GreedySearchDecoderOnlyOutput if top_k == 1 else SampleDecoderOnlyOutput + return output_cls(sequences=torch.cat(sequences, dim=1), scores=tuple(scores)) + + +class GenerationMixin: + def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + raise NotImplementedError + + def generate( + self, + input_ids, + max_length, + top_k=1, + top_p=0.0, + min_p=0.0, + temperature=1.0, + return_dict_in_generate=False, + output_scores=False, + **kwargs, + ): + output = decode( + input_ids, self, max_length, top_k=top_k, top_p=top_p, min_p = min_p, temperature=temperature, **kwargs + ) + if not output_scores: + output.scores = None + return output if return_dict_in_generate else output.sequences + + +@dataclass +class DecodingCGCache: + max_batch_size: int = 0 + max_seqlen: int = 0 + device = None + dtype = None + callables: dict = field(default_factory=dict) + mempool = None + inference_params: Optional[InferenceParams] = None + run: Optional[Callable] = None + + +@torch.inference_mode() +def update_graph_cache( + model, + cache, + batch_size, + seqlen_og, + max_seqlen, + decoding_seqlens=(1,), + dtype=None, + n_warmups=2, +): + if cache is None: + cache = DecodingCGCache() + param_example = next(iter(model.parameters())) + device = param_example.device + if dtype is None: + dtype = param_example.dtype + if ( + (device, dtype) != (cache.device, cache.dtype) + or batch_size > cache.max_batch_size + or max_seqlen > cache.max_seqlen + ): # Invalidate the cache + cache.callables = {} + cache.mempool = None + cache.inference_params = None + gc.collect() + cache.device, cache.dtype = device, dtype + cache.max_batch_size, cache.max_seqlen = batch_size, max_seqlen + assert hasattr(model, "allocate_inference_cache"), "CUDA graph decoding requires that the model has a method allocate_inference_cache" + inf_cache = model.allocate_inference_cache(batch_size, max_seqlen, dtype) + lengths_per_sample = torch.full((batch_size,), seqlen_og, dtype=torch.int32, device=device) + cache.inference_params = InferenceParams( + max_seqlen=max_seqlen, + max_batch_size=batch_size, + seqlen_offset=seqlen_og, + key_value_memory_dict=inf_cache, + lengths_per_sample=lengths_per_sample, + ) + cache.mempool = torch.cuda.graphs.graph_pool_handle() + for decoding_seqlen in decoding_seqlens: + if (batch_size, decoding_seqlen) not in cache.callables: + cache.callables[batch_size, decoding_seqlen] = capture_graph( + model, + cache.inference_params, + batch_size, + max_seqlen, + decoding_seqlen=decoding_seqlen, + mempool=cache.mempool, + n_warmups=n_warmups, + ) + + def dispatch(input_ids, position_ids, seqlen): + batch_size, decoding_seqlen = input_ids.shape[:2] + return cache.callables[batch_size, decoding_seqlen](input_ids, position_ids, seqlen) + + cache.run = dispatch + cache.inference_params.seqlen_offset = 0 # Reset so it's not confusing + return cache + + +def capture_graph( + model, inference_params, batch_size, max_seqlen, decoding_seqlen=1, mempool=None, n_warmups=2 +): + device = next(iter(model.parameters())).device + input_ids = torch.full((batch_size, decoding_seqlen), 0, dtype=torch.long, device=device) + position_ids = torch.full((batch_size, decoding_seqlen), 0, dtype=torch.long, device=device) + seqlen_offset_og = inference_params.seqlen_offset + inference_params.seqlen_offset = max_seqlen - decoding_seqlen + inference_params.lengths_per_sample[:] = inference_params.seqlen_offset + + # Warmup before capture + s = torch.cuda.Stream() + s.wait_stream(torch.cuda.current_stream()) + with torch.cuda.stream(s): + for _ in range(n_warmups): + logits = model( + input_ids, + position_ids=position_ids, + inference_params=inference_params, + num_last_tokens=decoding_seqlen, + ).logits + s.synchronize() + # This might be needed for correctness if we run with NCCL_GRAPH_MIXING_SUPPORT=0, + # which requires that graph launch and non-captured launch to not overlap (I think, + # that's how I interpret the documentation). I'm not sure if this is required. + if torch.distributed.is_initialized(): + torch.distributed.barrier() + torch.cuda.current_stream().wait_stream(s) + # Captures the graph + # To allow capture, automatically sets a side stream as the current stream in the context + graph = torch.cuda.CUDAGraph() + with torch.cuda.graph(graph, pool=mempool): + logits = model( + input_ids, + position_ids=position_ids, + inference_params=inference_params, + num_last_tokens=decoding_seqlen, + ).logits + + def run(new_input_ids, new_position_ids, seqlen): + inference_params.lengths_per_sample[:] = seqlen + input_ids.copy_(new_input_ids) + position_ids.copy_(new_position_ids) + graph.replay() + return logits.clone() + + inference_params.seqlen_offset = seqlen_offset_og + return run diff --git a/tests/models/mamba/test_mamba_block.py b/tests/models/mamba/test_mamba_block.py index bd8aeea3..fc63aebc 100644 --- a/tests/models/mamba/test_mamba_block.py +++ b/tests/models/mamba/test_mamba_block.py @@ -1,6 +1,6 @@ import torch import pytest -from mamba_ssm.utils.generation import InferenceParams +from modalities.models.mamba.utils.generation import InferenceParams @pytest.mark.skipif(not torch.cuda.is_available(), reason="We need cuda to run Mamba.") From 84d13c8bcb9cdcaf9ee6290757dc153187d4976d Mon Sep 17 00:00:00 2001 From: ajude Date: Mon, 27 May 2024 11:04:14 +0200 Subject: [PATCH 21/25] refactor(mamba): - Added type hints --- src/modalities/models/mamba/mamba_block.py | 17 ++++++++------- src/modalities/models/mamba/mamba_model.py | 24 +++++++++++----------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/modalities/models/mamba/mamba_block.py b/src/modalities/models/mamba/mamba_block.py index e5b1349a..deec50de 100644 --- a/src/modalities/models/mamba/mamba_block.py +++ b/src/modalities/models/mamba/mamba_block.py @@ -1,7 +1,7 @@ # Copyright (c) 2023, Tri Dao, Albert Gu. import math -from typing import Optional +from typing import Optional, Tuple import torch import torch.nn as nn @@ -117,7 +117,7 @@ def __init__( self.out_proj = nn.Linear(self.d_inner, self.d_model, bias=bias, **factory_kwargs) - def forward(self, hidden_states, inference_params=None): + def forward(self, hidden_states: torch.Tensor, inference_params: Optional[dict] = None) -> torch.Tensor: """ hidden_states: (B, L, D) Returns: same shape as hidden_states @@ -206,7 +206,8 @@ def forward(self, hidden_states, inference_params=None): out = self.out_proj(y) return out - def step(self, hidden_states, conv_state, ssm_state): + def step(self, hidden_states: torch.Tensor, conv_state: torch.Tensor, ssm_state: torch.Tensor) -> Tuple[ + torch.Tensor, torch.Tensor, torch.Tensor]: dtype = hidden_states.dtype assert hidden_states.shape[1] == 1, "Only support decoding with 1 token at a time for now" xz = self.in_proj(hidden_states.squeeze(1)) # (B 2D) @@ -255,7 +256,8 @@ def step(self, hidden_states, conv_state, ssm_state): out = self.out_proj(y) return out.unsqueeze(1), conv_state, ssm_state - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + def allocate_inference_cache(self, batch_size: int, max_seqlen: int, dtype: Optional[str] = None, **kwargs) -> \ + Tuple[torch.Tensor, torch.Tensor]: device = self.out_proj.weight.device conv_dtype = self.conv1d.weight.dtype if dtype is None else dtype conv_state = torch.zeros( @@ -268,7 +270,8 @@ def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs) ) return conv_state, ssm_state - def _get_states_from_cache(self, inference_params, batch_size, initialize_states=False): + def _get_states_from_cache(self, inference_params: Optional[dict], batch_size: int, + initialize_states: bool = False) -> Tuple[torch.Tensor, torch.Tensor]: assert self.layer_idx is not None if self.layer_idx not in inference_params.key_value_memory_dict: batch_shape = (batch_size,) @@ -331,7 +334,7 @@ def __init__( def forward( self, hidden_states: Tensor, residual: Optional[Tensor] = None, inference_params=None - ): + ) -> Tuple[torch.Tensor, torch.Tensor]: r"""Pass the input through the encoder layer. Args: @@ -357,5 +360,5 @@ def forward( hidden_states = self.mixer(hidden_states, inference_params=inference_params) return hidden_states, residual - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + def allocate_inference_cache(self, batch_size: int, max_seqlen: int, dtype: Optional[str] = None, **kwargs) -> dict: return self.mixer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) diff --git a/src/modalities/models/mamba/mamba_model.py b/src/modalities/models/mamba/mamba_model.py index 8644df18..bcfcfeb1 100644 --- a/src/modalities/models/mamba/mamba_model.py +++ b/src/modalities/models/mamba/mamba_model.py @@ -29,7 +29,7 @@ def create_block( layer_idx: int, device: str, dtype: str, -): +) -> Block: factory_kwargs = {"device": device, "dtype": dtype} mixer_cls = partial(MambaBlock, layer_idx=layer_idx, **ssm_cfg, **factory_kwargs) norm_cls = partial( @@ -43,12 +43,12 @@ def create_block( # https://github.com/huggingface/transformers/blob/c28d04e9e252a1a099944e325685f14d242ecdcd/src/transformers/models/gpt2/modeling_gpt2.py#L454 def _init_weights( - module, - n_layer, - initializer_range=0.02, # Now only used for embedding layer. - rescale_prenorm_residual=True, - n_residuals_per_layer=1, # Change to 2 if we have MLP -): + module: nn.Module, + n_layer: int, + initializer_range: float = 0.02, # Now only used for embedding layer. + rescale_prenorm_residual: bool = True, + n_residuals_per_layer: int = 1, # Change to 2 if we have MLP +) -> None: if isinstance(module, nn.Linear): if module.bias is not None: if not getattr(module.bias, "_no_reinit", False): @@ -123,13 +123,13 @@ def __init__( ) ) - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + def allocate_inference_cache(self, batch_size: int, max_seqlen: int, dtype: Optional[str] = None, **kwargs) -> dict: return { i: layer.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) for i, layer in enumerate(self.layers) } - def forward(self, input_ids: torch.Tensor, inference_params=None): + def forward(self, input_ids: torch.Tensor, inference_params: Optional[dict] = None) -> torch.Tensor: hidden_states = self.embedding(input_ids) residual = None for layer in self.layers: @@ -220,11 +220,11 @@ def __init__( ) self.tie_weights() - def tie_weights(self): + def tie_weights(self) -> None: if self.tie_embeddings: self.lm_head.weight = self.backbone.embedding.weight - def allocate_inference_cache(self, batch_size, max_seqlen, dtype=None, **kwargs): + def allocate_inference_cache(self, batch_size: int, max_seqlen: int, dtype: str = None, **kwargs) -> dict: return self.backbone.allocate_inference_cache(batch_size, max_seqlen, dtype=dtype, **kwargs) def forward(self, inputs: Dict[str, torch.Tensor]) -> Dict[str, torch.Tensor]: @@ -244,7 +244,7 @@ def generate_text( context: str, max_new_tokens: int, temperature: float = 1.0, - ): + ) -> str: assert temperature > 0 if not context: raise ValueError("Context must be not empty") From 1c90de3e71c3ea483f427eddf233bbe449c3c5f0 Mon Sep 17 00:00:00 2001 From: ajude Date: Mon, 27 May 2024 14:28:42 +0200 Subject: [PATCH 22/25] refactor(mamba): - Added type hints --- README.md | 3 + .../text_generation_config_torch.yaml | 93 ++++ .../text_generation_overfitted_de.yaml | 5 +- .../training/config_example_coca.yaml | 29 +- ...ig_example_hf_meditron_7B_instruction.yaml | 10 +- .../config_example_mem_map_dataset.yaml | 73 +-- .../config_gpt2_small_overfitting_de.yaml | 34 +- ...gpt2_small_overfitting_de_abs_pos_emb.yaml | 13 +- ...onfig_gpt2_small_redpajama_DE_1048576.yaml | 113 ++-- config_files/training/config_lorem_ipsum.yaml | 43 +- ...v2_gpt2_tokenized_num_samples_512_test.idx | Bin 5125 -> 0 bytes ...2_gpt2_tokenized_num_samples_512_test.pbin | Bin 4124194 -> 0 bytes ...2_gpt2_tokenized_num_samples_512_train.idx | Bin 5121 -> 0 bytes ..._gpt2_tokenized_num_samples_512_train.pbin | Bin 3150595 -> 0 bytes .../raw/redpajama_v2_samples_512_test.jsonl | 512 ------------------ examples/getting_started/README.md | 85 ++- examples/getting_started/example_config.yaml | 335 ++++++++---- .../example_dataset_config_test.yaml | 18 + .../example_dataset_config_train.yaml | 18 + .../example_text_generation_config.yaml | 96 ++++ .../tokenizer/tokenizer_config.json | 19 + pyproject.toml | 108 ++-- src/modalities/__main__.py | 29 +- .../checkpointing/checkpoint_loading.py | 20 + .../checkpointing/checkpoint_saving.py | 49 ++ .../checkpoint_saving_execution.py | 29 + ...on.py => checkpoint_saving_instruction.py} | 0 ...ies.py => checkpoint_saving_strategies.py} | 8 +- src/modalities/checkpointing/checkpointing.py | 83 --- src/modalities/checkpointing/fsdp/__init__.py | 0 .../fsdp/fsdp_checkpoint_loading.py | 73 +++ .../fsdp_checkpoint_saving.py} | 114 +--- .../checkpointing/torch/__init__.py | 0 .../torch/torch_checkpoint_loading.py | 54 ++ .../torch/torch_checkpoint_saving.py | 35 ++ src/modalities/config/config.py | 198 ++----- src/modalities/config/instantiation_models.py | 90 +++ src/modalities/config/look_up_enum.py | 8 - src/modalities/config/pydanctic_if_types.py | 63 +++ src/modalities/config/utils.py | 12 + src/modalities/evaluator.py | 3 + src/modalities/gym.py | 11 +- src/modalities/inference/__init__.py | 0 src/modalities/inference/inference.py | 44 ++ src/modalities/inference/text/__init__.py | 0 src/modalities/inference/text/config.py | 24 + .../inference/text/inference_component.py | 101 ++++ .../subscriber_impl/results_subscriber.py | 13 +- .../subscriber_impl/subscriber_factory.py | 6 +- src/modalities/models/gpt2/gpt2_model.py | 27 +- src/modalities/models/model_factory.py | 8 +- .../optimizers/optimizer_factory.py | 8 +- src/modalities/registry/components.py | 49 +- src/modalities/running_env/env_utils.py | 9 +- .../running_env/fsdp/fsdp_auto_wrapper.py | 4 +- .../tokenization/tokenizer_wrapper.py | 28 +- src/modalities/trainer.py | 83 +-- src/modalities/training/__init__.py | 0 .../training/gradient_clipping/__init__.py | 0 .../fsdp_gradient_clipper.py | 42 ++ .../fsdp_gradient_clipper_config.py | 21 + .../gradient_clipping/gradient_clipper.py | 9 + src/modalities/utils/gradient_clipping.py | 51 -- tests/checkpointing/__init__.py | 0 .../test_checkpoint_execution_functions.py | 24 +- .../test_checkpoint_strategies.py | 2 +- .../test_fsdp_to_disc_checkpointing.py | 21 +- tests/checkpointing/torch/__init__.py | 0 .../torch/test_torch_checkpoint_loading.py | 54 ++ tests/config/configs.py | 2 +- tests/conftest.py | 21 +- tests/dataloader/test_dataloader.py | 2 +- tests/dataloader/test_packed_dataset.py | 12 +- .../end2end_tests/gpt2_train_num_steps_8.yaml | 31 +- .../gpt2_warm_start_from_step_4.yaml | 43 +- tests/end2end_tests/test_fsdp_warmstart.py | 21 +- tests/models/coca/test_coca.py | 5 +- tests/models/mamba/conftest.py | 2 +- tests/test_gym.py | 4 +- tests/test_lr_scheduler.py | 4 +- tests/test_main.py | 3 +- .../test_yaml_configs/config_lorem_ipsum.yaml | 30 +- tests/utils/test_gradient_clipping.py | 76 --- 83 files changed, 1822 insertions(+), 1548 deletions(-) create mode 100644 config_files/text_generation/text_generation_config_torch.yaml delete mode 100644 data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_512_test.idx delete mode 100644 data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_512_test.pbin delete mode 100644 data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_512_train.idx delete mode 100644 data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_512_train.pbin delete mode 100644 data/sample_datasets/redpajama_v2/raw/redpajama_v2_samples_512_test.jsonl create mode 100644 examples/getting_started/example_dataset_config_test.yaml create mode 100644 examples/getting_started/example_dataset_config_train.yaml create mode 100644 examples/getting_started/example_text_generation_config.yaml create mode 100644 examples/getting_started/tokenizer/tokenizer_config.json create mode 100644 src/modalities/checkpointing/checkpoint_loading.py create mode 100644 src/modalities/checkpointing/checkpoint_saving.py create mode 100644 src/modalities/checkpointing/checkpoint_saving_execution.py rename src/modalities/checkpointing/{checkpointing_instruction.py => checkpoint_saving_instruction.py} (100%) rename src/modalities/checkpointing/{checkpointing_strategies.py => checkpoint_saving_strategies.py} (88%) delete mode 100644 src/modalities/checkpointing/checkpointing.py create mode 100644 src/modalities/checkpointing/fsdp/__init__.py create mode 100644 src/modalities/checkpointing/fsdp/fsdp_checkpoint_loading.py rename src/modalities/checkpointing/{checkpointing_execution.py => fsdp/fsdp_checkpoint_saving.py} (50%) create mode 100644 src/modalities/checkpointing/torch/__init__.py create mode 100644 src/modalities/checkpointing/torch/torch_checkpoint_loading.py create mode 100644 src/modalities/checkpointing/torch/torch_checkpoint_saving.py create mode 100644 src/modalities/config/instantiation_models.py delete mode 100644 src/modalities/config/look_up_enum.py create mode 100644 src/modalities/config/pydanctic_if_types.py create mode 100644 src/modalities/inference/__init__.py create mode 100755 src/modalities/inference/inference.py create mode 100644 src/modalities/inference/text/__init__.py create mode 100644 src/modalities/inference/text/config.py create mode 100644 src/modalities/inference/text/inference_component.py create mode 100644 src/modalities/training/__init__.py create mode 100644 src/modalities/training/gradient_clipping/__init__.py create mode 100644 src/modalities/training/gradient_clipping/fsdp_gradient_clipper.py create mode 100644 src/modalities/training/gradient_clipping/fsdp_gradient_clipper_config.py create mode 100644 src/modalities/training/gradient_clipping/gradient_clipper.py delete mode 100644 src/modalities/utils/gradient_clipping.py create mode 100644 tests/checkpointing/__init__.py create mode 100644 tests/checkpointing/torch/__init__.py create mode 100644 tests/checkpointing/torch/test_torch_checkpoint_loading.py delete mode 100644 tests/utils/test_gradient_clipping.py diff --git a/README.md b/README.md index 57f9e854..b7ca4a3c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ # Modalities +[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT') [![Coverage Status](https://coveralls.io/repos/github/Modalities/modalities/badge.svg)](https://coveralls.io/github/Modalities/modalities) + + # Getting started For training and evaluation a model, feel free to checkout [this](https://github.com/Modalities/modalities/blob/main/examples/getting_started/getting_started_example.md) getting started tutorial, in which we train a small, 60M-parameter GPT model on a tiny subset of the Redpajama V2 dataset. Also, see our Wiki and API reference documentation: https://modalities.github.io/modalities/ diff --git a/config_files/text_generation/text_generation_config_torch.yaml b/config_files/text_generation/text_generation_config_torch.yaml new file mode 100644 index 00000000..a639586f --- /dev/null +++ b/config_files/text_generation/text_generation_config_torch.yaml @@ -0,0 +1,93 @@ +settings: + referencing_keys: + sample_key: input_ids + prediction_key: logits + model_path: /raid/s3/opengptx/max_lue/modalities/data/checkpoints/2024-04-22__13-16-03/eid_2024-04-22__13-16-03-model-num_steps_1152.bin + device: 0 + context_length: 2048 + +text_inference_component: + component_key: inference_component + variant_key: text + config: + device: ${settings.device} + model: + instance_key: checkpointed_model + pass_type: BY_REFERENCE + tokenizer: + instance_key: tokenizer + pass_type: BY_REFERENCE + context_length: ${settings.context_length} + eod_token: + prompt_template: "{prompt_input}" # " Du bist Moody, ein LLM welches Menschen helfen soll. user: {prompt_input}" + temperature: 0 + # chat: false + +checkpointed_model: + component_key: model + variant_key: checkpointed + config: + checkpoint_loading: + component_key: checkpoint_loading + variant_key: torch + config: + device: ${settings.device} + precision: BF16 + model: + instance_key: raw_model + pass_type: BY_REFERENCE + checkpoint_path: ${settings.model_path} + +raw_model: + component_key: model + variant_key: gpt2 + config: + sample_key: ${settings.referencing_keys.sample_key} + poe_type: ABSOLUTE + block_size: ${settings.context_length} + prediction_key: ${settings.referencing_keys.prediction_key} + vocab_size: 50304 # GPT-2 vocab_size of 50257, padded up to nearest multiple of 64 for efficiency + n_layer: 12 + n_head_q: 12 + n_head_kv: 12 + ffn_hidden: 2048 + n_embd: 768 + dropout: 0.0 + bias: true # True: bias in Linears, like GPT-2. False: a bit better and faster + attention_config: + qkv_transforms: + - type_hint: IdentityTransform + config: {} + activation_type: gelu + weight_init: + mean: 0.0 + std: 0.02 + attention_norm: + component_key: layer_norm + variant_key: rms_norm + config: + ndim: ${raw_model.config.n_embd} + bias: true + epsilon: 1e-5 + ffn_norm: + component_key: layer_norm + variant_key: rms_norm + config: + ndim: ${raw_model.config.n_embd} + bias: true + epsilon: 1e-5 + lm_head_norm: + component_key: layer_norm + variant_key: rms_norm + config: + ndim: ${raw_model.config.n_embd} + bias: true + epsilon: 1e-5 + +tokenizer: + component_key: tokenizer + variant_key: pretrained_hf_tokenizer + config: + pretrained_model_name_or_path: /raid/s3/opengptx/max_lue/modalities/data/tokenizer/hf_gpt2 + padding: false + max_length: ${settings.context_length} \ No newline at end of file diff --git a/config_files/text_generation/text_generation_overfitted_de.yaml b/config_files/text_generation/text_generation_overfitted_de.yaml index ec2d92d2..600d166e 100644 --- a/config_files/text_generation/text_generation_overfitted_de.yaml +++ b/config_files/text_generation/text_generation_overfitted_de.yaml @@ -2,7 +2,7 @@ settings: referencing_keys: sample_key: input_ids prediction_key: logits - model_path: /raid/s3/opengptx/max_lue/modalities/data/checkpoints/2024-04-22__08-55-14/eid_2024-04-22__08-55-14-model-num_steps_1152.bin + model_path: /raid/s3/opengptx/max_lue/modalities/data/checkpoints/2024-04-28__13-06-00/eid_2024-04-28__13-06-00-model-num_steps_256.bin device: 0 context_length: 2048 @@ -10,6 +10,7 @@ text_inference_component: component_key: inference_component variant_key: text config: + device: ${settings.device} model: instance_key: checkpointed_model pass_type: BY_REFERENCE @@ -19,7 +20,7 @@ text_inference_component: context_length: ${settings.context_length} eod_token: prompt_template: "{prompt_input}" # " Du bist Moody, ein LLM welches Menschen helfen soll. user: {prompt_input}" - temperature: 0.000001 + temperature: 0 # chat: false checkpointed_model: diff --git a/config_files/training/config_example_coca.yaml b/config_files/training/config_example_coca.yaml index 70cf0f69..fcc886f9 100644 --- a/config_files/training/config_example_coca.yaml +++ b/config_files/training/config_example_coca.yaml @@ -1,5 +1,6 @@ settings: experiment_id: ${modalities_env:experiment_id} + config_file_path: ${modalities_env:config_file_path} referencing_keys: sample_key: input_ids target_key: target_ids @@ -13,9 +14,6 @@ settings: gradient_acc_steps: 1 local_train_micro_batch_size: 3 sequence_length: 256 - gradient_clipping: - mode: p2_norm - threshold: 1.0 cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -130,18 +128,18 @@ eval_dataloaders: - instance_key: val_dataloader pass_type: BY_REFERENCE -checkpointing: - component_key: checkpointing +checkpoint_saving: + component_key: checkpoint_saving variant_key: default config: - checkpointing_strategy: - component_key: checkpointing_strategy + checkpoint_saving_strategy: + component_key: checkpoint_saving_strategy variant_key: save_k_most_recent_checkpoints_strategy config: k: -1 # -1 to save all checkpoints - checkpointing_execution: - component_key: checkpointing_execution - variant_key: fsdp_to_disc_checkpointing + checkpoint_saving_execution: + component_key: checkpoint_saving_execution + variant_key: fsdp config: checkpoint_path: ${settings.paths.checkpointing_path} global_rank: ${settings.cuda_env.global_rank} @@ -244,6 +242,16 @@ optimizer: instance_key: wrapped_model pass_type: BY_REFERENCE +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp_logging_only + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM + + batch_progress_subscriber: component_key: progress_subscriber variant_key: rich @@ -267,3 +275,4 @@ evaluation_subscriber: mode: OFFLINE experiment_id: ${settings.experiment_id} directory: "." + config_file_path: ${settings.config_file_path} \ No newline at end of file diff --git a/config_files/training/config_example_hf_meditron_7B_instruction.yaml b/config_files/training/config_example_hf_meditron_7B_instruction.yaml index e37305a6..1422e97a 100644 --- a/config_files/training/config_example_hf_meditron_7B_instruction.yaml +++ b/config_files/training/config_example_hf_meditron_7B_instruction.yaml @@ -12,8 +12,6 @@ settings: gradient_acc_steps: 1 local_train_micro_batch_size: 1 sequence_length: 4096 - gradient_clipping: - mode: none cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -176,6 +174,14 @@ optimizer: instance_key: wrapped_model pass_type: BY_REFERENCE +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp_logging_only + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM batch_progress_subscriber: component_key: progress_subscriber diff --git a/config_files/training/config_example_mem_map_dataset.yaml b/config_files/training/config_example_mem_map_dataset.yaml index d2efc83e..4e1cf9f2 100644 --- a/config_files/training/config_example_mem_map_dataset.yaml +++ b/config_files/training/config_example_mem_map_dataset.yaml @@ -11,9 +11,7 @@ settings: do_apply_activation_checkpointing: false gradient_acc_steps: 1 local_train_micro_batch_size: 16 - sequence_length: 4096 - gradient_clipping: - mode: none + sequence_length: 2048 cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -21,7 +19,6 @@ settings: paths: checkpointing_path: data/checkpoints - collate_fn: component_key: collate_fn variant_key: gpt_2_llm_collator @@ -31,11 +28,11 @@ collate_fn: train_dataset: component_key: dataset - variant_key: packed_mem_map_dataset_megatron - config: - raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_1050391.pbin + variant_key: packed_mem_map_dataset_continuous + config: + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_default_DE_num_docs_1048576/redpyjama_v2_default_DE_num_docs_1048576.pbin block_size: ${settings.training.sequence_length} - sample_key: ${settings.referencing_keys.sample_key} + sample_key: ${settings.referencing_keys.sample_key} train_dataloader: component_key: data_loader @@ -53,7 +50,7 @@ train_dataloader: variant_key: default config: batch_size: ${settings.training.local_train_micro_batch_size} - drop_last: false + drop_last: true sampler: component_key: sampler variant_key: distributed_sampler @@ -70,11 +67,11 @@ train_dataloader: val_dataset: component_key: dataset - variant_key: packed_mem_map_dataset_megatron - config: - raw_data_path: /raid/s3/opengptx/max_lue/LLMgym/data/redpyjama_v2_default_DE_num_docs_1024.pbin + variant_key: packed_mem_map_dataset_continuous + config: + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpyjama_v2_default_DE_num_docs_1024/redpyjama_v2_default_DE_num_docs_1024.pbin block_size: ${settings.training.sequence_length} - sample_key: ${settings.referencing_keys.sample_key} + sample_key: ${settings.referencing_keys.sample_key} val_dataloader: component_key: data_loader @@ -92,14 +89,14 @@ val_dataloader: variant_key: default config: batch_size: ${settings.training.local_train_micro_batch_size} - drop_last: false + drop_last: true sampler: component_key: sampler variant_key: distributed_sampler config: rank: ${settings.cuda_env.global_rank} num_replicas: ${settings.cuda_env.world_size} - shuffle: true + shuffle: false dataset: instance_key: val_dataset pass_type: BY_REFERENCE @@ -131,14 +128,26 @@ checkpointing: sharding_strategy: FULL_SHARD block_names: [GPT2Block] +wrapped_model: + component_key: model + variant_key: fsdp_wrapped + config: + model: + instance_key: model + pass_type: BY_REFERENCE + sync_module_states: true + mixed_precision_settings: BF_16 + sharding_strategy: FULL_SHARD + block_names: [GPT2Block] + model: component_key: model variant_key: gpt2 config: sample_key: ${settings.referencing_keys.sample_key} - prediction_key: ${settings.referencing_keys.prediction_key} - block_size: ${settings.training.sequence_length} poe_type: NOPE + block_size: ${settings.training.sequence_length} + prediction_key: ${settings.referencing_keys.prediction_key} vocab_size: 50304 # GPT-2 vocab_size of 50257, padded up to nearest multiple of 64 for efficiency n_layer: 12 n_head_q: 12 @@ -152,7 +161,7 @@ model: - type_hint: RotaryTransform config: n_embd: ${model.config.n_embd} - n_head: ${model.config.n_head} + n_head: ${model.config.n_head_q} #it has to be head_q here seq_length_dim: -2 activation_type: gelu weight_init: @@ -180,24 +189,6 @@ model: bias: true epsilon: 1e-5 -wrapped_model: - component_key: model - variant_key: fsdp_wrapped - config: - model: - instance_key: model - pass_type: BY_REFERENCE - sync_module_states: true - mixed_precision_settings: BF_16 - sharding_strategy: FULL_SHARD - block_names: [GPT2Block] - -# scheduler: -# type_hint: StepLR -# config: -# step_size: 1 -# gamma: 0.1 - loss_fn: component_key: loss variant_key: clm_cross_entropy_loss @@ -214,6 +205,16 @@ optimizer: instance_key: wrapped_model pass_type: BY_REFERENCE +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM + max_norm: 1.0 + batch_progress_subscriber: component_key: progress_subscriber variant_key: rich diff --git a/config_files/training/config_gpt2_small_overfitting_de.yaml b/config_files/training/config_gpt2_small_overfitting_de.yaml index 15c5a135..b56c08ac 100644 --- a/config_files/training/config_gpt2_small_overfitting_de.yaml +++ b/config_files/training/config_gpt2_small_overfitting_de.yaml @@ -13,9 +13,6 @@ settings: gradient_acc_steps: 1 local_train_micro_batch_size: 16 sequence_length: 2048 - gradient_clipping: - mode: p2_norm - threshold: 1.0 cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -34,7 +31,7 @@ train_dataset: component_key: dataset variant_key: packed_mem_map_dataset_continuous config: - raw_data_path: /workspaces/modalities/data/sample_datasets/overfitting/hf_gpt2_2048/data_overfitting_de.pbin + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/overfitting/hf_gpt2_2048/data_overfitting_de.pbin block_size: ${settings.training.sequence_length} sample_key: ${settings.referencing_keys.sample_key} @@ -42,7 +39,7 @@ val_dataset: component_key: dataset variant_key: packed_mem_map_dataset_continuous config: - raw_data_path: /workspaces/modalities/data/sample_datasets/overfitting/hf_gpt2_2048/data_overfitting_en.pbin + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/overfitting/hf_gpt2_2048/data_overfitting_en.pbin block_size: ${settings.training.sequence_length} sample_key: ${settings.referencing_keys.sample_key} @@ -119,25 +116,22 @@ eval_dataloaders: pass_type: BY_REFERENCE -checkpointing: - component_key: checkpointing +checkpoint_saving: + component_key: checkpoint_saving variant_key: default config: - checkpointing_strategy: - component_key: checkpointing_strategy + checkpoint_saving_strategy: + component_key: checkpoint_saving_strategy variant_key: save_k_most_recent_checkpoints_strategy config: k: -1 # -1 to save all checkpoints - checkpointing_execution: - component_key: checkpointing_execution - variant_key: fsdp_to_disc_checkpointing + checkpoint_saving_execution: + component_key: checkpoint_saving_execution + variant_key: fsdp config: checkpoint_path: ${settings.paths.checkpointing_path} global_rank: ${settings.cuda_env.global_rank} experiment_id: ${settings.experiment_id} - mixed_precision_settings: BF_16 - sharding_strategy: FULL_SHARD - block_names: [GPT2Block] wrapped_model: component_key: model @@ -219,6 +213,16 @@ optimizer: instance_key: wrapped_model pass_type: BY_REFERENCE +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM + max_norm: 1.0 + scheduler: component_key: scheduler variant_key: dummy_lr diff --git a/config_files/training/config_gpt2_small_overfitting_de_abs_pos_emb.yaml b/config_files/training/config_gpt2_small_overfitting_de_abs_pos_emb.yaml index 4f753e48..7510ec23 100644 --- a/config_files/training/config_gpt2_small_overfitting_de_abs_pos_emb.yaml +++ b/config_files/training/config_gpt2_small_overfitting_de_abs_pos_emb.yaml @@ -13,9 +13,6 @@ settings: gradient_acc_steps: 1 local_train_micro_batch_size: 16 sequence_length: 2048 - gradient_clipping: - mode: p2_norm - threshold: 1.0 cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -216,6 +213,16 @@ optimizer: instance_key: wrapped_model pass_type: BY_REFERENCE +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM + max_norm: 1.0 + scheduler: component_key: scheduler variant_key: dummy_lr diff --git a/config_files/training/config_gpt2_small_redpajama_DE_1048576.yaml b/config_files/training/config_gpt2_small_redpajama_DE_1048576.yaml index 6796d0de..bf5afc6f 100644 --- a/config_files/training/config_gpt2_small_redpajama_DE_1048576.yaml +++ b/config_files/training/config_gpt2_small_redpajama_DE_1048576.yaml @@ -5,17 +5,14 @@ settings: target_key: target_ids prediction_key: logits training: - global_training_log_interval_in_steps: 8 - global_checkpointing_interval_in_steps: 8 - global_evaluation_interval_in_steps: 8 + global_training_log_interval_in_steps: 32 + global_checkpointing_interval_in_steps: 8192 + global_evaluation_interval_in_steps: 1024 global_num_seen_steps: 0 do_apply_activation_checkpointing: false gradient_acc_steps: 1 local_train_micro_batch_size: 16 sequence_length: 2048 - gradient_clipping: - mode: p2_norm - threshold: 1.0 cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -34,40 +31,46 @@ train_dataset: component_key: dataset variant_key: packed_mem_map_dataset_continuous config: - raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_default_DE_num_docs_1048576/redpyjama_v2_default_DE_num_docs_1048576.pbin + raw_data_path: /raid/s3/opengptx/max_lue/modalities/data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_default_DE_num_docs_1050391/redpyjama_v2_sample_1050391.pbin block_size: ${settings.training.sequence_length} sample_key: ${settings.referencing_keys.sample_key} train_dataloader: component_key: data_loader - variant_key: default + variant_key: repeating_data_loader config: - num_workers: 2 - pin_memory: true - shuffle: false - dataloader_tag: "train" - dataset: - instance_key: train_dataset - pass_type: BY_REFERENCE - batch_sampler: - component_key: batch_sampler + reshuffle_after_epoch: false + num_epochs: 100 + dataloader: + component_key: data_loader variant_key: default config: - batch_size: ${settings.training.local_train_micro_batch_size} - drop_last: true - sampler: - component_key: sampler - variant_key: distributed_sampler + num_workers: 2 + pin_memory: true + shuffle: false + dataloader_tag: "train" + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + batch_sampler: + component_key: batch_sampler + variant_key: default config: - rank: ${settings.cuda_env.global_rank} - num_replicas: ${settings.cuda_env.world_size} - shuffle: true - dataset: - instance_key: train_dataset - pass_type: BY_REFERENCE - collate_fn: - instance_key: collate_fn - pass_type: BY_REFERENCE + batch_size: ${settings.training.local_train_micro_batch_size} + drop_last: true + sampler: + component_key: sampler + variant_key: distributed_sampler + config: + rank: ${settings.cuda_env.global_rank} + num_replicas: ${settings.cuda_env.world_size} + shuffle: true + dataset: + instance_key: train_dataset + pass_type: BY_REFERENCE + collate_fn: + instance_key: collate_fn + pass_type: BY_REFERENCE val_dataset: component_key: dataset @@ -112,25 +115,22 @@ eval_dataloaders: - instance_key: val_dataloader pass_type: BY_REFERENCE -checkpointing: - component_key: checkpointing +checkpoint_saving: + component_key: checkpoint_saving variant_key: default config: - checkpointing_strategy: - component_key: checkpointing_strategy + checkpoint_saving_strategy: + component_key: checkpoint_saving_strategy variant_key: save_k_most_recent_checkpoints_strategy config: k: -1 # -1 to save all checkpoints - checkpointing_execution: - component_key: checkpointing_execution - variant_key: fsdp_to_disc_checkpointing + checkpoint_saving_execution: + component_key: checkpoint_saving_execution + variant_key: fsdp config: checkpoint_path: ${settings.paths.checkpointing_path} global_rank: ${settings.cuda_env.global_rank} experiment_id: ${settings.experiment_id} - mixed_precision_settings: BF_16 - sharding_strategy: FULL_SHARD - block_names: [GPT2Block] wrapped_model: component_key: model @@ -149,7 +149,7 @@ model: variant_key: gpt2 config: sample_key: ${settings.referencing_keys.sample_key} - poe_type: NOPE + poe_type: ABSOLUTE block_size: ${settings.training.sequence_length} prediction_key: ${settings.referencing_keys.prediction_key} vocab_size: 50304 # GPT-2 vocab_size of 50257, padded up to nearest multiple of 64 for efficiency @@ -161,12 +161,12 @@ model: dropout: 0.0 bias: true # True: bias in Linears, like GPT-2. False: a bit better and faster attention_config: - qkv_transforms: - - type_hint: RotaryTransform - config: - n_embd: ${model.config.n_embd} - n_head: ${model.config.n_head_q} #it has to be head_q here - seq_length_dim: -2 + qkv_transforms: [] + # - type_hint: RotaryTransform + # config: + # n_embd: ${model.config.n_embd} + # n_head: ${model.config.n_head_q} #it has to be head_q here + # seq_length_dim: -2 activation_type: gelu weight_init: mean: 0.0 @@ -204,10 +204,10 @@ optimizer: component_key: optimizer variant_key: adam_w config: - lr: 0.0001 - betas: [0.9, 0.95] + lr: 0.000001 + betas: [0.9, 0.99] eps: 1e-8 - weight_decay: 1e-1 + weight_decay: 1e-2 wrapped_model: instance_key: wrapped_model pass_type: BY_REFERENCE @@ -220,6 +220,17 @@ scheduler: instance_key: optimizer pass_type: BY_REFERENCE +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM + max_norm: 1.0 + + batch_progress_subscriber: component_key: progress_subscriber diff --git a/config_files/training/config_lorem_ipsum.yaml b/config_files/training/config_lorem_ipsum.yaml index 3b4ccca1..6271596b 100644 --- a/config_files/training/config_lorem_ipsum.yaml +++ b/config_files/training/config_lorem_ipsum.yaml @@ -1,5 +1,6 @@ settings: experiment_id: ${modalities_env:experiment_id} + config_file_path: ${modalities_env:config_file_path} referencing_keys: sample_key: input_ids target_key: target_ids @@ -12,9 +13,6 @@ settings: gradient_acc_steps: 1 local_train_micro_batch_size: 1 sequence_length: 256 - gradient_clipping: - mode: p2_norm - threshold: 1.0 cuda_env: local_rank: ${cuda_env:LOCAL_RANK} global_rank: ${cuda_env:RANK} @@ -22,13 +20,6 @@ settings: paths: checkpointing_path: data/checkpoints -tokenizer: - component_key: tokenizer - variant_key: pretrained_hf_tokenizer - config: - pretrained_model_name_or_path: ./data/tokenizer/hf_gpt2 - max_length: ${settings.training.sequence_length} - collate_fn: component_key: collate_fn variant_key: gpt_2_llm_collator @@ -143,25 +134,22 @@ eval_dataloaders: - instance_key: test_dataloader pass_type: BY_REFERENCE -checkpointing: - component_key: checkpointing +checkpoint_saving: + component_key: checkpoint_saving variant_key: default config: - checkpointing_strategy: - component_key: checkpointing_strategy + checkpoint_saving_strategy: + component_key: checkpoint_saving_strategy variant_key: save_k_most_recent_checkpoints_strategy config: k: -1 # -1 to save all checkpoints - checkpointing_execution: - component_key: checkpointing_execution - variant_key: fsdp_to_disc_checkpointing + checkpoint_saving_execution: + component_key: checkpoint_saving_execution + variant_key: fsdp config: checkpoint_path: ${settings.paths.checkpointing_path} global_rank: ${settings.cuda_env.global_rank} experiment_id: ${settings.experiment_id} - mixed_precision_settings: BF_16 - sharding_strategy: FULL_SHARD - block_names: [GPT2Block] # resolving class types via different enums sucks... loss_fn: @@ -194,7 +182,7 @@ model: vocab_size: 50304 # GPT-2 vocab_size of 50257, padded up to nearest multiple of 64 for efficiency n_layer: 2 n_head_q: 8 - n_head_kv: 8 + n_head_kv: 4 ffn_hidden: 128 n_embd: 128 dropout: 0.0 @@ -258,7 +246,15 @@ optimizer: instance_key: wrapped_model pass_type: BY_REFERENCE -# message subscriber +gradient_clipper: + component_key: gradient_clipper + variant_key: fsdp + config: + wrapped_model: + instance_key: wrapped_model + pass_type: BY_REFERENCE + norm_type: P2_NORM + max_norm: 1.0 batch_progress_subscriber: component_key: progress_subscriber @@ -283,4 +279,5 @@ evaluation_subscriber: project: modalities_lorem_ipsum mode: ONLINE experiment_id: ${settings.experiment_id} - directory: "." \ No newline at end of file + directory: "." + config_file_path: ${settings.config_file_path} \ No newline at end of file diff --git a/data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_512_test.idx b/data/sample_datasets/redpajama_v2/mem_map/redpajama_v2_gpt2_tokenized_num_samples_512_test.idx deleted file mode 100644 index beac16883fbaacc04b07915fb0c983ee68e9e631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5125 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%0A3_N&X%CsnUA` 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 z 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%0AXg_PUS1 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%0Da!wOH35+$dy(A*Z1HaHp$t%rtd4@lkK}EQCp2Z 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

UWLaCjg!rL=nKBvk8?HZZ#my$ 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⩔6>`((*S94PUoJ0_ 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

e*>hqtv3!iojw&H4NApP;}D?aNUT1aPQ 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