OpenFold2.0 基于NPU的推理适配与测试

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本教程详细介绍了 OpenFold 的环境搭建、代码部署、依赖安装、数据集准备及推理测试全流程。首先通过 Anaconda 创建 Python3.9 环境并配置相关库,接着克隆 OpenFold 代码仓库并安装必要依赖(如 PyTorch、dllogger、hhsuite 等)。随后准备 PDB 数据集与模型参数,调整脚本路径以适配运行环境。最后执行推理脚本完成测试,并针对常见报错提供了解决方案,例如更新 NumPy、SciPy 或调整 GPU 配置等,确保流程顺利运行。

环境搭建

#下载安装包
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-aarch64.sh
chmod +x Anaconda3-2024.10-1-Linux-aarch64.sh #安装
bash Anaconda3-2024.10-1-Linux-aarch64.sh #设置环境变量
vim ~/.bashrc
export PATH=/home/openfold/anaconda3/bin:$PATH :wq
source ~/.bashrc
#创建 python3.9 环境,并激活环境
conda init
conda create -n openfold_env python=3.9
conda activate openfold_env
#配置 conda 的 lib 库
vim ~/.bashrc
export LD_LIBRARY_PATH=/home/openfold/anaconda3/lib:$LD_LIBRARY_PATH :wq
source ~/.bashrc

下载代码及安装依赖

#下载代码
cd /home/openfold
git clone https://gitee.com/ascend/ModelZoo-PyTorch.git
#安装依赖
cd /home/openfold/ModelZoo-PyTorch/PyTorch/built-in/others/OpenFold_for_PyTorch
pip3 install -r 2.1_requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip install git+https://github.com/NVIDIA/dllogger.git
pip install torch==2.1.0 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple #下载安装 torch_npu
wget https://gitee.com/ascend/pytorch/releases/download/v6.0.0.1-pytorch2.1.0/torch_npu- 2.1.0.post11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip3 install torch_npu-2.1.0.post11-cp39-cp39- manylinux_2_17_aarch64.manylinux2014_aarch64.whl
#安装其它依赖
conda install -c bioconda -c conda-forge hhsuite
conda install -c bioconda kalign2
conda install -c bioconda -c conda-forge mmseqs2
conda install -c conda-forge openmm=7.7.0
conda install -c conda-forge pdbfixer
#构建安装 openfold
bash scripts/install_third_party_dependencies.sh python setup.py install

数据集准备

#安装 aws
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip sudo ./aws/install #获取 pdb_mmcif 数据集 mkdir pdb_data
aws s3 cp s3://openfold/pdb_mmcif.zip pdb_data/ --no-sign-request #获取 duplicate_pdb_chains.txt
aws s3 cp s3://openfold/duplicate_pdb_chains.txt . --no-sign-request 解压 pdb_data
cd pdb_data
unzip pdb_mmcif.zip -d pdb_data
#下载参数
bash scripts/download_alphafold_params.sh openfold/resources
#修改 param 路径
vim /home/openfold/ModelZoo-PyTorch/PyTorch/built- in/others/OpenFold_for_PyTorch/examples/monomer/../../run_pretrained_openfold.py
line 490 改为:
"/home/openfold/ModelZoo-PyTorch/PyTorch/built-in/others/OpenFold_for_PyTorch/openfold", "resources", "params",
#修改 inference.sh
#修改数据集路径和 device
cd examples/monome
vim inference.sh
export MMCIF_DIR=../../pdb_data/mmcif_files/ --model_device "npu:0"

推理测试

#执行推理脚本 
bash inference.sh

v2-eec544ae7fb1a329944dbb62c7f5e988_1440w.png

报错与解决方法

1、报错 ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/openfold/anaconda3/envs/openfold_env/lib/python3.9/site- packages/numpy/fft/_pocketfft_umath.cpython-39-aarch64-linux-gnu.so)

#更新 numpy 版本
pip3 uninstall numpy
pip3 install numpy==1.24.0

2、报错 ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/openfold/anaconda3/envs/openfold_env/lib/python3.9/site- packages/scipy/spatial/_ckdtree.cpython-39-aarch64-linux-gnu.so)

pip3 uninstall scipy
pip install --no-binary :all: scipy

