学习记录:创建scgpt虚拟环境,用于微调预训练模型,用于下游任务

652 阅读5分钟

创建scgpt虚拟环境

首先,scgpt的github需求Python >= 3.7.13,使用micromamba创建虚拟环境(如果使用conda创建虚拟环境只需将micromamba换成conda):

micromamba create --name scgpt python=3.10

激活虚拟环境: micromamba activate scgpt

成功版本

安装指定版本的jax和jaxlib pip install --upgrade jax==0.3.15 jaxlib==0.3.15+cuda11.cudnn82 optax==0.1.2 -f storage.googleapis.com/jax-release… 安装成功截图 Snipaste_2024-11-05_20-52-12.png

使用micromamba安装 R 语言的基础环境以及 devtools 这个 R 包

 micromamba install -c conda-forge r-base r-devtools

然后,安装,packagingninja这两个辅助工具,然后以一种特定的方式安装了flash-attn的1.0.4版本,可能是为了确保安装过程中能够正确地访问和利用已经存在的依赖项。

pip install packaging ninja pip install flash-attn==1.0.4 --no-build-isolation

报错

Snipaste_2024-11-05_20-59-46.png 分布安装

pip install packaging ninja

成功

flash-attn失败,解决方法:尝试先安装pytorch

使用pip安装在固定torch,jax,jaxlib,torchmetrics,numpy,optax版本的情况下,安装scvi-tools及其依赖安装 scvi-tools 及其依赖项

pip install torch==1.13.0+cu117 jax==0.3.15 jaxlib==0.3.15+cuda11.cudnn82 numpy==1.21.6 torchmetrics==0.9.1 optax==0.1.2 tensorboard==2.8.0 orbax==0.1.0 scanpy==1.9.1 scvi-tools==0.16.4 cell-gears==0.0.2 datasets==2.3.2 scib==1.0.3 torchtext pandas==1.3.5 numba==0.55.2 matplotlib==3.6 scikit-misc statsmodels anndata scipy tqdm h5py docrep flax ipywidgets numpyro openpyxl pyro-ppl pytorch-lightning rich protobuf wandb pytest transformers einops cellxgene_census

失败: image.png

原因未知,怀疑清华源镜像问题,修改,强制使用官网提供的镜像,成功,下载速度太慢,需要科学上网,换成强制使用阿里云镜像,失败,强制使用阿里云镜像,,成功下载指定版本torch,但是查看运行界面依旧使用清华源镜像成功原因未知,更新代码如下:

pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 -f https://download.pytorch.org/whl/wheels/cu117/torch_stable.html jax==0.3.15 jaxlib==0.3.15+cuda11.cudnn82 numpy==1.21.6 torchmetrics==0.9.1 optax==0.1.2 tensorboard==2.8.0 orbax==0.1.0 scanpy==1.9.1 scvi-tools==0.16.4 cell-gears==0.0.2 datasets==2.3.2 scib==1.0.3 torchtext pandas==1.3.5 numba==0.55.2 matplotlib==3.6 scikit-misc statsmodels anndata scipy tqdm h5py docrep flax ipywidgets numpyro openpyxl pyro-ppl pytorch-lightning rich protobuf wandb pytest transformers einops cellxgene_census

失败,尝试分布安装

pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 -f https://download.pytorch.org/whl/torch_stable.html
jax==0.3.15 jaxlib==0.3.15+cuda11.cudnn82 numpy==1.21.6 torchmetrics==0.9.1 optax==0.1.2 tensorboard==2.8.0 orbax==0.1.0 scanpy==1.9.1 scvi-tools==0.16.4 cell-gears==0.0.2 datasets==2.3.2 scib==1.0.3 torchtext pandas==1.3.5 numba==0.55.2 matplotlib==3.6
pip install scikit-misc statsmodels anndata scipy tqdm h5py
pip install docrep flax ipywidgets numpyro openpyxl pyro-ppl pytorch-lightning rich protobuf
pip install wandb pytest transformers einops cellxgene_census

成功,原因未知,查看运行界面发现并没有改变所有包的安装版本

image.png 继续尝试安装flash-attn

pip install flash-attn==1.0.4 --no-build-isolation

成功!!!!!!

image.png

安装scgpt中需要的其他库信息

pip install --no-deps scgpt

成功

image.png

