Qwen-audio-chat的环境安装
1. 环境先安装一个python3.10的conda环境然后安装如下库文件方法一requirement安装✅ Qwen-Audio-Chat 安装环境依赖清单 1. requirements.txt推荐方式# Qwen-Audio-Chat 环境依赖 matplotlib requests tiktoken einops transformers_stream_generator transformers4.39.0 accelerate torch2.3.0cu121 torchvision0.18.0cu121 torchaudio2.3.0cu121方法二pip逐个安装 2. 安装命令使用清华源 PyTorch 源 # 安装基础库含 torch/torchvision/torchaudio pip install matplotlib requests tiktoken einops transformers_stream_generator accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装特定版本的 Transformers pip install transformers4.39.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装 PyTorch 及相关CUDA 12.1 版本 pip install torch2.3.0cu121 \ torchvision0.18.0cu121 \ torchaudio2.3.0cu121 \ --extra-index-url https://download.pytorch.org/whl/cu121 \ -i https://pypi.tuna.tsinghua.edu.cn/simple2. flash_attn安装2.1 问题python test_qwen_audio_demo.py audio_start_id: 155163, audio_end_id: 155164, audio_pad_id: 151851. The model is automatically converting to bf16 for faster inference. If you want to disable the automatic precision, please manually add bf16/fp16/fp32True to AutoModelForCausalLM.from_pretrained. Try importing flash-attention for faster inference... Warning: import flash_attn rotary fail, please install FlashAttention rotary to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/rotary Warning: import flash_attn rms_norm fail, please install FlashAttention layer_norm to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/layer_norm Warning: import flash_attn fail, please install FlashAttention to get higher efficiency https://github.com/Dao-AILab/flash-attention⚠️ 警告信息非致命1. FlashAttention 导入失败Warning: import flash_attn fail, please install FlashAttention to get higher efficiency...原因 这些警告说明你当前环境中没有安装 FlashAttention这是一个基于 CUDA 的高性能注意力机制库可以显著提升大模型的训练和推理效率。 注意你需要根据你的 CUDA 版本选择对应的 wheel 文件。比如上面这个链接适用于 CUDA 11.8。你可以在自己的系统上用 nvcc --version 查看 CUDA 版本。(audio_chat) root# nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Tue_Feb_27_16:19:38_PST_2024 Cuda compilation tools, release 12.4, V12.4.99 Build cuda_12.4.r12.4/compiler.33961263_0✅ 当前 CUDA 版本12.4 这是目前较新的版本兼容性很好。FlashAttention 支持 CUDA 11.x 到 12.x 的版本包括 12.4。-rw-r--r-- 1 root root 183291190 Apr 30 07:42 flash_attn-2.7.0.post1cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl -rw-rw-r-- 1 1005 1006 255951853 Dec 3 02:01 flash_attn-2.8.3cu12torch2.4cxx11abiFALSE-cp310-cp310-linux_x86_64.whl 但是分别安装这两个文件后flash_attn仍然不成功(audio_chat) root# pip show flash-attn Name: flash_attn Version: 2.8.3 接下来需要验证是否可以正常导入 FlashAttention请运行以下命令来测试是否可以成功导入 flash_attn 模块python -c import flash_attn; print(flash_attn.__version__)(audio_chat) root# python -c import flash_attn; print(flash_attn.version) Traceback (most recent call last): File string, line 1, in module File /envs/audio_chat/lib/python3.10/site-packages/flash_attn/init.py, line 3, in module from flash_attn.flash_attn_interface import ( File envs/audio_chat/lib/python3.10/site-packages/flash_attn/flash_attn_interface.py, line 15, in module import flash_attn_2_cuda as flash_attn_gpu ImportError: /envs/audio_chat/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZNK3c105Error4whatEv分析你遇到的错误是 ImportError: /data/wuwenliang/anaconda3_1/envs/audio_chat/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZNK3c105Error4whatEv 这个错误通常是因为 PyTorch 版本与 FlashAttention 不兼容或者 编译时使用的 PyTorch 与当前运行环境中的 PyTorch 不一致。 错误分析 _ZNK3c105Error4whatEv 是 c10::Error::what() 的 C 符号名。 这说明 FlashAttention 编译生成的 .so 文件动态库中调用了一个 PyTorch 的内部符号但在当前环境中找不到它。这通常发生在以下情况 FlashAttention 是用一个旧版本的 PyTorch 编译的。 当前运行环境使用的是另一个版本的 PyTorch。 或者 PyTorch 安装不完整、被污染等。✅ 方法一卸载并重新安装 FlashAttention推荐 卸载当前 FlashAttention pip uninstall flash-attn 确保你的 PyTorch 版本已安装并查看其版本 python -c import torch; print(torch.__version__)(audio_chat) root# python -c import torch; print(torch.version) 2.3.0cu121你当前安装的 PyTorch 版本是 2.3.0cu121也就是基于 CUDA 12.1 的版本。 ❗️问题根源 你之前尝试安装的是 FlashAttention wheel 匹配 CUDA 12.4 但你的 PyTorch 是 CUDA 12.1 这就导致了不兼容的问题。FlashAttention 编译时使用的 CUDA 版本12.4与 PyTorch 使用的 CUDA 版本12.1不一致因此在运行时出现了符号未定义错误 undefined symbol: _ZNK3c105Error4whatEv 。 方法二降级 FlashAttention 到匹配 CUDA 12.1 的版本如果你不想升级 PyTorch可以安装一个与 PyTorch CUDA 12.1 兼容的 FlashAttention 版本。下载flash-attnhttps://github.com/Dao-AILab/flash-attention/releases/tag/v2.7.2.post1-rw-r--r-- 1 root root 150M May 13 09:46 flash_attn-2.7.2.post1cu12torch2.3cxx11abiFALSE-cp310-cp310-linux_x86_64.whl安装(audio_chat) roote# pip install flash_attn-2.7.2.post1cu12torch2.3cxx11abiFALSE-cp310-cp310-linux_x86_64.whl验证✅ 验证安装是否成功 安装完成后执行以下命令验证 FlashAttention 是否能被正确导入 python -c import flash_attn; print(flash_attn.__version__)(audio_chat) root# python -c import flash_attn; print(flash_attn.version) 2.7.2.post1用flash-attn环境运行代码(audio_chat) root# python test_qwen_audio_demo.py audio_start_id: 155163, audio_end_id: 155164, audio_pad_id: 151851. The model is automatically converting to bf16 for faster inference. If you want to disable the automatic precision, please manually add bf16/fp16/fp32True to AutoModelForCausalLM.from_pretrained. Try importing flash-attention for faster inference... Warning: import flash_attn rms_norm fail, please install FlashAttention layer_norm to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/layer_norm Loading checkpoint shards: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9/9 [00:0700:00, 1.19it/s] 这个音频的asr内容是病吧你老拆穿人家干啥。 这个音频的内容是辱骂和诅咒。 好的这是音频转的文本*******。参考文章https://damodev.csdn.net/68a6d2904e4959284dabe1a2.htmlhttps://modelscope.cn/models/Qwen/Qwen-Audio-Chat/summary