deskull commited on
Commit
baa137c
·
verified ·
1 Parent(s): d8fc632

docs(card): fix Model Description architecture mislabel and parameter count + fix Usage example

Browse files
Files changed (1) hide show
  1. README.md +28 -19
README.md CHANGED
@@ -20,7 +20,7 @@ pipeline_tag: fill-mask
20
 
21
  ## Model Description
22
 
23
- GPT-2 medium (345M parameters) foundation model pre-trained on RNA gene expression sequences from the MolCrawl dataset.
24
 
25
  - **Model Type**: bert
26
  - **Data Type**: RNA
@@ -28,31 +28,40 @@ GPT-2 medium (345M parameters) foundation model pre-trained on RNA gene expressi
28
 
29
  ## Usage
30
 
 
 
 
 
 
 
 
31
  ```python
32
- from transformers import AutoModelForMaskedLM, AutoTokenizer
33
  import torch
 
34
 
35
- model = AutoModelForMaskedLM.from_pretrained("kojima-lab/molcrawl-rna-bert-medium")
36
- tokenizer = AutoTokenizer.from_pretrained("kojima-lab/molcrawl-rna-bert-medium")
 
 
37
 
38
- # Predict masked RNA token
39
- # Use tokenizer.mask_token instead of hardcoded "[MASK]":
40
- # BERT-style tokenizers vary ("[MASK]", "<mask>", etc.)
41
- if tokenizer.mask_token is None:
42
- raise ValueError("This tokenizer has no mask_token; masked LM inference is not supported.")
43
- prompt = "AUGCAUGC{MASK}AUGCAUGC".replace("{MASK}", tokenizer.mask_token)
44
- inputs = tokenizer(prompt, return_tensors="pt")
45
- mask_index = (inputs["input_ids"] == tokenizer.mask_token_id).nonzero(as_tuple=True)[1]
 
 
 
46
 
47
  with torch.no_grad():
48
- outputs = model(**inputs)
49
- logits = outputs.logits
50
-
51
- predicted_token_id = logits[0, mask_index].argmax(dim=-1)
52
- predicted_token = tokenizer.decode(predicted_token_id)
53
- result = prompt.replace(tokenizer.mask_token, predicted_token)
54
- print(f"Predicted: {result}")
55
 
 
 
 
56
  ```
57
 
58
  ## Source Code
 
20
 
21
  ## Model Description
22
 
23
+ BERT-medium foundation model (~332M parameters, 24-layer / 1024-hidden / 16-head topology, sized to match GPT-2-medium) pre-trained on RNA gene expression sequences from the MolCrawl dataset.
24
 
25
  - **Model Type**: bert
26
  - **Data Type**: RNA
 
28
 
29
  ## Usage
30
 
31
+ This tokenizer is a WordLevel vocab of ENSEMBL gene IDs only (no text-mode
32
+ pre-tokenizer). Feed the input as a Python list of gene-ID tokens (one
33
+ position may be `tokenizer.mask_token`) and resolve to IDs through
34
+ `convert_tokens_to_ids` — calling `tokenizer("AUGC...")` on raw nucleotide
35
+ strings collapses to `[UNK]` and the MLM head returns a uniform-prior
36
+ prediction.
37
+
38
  ```python
 
39
  import torch
40
+ from transformers import AutoModelForMaskedLM, AutoTokenizer
41
 
42
+ REPO_ID = "kojima-lab/molcrawl-rna-bert-medium"
43
+ tokenizer = AutoTokenizer.from_pretrained(REPO_ID)
44
+ model = AutoModelForMaskedLM.from_pretrained(REPO_ID)
45
+ model.eval()
46
 
47
+ # Gene-expression masked prediction (ENSEMBL gene IDs in rank order).
48
+ genes = [
49
+ "ENSG00000000003",
50
+ "ENSG00000000005",
51
+ tokenizer.mask_token, # mask one position to predict
52
+ "ENSG00000001167",
53
+ "ENSG00000002586",
54
+ ]
55
+ ids = tokenizer.convert_tokens_to_ids(genes)
56
+ input_ids = torch.tensor([ids])
57
+ mask_index = (input_ids == tokenizer.mask_token_id).nonzero(as_tuple=True)[1]
58
 
59
  with torch.no_grad():
60
+ outputs = model(input_ids=input_ids)
 
 
 
 
 
 
61
 
62
+ predicted_id = outputs.logits[0, mask_index].argmax(dim=-1)
63
+ predicted_gene = tokenizer.convert_ids_to_tokens(predicted_id.tolist())[0]
64
+ print(f"Predicted gene at mask: {predicted_gene}")
65
  ```
66
 
67
  ## Source Code