File size: 4,702 Bytes
3c77cc4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1cb4b4f
3c77cc4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7bcfe52
 
3c77cc4
 
7bcfe52
 
 
3c77cc4
 
 
 
 
 
 
 
 
7bcfe52
 
 
 
3c77cc4
 
 
 
 
 
 
 
 
 
 
 
6d2cffb
 
3c77cc4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
language:
- en
license: mit
tags:
- chemistry
- SMILES
- retrosynthesis
datasets:
- ORD
metrics:
- accuracy
---

# Model Card for ReactionT5v2-retrosynthesis

This is a ReactionT5 pre-trained to predict the reactants of reactions. You can use the demo [here](https://huggingface.co/spaces/sagawa/ReactionT5_task_retrosynthesis).


### Model Sources

<!-- Provide the basic links for the model. -->

- **Repository:** https://github.com/sagawatatsuya/ReactionT5v2
- **Paper:** https://arxiv.org/abs/2311.06708
- **Demo:** https://huggingface.co/spaces/sagawa/ReactionT5_task_retrosynthesis

## Uses

<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
You can use this model for retrosynthesis prediction or fine-tune this model with your dataset.


## How to Get Started with the Model

Use the code below to get started with the model.

```python
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("sagawa/ReactionT5v2-retrosynthesis", return_tensors="pt")
model = AutoModelForSeq2SeqLM.from_pretrained("sagawa/ReactionT5v2-retrosynthesis")

inp = tokenizer('CCN(CC)CCNC(=S)NC1CCCc2cc(C)cnc21', return_tensors='pt')
output = model.generate(**inp, num_beams=1, num_return_sequences=1, return_dict_in_generate=True, output_scores=True)
output = tokenizer.decode(output['sequences'][0], skip_special_tokens=True).replace(' ', '').rstrip('.')
output # 'CCN(CC)CCN=C=S.Cc1cnc2c(c1)CCCC2N'
```

## Training Details

### Training Procedure 

<!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
We used the [Open Reaction Database (ORD) dataset](https://drive.google.com/file/d/1fa2MyLdN1vcA7Rysk8kLQENE92YejS9B/view?usp=drive_link) for model training. In addition, we used [USPTO_50k dataset](https://yzhang.hpc.nyu.edu/T5Chem/index.html)'s test split to prevent data leakage.
The command used for training is the following. For more information about data preprocessing and training, please refer to the paper and GitHub repository.

```python
cd task_retrosynthesis
python train.py \
    --output_dir='t5' \
    --epochs=80 \
    --lr=2e-4 \
    --batch_size=32 \
    --input_max_len=100 \
    --target_max_len=150 \
    --weight_decay=0.01 \
    --evaluation_strategy='epoch' \
    --save_strategy='epoch' \
    --logging_strategy='epoch' \
    --train_data_path='../data/preprocessed_ord_train.csv' \
    --valid_data_path='../data/preprocessed_ord_valid.csv' \
    --test_data_path='../data/preprocessed_ord_test.csv' \
    --USPTO_test_data_path='../data/USPTO_50k/test.csv' \
    --pretrained_model_name_or_path='sagawa/CompoundT5'
```

### Results

| Model                | Training set              | Test set | Top-1 [% acc.] | Top-2 [% acc.] | Top-3 [% acc.] | Top-5 [% acc.] |
|----------------------|---------------------------|----------|----------------|----------------|----------------|----------------|
| Sequence-to-sequence | USPTO_50k                 | USPTO_50k    | 37.4           | -           | 52.4           | 57.0           |
| Molecular Transformer| USPTO_50k                 | USPTO_50k    | 43.5           | -           | 60.5              | -           |
| SCROP                | USPTO_50k                 | USPTO_50k    | 43.7           | -          | 60.0           | 65.2           |
| T5Chem               | USPTO_50k                 | USPTO_50k    | 46.5           | -           | 64.4              | 70.5           |
| CompoundT5           | USPTO_50k                 | USPTO_50k    | 44,2           | 55.2           | 61.4           | 67.3           |
| [ReactionT5 (This model)](https://huggingface.co/sagawa/ReactionT5v2-retrosynthesis) | -                       | USPTO_50k    | 13.8     | 18.6     | 21.4     | 26.2     |
| [ReactionT5](https://huggingface.co/sagawa/ReactionT5v2-retrosynthesis-USPTO_50k)           | USPTO_50k                       | USPTO_50k    | 71.2     | 81.4     | 84.9     | 88.2     |

Performance comparison of Compound T5, ReactionT5, and other models in product prediction.

## Citation

<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
arxiv link: https://arxiv.org/abs/2311.06708
```
@misc{sagawa2023reactiont5,  
      title={ReactionT5: a large-scale pre-trained model towards application of limited reaction data}, 
      author={Tatsuya Sagawa and Ryosuke Kojima},  
      year={2023},  
      eprint={2311.06708},  
      archivePrefix={arXiv},  
      primaryClass={physics.chem-ph}  
}
```