From 595a4745d532c20b8ebd310256c342e946a4cef7 Mon Sep 17 00:00:00 2001 From: Phil Wang Date: Wed, 2 Nov 2022 14:35:02 -0700 Subject: [PATCH] add forgetful causal mask implementation to AutoregressiveWrapper --- README.md | 50 ++++++++++++- images/fcm.png | Bin 0 -> 105921 bytes setup.py | 2 +- x_transformers/autoregressive_wrapper.py | 69 ++++++++++++------ .../continuous_autoregressive_wrapper.py | 28 ++++--- x_transformers/x_transformers.py | 2 +- 6 files changed, 110 insertions(+), 41 deletions(-) create mode 100644 images/fcm.png diff --git a/README.md b/README.md index 2582ef68..9853c0c7 100644 --- a/README.md +++ b/README.md @@ -1135,6 +1135,43 @@ x = torch.randint(0, 20000, (1, 1024)) model(x) ``` +### Forgetful Causal Mask + +This paper shows convincing results that one can combine masking (from masked language modeling) with autoregressive training, leading to significantly better results. + +You can use this by setting the `mask_prob` on the `AutoregressiveWrapper` class + + +```python +import torch +from x_transformers import TransformerWrapper, Decoder, AutoregressiveWrapper + +model = TransformerWrapper( + num_tokens = 20000, + max_seq_len = 1024, + attn_layers = Decoder( + dim = 512, + depth = 12, + heads = 8 + ) +) + +model = AutoregressiveWrapper( + model, + mask_prob = 0.15 # in paper, they use 15%, same as BERT +).cuda() + +# mock data + +x = torch.randint(0, 20000, (1, 1024)).cuda() + +# derive cross entropy loss, masking all taken care of + +loss = model(x) +loss.backward() +``` + + ## Miscellaneous Cross Attention @@ -1175,9 +1212,8 @@ model = ContinuousTransformerWrapper( ) x = torch.randn((1, 1024, 32)) -mask = torch.ones(1, 1024).bool() -model(x, mask = mask) # (1, 1024, 100) +model(x) # (1, 1024, 100) ``` You can also train a transformer that accepts continuous values autoregressively easily, in the same scheme as done successfully in this paper @@ -1630,4 +1666,14 @@ generated = model.generate(start_emb, 17) # (17, 777) } ``` +```bibtex +@article{Liu2022FCMFC, + title = {FCM: Forgetful Causal Masking Makes Causal Language Models Better Zero-Shot Learners}, + author = {Hao Liu and Xinyang Geng and Lisa Lee and Igor Mordatch and Sergey Levine and Sharan Narang and P. Abbeel}, + journal = {ArXiv}, + year = {2022}, + volume = {abs/2210.13432} +} +``` + *solve intelligence... then use that to solve everything else.* - Demis Hassabis diff --git a/images/fcm.png b/images/fcm.png new file mode 100644 index 0000000000000000000000000000000000000000..68446a6d9b2f5919de4e16354feec7345e68f614 GIT binary patch literal 105921 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 UyKh}11J0L$uBpyzEho%>09d4<2><{9 literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 77e89e6c..d9dea8aa 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name = 'x-transformers', packages = find_packages(exclude=['examples']), - version = '1.1.0', + version = '1.2.1', license='MIT', description = 'X-Transformers - Pytorch', author = 'Phil Wang', diff --git a/x_transformers/autoregressive_wrapper.py b/x_transformers/autoregressive_wrapper.py index 40dc2866..852eb78a 100644 --- a/x_transformers/autoregressive_wrapper.py +++ b/x_transformers/autoregressive_wrapper.py @@ -33,14 +33,20 @@ def top_k(logits, thres = 0.9): def top_a(logits, min_p_pow=2.0, min_p_ratio=0.02): probs = F.softmax(logits, dim=-1) limit = torch.pow(torch.max(probs), min_p_pow) * min_p_ratio - logits[probs < limit] = -float("Inf") + logits[probs < limit] = float('-inf') logits[probs >= limit] = 1 return logits # autoregressive wrapper class class AutoregressiveWrapper(nn.Module): - def __init__(self, net, ignore_index = -100, pad_value = 0): + def __init__( + self, + net, + ignore_index = -100, + pad_value = 0, + mask_prob = 0. + ): super().__init__() self.pad_value = pad_value self.ignore_index = ignore_index @@ -48,8 +54,23 @@ def __init__(self, net, ignore_index = -100, pad_value = 0): self.net = net self.max_seq_len = net.max_seq_len + # paper shows masking (MLM) in conjunction with autoregressive decoder-only training leads to big improvements https://arxiv.org/abs/2210.13432 + assert mask_prob < 1. + self.mask_prob = mask_prob + @torch.no_grad() - def generate(self, start_tokens, seq_len, eos_token = None, temperature = 1., filter_logits_fn = top_k, filter_thres = 0.9, min_p_pow=2.0, min_p_ratio=0.02, **kwargs): + def generate( + self, + start_tokens, + seq_len, + eos_token = None, + temperature = 1., + filter_logits_fn = top_k, + filter_thres = 0.9, + min_p_pow = 2.0, + min_p_ratio = 0.02, + **kwargs + ): device = start_tokens.device was_training = self.net.training num_dims = len(start_tokens.shape) @@ -61,16 +82,11 @@ def generate(self, start_tokens, seq_len, eos_token = None, temperature = 1., fi self.net.eval() out = start_tokens - mask = kwargs.pop('mask', None) - - if mask is None: - mask = torch.full_like(out, True, dtype=torch.bool, device=out.device) for _ in range(seq_len): x = out[:, -self.max_seq_len:] - mask = mask[:, -self.max_seq_len:] - logits = self.net(x, mask=mask, **kwargs)[:, -1, :] + logits = self.net(x, **kwargs)[:, -1] if filter_logits_fn in {top_k, top_p}: filtered_logits = filter_logits_fn(logits, thres = filter_thres) @@ -83,7 +99,6 @@ def generate(self, start_tokens, seq_len, eos_token = None, temperature = 1., fi sample = torch.multinomial(probs, 1) out = torch.cat((out, sample), dim=-1) - mask = F.pad(mask, (0, 1), value=True) if exists(eos_token): is_eos_tokens = (out == eos_token) @@ -104,16 +119,26 @@ def generate(self, start_tokens, seq_len, eos_token = None, temperature = 1., fi return out def forward(self, x, **kwargs): - xi = x[:, :-1] - xo = x[:, 1:] - - # help auto-solve a frequent area of confusion around input masks in auto-regressive - # if user supplies a mask that is only off by one from the source sequence, resolve it for them - mask = kwargs.get('mask', None) - if mask is not None and mask.shape[1] == x.shape[1]: - mask = mask[:, :-1] - kwargs['mask'] = mask - - out = self.net(xi, **kwargs) - loss = F.cross_entropy(out.transpose(1, 2), xo, ignore_index = self.ignore_index) + seq, ignore_index = x.shape[1], self.ignore_index + + inp, target = x[:, :-1], x[:, 1:] + + if self.mask_prob > 0.: + rand = torch.randn(inp.shape, device = x.device) + rand[:, 0] = -torch.finfo(rand.dtype).max # first token should not be masked out + num_mask = min(int(seq * self.mask_prob), seq - 1) + indices = rand.topk(num_mask, dim = -1).indices + mask = ~torch.zeros_like(inp).scatter(1, indices, 1.).bool() + kwargs.update(context_mask = mask) + + out = self.net(inp, **kwargs) + + out = out.transpose(1, 2) + + loss = F.cross_entropy( + out, + target, + ignore_index = ignore_index + ) + return loss diff --git a/x_transformers/continuous_autoregressive_wrapper.py b/x_transformers/continuous_autoregressive_wrapper.py index 51e23e98..cf0eaf94 100644 --- a/x_transformers/continuous_autoregressive_wrapper.py +++ b/x_transformers/continuous_autoregressive_wrapper.py @@ -2,6 +2,9 @@ from torch import nn import torch.nn.functional as F +def exists(val): + return val is not None + class ContinuousAutoregressiveWrapper(nn.Module): def __init__(self, net, ignore_index = -100, pad_value = 0): super().__init__() @@ -23,18 +26,12 @@ def generate(self, start_tokens, seq_len, **kwargs): self.net.eval() out = start_tokens - mask = kwargs.pop('mask', None) - - if mask is None: - mask = torch.full((b, t), True, dtype = torch.bool, device = device) for _ in range(seq_len): x = out[:, -self.max_seq_len:] - mask = mask[:, -self.max_seq_len:] - last = self.net(x, mask = mask, **kwargs)[:, -1:, :] + last = self.net(x, **kwargs)[:, -1:] out = torch.cat((out, last), dim = -2) - mask = F.pad(mask, (0, 1), value=True) out = out[:, t:] @@ -45,16 +42,17 @@ def generate(self, start_tokens, seq_len, **kwargs): return out def forward(self, x, **kwargs): - xi = x[:, :-1] - xo = x[:, 1:] + inp, target = x[:, :-1], x[:, 1:] - # help auto-solve a frequent area of confusion around input masks in auto-regressive - # if user supplies a mask that is only off by one from the source sequence, resolve it for them mask = kwargs.get('mask', None) - if mask is not None and mask.shape[1] == x.shape[1]: + if exists(mask) and mask.shape[1] == x.shape[1]: mask = mask[:, :-1] kwargs['mask'] = mask - out = self.net(xi, **kwargs) - loss = F.mse_loss(out, xo) - return loss + out = self.net(inp, **kwargs) + loss = F.mse_loss(out, target, reduction = 'none') + + if exists(mask): + loss = loss[mask] + + return loss.mean() diff --git a/x_transformers/x_transformers.py b/x_transformers/x_transformers.py index 371811ab..49ec45f8 100644 --- a/x_transformers/x_transformers.py +++ b/x_transformers/x_transformers.py @@ -985,7 +985,7 @@ def forward( x = pre_branch_norm(x) if layer_type == 'a': - out, inter = block(x, mask = mask, attn_mask = attn_mask, sinusoidal_emb = self.pia_pos_emb, rel_pos = self.rel_pos, rotary_pos_emb = rotary_pos_emb, prev_attn = prev_attn, mem = layer_mem) + out, inter = block(x, mask = mask, context_mask = context_mask, attn_mask = attn_mask, sinusoidal_emb = self.pia_pos_emb, rel_pos = self.rel_pos, rotary_pos_emb = rotary_pos_emb, prev_attn = prev_attn, mem = layer_mem) elif layer_type == 'c': out, inter = block(x, context = context, mask = mask, context_mask = context_mask, prev_attn = prev_cross_attn) elif layer_type == 'f':