Buckets:
Custom Layers and Utilities
This page lists all the custom layers used by the library, as well as the utility functions and classes it provides for modeling.
Most of those are only useful if you are studying the code of the models in the library.
Layers[[transformers.GradientCheckpointingLayer]]
class transformers.GradientCheckpointingLayertransformers.GradientCheckpointingLayer
This class enables gradient checkpointing functionality for a layer. By default, gradient checkpointing is disabled
(gradient_checkpointing = False). When model.set_gradient_checkpointing() is called, gradient checkpointing is
enabled by setting gradient_checkpointing = True and assigning a checkpointing function to _gradient_checkpointing_func.
Important:
When using gradient checkpointing with use_reentrant=True, inputs that require gradients (e.g. hidden states)
must be passed as positional arguments (*args) rather than keyword arguments to properly propagate gradients.
Example:
>>> # Correct - hidden_states passed as positional arg
>>> out = self.layer(hidden_states, attention_mask=attention_mask)
>>> # Incorrect - hidden_states passed as keyword arg
>>> out = self.layer(hidden_states=hidden_states, attention_mask=attention_mask)
Attention Functions[[transformers.AttentionInterface]]
class transformers.AttentionInterfacetransformers.AttentionInterface
Dict-like object keeping track of allowed attention functions. You can easily add a new attention function
with a call to register(). If a model needs to locally overwrite an existing attention function, say sdpa,
it needs to declare a new instance of this class inside the modeling_<model>.py, and declare it on that instance.
registertransformers.AttentionInterface.register
Attention Mask Functions[[transformers.AttentionMaskInterface]]
class transformers.AttentionMaskInterfacetransformers.AttentionMaskInterface
registertransformers.AttentionMaskInterface.register
Rotary Position Embedding Functions[[transformers.dynamic_rope_update]]
transformers.dynamic_rope_updatetransformers.dynamic_rope_update
Decorator function to update the RoPE parameters in the forward pass, if the model is using a dynamic RoPE (i.e. a RoPE implementation that may recompute its frequencies in the forward pass).
Pytorch custom modules[[transformers.Conv1D]]
class transformers.Conv1Dtransformers.Conv1Dint) -- The number of output features.
- nx (
int) -- The number of input features.0
1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2).
Basically works like a linear layer but the weights are transposed.
PyTorch Helper Functions[[transformers.apply_chunking_to_forward]]
transformers.apply_chunking_to_forwardtransformers.apply_chunking_to_forwardCallable[..., torch.Tensor]) --
The forward function of the model.
- chunk_size (
int) -- The chunk size of a chunked tensor:num_chunks = len(input_tensors[0]) / chunk_size. - chunk_dim (
int) -- The dimension over which theinput_tensorsshould be chunked. - input_tensors (
tuple[torch.Tensor]) -- The input tensors offorward_fnwhich will be chunked0torch.TensorA tensor with the same shape as theforward_fnwould have given if applied`.
This function chunks the input_tensors into smaller input tensor parts of size chunk_size over the dimension
chunk_dim. It then applies a layer forward_fn to each chunk independently to save memory.
If the forward_fn is independent across the chunk_dim this function will yield the same result as directly
applying forward_fn to input_tensors.
Examples:
# rename the usual forward() fn to forward_chunk()
def forward_chunk(self, hidden_states):
hidden_states = self.decoder(hidden_states)
return hidden_states
# implement a chunked forward function
def forward(self, hidden_states):
return apply_chunking_to_forward(self.forward_chunk, self.chunk_size_lm_head, self.seq_len_dim, hidden_states)
transformers.pytorch_utils.prune_linear_layertransformers.pytorch_utils.prune_linear_layertorch.nn.Linear) -- The layer to prune.
- index (
torch.LongTensor) -- The indices to keep in the layer. - dim (
int, optional, defaults to 0) -- The dimension on which to keep the indices.0torch.nn.LinearThe pruned layer as a new layer withrequires_grad=True.
Prune a linear layer to keep only entries in index.
Used to remove heads.
Xet Storage Details
- Size:
- 8.64 kB
- Xet hash:
- 2d61bbb9cfba0a1c59bbdd2404ddb8224061be9a5b0473b5ea26a30ea9902339
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.