Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
@shiyu22 shiyu22 update 7df9ae3 Jan 16, 2020
1 contributor

Users who have contributed to this file

127 lines (76 sloc) 5.31 KB

Milvus 化学式检索

环境准备

组件 推荐配置
CPU Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
Memory 32GB
OS Ubuntu 18.04
Software Milvus daily-build:ubuntu18.04-cpu-d011620
pymilvus 0.2.7
mols-search-webserver 0.3.1
mols-search-webclient 0.3.0

以上配置已经通过测试,并且 Windows 系统也可以运行本次实验,以下步骤 Windows 系统通用。

数据准备

本次实验数据来源:ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF,该数据集是压缩的 SDF 文件,需要使用工具将其转换为 SMILES 文件,我们准备了转换后的一万条 SMILES 化学式文件 test_1w.smi,下载该文件到本地:

$ wget https://raw.githubusercontent.com/milvus-io/bootcamp/0.7.0_alpha/solutions/mols_search/smiles-data/test_1w.smi

部署流程

1. 启动 Milvus Docker

本次实验使用 Milvus daily-build版本,安装启动方法参考https://milvus.io/docs/v0.6.0/guides/get_started/install_milvus/cpu_milvus_docker.md ,由于该版本还未正式发布,建议不在生产环境中使用,若有问题和疑问欢迎提交 ISSUE

注意:请使用以下命令启动 Milvus Docker

# Start Milvus
$ docker run -d --name milvus_cpu \
-p 19530:19530 \
-p 8080:8080 \
-v /home/$USER/milvus/db:/var/lib/milvus/db \
-v /home/$USER/milvus/conf:/var/lib/milvus/conf \
-v /home/$USER/milvus/logs:/var/lib/milvus/logs \
milvusdb/daily-build:ubuntu18.04-cpu-d011620

2. 启动 mols-search-webserver docker

$ docker run -d -v <DATAPATH>:/tmp/data -p 35001:5000 -e "MILVUS_HOST=192.168.1.25" -e "MILVUS_PORT=19530" milvusbootcamp/mols-search-webserver:0.3.1

上述启动命令相关参数说明:

参数 说明
-v DATAPATH:/tmp/data -v 表示宿主机和 image 之间的目录映射
请将DATAPATH修改为你存放 test_1w.smi 数据的目录。
-p 35001:5000 -p 表示宿主机和 image 之间的端口映射
-e "MILVUS_HOST=192.168.1.25" -e 表示宿主机和 image 之间的系统参数映射
请修改192.168.1.25为启动 Milvus docker 的服务器 IP 地址
-e "MILVUS_PORT=19530" 请修改19530为启动 Milvus docker 的服务器端口号

3. 启动 mols-search-webclient docker

$ docker run -d --rm -p 8001:80 -e API_URL=http://192.168.1.25:35001 milvusbootcamp/mols-search-webclient:0.3.0

参数 -e API_URL=http://192.168.1.25:35001 与本节第二部分相对应,请修改192.168.1.25为启动 Milvus docker 的服务器 IP 地址。

4. 打开浏览器

# 请根据以上步骤修改 192.168.1.25 地址和 8001 端口
http://192.168.1.25:8001

界面展示

  • 初始界面

  • 加载化学式数据
    1. 在 path/to/your/data 中输入 smi 文件位置:/tmp/data/test_1w.smi
    2. 点击 + 加载按钮
    3. 可以观察到化学式数量的变化:10000 Molecular Formula in this set

  • 化学式检索
    1. 输入待检索的化学式并按回车,如:Cc1ccc(cc1)S(=O)(=O)N
    2. 选择 TopK 值,将在右侧返回相似度最高的前 TopK 个化学式

  • 清除化学式数据

    点击CLEAR ALL按钮,将清除所有化学式数据

结论

本次实验实现了 Milvus 化学式检索,在数据准备时也可以使用自带 SMILES 数据。经测试,Milvus 在三千七百万化学式库/九千万化学式库(特征向量512维)性能表现如下:

性能(三千七百万化学式库) 性能(九千万化学式库)
Milvus 单个化学式检索 190ms 480ms
Milvus 批量 50 个化学式检索 性能结果为每个化学式检索的平均时间 6ms 12ms

Milvus 内存占用情况如下:

三千七百万化学式库 九千万化学式库
Milvus 内存占用 2.6G 6G

可以看出,Milvus 在大规模化学式检索时有较快的检索性能和较低的内存占用。

基于 Milvus 我们搭建了九千多万的化学式检索系统 http://40.73.24.85 ,欢迎访问并检索您指定的化合物!

You can’t perform that action at this time.