3、报错 aria2c: /home/openfold/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/openfold/anaconda3/envs/openfold_env/bin/../lib/././libicuuc.so.75)

conda install -c conda-forge libstdcxx-ng=12.2.0

4、报错:There is no registered Platform called “CUDA” ValueError:Minimization failed after 100 attempts.

vim ../../openfold/np/relax/amber_minimize.py # 修改 use_gpu 为 False
相关文章
|
4月前
鸿蒙开发:实现一个标题栏吸顶
本身并不难,处理好滑动位置和手势即可,当然了,里面也有两个注意的点,一个是解决手势冲突的nestedScroll,这个之前的文章中讲过,还有一个就是拦截瀑布流组件的滑动事件,在某些状态下禁止它的滑动。
188 49
鸿蒙开发:实现一个标题栏吸顶
|
4月前
|
并行计算 PyTorch 开发工具
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
OpenFold是一种基于深度学习的蛋白质结构预测模型,广泛应用于蛋白质从头预测、功能位点解析、突变效应模拟等领域。该模型的核心目标是通过大规模预训练和多阶段优化,从氨基酸序列中高效、准确地推断蛋白质的三维结构。
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
|
资源调度
时间轴组件react-native-step-indicator使用
时间轴组件react-native-step-indicator使用
856 0
时间轴组件react-native-step-indicator使用
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI agent
AI Agent:从被动工具到主动伙伴,人工智能的下一场革命。它具备规划、工具调用、自主执行与迭代能力,不再是鹦鹉学舌的模型,而是能在数字世界替我们“动手做事”的智能体。依托大语言模型、推理框架与API工具链,AI Agent正重塑办公、客服、科研、生活等各领域,开启“人类指挥,AI执行”的人机协作新时代。尽管面临可靠性、安全与成本挑战,它仍标志着AI从“感知”迈向“行动”的关键跃迁。
|
4月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL图构建接口的PyG替换
本文探讨了在图神经网络中将DGL接口替换为PyG实现的方法,重点以RFdiffusion蛋白质设计模型中的SE3Transformer为例。SE3Transformer通过SE(3)等变性提取三维几何特征,其图构建部分依赖DGL接口。文章详细介绍了两个关键函数的替换:`make_full_graph` 和 `make_topk_graph`。前者构建完全连接图,后者生成k近邻图。通过PyG的高效实现(如`knn_graph`),我们简化了图结构创建过程,并调整边特征处理逻辑以兼容不同框架,从而更好地支持昇腾NPU等硬件环境。此方法为跨库迁移提供了实用参考。
|
11月前
|
API
周公解梦免费API接口教程
该接口提供数万个解梦数据,支持通过用户ID、用户KEY和关键词查询梦的解析。支持POST/GET请求,返回状态码、消息内容、结果集等信息。示例请求地址:https://cn.apihz.cn/api/mingli/zhougong.php?id=88888888&key=88888888&word=捞鱼。返回数据包括梦的标题、内容等。
|
11月前
|
监控 PyTorch 数据处理
通过pin_memory 优化 PyTorch 数据加载和传输:工作原理、使用场景与性能分析
在 PyTorch 中,`pin_memory` 是一个重要的设置,可以显著提高 CPU 与 GPU 之间的数据传输速度。当 `pin_memory=True` 时,数据会被固定在 CPU 的 RAM 中,从而加快传输到 GPU 的速度。这对于处理大规模数据集、实时推理和多 GPU 训练等任务尤为重要。本文详细探讨了 `pin_memory` 的作用、工作原理及最佳实践,帮助你优化数据加载和传输,提升模型性能。
917 4
通过pin_memory 优化 PyTorch 数据加载和传输:工作原理、使用场景与性能分析
|
人工智能 Java 测试技术
低成本工程实践-AI帮我写代码做需求
本文主要讲述,以“无需训练模型”的方式实现:AI智能分析功能需求、写代码、review代码解决特定业务问题的实践过程
515 12
低成本工程实践-AI帮我写代码做需求
|
消息中间件 数据安全/隐私保护 Windows
windows下RabbitMQ安装后,无法进入web管理页面问题
windows下RabbitMQ安装后,无法进入web管理页面问题
1237 1