Experimental roberta-base model pretrained from scratch on factual information -------------------------------------------------- # Thanks to LAION contributors and Stability.ai for help building datasets and compute resources. # Using the model: This is a BERT style model pretrained using the masked language modeling task `(MLM)` The model was trained like a standard roberta-base model, except it was only trained on sequences of 128 tokens. I believe there is a bug in the training script that doesn't properly assign the `` and `` tokens. So make sure to manually remove those from your outputs. ``` from transformers import AutoTokenizer, AutoModelForMaskedLM import torch checkpoint="Rallio67/roberta-base-128-factchecker" tokenizer = AutoTokenizer.from_pretrained(checkpoint) model = AutoModelForMaskedLM.from_pretrained(checkpoint, torch_dtype=torch.float16).cuda(0) print(checkpoint) text="""Neurospora crassa is a species of filamentous fungi that is widely used in genetic and molecular biology research. It is known for its fast growth rate, relatively simple life cycle, and ability to undergo sexual and asexual reproduction. Here are some specific areas of research where Neurospora crassa is commonly used: Genetics and Genomics: Neurospora crassa was one of the first organisms to have its entire genome sequenced, making it a model organism for studying gene expression, gene regulation, and functional genomics.""" input = tokenizer.encode(text) original_tokens=input[1:-1] print("Text length:",len(input)) sequences=[] for i in range(1,len(input)-2): newentry=input.copy() newentry[i]=50264 sequences.append(tokenizer.decode(newentry[1:-1])) for sequence in sequences: input = tokenizer(sequence, truncation=True, padding=True, return_tensors="pt") output = model(input["input_ids"].cuda(0)) predicted_token_id = output[0][0].argmax(axis=-1) predicted_fixed=predicted_token_id[1:-1] replaced=(tokenizer.decode(predicted_token_id[1:-1],skip_special_tokens=True)) for z,i in enumerate(input['input_ids'][0]): if i.item() == 50264: original=tokenizer.decode(original_tokens[z-5:z+5]) replace=tokenizer.decode(predicted_fixed[z-5:z+5]) if original != replace: print("Original: "+original,"\n","Replace: "+replace,"\n"+"-"*8) ``` # Outputs: ``` Rallio67/roberta-base-128-factchecker Text length: 112 Original: species of filamentous fungi that is widely used in Replace: species of filamentous fungus that is widely used in -------- Original: ous fungi that is widely used in genetic and molecular Replace: ous fungi that is commonly used in genetic and molecular -------- Original: is widely used in genetic and molecular biology research. Replace: is widely used in evolutionary and molecular biology research. -------- ```