From 7ba975f354b95428a1cff851dbc14bbc6e32f0fa Mon Sep 17 00:00:00 2001 From: John St John Date: Fri, 1 Nov 2024 23:52:57 +0000 Subject: [PATCH 01/10] Port over the code from bionemo1 --- .../bionemo-geneformer/pyproject.toml | 1 + .../geneformer/data/singlecell/dataset.py | 6 +- .../scripts/geneformer_mlm_loss_eval.py | 294 ++++++++++++++++++ 3 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py diff --git a/sub-packages/bionemo-geneformer/pyproject.toml b/sub-packages/bionemo-geneformer/pyproject.toml index d6709cc836..7250157bf0 100644 --- a/sub-packages/bionemo-geneformer/pyproject.toml +++ b/sub-packages/bionemo-geneformer/pyproject.toml @@ -23,6 +23,7 @@ dependencies = [ sc_memmap = "bionemo.geneformer.scripts.sc_memmap:main_cli" infer_geneformer = "bionemo.geneformer.scripts.infer_geneformer:geneformer_infer_entrypoint" train_geneformer = "bionemo.geneformer.scripts.train_geneformer:entrypoint" +geneformer_mlm_loss_eval = "bionemo.geneformer.scripts.geneformer_mlm_loss_eval:entrypoint" [tool.setuptools.packages.find] where = ["src"] diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py index 2a0cff74c6..ebcd0c3087 100644 --- a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py @@ -87,6 +87,7 @@ def __init__( # noqa: D107 mask_token_prob: float = 0.8, random_token_prob: float = 0.1, prepend_cls_token: bool = True, + eos_token: int | None = None, assert_increasing_columns: bool = True, seed: int = np.random.SeedSequence().entropy, # type: ignore ): @@ -98,6 +99,7 @@ def __init__( # noqa: D107 self.mask_prob = mask_prob self.prepend_cls_token = prepend_cls_token self._seed = seed + self.eos_token = eos_token # check if column indices are increasing for looking up genes. This is a way of spotting if the sc_memmap.py # script produced properly strctured sparse files. self.assert_increasing_columns = assert_increasing_columns @@ -210,6 +212,7 @@ def __getitem__(self, index: EpochIndex) -> types.BertSample: mask_prob=self.mask_prob, random_token_prob=self.random_token_prob, prepend_cls_token=self.prepend_cls_token, + eos_token=self.eos_token, ) @@ -227,6 +230,7 @@ def process_item( # noqa: D417 target_sum: int = 10000, normalize: bool = True, prepend_cls_token: bool = True, + eos_token: None | int = None, ) -> types.BertSample: """Process a single item in the dataset. @@ -308,7 +312,7 @@ def process_item( # noqa: D417 labels=labels, loss_mask=loss_mask, cls_token=tokenizer.token_to_id(tokenizer.cls_token), - eos_token=None, + eos_token=eos_token, ) # NeMo megatron assumes this return structure. diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py new file mode 100644 index 0000000000..6a8b3382f1 --- /dev/null +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py @@ -0,0 +1,294 @@ +# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: LicenseRef-Apache2 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: LicenseRef-NvidiaProprietary +# +# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual +# property and proprietary rights in and to this material, related +# documentation and any modifications thereto. Any use, reproduction, +# disclosure or distribution of this material and related documentation +# without an express license agreement from NVIDIA CORPORATION or +# its affiliates is strictly prohibited. + +import argparse +import functools +import pickle +from copy import deepcopy +from pathlib import Path +from typing import Dict, Type + +import numpy as np +import torch +import torch.distributed +import torch.utils +import torch.utils.data +from megatron.core.transformer.module import Float16Module +from nemo.utils import logging +from torch.utils.data import DataLoader +from tqdm import trange +from transformers import AutoModelForMaskedLM + +from bionemo.core.data.multi_epoch_dataset import EpochIndex +from bionemo.core.utils.dtypes import get_autocast_dtype +from bionemo.geneformer.api import GeneformerConfig +from bionemo.geneformer.data.singlecell.dataset import SingleCellDataset +from bionemo.geneformer.data.singlecell.preprocess import GeneformerPreprocess +from bionemo.geneformer.tokenizer.gene_tokenizer import GeneTokenizer +from bionemo.llm.data import collate +from bionemo.llm.model.biobert.model import BioBertConfig +from bionemo.testing import megatron_parallel_state_utils +from bionemo.testing.data.load import load + + +class GeneformerHFAdapter(torch.nn.Module): + """An adapter class for running the HF model against our subset of tokens.""" + + def __init__(self, hf_path: str, my_token_dict: Dict[str, int], nv_tokenizer: GeneTokenizer): + """An adapter that filters and re-orders tokens to match our tokenizer but with the original indices.""" + super().__init__() + self.model = AutoModelForMaskedLM.from_pretrained(hf_path) + self.my_token_dict = deepcopy(my_token_dict) + self.nv_tokenizer = deepcopy(nv_tokenizer) + self.n_tokens_nv = len(self.nv_tokenizer.vocab) + self.n_tokens_hf = len(my_token_dict) + + # nvidia tokenizer has [cls] and [pad] first along with some others that do not overlap. This mapper + hf_ordered_nv_tokenizer = { + self.nv_tokenizer.pad_token: my_token_dict[""], + self.nv_tokenizer.mask_token: my_token_dict[""], + self.nv_tokenizer.cls_token: my_token_dict[""], + self.nv_tokenizer.sep_token: my_token_dict[""], # name doesn't really matter here + } + tokens = list(my_token_dict.items()) + for k, t in tokens[:4]: + assert k.startswith("<") + + missing_nv_tokens = [] + extra_tokens_not_covered = [] + for ens, idx in list(my_token_dict.items())[4:]: + assert ens.startswith("ENSG") + if ens in nv_tokenizer.vocab.keys(): + hf_ordered_nv_tokenizer[ens] = idx + else: + if idx < self.n_tokens_hf: + missing_nv_tokens.append(idx) + else: + extra_tokens_not_covered.append(idx) + self.hf_ordered_nv_tokenizer = hf_ordered_nv_tokenizer + self.extra_tokens_not_covered = extra_tokens_not_covered + self.register_buffer("missing_nv_tokens", torch.tensor(missing_nv_tokens, dtype=int)) + + @property + def device(self) -> torch.device: + """Return the device of this model.""" + # This is populated through the self.register_buffer call in init. + return self.missing_nv_tokens.device + + def get_tokenizer(self) -> GeneTokenizer: + """Return the filtered tokenizer with keys that match the order of the nv model.""" + nv_tok = deepcopy(self.nv_tokenizer) + # HF tokenizer only has pad and mask, no other special tokens. + nv_tok.special_tokens = (nv_tok.mask_token, nv_tok.pad_token) # type: ignore + nv_tok.vocab = self.hf_ordered_nv_tokenizer + nv_tok.decode_vocab = {v: k for k, v in nv_tok.vocab.items()} + return nv_tok + + def forward(self, *args, **kwargs): + """Run forward and return the logits.""" + logits = self.model(*args, **kwargs).logits + # logits[:, :, self.missing_nv_tokens] = -torch.inf + # breakpoint() + return logits + + +def main( + model_path: Path | None, + hf_model_path: str, + dataset_path: Path, + token_dictionary_path: Path, + mask_prob: float = 0.15, + batch_size: int = 16, + precision: str = "bf16-mixed", + config_class: Type[BioBertConfig] = GeneformerConfig, + seed: int = 513, +): + """Inference function (requires DDP and only training data that fits in memory).""" + # This is just used to get the tokenizer :( + train_data_path: Path = ( + load("single_cell/testdata-20240506") / "cellxgene_2023-12-15_small" / "processed_data" / "train" + ) + n_devices: int = torch.cuda.device_count() + assert n_devices > 0 + preprocessor = GeneformerPreprocess( + download_directory=train_data_path, + medians_file_path=train_data_path / "medians.json", + tokenizer_vocab_path=train_data_path / "geneformer.vocab", + ) + match preprocessor.preprocess(): + case {"tokenizer": tokenizer, "median_dict": median_dict}: + logging.info("*************** Preprocessing Finished ************") + case _: + logging.error("Preprocessing failed.") + assert False + + with open(token_dictionary_path, "rb") as geneformer_hf_token_file: + geneformer_hf_token_dict = pickle.load(geneformer_hf_token_file) + with megatron_parallel_state_utils.distributed_model_parallel_state(): + geneformer_nv_inferer_cfg = config_class( + seq_length=2048, + params_dtype=get_autocast_dtype(precision), + pipeline_dtype=get_autocast_dtype(precision), + autocast_dtype=get_autocast_dtype(precision), # setting this speeds things up a lot + # handle checkpoint resumption here rather than auto-resume so this supports fine-tuning capabilities + initial_ckpt_path=str(model_path) if model_path is not None else None, + initial_ckpt_skip_keys_with_these_prefixes=[], # load everything from the checkpoint. + ) + geneformer_nv_inferer = Float16Module( + geneformer_nv_inferer_cfg, geneformer_nv_inferer_cfg.configure_model(tokenizer).cuda(0 % n_devices) + ).eval() + + # TODO only predict with tokens that exist in both models. + + hf_model = GeneformerHFAdapter(hf_model_path, geneformer_hf_token_dict, tokenizer).eval().cuda(1 % n_devices) + tokenizer_filt = deepcopy(tokenizer) + ori_nv_vocab_size: int = len(tokenizer.vocab) + hf_tokenizer = hf_model.get_tokenizer() + tokenizer_filt.vocab = { + k: v for k, v in tokenizer.vocab.items() if k in hf_tokenizer.vocab or k in tokenizer.special_tokens + } + + ds_nv = SingleCellDataset( + dataset_path, + tokenizer=tokenizer_filt, + median_dict=median_dict, + max_len=2048, + mask_prob=mask_prob, + seed=seed, + ) + ds_hf_nvfilt = SingleCellDataset( + dataset_path, + hf_tokenizer, + median_dict, + max_len=4096, + mask_prob=mask_prob, + eos_token=hf_tokenizer.token_to_id(hf_tokenizer.sep_token), # Stored in the special token + seed=seed, + ) + print(f"Loaded dataset of length (NV): {len(ds_nv)}, (HF): {len(ds_hf_nvfilt)}") + + dl_hf = DataLoader( + ds_hf_nvfilt, + batch_size=batch_size, + sampler=[EpochIndex(epoch=0, idx=i) for i in range(len(ds_hf_nvfilt))], + shuffle=False, + num_workers=0, + drop_last=False, + collate_fn=functools.partial( + collate.bert_padding_collate_fn, + padding_value=ds_hf_nvfilt.tokenizer.pad_id, + min_length=4096, + max_length=4096, + ), + ) + dl_nv = DataLoader( + ds_nv, + batch_size=batch_size, + sampler=[EpochIndex(epoch=0, idx=i) for i in range(len(ds_nv))], + shuffle=False, + num_workers=0, + drop_last=False, + collate_fn=functools.partial( + collate.bert_padding_collate_fn, + padding_value=ds_nv.tokenizer.pad_id, + min_length=2048, + max_length=2048, + ), + ) + + with torch.no_grad(): + dl_hf_iter = iter(dl_hf) + dl_nv_iter = iter(dl_nv) + loss_hf = 0.0 + n_hf = 0 + loss_nv = 0.0 + n_nv = 0 + nv_device = geneformer_nv_inferer.module.embedding.position_embeddings.weight.device + hf_device = hf_model.device + for b_idx in trange(len(dl_hf)): + np.random.seed(b_idx) + batch_hf = {k: v.to(hf_device) for k, v in next(dl_hf_iter).items()} + np.random.seed(b_idx) + batch_nv = {k: v.to(nv_device) for k, v in next(dl_nv_iter).items()} + logits_hf = hf_model(batch_hf["text"].long(), batch_hf["attention_mask"]) + loss_hf += ( + torch.nn.functional.cross_entropy( + logits_hf[batch_hf["loss_mask"]], + batch_hf["labels"][batch_hf["loss_mask"]], + reduction="sum", + ) + .cpu() + .sum() + .item() + ) + n_hf += batch_hf["loss_mask"].sum().cpu().item() + + logits_nv = ( + geneformer_nv_inferer(batch_nv["text"], batch_nv["attention_mask"])["token_logits"] + .transpose(0, 1) + .contiguous() + ) + loss_nv += ( + torch.nn.functional.cross_entropy( + logits_nv[batch_nv["loss_mask"]][..., :ori_nv_vocab_size], + batch_nv["labels"][batch_nv["loss_mask"]], + reduction="sum", + ) + .cpu() + .sum() + .item() + ) + n_nv += batch_nv["loss_mask"].sum().cpu().item() + print(f"HF mean loss: {loss_hf / n_hf}, NV mean loss: {loss_nv / n_nv}") + + +def entrypoint(): + """Main entry point for running the evaluation.""" + parser = argparse.ArgumentParser(description="MLM Performance vs HF Script") + parser.add_argument( + "--model-path", + type=Path, + help="Path to nvidia geneformer model checkpoint (unless you want random weights)", + required=False, + default=None, + ) + parser.add_argument( + "--token-dictionary-path", + type=Path, + help="Path to token dictionary file. " + "Eg `wget https://huggingface.co/ctheodoris/Geneformer/resolve/main/geneformer/token_dictionary_gc95M.pkl` " + "then provide the path to the downloaded file.", + required=True, + ) + parser.add_argument("--hf-model-path", type=str, default="ctheodoris/Geneformer", help="HF model path") + parser.add_argument("--dataset-path", type=Path, help="Path to dataset directory", required=True) + + args = parser.parse_args() + main(args.model_path, args.hf_model_path, args.dataset_path, args.token_dictionary_path) + + +if __name__ == "__main__": + entrypoint() From bf6feebe9f506f5f5697557a202a06d1e8f3e489 Mon Sep 17 00:00:00 2001 From: John St John Date: Sat, 2 Nov 2024 00:41:31 +0000 Subject: [PATCH 02/10] Updating geneformer model card and porting over eval script --- .../images/geneformer/F1-score-models.png | Bin 0 -> 36191 bytes .../geneformer/average-accuracy-models.png | Bin 0 -> 36848 bytes ...curve_new_v_old_geneformer_64_node_10M.png | Bin 0 -> 138926 bytes .../tflops_bionemo1_vs_bionemo2.png | Bin 0 -> 118251 bytes docs/docs/models/geneformer.md | 52 ++++++++++++++---- .../scripts/geneformer_mlm_loss_eval.py | 47 ++++++++-------- 6 files changed, 66 insertions(+), 33 deletions(-) create mode 100644 docs/docs/assets/images/geneformer/F1-score-models.png create mode 100644 docs/docs/assets/images/geneformer/average-accuracy-models.png create mode 100644 docs/docs/assets/images/geneformer/loss_curve_new_v_old_geneformer_64_node_10M.png create mode 100644 docs/docs/assets/images/geneformer/tflops_bionemo1_vs_bionemo2.png diff --git a/docs/docs/assets/images/geneformer/F1-score-models.png b/docs/docs/assets/images/geneformer/F1-score-models.png new file mode 100644 index 0000000000000000000000000000000000000000..431f1fcfb445f037284ebb27059ab296ef2ca3e0 GIT binary patch literal 36191 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 C%<~ig literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/geneformer/average-accuracy-models.png b/docs/docs/assets/images/geneformer/average-accuracy-models.png new file mode 100644 index 0000000000000000000000000000000000000000..3abd706602c3f916719b6579533de4f06029165a GIT binary patch literal 36848 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/geneformer/loss_curve_new_v_old_geneformer_64_node_10M.png b/docs/docs/assets/images/geneformer/loss_curve_new_v_old_geneformer_64_node_10M.png new file mode 100644 index 0000000000000000000000000000000000000000..7dbb980086e30f0fae3e11af242108445b249a05 GIT binary patch literal 138926 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/geneformer/tflops_bionemo1_vs_bionemo2.png b/docs/docs/assets/images/geneformer/tflops_bionemo1_vs_bionemo2.png new file mode 100644 index 0000000000000000000000000000000000000000..834c77c7d757d93a5cffaee0dd9b0b30c3f248ac GIT binary patch literal 118251 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%0DrCr+KIBoWKoV%H~O-B>%;$Eji# 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 Date: Mon, 4 Nov 2024 16:43:53 +0000 Subject: [PATCH 03/10] Updating the geneformer markdown text --- docs/docs/models/geneformer.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/models/geneformer.md b/docs/docs/models/geneformer.md index c8cae46797..8277735d52 100644 --- a/docs/docs/models/geneformer.md +++ b/docs/docs/models/geneformer.md @@ -200,9 +200,9 @@ The following describes the bert MLM token loss. Like in the original BERT paper [Geneformer](https://huggingface.co/ctheodoris/Geneformer) was recently updated on hugging face. The number reported above for geneformer is from an old model on an older eval set. Back when we had our evaluation set up for this - older geneformer model (on 2024/05/13), our weights on that dataset were 2.79 for the 10M model and 2.50 for the - 106M model. On the latest evaluation set and data we perform slightly better, but we are not yet able to - update the geneformer numbers with these latest datasets. + older geneformer model (on 2024/05/13), our masked-language model loss on that dataset was 2.79 for the 10M model + and 2.50 for the 106M model. On the latest evaluation set and data we perform slightly better, but we do not yet + have updated geneformer numbers with these updated datasets. #### Downstream task accuracy From f872dac85309012b8cd737678808342897adb12d Mon Sep 17 00:00:00 2001 From: John St John Date: Mon, 4 Nov 2024 22:08:42 +0000 Subject: [PATCH 04/10] Fix logic around cls token prepending --- docs/docs/models/geneformer.md | 12 +++++------ .../geneformer/data/singlecell/dataset.py | 20 ++++++++++--------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/docs/docs/models/geneformer.md b/docs/docs/models/geneformer.md index 8277735d52..5c9bf7cf2b 100644 --- a/docs/docs/models/geneformer.md +++ b/docs/docs/models/geneformer.md @@ -4,7 +4,7 @@ This document references performance numbers and runtime engines that are from the bionemo v1 variant of the model. These numbers will be updated in a coming release to reflect the new bionemo v2 codebase. The model architecture and training information will be the same, as checkpoints are converted from bionemo v1 format to v2 format. Benchmarks below - are annotated with which version of bionemo generated them. Accuracy should be the same within small epsilon + are annotated with which version of bionemo generated them. Accuracy should be the same within a small epsilon since we have tests in place showing model equivalency between the two versions. ## Model Overview @@ -163,7 +163,7 @@ This checkpoint was trained for approximately 11 epochs through the CELLxGENE sp !!! note "Training curves from BioNeMo1" Note that these curves were generated on BioNeMo1. We see the same general training curves in our initial testing of - BioNeMo2 however. In the following figure the blue line is the previous training run of the 10M model and the + BioNeMo2, however. In the following figure the blue line is the previous training run of the 10M model and the red curve is an equivalent training run on BioNeMo2. As we release new checkpoints they will be trained on BioNeMo2. ![Training curve equivalence](../assets/images/geneformer/loss_curve_new_v_old_geneformer_64_node_10M.png) @@ -196,12 +196,12 @@ The following describes the bert MLM token loss. Like in the original BERT paper | geneformer-10M-240530 | 2.64 | | geneformer-106M-240530 | 2.34 | -!!! bug "baseline Geneformer" +!!! bug "Baseline Geneformer from previous version" [Geneformer](https://huggingface.co/ctheodoris/Geneformer) was recently updated on hugging face. The number reported above for geneformer is from an old model on an older eval set. Back when we had our evaluation set up for this - older geneformer model (on 2024/05/13), our masked-language model loss on that dataset was 2.79 for the 10M model - and 2.50 for the 106M model. On the latest evaluation set and data we perform slightly better, but we do not yet + older geneformer model (on 2024/05/13), our masked-language model loss on that dataset was 2.79 for the 10M model + and 2.50 for the 106M model. On the latest evaluation set and data we perform slightly better, but we do not yet have updated geneformer numbers with these updated datasets. #### Downstream task accuracy @@ -227,7 +227,7 @@ The 106M parameter variant of Geneformer achieves over 50 TFLOPS per GPU during !!! bug "TFLOPS from BioNeMo1" We have observed an approximately 10% degradation in training performance comparing the 10M geneformer model on - the new bionemo2 repository vs the old bionemo1 codebase. We are working to address this change and make them + the new BioNeMo v2 repository vs the old BioNeMo v1 codebase. We are working to address this change and make them comparable or better in terms of cluster performance. The numbers above are from the original BioNeMo1 model card. ![64 GPU training time 10% slower training time in BioNeMo2 vs BioNeMo1](../assets/images/geneformer/tflops_bionemo1_vs_bionemo2.png) diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py index ebcd0c3087..dd29e8cc33 100644 --- a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py @@ -266,7 +266,10 @@ def process_item( # noqa: D417 if gene_median is None: raise ValueError("gene_median must be provided for this tokenizer") - max_len = max_len - 1 # - minus 1 for [CLS] token + if prepend_cls_token: + max_len = max_len - 1 # - minus 1 for [CLS] token + if eos_token is not None: + max_len = max_len - 1 # - minus 1 for [EOS] token gene_names = [feature_ids[idx] for idx in gene_idxs] genes, tokens, medians = [], [], [] @@ -306,14 +309,13 @@ def process_item( # noqa: D417 ), ) - if prepend_cls_token: - masked_tokens, labels, loss_mask = masking.add_cls_and_eos_tokens( - sequence=masked_tokens, - labels=labels, - loss_mask=loss_mask, - cls_token=tokenizer.token_to_id(tokenizer.cls_token), - eos_token=eos_token, - ) + masked_tokens, labels, loss_mask = masking.add_cls_and_eos_tokens( + sequence=masked_tokens, + labels=labels, + loss_mask=loss_mask, + cls_token=tokenizer.token_to_id(tokenizer.cls_token) if prepend_cls_token else None, + eos_token=eos_token, + ) # NeMo megatron assumes this return structure. return { From c2fd4d9281ff74a9e1c03fa1f375eeae8d7050f6 Mon Sep 17 00:00:00 2001 From: John St John Date: Mon, 4 Nov 2024 22:10:30 +0000 Subject: [PATCH 05/10] clean up cls eos token pad logic --- .../geneformer/data/singlecell/dataset.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py index dd29e8cc33..c1fbd6aea7 100644 --- a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py @@ -308,14 +308,15 @@ def process_item( # noqa: D417 random_token_prob=random_token_prob, ), ) - - masked_tokens, labels, loss_mask = masking.add_cls_and_eos_tokens( - sequence=masked_tokens, - labels=labels, - loss_mask=loss_mask, - cls_token=tokenizer.token_to_id(tokenizer.cls_token) if prepend_cls_token else None, - eos_token=eos_token, - ) + cls_token = tokenizer.token_to_id(tokenizer.cls_token) if prepend_cls_token else None + if cls_token is not None or eos_token is not None: + masked_tokens, labels, loss_mask = masking.add_cls_and_eos_tokens( + sequence=masked_tokens, + labels=labels, + loss_mask=loss_mask, + cls_token=cls_token, + eos_token=eos_token, + ) # NeMo megatron assumes this return structure. return { From 08a1a24347403b0db4a8af247a24e2ccd41a9682 Mon Sep 17 00:00:00 2001 From: John St John Date: Mon, 4 Nov 2024 23:44:33 +0000 Subject: [PATCH 06/10] Updating the modelcard with info from the latest hugging face release --- docs/docs/models/geneformer.md | 16 ++-- .../geneformer/data/singlecell/dataset.py | 2 +- .../scripts/geneformer_mlm_loss_eval.py | 93 +++++++++++-------- 3 files changed, 66 insertions(+), 45 deletions(-) diff --git a/docs/docs/models/geneformer.md b/docs/docs/models/geneformer.md index 5c9bf7cf2b..7429edcab8 100644 --- a/docs/docs/models/geneformer.md +++ b/docs/docs/models/geneformer.md @@ -192,17 +192,19 @@ The following describes the bert MLM token loss. Like in the original BERT paper | Model Description | Token Loss (lower is better) | | ---------------------- | ---------------------------- | -| Baseline geneformer | ~~3.35~~ | +| Baseline geneformer | 2.26* | | geneformer-10M-240530 | 2.64 | | geneformer-106M-240530 | 2.34 | -!!! bug "Baseline Geneformer from previous version" +!!! bug "Baseline Geneformer was recently updated on huggingface." - [Geneformer](https://huggingface.co/ctheodoris/Geneformer) was recently updated on hugging face. The number reported - above for geneformer is from an old model on an older eval set. Back when we had our evaluation set up for this - older geneformer model (on 2024/05/13), our masked-language model loss on that dataset was 2.79 for the 10M model - and 2.50 for the 106M model. On the latest evaluation set and data we perform slightly better, but we do not yet - have updated geneformer numbers with these updated datasets. + [Geneformer](https://huggingface.co/ctheodoris/Geneformer) was recently updated on hugging face to a new version. + In a future release we will make checkpoint conversion scripts available so that the public model can be ran + directly. Some key differences follow: + + * Trained on a much larger 95M cell dataset. Our current checkpoints were trained with 23M cells. + * The new 12 layer baseline geneformer variant sits between our 10M and 106M parameter models in parameter count with + approximately 38M parameters. #### Downstream task accuracy diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py index c1fbd6aea7..50d0315971 100644 --- a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/data/singlecell/dataset.py @@ -302,7 +302,7 @@ def process_item( # noqa: D417 random_seed=int(random_utils.get_seed_from_rng(rng)), mask_config=masking.BertMaskConfig( tokenizer=tokenizer, - random_tokens=range(5, len(tokenizer.vocab)), + random_tokens=range(len(tokenizer.special_tokens), len(tokenizer.vocab)), mask_prob=mask_prob, mask_token_prob=mask_token_prob, random_token_prob=random_token_prob, diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py index 4cae02ddab..ad71be414b 100644 --- a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py @@ -27,6 +27,7 @@ import argparse import functools import pickle +import sys from copy import deepcopy from pathlib import Path from typing import Dict, Type @@ -118,11 +119,14 @@ def main( model_path: Path | None, hf_model_path: str, dataset_path: Path, - token_dictionary_path: Path, + hf_token_dictionary_path: Path, + hf_medians_dictionary_path: Path, mask_prob: float = 0.15, batch_size: int = 16, precision: str = "bf16-mixed", config_class: Type[BioBertConfig] = GeneformerConfig, + seq_len_nv: int = 2048, + seq_len_hf: int = 2048, seed: int = 513, ): """Inference function (requires DDP and only training data that fits in memory).""" @@ -143,12 +147,13 @@ def main( case _: logging.error("Preprocessing failed.") assert False - - with open(token_dictionary_path, "rb") as geneformer_hf_token_file: + with open(hf_token_dictionary_path, "rb") as geneformer_hf_token_file: geneformer_hf_token_dict = pickle.load(geneformer_hf_token_file) + with open(hf_medians_dictionary_path, "rb") as geneformer_hf_median_file: + geneformer_hf_medians_dict = pickle.load(geneformer_hf_median_file) with megatron_parallel_state_utils.distributed_model_parallel_state(): geneformer_nv_inferer_cfg = config_class( - seq_length=2048, + seq_length=seq_len_nv, params_dtype=get_autocast_dtype(precision), pipeline_dtype=get_autocast_dtype(precision), autocast_dtype=get_autocast_dtype(precision), # setting this speeds things up a lot @@ -163,6 +168,9 @@ def main( # TODO only predict with tokens that exist in both models. hf_model = GeneformerHFAdapter(hf_model_path, geneformer_hf_token_dict, tokenizer).eval().cuda(1 % n_devices) + hf_total_params = sum(p.numel() for p in hf_model.parameters() if p.requires_grad) + nv_total_params = sum(p.numel() for p in geneformer_nv_inferer.parameters() if p.requires_grad) + print(f"HF Model Params: {hf_total_params}, NV Model Params: {nv_total_params}", file=sys.stdout) tokenizer_filt = deepcopy(tokenizer) ori_nv_vocab_size: int = len(tokenizer.vocab) hf_tokenizer = hf_model.get_tokenizer() @@ -172,17 +180,17 @@ def main( ds_nv = SingleCellDataset( dataset_path, - tokenizer=tokenizer, # TODO replace with the filtered one. + tokenizer=tokenizer_filt, # TODO replace with the filtered one. median_dict=median_dict, - max_len=2048, + max_len=seq_len_nv, mask_prob=mask_prob, seed=seed, ) ds_hf_nvfilt = SingleCellDataset( dataset_path, hf_tokenizer, - median_dict, - max_len=2048, + geneformer_hf_medians_dict, + max_len=seq_len_hf, mask_prob=mask_prob, eos_token=hf_tokenizer.token_to_id(hf_tokenizer.sep_token), # Stored in the special token seed=seed, @@ -199,8 +207,8 @@ def main( collate_fn=functools.partial( collate.bert_padding_collate_fn, padding_value=ds_hf_nvfilt.tokenizer.pad_id, - min_length=4096, - max_length=4096, + min_length=seq_len_hf, + max_length=seq_len_hf, ), ) dl_nv = DataLoader( @@ -213,37 +221,35 @@ def main( collate_fn=functools.partial( collate.bert_padding_collate_fn, padding_value=ds_nv.tokenizer.pad_id, - min_length=2048, - max_length=2048, + min_length=seq_len_nv, + max_length=seq_len_nv, ), ) with torch.no_grad(): - # dl_hf_iter = iter(dl_hf) + dl_hf_iter = iter(dl_hf) dl_nv_iter = iter(dl_nv) - # loss_hf = 0.0 - # n_hf = 0 + loss_hf = 0.0 + n_hf = 0 loss_nv = 0.0 n_nv = 0 nv_device = geneformer_nv_inferer.module.embedding.position_embeddings.weight.device - # hf_device = hf_model.device - for b_idx in trange(len(dl_hf)): - # np.random.seed(b_idx) - # batch_hf = {k: v.to(hf_device) for k, v in next(dl_hf_iter).items()} - # np.random.seed(b_idx) + hf_device = hf_model.device + for _ in trange(len(dl_hf)): + batch_hf = {k: v.to(hf_device) for k, v in next(dl_hf_iter).items()} batch_nv = {k: v.to(nv_device) for k, v in next(dl_nv_iter).items()} - # logits_hf = hf_model(batch_hf["text"].long(), batch_hf["attention_mask"]) - # loss_hf += ( - # torch.nn.functional.cross_entropy( - # logits_hf[batch_hf["loss_mask"]], - # batch_hf["labels"][batch_hf["loss_mask"]], - # reduction="sum", - # ) - # .cpu() - # .sum() - # .item() - # ) - # n_hf += batch_hf["loss_mask"].sum().cpu().item() + logits_hf = hf_model(batch_hf["text"].long(), batch_hf["attention_mask"]) + loss_hf += ( + torch.nn.functional.cross_entropy( + logits_hf[batch_hf["loss_mask"]], + batch_hf["labels"][batch_hf["loss_mask"]], + reduction="sum", + ) + .cpu() + .sum() + .item() + ) + n_hf += batch_hf["loss_mask"].sum().cpu().item() logits_nv = ( geneformer_nv_inferer(batch_nv["text"], batch_nv["attention_mask"])["token_logits"] @@ -262,8 +268,7 @@ def main( ) n_nv += batch_nv["loss_mask"].sum().cpu().item() print(f"NV mean loss: {loss_nv / n_nv}") - # print(f"The following loss is not valid in our script, do not report this number:", file=sys.stderr) - # print(f"FIXME: HF mean loss: {loss_hf / n_hf} FIXME", file=sys.stderr) + print(f"HF mean loss: {loss_hf / n_hf}") def entrypoint(): @@ -277,10 +282,18 @@ def entrypoint(): default=None, ) parser.add_argument( - "--token-dictionary-path", + "--hf-token-dictionary-path", type=Path, help="Path to token dictionary file. " - "Eg `wget https://huggingface.co/ctheodoris/Geneformer/resolve/main/geneformer/token_dictionary_gc95M.pkl` " + "Eg `wget https://huggingface.co/ctheodoris/Geneformer/resolve/main/geneformer/token_dictionary_gc95M.pkl`" + "then provide the path to the downloaded file.", + required=True, + ) + parser.add_argument( + "--hf-medians-dictionary-path", + type=Path, + help="Path to token dictionary file. " + "Eg `wget https://huggingface.co/ctheodoris/Geneformer/resolve/main/geneformer/gene_median_dictionary_gc95M.pkl` " "then provide the path to the downloaded file.", required=True, ) @@ -288,7 +301,13 @@ def entrypoint(): parser.add_argument("--dataset-path", type=Path, help="Path to dataset directory", required=True) args = parser.parse_args() - main(args.model_path, args.hf_model_path, args.dataset_path, args.token_dictionary_path) + main( + args.model_path, + args.hf_model_path, + args.dataset_path, + args.hf_token_dictionary_path, + args.hf_medians_dictionary_path, + ) if __name__ == "__main__": From fc2710737f35eb0d5f67194749e90a06e24f07c5 Mon Sep 17 00:00:00 2001 From: John St John Date: Tue, 5 Nov 2024 00:04:48 +0000 Subject: [PATCH 07/10] Add updated numbers for the HF model --- docs/docs/models/geneformer.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/docs/models/geneformer.md b/docs/docs/models/geneformer.md index 7429edcab8..55b81228a8 100644 --- a/docs/docs/models/geneformer.md +++ b/docs/docs/models/geneformer.md @@ -196,7 +196,7 @@ The following describes the bert MLM token loss. Like in the original BERT paper | geneformer-10M-240530 | 2.64 | | geneformer-106M-240530 | 2.34 | -!!! bug "Baseline Geneformer was recently updated on huggingface." +!!! bug "Baseline Geneformer was recently updated on huggingface making loss comparisons challenging." [Geneformer](https://huggingface.co/ctheodoris/Geneformer) was recently updated on hugging face to a new version. In a future release we will make checkpoint conversion scripts available so that the public model can be ran @@ -205,6 +205,11 @@ The following describes the bert MLM token loss. Like in the original BERT paper * Trained on a much larger 95M cell dataset. Our current checkpoints were trained with 23M cells. * The new 12 layer baseline geneformer variant sits between our 10M and 106M parameter models in parameter count with approximately 38M parameters. + * The model is trained with a 4096 context rather than a 2048 context. When forcing the model to make predictions + with a 2048 context, the MLM loss drops to *2.76*, which is probably unfair because this may be "out of domain" for + training. It is really hard to compare these loss numbers directly is the only take-home here. + * The model was trained on a set of 20275 genes, rather than the older set of 25426 genes. This would also be + expected to give a boost in loss since there are fewer tokens to chose from. #### Downstream task accuracy From f0dfafdf1d496f2597ac5fb0fa56b1f88d320ae2 Mon Sep 17 00:00:00 2001 From: John St John Date: Tue, 5 Nov 2024 00:08:36 +0000 Subject: [PATCH 08/10] More details around hte experiment --- docs/docs/models/geneformer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/models/geneformer.md b/docs/docs/models/geneformer.md index 55b81228a8..5fab0655e4 100644 --- a/docs/docs/models/geneformer.md +++ b/docs/docs/models/geneformer.md @@ -188,7 +188,7 @@ Additionally, validation loss decreased both faster and continued to decrease at #### Masked language model (MLM) loss -The following describes the bert MLM token loss. Like in the original BERT paper, and the geneformer paper, 15% of all tokens are included in the loss. Of the included tokens, 80% are `"[MASK]"` token, 2% are a random gene token, and 18% are the correct output token. Note that this was an unintentional deviation from the original publication, but so far it seems to be working well. In the future we will test the intended 80%/10%/10% mixture proposed in the paper. The token loss in the following table is the mean cross entropy loss of the 15% of tokens included in the loss mask averaged across cells. As a baseline geneformer was downloaded from [the ctheodoris/Geneformer page on hugging face on 2024/05/13](https://huggingface.co/ctheodoris/Geneformer) and applied to the same masking/unmasking problem on this dataset. The held-out `test` datset from our training splits described previously was used, and it should be noted that some of these cells may have been involved in training the baseline geneformer. Since the baseline performed slightly worse than our new checkpoints, and our goal was an equivalent or better model checkpoint, this possibility was not explored further. +The following describes the bert MLM token loss. Like in the original BERT paper, and the geneformer paper, 15% of all tokens are included in the loss. Of the included tokens, 80% are `"[MASK]"` token, 2% are a random gene token, and 18% are the correct output token. Note that this was an unintentional deviation from the original publication, but so far it seems to be working well. In the future we will test the intended 80%/10%/10% mixture proposed in the paper. The token loss in the following table is the mean cross entropy loss of the 15% of tokens included in the loss mask averaged across cells. As a baseline geneformer was downloaded from [the ctheodoris/Geneformer page on hugging face on 2024/11/04](https://huggingface.co/ctheodoris/Geneformer) and applied to the same masking/unmasking problem on this dataset, but with model-specific cell representations due to the updated tokenizer and medians dictionary used to train, and the update from training with 2048 tokens to 4096 tokens per cell. The held-out `test` dataset from our training splits described previously was used, and it should be noted that some of these cells may have been involved in training the baseline geneformer. | Model Description | Token Loss (lower is better) | | ---------------------- | ---------------------------- | From dd7e636e00dbda2a99f73a2284da044d235e6425 Mon Sep 17 00:00:00 2001 From: "John St. John" Date: Tue, 5 Nov 2024 10:47:50 -0800 Subject: [PATCH 09/10] Update docs/docs/models/geneformer.md Co-authored-by: Peter St. John Signed-off-by: John St. John --- docs/docs/models/geneformer.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/models/geneformer.md b/docs/docs/models/geneformer.md index 5fab0655e4..45d8a4c955 100644 --- a/docs/docs/models/geneformer.md +++ b/docs/docs/models/geneformer.md @@ -208,8 +208,8 @@ The following describes the bert MLM token loss. Like in the original BERT paper * The model is trained with a 4096 context rather than a 2048 context. When forcing the model to make predictions with a 2048 context, the MLM loss drops to *2.76*, which is probably unfair because this may be "out of domain" for training. It is really hard to compare these loss numbers directly is the only take-home here. - * The model was trained on a set of 20275 genes, rather than the older set of 25426 genes. This would also be - expected to give a boost in loss since there are fewer tokens to chose from. + * The model was trained on a set of 20,275 genes, rather than the older set of 25,426 genes. This would also be + expected to give a boost in loss since there are fewer tokens to choose from. #### Downstream task accuracy From 16bef753171c2fe0e52098e1b666c27c46acb25b Mon Sep 17 00:00:00 2001 From: John St John Date: Tue, 5 Nov 2024 22:27:19 +0000 Subject: [PATCH 10/10] better error message when the tokenizer is not downloaded --- .../src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py index ad71be414b..a79ae52269 100644 --- a/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py +++ b/sub-packages/bionemo-geneformer/src/bionemo/geneformer/scripts/geneformer_mlm_loss_eval.py @@ -145,7 +145,7 @@ def main( case {"tokenizer": tokenizer, "median_dict": median_dict}: logging.info("*************** Preprocessing Finished ************") case _: - logging.error("Preprocessing failed.") + logging.error("Failed to download the tokenizer for the NV geneformer model.") assert False with open(hf_token_dictionary_path, "rb") as geneformer_hf_token_file: geneformer_hf_token_dict = pickle.load(geneformer_hf_token_file)