From ece43060f7d4e34b4ff32e3b6b25c4b515d2a4ee Mon Sep 17 00:00:00 2001 From: lucidrains Date: Wed, 27 Sep 2023 18:07:45 -0700 Subject: [PATCH] adopt the fix proposed by @johahi for fixing the small numerical discrepancy in the pretrained model between tensorflow and pytorch https://github.com/lucidrains/enformer-pytorch/issues/31 --- MANIFEST.in | 2 +- README.md | 28 ++++++----- enformer_pytorch/__init__.py | 2 +- enformer_pytorch/config_enformer.py | 4 +- enformer_pytorch/modeling_enformer.py | 57 ++++++++++++++++------ enformer_pytorch/precomputed/tf_gammas.pt | Bin 0 -> 393841 bytes setup.py | 2 +- test_pretrained.py | 4 +- 8 files changed, 67 insertions(+), 32 deletions(-) create mode 100644 enformer_pytorch/precomputed/tf_gammas.pt diff --git a/MANIFEST.in b/MANIFEST.in index eb1bc58..4dee135 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1 @@ -recursive-include enformer_pytorch *.yml +include enformer_pytorch/precomputed/tf_gammas.pt diff --git a/README.md b/README.md index c09b040..f20863f 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,8 @@ Deepmind has released the weights for their tensorflow sonnet Enformer model! I Update: John St. John did some work and found that the `enformer-official-rough` model hits the reported marks in the paper - human pearson R of `0.625` for validation, and `0.65` for test. +Update: As of version 0.8.0, if one were to use the `from_pretrained` function to load the pretrained model, it should automatically use precomputed gamma positions to address a difference between tensorflow and pytorch `xlogy`. This should resolve the numerical discrepancy above. If you were to further finetune and not be using the `from_pretrained` function, please make sure to set `use_tf_gamma = True` when using `.from_hparams` to instantiate the `Enformer` + ```bash $ pip install enformer-pytorch>=0.5 ```` @@ -126,9 +128,9 @@ $ pip install enformer-pytorch>=0.5 Loading the model ```python -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained -enformer = Enformer.from_pretrained('EleutherAI/enformer-official-rough') +enformer = from_pretrained('EleutherAI/enformer-official-rough') ``` Quick sanity check on a single human validation point @@ -143,9 +145,9 @@ This is all made possible thanks to HuggingFace's [custom model](https://hugging You can also load, with overriding of the `target_length` parameter, if you are working with shorter sequence lengths ```python -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained -model = Enformer.from_pretrained('EleutherAI/enformer-official-rough', target_length = 128, dropout_rate = 0.1) +model = from_pretrained('EleutherAI/enformer-official-rough', target_length = 128, dropout_rate = 0.1) # do your fine-tuning ``` @@ -153,9 +155,9 @@ model = Enformer.from_pretrained('EleutherAI/enformer-official-rough', target_le To save on memory during fine-tuning a large Enformer model ```python -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained -enformer = Enformer.from_pretrained('EleutherAI/enformer-official-rough', use_checkpointing = True) +enformer = from_pretrained('EleutherAI/enformer-official-rough', use_checkpointing = True) # finetune enformer on a limited budget ``` @@ -168,10 +170,10 @@ Fine-tuning on new tracks ```python import torch -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained from enformer_pytorch.finetune import HeadAdapterWrapper -enformer = Enformer.from_pretrained('EleutherAI/enformer-official-rough') +enformer = from_pretrained('EleutherAI/enformer-official-rough') model = HeadAdapterWrapper( enformer = enformer, @@ -190,10 +192,10 @@ Finetuning on contextual data (cell type, transcription factor, etc) ```python import torch -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained from enformer_pytorch.finetune import ContextAdapterWrapper -enformer = Enformer.from_pretrained('EleutherAI/enformer-official-rough') +enformer = from_pretrained('EleutherAI/enformer-official-rough') model = ContextAdapterWrapper( enformer = enformer, @@ -218,10 +220,10 @@ Finally, there is also a way to use attention aggregation from a set of context ```python import torch -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained from enformer_pytorch.finetune import ContextAttentionAdapterWrapper -enformer = Enformer.from_pretrained('EleutherAI/enformer-official-rough') +enformer = from_pretrained('EleutherAI/enformer-official-rough') model = ContextAttentionAdapterWrapper( enformer = enformer, @@ -315,6 +317,8 @@ seq, rand_shift_val, rc_bool = ds[0] # (196608,), (1,), (1,) Special thanks goes out to EleutherAI for providing the resources to retrain the model, during a time when the official model from Deepmind had not been released yet. +Thanks also goes out to @johahi for finding out that there are numerical differences between the torch and tensorflow implementations of `xlogy`. He provided a fix for this difference, which is adopted in this repository in `v0.8.0` + ## Todo - [x] script to load weights from trained tensorflow enformer model to pytorch model diff --git a/enformer_pytorch/__init__.py b/enformer_pytorch/__init__.py index 113cedb..6886c92 100644 --- a/enformer_pytorch/__init__.py +++ b/enformer_pytorch/__init__.py @@ -1,3 +1,3 @@ from enformer_pytorch.config_enformer import EnformerConfig -from enformer_pytorch.modeling_enformer import Enformer, SEQUENCE_LENGTH, AttentionPool +from enformer_pytorch.modeling_enformer import Enformer, from_pretrained, SEQUENCE_LENGTH, AttentionPool from enformer_pytorch.data import seq_indices_to_one_hot, str_to_one_hot, GenomeIntervalDataset, FastaInterval \ No newline at end of file diff --git a/enformer_pytorch/config_enformer.py b/enformer_pytorch/config_enformer.py index 3fa34f8..9ff3522 100644 --- a/enformer_pytorch/config_enformer.py +++ b/enformer_pytorch/config_enformer.py @@ -18,6 +18,7 @@ def __init__( use_convnext = False, num_downsamples = 7, # genetic sequence is downsampled 2 ** 7 == 128x in default Enformer - can be changed for higher resolution dim_divisible_by = 128, + use_tf_gamma = False, **kwargs, ): self.dim = dim @@ -32,5 +33,6 @@ def __init__( self.use_checkpointing = use_checkpointing self.num_downsamples = num_downsamples self.dim_divisible_by = dim_divisible_by - + self.use_tf_gamma = use_tf_gamma + super().__init__(**kwargs) \ No newline at end of file diff --git a/enformer_pytorch/modeling_enformer.py b/enformer_pytorch/modeling_enformer.py index 5b060f7..b092431 100644 --- a/enformer_pytorch/modeling_enformer.py +++ b/enformer_pytorch/modeling_enformer.py @@ -1,4 +1,6 @@ import math +from pathlib import Path + import torch from torch import nn, einsum import torch.nn.functional as F @@ -18,6 +20,13 @@ SEQUENCE_LENGTH = 196_608 TARGET_LENGTH = 896 +# gamma positions from tensorflow +# addressing a difference between xlogy results from tensorflow and pytorch +# solution came from @johahi + +DIR = Path(__file__).parents[0] +TF_GAMMAS = torch.load(str(DIR / "precomputed"/ "tf_gammas.pt")) + # helpers def exists(val): @@ -26,6 +35,11 @@ def exists(val): def default(val, d): return val if exists(val) else d +def always(val): + def inner(*args, **kwargs): + return val + return inner + def map_values(fn, d): return {key: fn(values) for key, values in d.items()} @@ -75,30 +89,24 @@ def get_positional_features_gamma(positions, features, seq_len, stddev = None, s if not exists(start_mean): start_mean = seq_len / features - # turns out xlogy between tensorflow and torch differs because of the log - thanks to phd student @johahi for finding this! - # do everything in float64 here for precision - - dtype = positions.dtype - positions = positions.double() - mean = torch.linspace(start_mean, seq_len, features, device = positions.device, dtype = torch.float64) + mean = torch.linspace(start_mean, seq_len, features, device = positions.device) mean = mean[None, ...] concentration = (mean / stddev) ** 2 rate = mean / stddev ** 2 - probabilities = gamma_pdf(positions.abs()[..., None], concentration, rate) + probabilities = gamma_pdf(positions.float().abs()[..., None], concentration, rate) probabilities = probabilities + eps outputs = probabilities / torch.amax(probabilities, dim = -1, keepdim = True) + return outputs - return outputs.to(dtype) - -def get_positional_embed(seq_len, feature_size, device): +def get_positional_embed(seq_len, feature_size, device, use_tf_gamma): distances = torch.arange(-seq_len + 1, seq_len, device = device) feature_functions = [ get_positional_features_exponential, get_positional_features_central_mask, - get_positional_features_gamma + get_positional_features_gamma if not use_tf_gamma else always(TF_GAMMAS.to(device)) ] num_components = len(feature_functions) * 2 @@ -213,7 +221,8 @@ def __init__( dim_key = 64, dim_value = 64, dropout = 0., - pos_dropout = 0. + pos_dropout = 0., + use_tf_gamma = False ): super().__init__() self.scale = dim_key ** -0.5 @@ -240,6 +249,10 @@ def __init__( self.pos_dropout = nn.Dropout(pos_dropout) self.attn_dropout = nn.Dropout(dropout) + # whether to use tf gamma + + self.use_tf_gamma = use_tf_gamma + def forward(self, x): n, h, device = x.shape[-2], self.heads, x.device @@ -253,7 +266,7 @@ def forward(self, x): content_logits = einsum('b h i d, b h j d -> b h i j', q + self.rel_content_bias, k) - positions = get_positional_embed(n, self.num_rel_pos_features, device) + positions = get_positional_embed(n, self.num_rel_pos_features, device, use_tf_gamma = self.use_tf_gamma) positions = self.pos_dropout(positions) rel_k = self.to_rel_k(positions) @@ -308,6 +321,11 @@ def __init__(self, config): self.conv_tower = nn.Sequential(*conv_layers) + # whether to use tensorflow gamma positions + + use_tf_gamma = config.use_tf_gamma + self.use_tf_gamma = use_tf_gamma + # transformer transformer = [] @@ -322,7 +340,8 @@ def __init__(self, config): dim_value = config.dim // config.heads, dropout = config.attn_dropout, pos_dropout = config.pos_dropout, - num_rel_pos_features = config.dim // config.heads + num_rel_pos_features = config.dim // config.heads, + use_tf_gamma = use_tf_gamma ), nn.Dropout(config.dropout_rate) )), @@ -454,3 +473,13 @@ def forward( return out, x return out + +# from pretrained function + +def from_pretrained(name, use_tf_gamma = None, **kwargs): + enformer = Enformer.from_pretrained(name, **kwargs) + + if name == 'EleutherAI/enformer-official-rough': + enformer.use_tf_gamma = default(use_tf_gamma, True) + + return enformer diff --git a/enformer_pytorch/precomputed/tf_gammas.pt b/enformer_pytorch/precomputed/tf_gammas.pt new file mode 100644 index 0000000000000000000000000000000000000000..42d3941e7924c6d0df755d5353c77b579196c436 GIT binary patch literal 393841 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�_2ilb} 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 Nbo6x4-`D)z{{ttZiVFY$ literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 42277d3..e24e729 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ name = 'enformer-pytorch', packages = find_packages(exclude=[]), include_package_data = True, - version = '0.7.7', + version = '0.8.2', license='MIT', description = 'Enformer - Pytorch', author = 'Phil Wang', diff --git a/test_pretrained.py b/test_pretrained.py index 6587602..708b800 100644 --- a/test_pretrained.py +++ b/test_pretrained.py @@ -1,7 +1,7 @@ import torch -from enformer_pytorch import Enformer +from enformer_pytorch import from_pretrained -enformer = Enformer.from_pretrained('EleutherAI/enformer-official-rough').cuda() +enformer = from_pretrained('EleutherAI/enformer-official-rough').cuda() enformer.eval() data = torch.load('./data/test-sample.pt')