Views
No views yet
| field | value |
|---|---|
| model_type | modernbert |
| vocab_size | 631 |
| hidden_size | 512 |
| num_hidden_layers | 8 |
| num_attention_heads | 8 |
| intermediate_size | 2048 |
| max_position_embeddings | 128 |
1# pip install transformers torch
2import torch
3from transformers import AutoModel, AutoTokenizer
4
5repo = 'HauserGroup/ModernMolBERT-small'
6model = AutoModel.from_pretrained(repo).eval()
7tokenizer = AutoTokenizer.from_pretrained(
8 repo,
9 subfolder='ape_tokenizer',
10 trust_remote_code=True,
11 use_fast=False,
12)
13
14# A SELFIES string (one bracketed token per primitive); here psilocybin.
15selfies = '[C][N][Branch1][C][C][C][C][C][=C][NH1][C][=C][C][=C][C][Branch1][#Branch2][O][P][=Branch1][C][=O][Branch1][C][O][O][=C][Ring1][=C][Ring1][O]'
16
17inputs = tokenizer(selfies, return_tensors='pt')
18with torch.no_grad():
19 outputs = model(**inputs)
20 embedding = outputs.last_hidden_state[:, 0]
21
22tokens = tokenizer.convert_ids_to_tokens(inputs['input_ids'][0])
23embedding_preview = [round(x, 4) for x in embedding[0, :5].tolist()]
24print(f"Token IDs:\n{inputs['input_ids'][0].tolist()}\n")
25print(f"Tokens:\n{tokens}\n")
26print(f"Embedding shape: {tuple(embedding.shape)}")
27print(f"Embedding first 5 values:\n{embedding_preview}")1Token IDs:
2[0, 352, 336, 334, 334, 7, 406, 388, 388, 392, 489, 335, 18, 336, 426, 482, 482, 6, 2]
3
4Tokens:
5['<s>', '[C][N]', '[Branch1][C]', '[C][C]', '[C][C]', '[=C]', '[NH1][C]', '[=C][C]', '[=C][C]', '[Branch1][#Branch2]', '[O][P]', '[=Branch1][C]', '[=O]', '[Branch1][C]', '[O][O]', '[=C][Ring1]', '[=C][Ring1]', '[O]', '</s>']
6
7Embedding shape: (1, 512)
8Embedding first 5 values:
9[-0.1029, 0.2197, -0.0518, -0.7983, -0.6783]selfies package: selfies.encoder("CC(=O)Oc1ccccc1C(=O)O")).AutoModelForMaskedLM:1from transformers import AutoModelForMaskedLM
2
3mlm = AutoModelForMaskedLM.from_pretrained(repo)
4logits = mlm(**inputs).logits
5print(f"Logits shape: {tuple(logits.shape)}")Logits shape: (1, 19, 631)Current Transformers releases disable custom root tokenizers formodel_type='modernbert'before loadingauto_map, so the tokenizer must be loaded fromape_tokenizer/. The root tokenizer files are also shipped for forward compatibility.