|
--- |
|
library_name: peft |
|
license: mit |
|
language: |
|
- en |
|
pipeline_tag: text-generation |
|
--- |
|
|
|
## Biogpt-Natural-Products-RE-Extended-synt-v1.0 |
|
|
|
Natural products represent a large pool of bioactive compounds of high interest in drug-discovery. However, these relationships are sparsely distributed across organisms and a growing part |
|
of the literature remains unannotated. This volume necessitates the development of a machine assistant to boost the completion of existing resources. Framing the task as an |
|
end-to-end Relation Extraction (RE), we propose a BioGPT model fined-tuned on synthetic data. See details about this procedure in the join [article](https://arxiv.org/abs/2311.06364). |
|
|
|
The model is a derived from [microsoft/BioGPT-Large](hhttps://huggingface.co/microsoft/BioGPT-Large) and was trained on a synthetic dataset *Extended-synt* available on zenodo. |
|
|
|
Dataset: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8422294.svg)](https://doi.org/10.5281/zenodo.8422294) |
|
|
|
You can use the model directly as: |
|
|
|
## Example |
|
|
|
```python |
|
import torch |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, AutoTokenizer |
|
from peft import PeftModel |
|
|
|
model_hf = "microsoft/BioGPT-Large" |
|
lora_adapters = "mdelmas/BioGPT-Large-Natural-Products-RE-Extended-synt-v1.0" |
|
|
|
# Load model and plug adapters using peft |
|
model = AutoModelForCausalLM.from_pretrained(model_hf) |
|
model = PeftModel.from_pretrained(model, lora_adapters) |
|
model = model.merge_and_unload() |
|
tokenizer = AutoTokenizer.from_pretrained(model_hf) |
|
|
|
# Example from PubMed article 24048364 |
|
title_text = "Producers and important dietary sources of ochratoxin A and citrinin." |
|
abstract_text = "Ochratoxin A (OTA) is a very important mycotoxin, and its research is focused right now on the new findings of OTA, like being a complete carcinogen, information about OTA producers and new exposure sources of OTA. Citrinin (CIT) is another important mycotoxin, too, and its research turns towards nephrotoxicity. Both additive and synergistic effects have been described in combination with OTA. OTA is produced in foodstuffs by Aspergillus Section Circumdati (Aspergillus ochraceus, A. westerdijkiae, A. steynii) and Aspergillus Section Nigri (Aspergillus carbonarius, A. foetidus, A. lacticoffeatus, A. niger, A. sclerotioniger, A. tubingensis), mostly in subtropical and tropical areas. OTA is produced in foodstuffs by Penicillium verrucosum and P. nordicum, notably in temperate and colder zones. CIT is produced in foodstuffs by Monascus species (Monascus purpureus, M. ruber) and Penicillium species (Penicillium citrinum, P. expansum, P. radicicola, P. verrucosum). OTA was frequently found in foodstuffs of both plant origin (e.g., cereal products, coffee, vegetable, liquorice, raisins, wine) and animal origin (e.g., pork/poultry). CIT was also found in foodstuffs of vegetable origin (e.g., cereals, pomaceous fruits, black olive, roasted nuts, spices), food supplements based on rice fermented with red microfungi Monascus purpureus and in foodstuffs of animal origin (e.g., cheese)." |
|
text = title_text + " " + abstract_text |
|
|
|
# Tokenization |
|
input_text = text + tokenizer.eos_token + tokenizer.bos_token |
|
input_tokens = tokenizer(input_text, return_tensors='pt') |
|
|
|
# Decoding parameters |
|
EVAL_GENERATION_ARGS = {"max_length": 1024, |
|
"do_sample": False, |
|
"forced_eos_token_id": tokenizer.eos_token_id, |
|
"num_beams": 3, |
|
"early_stopping": "never", |
|
"length_penalty": 1.5, |
|
"temperature": 0} |
|
|
|
# Generation |
|
with torch.no_grad(): |
|
beam_output = model.generate(**input_tokens, **EVAL_GENERATION_ARGS) |
|
output = tokenizer.decode(beam_output[0][len(input_tokens["input_ids"][0]):], skip_special_tokens=True) |
|
|
|
# Parse and print |
|
rels = output.strip().split("; ") |
|
for rel in rels: |
|
print("- " + rel) |
|
``` |
|
|
|
## Citation |
|
|
|
If you find this model useful, please cite: |
|
|
|
```latex |
|
|
|
``` |
|
|