Views
No views yet
1>>> from transformers import AutoTokenizer, AutoModelForCausalLM
2>>> tokenizer = AutoTokenizer.from_pretrained("chandar-lab/NovoMolGen_32M_SAFE_AtomWise", trust_remote_code=True)
3>>> model = AutoModelForCausalLM.from_pretrained("chandar-lab/NovoMolGen_32M_SAFE_AtomWise", trust_remote_code=True)1>>> from accelerate import Accelerator
2
3>>> acc = Accelerator(mixed_precision='bf16')
4>>> model = acc.prepare(model)
5
6>>> outputs = model.sample(tokenizer=tokenizer, batch_size=4)
7>>> print(outputs['SAFE'])revision="hf-checkpoint")hf-checkpoint revision. This version loads directly with AutoModelForCausalLM and works out-of-the-box with .generate(...).1>>> import torch
2>>> from transformers import AutoTokenizer, AutoModelForCausalLM
3
4>>> model = AutoModelForCausalLM.from_pretrained("chandar-lab/NovoMolGen_32M_SAFE_AtomWise", revision='hf-checkpoint', device_map='auto')
5>>> tokenizer = AutoTokenizer.from_pretrained("chandar-lab/NovoMolGen_32M_SAFE_AtomWise", revision='hf-checkpoint')
6
7>>> input_ids = torch.tensor([[tokenizer.bos_token_id]]).expand(4, -1).contiguous().to(model.device)
8>>> outs = model.generate(input_ids=input_ids, temperature=1.0, max_length=64, do_sample=True, pad_token_id=tokenizer.eos_token_id, top_k=1, top_p=0)
9
10>>> molecules = [t.replace(" ", "") for t in tokenizer.batch_decode(outs, skip_special_tokens=True)]
11['CCO[C@H](CNC(=O)N(CC(=O)OC(C)(C)C)c1cccc(Br)n1)C(F)(F)F',
12'CCn1nnnc1CNc1ncnc(N[C@H]2CCO[C@@H](C)C2)c1C',
13'CC(C)(O)CNC(=O)CC[C@H]1C[C@@H](NC(=O)COCC(F)F)C1',
14'Cc1ncc(C(=O)N2C[C@H]3[C@H](CNC(=O)c4cnn[nH]4)CCC[C@H]3C2)n1C']
151@misc{chitsaz2025novomolgenrethinkingmolecularlanguage,
2 title={NovoMolGen: Rethinking Molecular Language Model Pretraining},
3 author={Kamran Chitsaz and Roshan Balaji and Quentin Fournier and Nirav Pravinbhai Bhatt and Sarath Chandar},
4 year={2025},
5 eprint={2508.13408},
6 archivePrefix={arXiv},
7 primaryClass={cs.LG},
8 url={https://arxiv.org/abs/2508.13408},
9}