在虚拟环境下按照GitHub指示完成环境配置,以及安装deepspeed等包后,运行微调脚本,出现以下报错信息:
FAILED: multi_tensor_adam.cuda.o
xxx/anaconda3/envs/cpmv/bin/nvcc -ccbin xxx/anaconda3/envs/cpmv/bin/x86_64-conda-linux-gnu-cc -DTORCH_EXTENSION_NAME=fused_adam -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -Ixxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/csrc/includes -Ixxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/csrc/adam -isystem xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/include -isystem xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -isystem xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/include/TH -isystem xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/include/THC -isystem xxx/anaconda3/envs/cpmv/include -isystem xxx/anaconda3/envs/cpmv/include/python3.10 -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_80,code=compute_80 -gencode=arch=compute_80,code=sm_80 --compiler-options '-fPIC' -O3 -DVERSION_GE_1_1 -DVERSION_GE_1_3 -DVERSION_GE_1_5 -lineinfo --use_fast_math -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_80,code=compute_80 -DBF16_AVAILABLE -U__CUDA_NO_BFLOAT16_OPERATORS__ -U__CUDA_NO_BFLOAT162_OPERATORS__ -U__CUDA_NO_BFLOAT16_CONVERSIONS__ -std=c++17 -c xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/csrc/adam/multi_tensor_adam.cu -o multi_tensor_adam.cuda.o
nvcc warning : incompatible redefinition for option 'compiler-bindir', the last value of this option was used
In file included from xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/csrc/adam/multi_tensor_adam.cu:13:
xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/include/ATen/cuda/CUDAContext.h:6:10: fatal error: cusparse.h: No such file or directory
6 | #include <cusparse.h>
| ^~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 2100, in _run_ninja_build
subprocess.run(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/subprocess.py", line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/mnt/cfs/CV/zyt/minicpm/MiniCPM-V/finetune/finetune.py", line 328, in <module>
train()
File "/mnt/cfs/CV/zyt/minicpm/MiniCPM-V/finetune/finetune.py", line 318, in train
Loading extension module fused_adam...
trainer.train()
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/transformers/trainer.py", line 1859, in train
Traceback (most recent call last):
File "/mnt/cfs/CV/zyt/minicpm/MiniCPM-V/finetune/finetune.py", line 328, in <module>
train()
File "/mnt/cfs/CV/zyt/minicpm/MiniCPM-V/finetune/finetune.py", line 318, in train
trainer.train()
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/transformers/trainer.py", line 1859, in train
return inner_training_loop(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/transformers/trainer.py", line 2015, in _inner_training_loop
return inner_training_loop(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/transformers/trainer.py", line 2015, in _inner_training_loop
model, self.optimizer, self.lr_scheduler = self.accelerator.prepare(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/accelerate/accelerator.py", line 1284, in prepare
model, self.optimizer, self.lr_scheduler = self.accelerator.prepare(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/accelerate/accelerator.py", line 1284, in prepare
result = self._prepare_deepspeed(*args)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/accelerate/accelerator.py", line 1751, in _prepare_deepspeed
result = self._prepare_deepspeed(*args)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/accelerate/accelerator.py", line 1751, in _prepare_deepspeed
engine, optimizer, _, lr_scheduler = deepspeed.initialize(**kwargs)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/__init__.py", line 181, in initialize
engine, optimizer, _, lr_scheduler = deepspeed.initialize(**kwargs)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/__init__.py", line 181, in initialize
engine = DeepSpeedEngine(args=args,
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 306, in __init__
engine = DeepSpeedEngine(args=args,
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 306, in __init__
self._configure_optimizer(optimizer, model_parameters)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1223, in _configure_optimizer
self._configure_optimizer(optimizer, model_parameters)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1223, in _configure_optimizer
basic_optimizer = self._configure_basic_optimizer(model_parameters)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1300, in _configure_basic_optimizer
basic_optimizer = self._configure_basic_optimizer(model_parameters)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1300, in _configure_basic_optimizer
optimizer = FusedAdam(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/adam/fused_adam.py", line 94, in __init__
optimizer = FusedAdam(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/adam/fused_adam.py", line 94, in __init__
fused_adam_cuda = FusedAdamBuilder().load()
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/op_builder/builder.py", line 508, in load
fused_adam_cuda = FusedAdamBuilder().load()
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/op_builder/builder.py", line 508, in load
return self.jit_load(verbose)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/op_builder/builder.py", line 555, in jit_load
return self.jit_load(verbose)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/deepspeed/ops/op_builder/builder.py", line 555, in jit_load
op_module = load(name=self.name,
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 1308, in load
op_module = load(name=self.name,
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 1308, in load
return _jit_compile(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 1710, in _jit_compile
return _jit_compile(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 1736, in _jit_compile
_write_ninja_file_and_build_library(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 1823, in _write_ninja_file_and_build_library
return _import_module_from_library(name, build_directory, is_python_module)
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 2136, in _import_module_from_library
_run_ninja_build(
File "xxx/anaconda3/envs/cpmv/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 2116, in _run_ninja_build
module = importlib.util.module_from_spec(spec)
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1176, in create_module
raise RuntimeError(message) from e
RuntimeError: Error building extension 'fused_adam'
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
ImportError: libcudart.so.11.0: cannot open shared object file: No such file or directoryopen shared object file: No such file or directory
又是cuda的问题。
验证 PyTorch 与 CUDA 版本兼容性:
import torch
print(torch.__version__)
print(torch.version.cuda)
使用 conda 安装 CUDA 工具包和 cuDNN。
conda install -c conda-forge cudatoolkit=11.2
conda install -c conda-forge cudnn=8.1.0
通过检查 CUDA 和 cuDNN 的版本,确保它们已正确安装:
nvcc --version
重新编译 DeepSpeed 的扩展模块:
python -c "import deepspeed; deepspeed.ops.adam.FusedAdamBuilder().load()"
如果上述步骤未解决问题,可以尝试重新安装 DeepSpeed:
pip uninstall deepspeed
pip install deepspeed