Generasi molekul yang dipandu teks dengan model bahasa difusi

Ini adalah kode untuk makalah AAAI 2024: pembuatan molekul yang dipandu teks dengan model bahasa difusi.
Penggunaan
Data kertas
- Instal Paket
cd TGMDLMCODE; pip install -e improved-diffusion/; pip install -e transformers/ . - Unduh Scibert dan masukkan ke dalam file
scibert .
Pelatihan
-
cd improved-diffusion; cd scripts - Encode input teks
python process_text.py -i train_val_256; python process_text.py -i test - Model kereta untuk fase satu:
python train.py - Model kereta untuk fase dua:
python train_correct_withmask.py
Rincian berikut penting untuk Anda ketahui sebelum Anda benar -benar melatih model ini sendiri!
- Untuk model ini, selalu membutuhkan lebih dari 100.000 langkah pelatihan sebelum pengambilan sampel sehingga Anda bisa mendapatkan hasil yang normal. Perfomance bertemu lama setelah konvergensi kerugian.
- Kerugian akhirnya akan menyatu menjadi sekitar 0,015 (nilai ini tergantung pada jumlah parameter yang dapat dilatih, 0,015 adalah untuk model dalam kode ini. Dalam kisaran Alasan, lebih besar model, lebih kecil kerugian). Ada kemungkinan bahwa kerugian dalam percobaan Anda tidak akan menyatu menjadi 0,015 (di bawah 0,02) dan terjebak pada nilai tinggi relatif (seperti 0,08), kami sarankan Anda menjalankan kembali prosedur pelatihan dengan benih acak lainnya. Biasanya, kerugian harus menyatu dengan sangat cepat di bawah 0,03 dalam 15.000 langkah. Jika kehilangan Anda tidak berperilaku demikian, coba saja lain :) (Terima kasih kepada @yhanjg yang melaporkan masalah ini)
Kami tidak tahu mengapa masalah ini akan muncul. Saya memang mengamati bahwa kerugian itu macet pada nilai tinggi, dan peneliti lain menjangkau saya setelah menjalankan kode saya dan melaporkan masalah ini juga. Masalah ini harus diperbaiki setelah kita setengah dari tingkat pembelajaran :)
Contoh
-
python text_sample.py; python post_sample.py file terakhir OURMODEL_OUTPUT.txt adalah output kami.
Evaluasi
Anda dapat mengevaluasi semua metrik kecuali untuk text2mol dengan menjalankan ev.py Untuk text2mol silakan kunjungi Molt5 untuk lebih jelasnya.
Persyaratan
- Python3
- Pytorch 2.0
- Transformers (berhati -hatilah untuk mengikuti instalasi ReadMe dengan tepat.)
Kutipan
Harap kutip kertas kami jika Anda menggunakan kode:
@article{gong2024text,
title={Text-Guided Molecule Generation with Diffusion Language Model},
author={Gong, Haisong and Liu, Qiang and Wu, Shu and Wang, Liang},
volume={38},
url={https://ojs.aaai.org/index.php/AAAI/article/view/27761},
DOI={10.1609/aaai.v38i1.27761},
number={1},
journal={Proceedings of the AAAI Conference on Artificial Intelligence},
year={2024},
month={Mar.},
pages={109-117}
}
Mengakui
Kode ini didasarkan pada https://github.com/xiangli1999/diffusion-lm dan https://github.com/blender-nlp/molt5