我想在CPU机器上安装FlagEmbedding[finetune],命令为:
pip install -U FlagEmbedding[finetune]
安装过程中会自动安装flash_attn,但是flash_attn似乎是不支持CPU的,会报错:
Collecting flash-attn (from FlagEmbedding[finetune])
Using cached https://mirrors.aliyun.com/pypi/packages/11/34/9bf60e736ed7bbe15055ac2dab48ec67d9dbd088d2b4ae318fd77190ab4e/flash_attn-2.7.4.post1.tar.gz (6.0 MB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [19 lines of output]
C:\Users\Administrator\AppData\Local\Temp\pip-install-8bii636r\flash-attn_70deb567ae764918981ed41fff8cda28\setup.py:106: UserWarning: flash_attn was requested, but nvcc was not found. Are you sure your environment has nvcc available? If you're installing within a container from https://hub.docker.com/r/pytorch/pytorch, only images whose names contain 'devel' will provide nvcc.
warnings.warn(
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "C:\Users\Administrator\AppData\Local\Temp\pip-install-8bii636r\flash-attn_70deb567ae764918981ed41fff8cda28\setup.py", line 198, in
CUDAExtension(
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\torch\utils\cpp_extension.py", line 1130, in CUDAExtension
library_dirs += library_paths(device_type="cuda")
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\torch\utils\cpp_extension.py", line 1271, in library_paths
paths.append(_join_cuda_home(lib_dir))
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\torch\utils\cpp_extension.py", line 2525, in _join_cuda_home
raise OSError('CUDA_HOME environment variable is not set. '
OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
torch.__version__ = 2.6.0+cpu
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Traceback (most recent call last):
File "D:\ProgramData\anaconda3\envs\py310\Scripts\pip-script.py", line 10, in
sys.exit(main())
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\cli\main.py", line 80, in main
return command.main(cmd_args)
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\cli\base_command.py", line 157, in main
with self.main_context():
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 142, in exit
next(self.gen)
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\cli\command_context.py", line 19, in main_context
with self._main_context:
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 576, in exit
raise exc_details[1]
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\utils\temp_dir.py", line 81, in tempdir_registry
yield _tempdir_registry
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 561, in exit
if cb(*exc_details):
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 142, in exit
next(self.gen)
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\utils\temp_dir.py", line 42, in global_tempdir_manager
with ExitStack() as stack:
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 576, in exit
raise exc_details[1]
File "D:\ProgramData\anaconda3\envs\py310\lib\contextlib.py", line 561, in exit
if cb(*exc_details):
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\utils\temp_dir.py", line 169, in exit
self.cleanup()
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\utils\temp_dir.py", line 212, in cleanup
rmtree(self._path, ignore_errors=False)
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\utils\retry.py", line 34, in retry_wrapped
return func(*args, **kwargs)
File "D:\ProgramData\anaconda3\envs\py310\lib\site-packages\pip_internal\utils\misc.py", line 138, in rmtree
shutil.rmtree(dir, onerror=handler) # type: ignore
File "D:\ProgramData\anaconda3\envs\py310\lib\shutil.py", line 750, in rmtree
return _rmtree_unsafe(path, onerror)
File "D:\ProgramData\anaconda3\envs\py310\lib\shutil.py", line 615, in _rmtree_unsafe
_rmtree_unsafe(fullname, onerror)
File "D:\ProgramData\anaconda3\envs\py310\lib\shutil.py", line 615, in _rmtree_unsafe
_rmtree_unsafe(fullname, onerror)
File "D:\ProgramData\anaconda3\envs\py310\lib\shutil.py", line 615, in _rmtree_unsafe
_rmtree_unsafe(fullname, onerror)
[Previous line repeated 3 more times]
File "D:\ProgramData\anaconda3\envs\py310\lib\shutil.py", line 622, in _rmtree_unsafe
os.rmdir(path)
有什么办法可以让我在CPU上安装并使用FlagEmbedding[finetune]吗
@545999961 建议出一个容器版本,有个dockerfile自己build也好,总是处理这些依赖问题很没有意义。