安装poetry,poetry用于管理 Python 项目的工具,它可以帮助开发者更好地管理项目依赖关系、构建虚拟环境以及发布软件包。

pip install poetry

成功

image.png

使用poetry lock --no-update命令,确保生成或更新 poetry.lock 文件,而不实际更改 pyproject.toml 文件中的依赖版本。

----------------------------------------------------分割线----------------------------------------------------

失败版本

安装需要的pytorch版本(选择pytorch版本2.2.2):

micromamba install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia

如果遇到类似critical libmamba Download error (28) Timeout was reached [https://conda.anaconda.org/nvidia/linux-64/cuda-nvrtc-11.8.89-0.tar.bz2] Operation too slow. Less than 30 bytes/sec transferred the last 60 seconds错误

意思是:这个错误提示表明在下载 cuda-nvrtc-11.8.89-0.tar.bz2 包时发生了超时问题。具体来说,下载速度太慢,连续 60 秒内传输的数据量少于 30 字节,导致连接被中断

可能的原因是网络问题,可以进行多次尝试能否成功或者或者检查.condarc文件,没有可以新建一个该文件,使用第三方镜像源,修改第三方镜像源可以按照mirrors.tuna.tsinghua.edu.cn/help/anacon… 链接中方法使用

安装成功,maybe: Snipaste_2024-11-05_14-09-17.png

接下来,安装 R 语言的基础环境以及 devtools 这个 R 包:

micromamba install -c conda-forge r-base r-devtools

安装成功截图 Snipaste_2024-11-05_14-18-51.png

图中警告的意思是尝试使用 Micromamba 安装某些软件包时,发现环境中已经存在一些文件。具体来说,警告中提到的 libsanitizer-9.5.0-h2f262e1_19 包中的某些文件已经在你的环境中了,这可能不会产生很严重的问题,但是可能会引起如:文件冲突,冗余文件,版本不一致等问题

解决方法:

  1. 检查现有文件,确认它们是否确实是需要的版本
  2. 清理环境,如果确认不需要这些版本,可以先清理掉,并重新执行安装命令
  3. 如果感觉上述操作太麻烦可以选择创建新环境,重新下载
  4. 可以选择直接忽略这个警告,继续使用环境,毕竟是个警告,没报错就继续用

安装指定版本的pip,后续需要通过pip安装一些包:micromamba install pip==24.0 这步一般应该不会失败

安装一些其他的包,使用 pip 安装并升级一系列与 JAX 和相关库有关的软件包,同时指定了一个自定义的包索引 URL:

pip install --upgrade jax==0.4.2 jaxlib==0.4.2+cuda11.cudnn86 optax flax==0.5.3 numpyro numpyro orbax-checkpoint numpy==1.22 scvi-tools==0.16.4 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

成功,maybe:

Snipaste_2024-11-05_14-42-05.png

继续安装,使用 pip 安装并升级一系列与机器学习、数据处理和可视化相关的 Python 包。

pip install torch==2.2.2 datasets==2.20.0 pytorch-lightning==1.5.10 torchmetrics==0.9.1 optax==0.1.2 tensorboard==2.8.0 orbax==0.1.0 scanpy==1.9.1 scvi-tools==0.16.4 cell-gears==0.0.2 scib==1.0.3 torchtext pandas==1.3.5 numba==0.55.2 matplotlib==3.6 scikit-misc statsmodels anndata scipy tqdm h5py docrep flax ipywidgets numpyro openpyxl pyro-ppl pytorch-lightning rich protobuf wandb pytest transformers einops

报错:

Snipaste_2024-11-05_14-53-22.png

Snipaste_2024-11-05_14-57-03.png

问题原因:在安装 rpy2 包时,pip 无法成功构建所需的 wheel 文件。具体来说,rpy2 的构建过程失败了,导致整个安装过程中断。

解决方法:将虚拟环境中python版本从3.9更新到3.10,-.- 成功..

Snipaste_2024-11-05_16-36-04.png

然后,安装,packagingninja这两个辅助工具,然后以一种特定的方式安装了flash-attn的1.0.4版本,可能是为了确保安装过程中能够正确地访问和利用已经存在的依赖项。

pip install packaging ninja pip install flash-attn==1.0.4 --no-build-isolation 

失败:

Snipaste_2024-11-05_16-54-32.png

解决方法:解决不掉,换一种方法,重新开始,怀疑是cuda版本或者是torch冲突导致