Parvus / modeling_parvus.py
BrodyMakezAI's picture
Upload 6 files
333396f verified
Raw History Blame Contribute Delete
884 Bytes
import torch
from torch import nn
from transformers import PretrainedConfig, PreTrainedModel
class ParvusConfig(PretrainedConfig):
model_type = "parvus"
def __init__(self, vocab_size=26, **kwargs):
self.vocab_size = vocab_size
super().__init__(**kwargs)
class ParvusModel(PreTrainedModel):
"""One parameter. 26 letters. No preferences yet."""
config_class = ParvusConfig
def __init__(self, config):
super().__init__(config)
self.w = nn.Parameter(torch.zeros(1)) # blank slate
def forward(self, input_ids=None, **kwargs):
batch = input_ids.shape[0] if input_ids is not None else 1
# same score for every letter -> uniform distribution.
# sample from it (torch.multinomial on softmax) and you get babble.
logits = self.w * torch.ones(batch, 1, self.config.vocab_size)
return logits