Awesome
<h1 align="center"> 🐹 DrugAssist </h1> <h3 align="center"> A Large Language Model for Molecule Optimization </h3> <p align="center"> 📃 <a href="https://arxiv.org/abs/2401.10334" target="_blank">Paper</a> • 🤗 <a href="https://huggingface.co/datasets/blazerye/MolOpt-Instructions" target="_blank">Dataset</a> • 🤗 <a href="https://huggingface.co/blazerye/DrugAssist-7B" target="_blank">Model</a><br> </p> <div align="center"> <img src="fig/logo.png" width="200"> </div>📌 Contents
🛠️ Install
- Clone this repository and navigate to DrugAssist folder
git clone https://github.com/blazerye/DrugAssist.git
cd DrugAssist
- Install Package
conda create -n drugassist python=3.8 -y
conda activate drugassist
pip install -r requirements.txt
🤗 Dataset
We release the dataset on Hugging Face at blazerye/MolOpt-Instructions, and you can use it for training.
🚆 Train
You can use LoRA to finetune Llama2-7B-Chat
model on the MolOpt-Instructions
dataset, the running command is as follows:
sh run_sft_lora.sh
👀 Demo
Step 1: Merge model weights
You can merge LoRA weights to generate full model weights using the following command:
python merge_model.py \
--base_model $BASE_MODEL_PATH \
--lora_model $LORA_MODEL_PATH \
--output_dir $OUTPUT_DIR \
--output_type huggingface \
--verbose
Alternatively, you can download our DrugAssist model weights from blazerye/DrugAssist-7B.
Step 2: Launch web demo
You can use gradio to launch web demo by running the following command:
python gradio_service.py \
--base_model $FULL_MODEL_PATH \
--ip $IP \
--port $PORT
<div align="center">
<img src="fig/demo.png" width="500">
</div>
Deploy the Quantized Model and Use Text-Generation-WebUI For Inference
In order to deploy DrugAssist model on devices with lower hardware configurations (such as personal laptops without GPUs), we used llama.cpp to perform 4-bit quantization on the DrugAssist-7B model, resulting in the DrugAssist-7B-4bit model. You can use the text-generation-webui tool to load and use this quantized model. For specific methods, please refer to the quantized_model_deploy.md.
<div align="center"> <img src="fig/webui.png" width="700"> </div>⚖️ Evaluate
After deploying the DrugAssist-7B model, you can refer to the evaluate.md document and run the evaluate script to verify the molecular optimization results.
📝 About
Citation
If you find DrugAssist useful for your research and applications, please cite using this BibTeX:
@article{ye2023drugassist,
title={DrugAssist: A Large Language Model for Molecule Optimization},
author={Ye, Geyan and Cai, Xibao and Lai, Houtim and Wang, Xing and Huang, Junhong and Wang, Longyue and Liu, Wei and Zeng, Xiangxiang},
journal={arXiv preprint arXiv:2401.10334},
year={2023}
}
Acknowledgements
We appreciate LLaMA, Chinese-LLaMA-Alpaca-2, Alpaca, iDrug and many other related works for their open-source contributions.