# 值错误：当设备明确设置为 0 时，无法在 pipeline 中使用 device_map='auto'。请设置 device_map=None 或移除 device 参数。

- **ID:** `huggingface/pipeline-device-map-conflict`
- **领域:** huggingface
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 92%

## 根因

当同时指定 `device` 和 `device_map` 时，pipeline API 发生冲突；`device_map='auto'` 要求模型使用 Accelerate 的设备映射加载，这与固定的设备索引不兼容。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| transformers>=4.30.0 | active | — | — |
| accelerate>=0.20.0 | active | — | — |

## 解决方案

1. ```
   移除 `device` 参数，仅使用 `device_map='auto'`：pipe = pipeline('text-generation', model='model-name', device_map='auto')。这使 Accelerate 处理设备放置。
   ```
2. ```
   移除 `device_map` 并显式使用 `device=0`：pipe = pipeline('text-generation', model='model-name', device=0)。这强制模型使用 GPU 0。
   ```

## 无效尝试

- **Set both `device=0` and `device_map='auto'` and expect the pipeline to resolve the conflict** — The pipeline raises a ValueError immediately because the two arguments are mutually exclusive. (100% 失败率)
- **Use `device_map='sequential'` instead of 'auto'** — The same conflict applies; any non-None device_map with an explicit device argument will raise an error. (90% 失败率)
- **Set `device=-1` to use CPU and keep device_map='auto'** — device_map='auto' requires at least one GPU to be available; setting device=-1 will cause a separate error about no GPU found. (80% 失败率)
