Geração de moléculas guiadas por texto com modelo de linguagem de difusão

Este é o código para o papel AAAI 2024: geração de moléculas guiadas por texto com modelo de linguagem de difusão.
Uso
Dados em papel
- Instale o pacote
cd TGMDLMCODE; pip install -e improved-diffusion/; pip install -e transformers/ . - Faça o download do Scibert e coloque -o no arquivo
scibert .
Treinamento
-
cd improved-diffusion; cd scripts - Encodes de entrada de texto
python process_text.py -i train_val_256; python process_text.py -i test - Modelo de trem para a fase um:
python train.py - Modelo de trem para a fase dois:
python train_correct_withmask.py
Os seguintes detalhes são importantes para você saber antes de treinar esse modelo sozinho!
- Para este modelo, sempre precisa de mais de 100.000 etapas de treinamento antes de amostragem, para que você possa obter um resultado normal. O perfoma converge muito tempo após a convergência da perda.
- A perda finalmente converge para cerca de 0,015 (esse valor depende da quantidade de parâmetros treináveis, 0,015 é para o modelo neste código. Dentro da faixa de Razão, maior o modelo, menor a perda). É possível que a perda em seu experimento não converja para 0,015 (abaixo de 0,02) e presa em um valor alto relativamente alto (como 0,08), sugerimos que você execute novamente o procedimento de treinamento com outra semente aleatória. Normalmente, a perda deve convergir muito rapidamente para abaixo de 0,03 dentro de 15.000 etapas. Se sua perda não se comportar, tente outra hora :) (Obrigado a @yhanjg que relatam esse problema)
Não temos idéia de por que esse problema aparecerá. Eu observei uma vez que a perda ficou em alto valor, e outro pesquisador me alcança depois de executar meu código e relatar esse problema também. Este problema deve ser corrigido após metade da taxa de aprendizado :)
Amostragem
-
python text_sample.py; python post_sample.py O arquivo final OURMODEL_OUTPUT.txt é a nossa saída.
Avaliação
Você pode avaliar todas as métricas, exceto o text2mol executando ev.py Para text2mol, vá ao Molt5 para obter mais detalhes.
Requisitos
- Python3
- Pytorch 2.0
- Transformers (tenha cuidado para seguir exatamente a instalação do ReadMe.)
Citação
Cite nosso papel se você usar o código:
@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}
}
Reconhecer
Este código é baseado em https://github.com/xiangli1999/diffusion-lm e https://github.com/blender-nlp/molt5