| |
| from transformers import PreTrainedModel, PretrainedConfig, AutoConfig, AutoModel |
| import torch.nn as nn |
| import subprocess |
|
|
| class CustomModelConfig(PretrainedConfig): |
| model_type = "custom-model" |
| def __init__(self, hidden_size=128, **kwargs): |
| super().__init__(**kwargs) |
| self.hidden_size = hidden_size |
| self.num_attention_heads = 1 |
| self.vocab_size = 1000 |
| self.num_hidden_layers = 1 |
| self.intermediate_size = 256 |
| self.hidden_act = "silu" |
| self.rms_norm_eps = 1e-8 |
|
|
|
|
| class CustomModel(PreTrainedModel): |
| config_class = CustomModelConfig |
|
|
| def __init__(self, config): |
| super().__init__(config) |
| self.linear = nn.Linear(config.hidden_size, config.hidden_size) |
| |
| def forward(self, input_ids): |
| output = self.linear(input_ids) |
| return output |
|
|
| AutoConfig.register("custom-model", CustomModelConfig) |
| AutoModel.register(CustomModelConfig, CustomModel) |
|
|
|
|
|
|