[ PROMPT_NODE_22754 ]
Multimodal Blip 2 故障排查
[ SKILL_DOCUMENTATION ]
# BLIP-2 故障排查指南
## 安装问题
### 导入错误
**错误**: `ModuleNotFoundError: No module named 'transformers'`
**解决方案**:
bash
# 安装带有视觉支持的 transformers
pip install transformers[vision] accelerate
# 或安装所有可选依赖
pip install transformers accelerate torch Pillow scipy
# 验证安装
python -c "from transformers import Blip2ForConditionalGeneration; print('OK')"
### LAVIS 安装失败
**错误**: 安装 salesforce-lavis 时出错
**解决方案**:
bash
# 从源码安装
git clone https://github.com/salesforce/LAVIS.git
cd LAVIS
pip install -e .
# 或安装特定版本
pip install salesforce-lavis==1.0.2
# 如果问题持续,请单独安装依赖
pip install omegaconf iopath timm webdataset
pip install salesforce-lavis --no-deps
### CUDA 版本不匹配
**错误**: `RuntimeError: CUDA error: no kernel image is available`
**解决方案**:
bash
# 检查 CUDA 版本
nvcc --version
python -c "import torch; print(torch.version.cuda)"
# 安装匹配的 PyTorch
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# 针对 CUDA 11.8
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
## 模型加载问题
### 加载时内存溢出
**错误**: 模型加载期间出现 `torch.cuda.OutOfMemoryError`
**解决方案**:
python
# 使用量化
from transformers import BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = Blip2ForConditionalGeneration.from_pretrained(
"Salesforce/blip2-opt-2.7b",
quantization_config=quantization_config,
device_map="auto"
)
# 或 4-bit 量化
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16
)
# 使用更小的模型
model = Blip2ForConditionalGeneration.from_pretrained(
"Salesforce/blip2-opt-2.7b", # 替代 6.7b 或 flan-t5-xxl
torch_dtype=torch.float16,
device_map="auto"
)
# 卸载到 CPU
model = Blip2ForConditionalGeneration.from_pretrained(
"Salesforce/blip2-opt-6.7b",
device_map="auto",
offload_folder="offload"
)
### 模型下载失败
**错误**: 连接错误或下载不完整
**解决方案**:
python
# 设置缓存目录
import os
os.environ["HF_HOME"] = "/path/to/cache"
# 恢复下载
from huggingface_hub import snapshot_download
snapshot_download(
"Salesforce/blip2-opt-2.7b",
resume_d