Adapters
Adapters work with Backbones
and Tasks
to adapt pretrained models to new objectives.
They are specified with the --model.adapter
argument in the CLI or in the model.adapter
section of a configuration file.
Adapters are the focal point for architecture design on top of backbones, and can be swapped with other adapters of the same type to benchmark different architectures.
This reference overviews the available no-code adapters. If you would like to develop new adapters, see Experiment Design.
# Example Adapter Configuration
model:
class_path: modelgenerator.tasks.SequenceRegression
init_args:
adapter:
class_path: modelgenerator.adapters.MLPPoolAdapter
init_args:
pooling: mean_pooling
hidden_sizes:
- 512
bias: true
dropout: 0.1
dropout_in_middle: false
data:
...
trainer:
...
Sequence Adapters
These adapters make a single prediction for the entire input.
modelgenerator.adapters.MLPAdapter
Bases: Sequential
, TokenAdapter
Multi-layer perceptron (MLP) adapter.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of features of the input |
required |
out_features
|
int
|
Number of features of the output |
required |
hidden_sizes
|
List[int]
|
List of the hidden feature dimensions. Defaults to []. |
[]
|
activation_layer
|
Callable[..., Module]
|
Activation function. Defaults to torch.nn.Tanh. |
Tanh
|
bias
|
bool
|
Whether to use bias in the linear layer. Defaults to True |
True
|
dropout
|
float
|
The probability for the dropout layer. Defaults to 0.0 |
0.0
|
dropout_in_middle
|
bool
|
Whether to use dropout in the middle layers. Defaults to True |
True
|
modelgenerator.adapters.LinearCLSAdapter
Bases: Module
, SequenceAdapter
Simple linear adapter for a 1D embedding
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of input features |
required |
out_features
|
int
|
Number of output features |
required |
modelgenerator.adapters.LinearMeanPoolAdapter
Bases: Module
, SequenceAdapter
Mean pooling adapter for hidden_states of shape (n, seq_len, in_features)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of input features |
required |
out_features
|
int
|
Number of output features |
required |
modelgenerator.adapters.LinearMaxPoolAdapter
Bases: Module
, SequenceAdapter
Simple max pooling adapter for [batch,seq_len,dim] embeddings
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of input features |
required |
out_features
|
int
|
Number of output features |
required |
modelgenerator.adapters.LinearTransformerAdapter
Bases: Module
, SequenceAdapter
Transformer adapter
Note: Support cls_pooling only.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
embed_dim
|
int
|
Hidden size |
required |
out_features
|
int
|
Number of output features |
required |
modelgenerator.adapters.ResNet2DAdapter
Bases: Module
, SequenceAdapter
Adapter that applies ResNet2DModule to input embeddings.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_channels
|
int
|
Input matrix channels. |
required |
num_res_blocks
|
int
|
Number of residual blocks in the ResNet2DModule. |
2
|
conv_channels
|
int
|
Intermediate convolution channels. |
64
|
kernel_size
|
int
|
Kernel size for convolutions. |
3
|
modelgenerator.adapters.ResNet1DAdapter
Bases: Module
, SequenceAdapter
Adapter module that applies a ResNet1DModule to sequence data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input_dim
|
int
|
Input feature dimension. |
required |
channels
|
int
|
Number of channels for ResNet. |
256
|
num_blocks
|
int
|
Number of residual blocks in ResNet1DModule. |
9
|
dropout
|
float
|
Dropout rate. |
0.2
|
Token Adapters
These adapters make one prediction per token.
modelgenerator.adapters.LinearAdapter
Bases: MLPAdapter
Simple linear adapter for a 1D embedding
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of input features |
required |
out_features
|
int
|
Number of output features |
required |
modelgenerator.adapters.MLPAdapter
Bases: Sequential
, TokenAdapter
Multi-layer perceptron (MLP) adapter.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of features of the input |
required |
out_features
|
int
|
Number of features of the output |
required |
hidden_sizes
|
List[int]
|
List of the hidden feature dimensions. Defaults to []. |
[]
|
activation_layer
|
Callable[..., Module]
|
Activation function. Defaults to torch.nn.Tanh. |
Tanh
|
bias
|
bool
|
Whether to use bias in the linear layer. Defaults to True |
True
|
dropout
|
float
|
The probability for the dropout layer. Defaults to 0.0 |
0.0
|
dropout_in_middle
|
bool
|
Whether to use dropout in the middle layers. Defaults to True |
True
|
modelgenerator.adapters.MLPAdapterWithoutOutConcat
Bases: Module
, TokenAdapter
Multi-layer perceptron (MLP) adapter without outer concatenate
This class is generally used in PairwiseTokenClassification. The following two implementations are equivalent: 1. hidden_states -> outer_concat -> MLPAdapter 2. hidden_states -> MLPAdapterWithoutOutConcat MLPAdapterWithoutOutConcat avoids the large memory consumption of outer_concat
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of features of the input |
required |
out_features
|
int
|
Number of features of the output |
required |
hidden_sizes
|
List[int]
|
List of the hidden feature dimensions. Defaults to []. |
[]
|
activation_layer
|
Callable[..., Module]
|
Activation function. Defaults to torch.nn.Tanh. |
Tanh
|
bias
|
bool
|
Whether to use bias in the linear layer. Defaults to True |
True
|
dropout
|
float
|
The probability for the dropout layer. Defaults to 0.0 |
0.0
|
dropout_in_middle
|
bool
|
Whether to use dropout in the middle layers. Defaults to True |
True
|
Conditional Generation Adapters
These adapters are used for conditional generation tasks.
modelgenerator.adapters.ConditionalLMAdapter
Bases: Module
, ConditionalGenerationAdapter
Conditional sequence adapter
Parameters:
Name | Type | Description | Default |
---|---|---|---|
in_features
|
int
|
Number of input features |
required |
embed_dim
|
int
|
Hidden size |
required |
seq_len
|
int
|
Sequence length |
required |
Fusion Adapters
These adapters are used for multi-modal fusion to combine multiple backbones.
modelgenerator.adapters.MMFusionSeqAdapter
Bases: Module
, FusionAdapter
Multimodal embeddings fusion with SequenceAdapter.
Note
Accepts 2-3 sequence embeddings as input and fuses them into a multimodal embedding for the adapter.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
out_features
|
int
|
Number of output features. |
required |
input_size
|
int
|
number of input features for the first modality. |
required |
input_size_1
|
int
|
number of input features for the second modality. |
required |
input_size_2
|
int
|
number of input features for the third modality. |
None
|
fusion
|
Callable[[int, int, int], CrossAttentionFusion]
|
The callable that returns a fusion module. |
CrossAttentionFusion
|
adapter
|
Callable[[int, int], SequenceAdapter]
|
The callable that returns an adapter. |
LinearCLSAdapter
|
modelgenerator.adapters.MMFusionTokenAdapter
Bases: Module
, FusionAdapter
Multimodal embeddings fusion with TokenAdapter. Fuses embeddings into a single token embedding.
Note
Accepts 2-3 sequence embeddings as input and fuse them into a multimodal embedding for the adapter
Parameters:
Name | Type | Description | Default |
---|---|---|---|
out_features
|
int
|
Number of output features. |
required |
input_size
|
int
|
number of input features for the first modality. |
required |
input_size_1
|
int
|
number of input features for the second modality. |
required |
input_size_2
|
int
|
number of input features for the third modality. |
None
|
fusion
|
Callable[[int, int, int], ConcatFusion]
|
The callable that returns a fusion module. |
ConcatFusion
|
adapter
|
Callable[[int, int], TokenAdapter]
|
The callable that returns an adapter. |
MLPAdapter
|