QwenLM / Qwen

The official repo of Qwen (通义千问) chat & pretrained large language model proposed by Alibaba Cloud.
Apache License 2.0
13.74k stars 1.12k forks source link

[BUG] RuntimeError: probability tensor contains either inf, nan or element < 0 #848

Closed JingyiChang closed 9 months ago

JingyiChang commented 10 months ago

是否已有关于该错误的issue或讨论? | Is there an existing issue / discussion for this?

该问题是否在FAQ中有解答? | Is there an existing answer for this in FAQ?

当前行为 | Current Behavior

执行web_demo.py,本地加载模型,问答框界面是:回复内容是多种语言随机组合,生成部分无语义、无逻辑文字后,报该错误。 1.部署Qwen_1.8B-Chat 也遇到该问题,参考其他issue,设置device_map="cuda:0",该问题消失。 2.部署Qwen72B,再次遇到该问题,参考其他相关issue修改do_sample,topk,temperature均未解决。 后台显卡占用: -----------------------------------------------------------------------------+ | NVIDIA-SMI 525.116.04 Driver Version: 525.116.04 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. |

| 0 NVIDIA RTX A6000 Off | 00000000:01:00.0 Off | Off | | 30% 39C P2 93W / 300W | 27262MiB / 49140MiB | 99% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA RTX A6000 Off | 00000000:23:00.0 Off | Off | | 30% 38C P2 76W / 300W | 29882MiB / 49140MiB | 3% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 NVIDIA RTX A6000 Off | 00000000:81:00.0 Off | Off | | 30% 38C P2 70W / 300W | 29882MiB / 49140MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 NVIDIA RTX A6000 Off | 00000000:C1:00.0 Off | Off | | 30% 39C P2 80W / 300W | 29882MiB / 49140MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 4 NVIDIA RTX A6000 Off | 00000000:E1:00.0 Off | Off | | 30% 37C P2 76W / 300W | 28926MiB / 49140MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ 结合1.8B部署考虑是不是transformer架构模型并行,但单卡推理引发的问题?尝试使用vllm框架,设置tensor_parallel_size=4,后台: +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.146.02 Driver Version: 535.146.02 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA RTX A6000 Off | 00000000:01:00.0 Off | Off | | 30% 46C P2 99W / 300W | 1060MiB / 49140MiB | 100% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 1 NVIDIA RTX A6000 Off | 00000000:23:00.0 Off | Off | | 30% 47C P2 99W / 300W | 1068MiB / 49140MiB | 100% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 2 NVIDIA RTX A6000 Off | 00000000:81:00.0 Off | Off | | 30% 46C P2 91W / 300W | 1068MiB / 49140MiB | 100% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 3 NVIDIA RTX A6000 Off | 00000000:C1:00.0 Off | Off | | 30% 50C P2 104W / 300W | 1028MiB / 49140MiB | 100% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 4 NVIDIA RTX A6000 Off | 00000000:E1:00.0 Off | Off | | 30% 27C P8 7W / 300W | 3MiB / 49140MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ 显存占用太少了,这是模型没完全加载?等待很久后报错:

The actor died unexpectedly before finishing this task. class_name: RayWorkerVllm actor_id: xxx pid: xxx namespace: xxx ip: xxxxx The actor is dead because its worker process has died. Worker exit type: SYSTEM_ERROR Worker exit detail: Worker unexpectedly exits with a connection error code 2. End of file. There are some potential root causes**. (1) The process is killed by SIGKILL by OOM killer due to high memory usage. (2) ray stop --force is called. (3) The worker is crashed unexpectedly due to SIGSEGV or other unexpected errors.**

  File "/data/xxxx/code/Qwen/Qwen-main/vLLM_infer.py", line 3, in <module>    qwen72b = LLM("/data/xxxx/code/Qwen/Qwen-72B-Chat/", tensor_parallel_size=4, trust_remote_code=True, gpu_memory_utilization=0.99) ray.exceptions.RayActorError: The actor died unexpectedly before finishing this task. class_name: RayWorkerVllm actor_id: xxxx pid: xxx namespace: xxxx ip: xxxxx The actor is dead because its worker process has died. Worker exit type: SYSTEM_ERROR Worker exit detail: Worker unexpectedly exits with a connection error code 2. End of file. There are some potential root causes. (1) The process is killed by SIGKILL by OOM killer due to high memory usage. (2) ray stop --force is called. (3) The worker is crashed unexpectedly due to SIGSEGV or other unexpected errors.

RuntimeError: probability tensor contains either inf, nan or element < 0 traceback详情:
The model is automatically converting to bf16 for faster inference. If you want to disable the automatic precision, please manually add bf16/fp16/fp32=True to "AutoModelForCausalLM.from_pretrained".
Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████| 82/82 [00:26<00:00,  3.08it/s]
Running on local URL:  http://127.0.0.1:8000
To create a public link, set `share=True` in `launch()`.
User: 你好
Traceback (most recent call last):
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/queueing.py", line 407, in call_prediction
    output = await route_utils.call_process_api(
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/route_utils.py", line 226, in call_process_api
    output = await app.get_blocks().process_api(
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/blocks.py", line 1550, in process_api
    result = await self.call_function(
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/blocks.py", line 1199, in call_function
    prediction = await utils.async_iteration(iterator)
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/utils.py", line 519, in async_iteration
    return await iterator.__anext__()
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/utils.py", line 512, in __anext__
    return await anyio.to_thread.run_sync(
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/anyio/to_thread.py", line 33, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread
    return await future
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 807, in run
    result = context.run(func, *args)
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/utils.py", line 495, in run_sync_iterator_async
    return next(iterator)
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/gradio/utils.py", line 649, in gen_wrapper
    yield from f(*args, **kwargs)
  File "/data/changjingyi/code/Qwen/Qwen-main/web_demo.py", line 125, in predict
    for response in model.chat_stream(tokenizer, _query, history=_task_history, generation_config=config):
  File "/home/user/.cache/huggingface/modules/transformers_modules/Qwen-72B-Chat/modeling_qwen.py", line 1214, in stream_generator
    for token in self.generate_stream(
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 56, in generator_context
    response = gen.send(request)
  File "/home/user/.conda/envs/Qwen_vllm/lib/python3.10/site-packages/transformers_stream_generator/main.py", line 969, in sample_stream
    next_tokens = torch.multinomial(probs, num_samples=1).squeeze(1)
RuntimeError: probability tensor contains either `inf`, `nan` or element < 0

期望行为 | Expected Behavior

能够正常运行Qwen-72B-Chat

复现方法 | Steps To Reproduce

除了generation_config修改,其他代码未动,执行web_demo.py,设置本地加载模型。(模型是hugging face下载的)flash_attn=false. generation_config:

{
  "chat_format": "chatml",
  "eos_token_id": 151643,
  "pad_token_id": 151643,
  "max_window_size": 6144,
  "max_new_tokens": 512,
  "do_sample": true,
  "repetition_penalty": 1.1,
  "top_p":1,
  "top_k":0,
  "transformers_version": "4.36.2"
}

运行环境 | Environment

- OS:Ubuntu 20.04
- Python:3.10.13
- Transformers:4.36.2
- PyTorch:cu12.1+torch2.1.2
- CUDA (`python -c 'import torch; print(torch.version.cuda)'`):12.1

其他包版本:
accelerate                    0.25.0
gradio                        3.50.2
gradio_client                 0.6.1
Jinja2                        3.1.2
tokenizers                    0.15.0
torch                         2.1.2+cu121
torchaudio                    2.1.2+cu121
torchvision                   0.16.2+cu121
transformers                  4.36.2
transformers-stream-generator 0.0.4
vllm                          0.2.6
xformers                      0.0.23.post1

备注 | Anything else?

No response

JingyiChang commented 10 months ago

已参考以下相关issue,仍未解决 。。 [BUG] base模型以及generate和chat模型的chat,只要更改了相关参数如temperature,出现报错 · Issue #187 · QwenLM/Qwen (github.com)

[BUG] Qwen-14B-Chat-Int4 temperature有问题 · Issue #358 · QwenLM/Qwen (github.com)

[BUG] int4 模型在温度 >0 且 <= 0.5 时候推理报错 · Issue #521 · QwenLM/Qwen (github.com)

[BUG] 设置温度为小数推理报错RuntimeError: probability tensor contains either inf, nan or element < 0 · Issue #276 · QwenLM/Qwen (github.com)

[BUG] base模型以及generate和chat模型的chat,只要更改了相关参数如temperature,出现报错 · Issue #187 · QwenLM/Qwen (github.com)

[在推理时,chat函数中加入temperature参数,模型就报错 · Issue #153 · QwenLM/Qwen (github.com)](

matianlongg commented 10 months ago

同样 ,我也有这问题。

jklj077 commented 10 months ago

torch 2.1.2+cu121

没装flash-attn的话,会走torch的SDPA,好像torch 2.1.2的这个操作有BUG,试试降级到比如2.1.1?

jklj077 commented 10 months ago

@mtl940610 环境啥样的?

JingyiChang commented 10 months ago

torch 2.1.2+cu121

没装flash-attn的话,会走torch的SDPA,好像torch 2.1.2的这个操作有BUG,试试降级到比如2.1.1?

之前是cu11.8版本+2.1.1torch+flash-attn,不管开不开flashattn都有这个问题。之后部署vllm时,xformer安装后,版本冲突,一直无法正常调用,所以现在升级到了12.1,torch2.1.2。 我可以再试试看降torch版本2.1.1,如果有flash_attn 还需要降级吗?

matianlongg commented 10 months ago

@mtl940610 环境啥样的?

  • OS:Ubuntu 20.04
  • Python:3.10.13
  • Transformers:4.32.0
  • PyTorch:cu12.2+torch2.1.1 显卡是A6000 装了flash-attn也不行,多卡跑14b和72b都不行 cuda:0单卡可以跑14b
matianlongg commented 10 months ago

@mtl940610 环境啥样的?

同样的环境 4090 没有问题,我把conda 复制到了A6000的机器 就会有这个问题

jklj077 commented 10 months ago

我可以再试试看降torch版本2.1.1,如果有flash_attn 还需要降级吗?

按理说不用了,不是这里的问题。

同样的环境4090没有问题,我把conda 复制到了A6000的机器 就会有这个问题

感谢信息!这个很有用,我们检查下。

jklj077 commented 10 months ago

两位环境跟我们测试过的主要差异点就是卡型A6000,且是多卡下异常,单卡下正常。我们找了个类似的机器试了下,emm... 还是没复现出来 😢

主要配置

显存占用 8卡: ``` +-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA A10 On | 00000000:69:00.0 Off | 0 | | 0% 46C P0 59W / 150W | 3838MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA A10 On | 00000000:6A:00.0 Off | 0 | | 0% 46C P0 60W / 150W | 4846MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 NVIDIA A10 On | 00000000:71:00.0 Off | 0 | | 0% 46C P0 60W / 150W | 4846MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 NVIDIA A10 On | 00000000:72:00.0 Off | 0 | | 0% 45C P0 59W / 150W | 4846MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 4 NVIDIA A10 On | 00000000:E9:00.0 Off | 0 | | 0% 45C P0 57W / 150W | 4846MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 5 NVIDIA A10 On | 00000000:EA:00.0 Off | 0 | | 0% 45C P0 59W / 150W | 4846MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 6 NVIDIA A10 On | 00000000:F0:00.0 Off | 0 | | 0% 44C P0 58W / 150W | 4846MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 7 NVIDIA A10 On | 00000000:F1:00.0 Off | 0 | | 0% 46C P0 61W / 150W | 4566MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ ``` 5卡: ``` +-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA A10 On | 00000000:69:00.0 Off | 0 | | 0% 41C P0 58W / 150W | 5670MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA A10 On | 00000000:6A:00.0 Off | 0 | | 0% 42C P0 59W / 150W | 7152MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 NVIDIA A10 On | 00000000:71:00.0 Off | 0 | | 0% 41C P0 58W / 150W | 7152MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 NVIDIA A10 On | 00000000:72:00.0 Off | 0 | | 0% 41C P0 65W / 150W | 7152MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 4 NVIDIA A10 On | 00000000:E9:00.0 Off | 0 | | 0% 41C P0 59W / 150W | 5624MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 5 NVIDIA A10 On | 00000000:EA:00.0 Off | 0 | | 0% 35C P8 16W / 150W | 0MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 6 NVIDIA A10 On | 00000000:F0:00.0 Off | 0 | | 0% 34C P8 15W / 150W | 0MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 7 NVIDIA A10 On | 00000000:F1:00.0 Off | 0 | | 0% 35C P8 16W / 150W | 0MiB / 23028MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ ```
测试样例结果 ```python In [1]: from transformers import AutoModelForCausalLM, AutoTokenizer In [2]: tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-14B-Chat", trust_remote_code=True) In [3]: model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-14B-Chat", device_map="auto", trust_remote_code=True).eval() Warning: please make sure that you are using the latest codes and checkpoints, especially if you used Qwen-7B before 09.25.2023.请使用最新模型和代码,尤其如果你在9月25日前已经开始使用Qwen-7B,千万注意不要使用错误代码和模型。 The model is automatically converting to bf16 for faster inference. If you want to disable the automatic precision, please manually add bf16/fp16/fp32=True 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 Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████| 15/15 [00:05<00:00, 2.58it/s] In [4]: response, history = model.chat(tokenizer, "你好", history=None) In [5]: response Out[5]: '你好!有什么我能帮助你的吗?' In [6]: response, history = model.chat(tokenizer, "给我讲一个年轻人奋斗创业最终取得成功的故事。", history=history) In [7]: print(response) 当然可以! 故事的主角是一个名叫张强的年轻人,他有一个梦想,那就是创办自己的公司。 在大学毕业后,他决定投身于他的梦想中,开始了艰苦的创业之路。他开始做市场调查、写商业计划书,并尝试找寻投资者。 然而,在最初的几年里,他遇到了很多困难和挫折。有时候他会感到无助和绝望,但他从未放弃。 经过几年的努力,他的公司在市场上逐渐崭露头角,得到了越来越多的关注和认可。他在行业内赢得了口碑,公司的规模也不断扩大。 终于有一天,他的努力得到了回报。一家大型投资机构决定向他的公司投资,并且支持他实现更大的目标。 张强的成功并非偶然,而是他对梦想的坚持和不屈不挠的努力所换来的。他的故事告诉我们,只要有梦想,不怕困难,坚持不懈地去追求,就一定能够实现自己的目标。 In [8]: response, history = model.chat(tokenizer, "给这个故事起一个标题", history=history) In [9]: print(response) 《青年创业者:从零到一的奋斗之旅》 ```
web_demo样例结果 ![image](https://github.com/QwenLM/Qwen/assets/17811943/dfb60c6c-0c95-48f1-a8bd-fb9520d70091)
conda export环境 ```yaml name: cu121 channels: - pytorch - nvidia - defaults dependencies: - _libgcc_mutex=0.1=main - _openmp_mutex=5.1=1_gnu - abseil-cpp=20211102.0=hd4dd3e8_0 - arrow-cpp=11.0.0=h374c478_2 - asttokens=2.0.5=pyhd3eb1b0_0 - aws-c-common=0.6.8=h5eee18b_1 - aws-c-event-stream=0.1.6=h6a678d5_6 - aws-checksums=0.1.11=h5eee18b_2 - aws-sdk-cpp=1.8.185=h721c034_1 - backcall=0.2.0=pyhd3eb1b0_0 - blas=1.0=mkl - boost-cpp=1.82.0=hdb19cb5_2 - bottleneck=1.3.5=py311hbed6279_0 - brotli-python=1.0.9=py311h6a678d5_7 - bzip2=1.0.8=h7b6447c_0 - c-ares=1.19.1=h5eee18b_0 - ca-certificates=2023.12.12=h06a4308_0 - certifi=2023.11.17=py311h06a4308_0 - cffi=1.16.0=py311h5eee18b_0 - charset-normalizer=2.0.4=pyhd3eb1b0_0 - cryptography=41.0.7=py311hdda0065_0 - cuda-cudart=12.1.105=0 - cuda-cupti=12.1.105=0 - cuda-libraries=12.1.0=0 - cuda-nvrtc=12.1.105=0 - cuda-nvtx=12.1.105=0 - cuda-opencl=12.3.101=0 - cuda-runtime=12.1.0=0 - decorator=5.1.1=pyhd3eb1b0_0 - executing=0.8.3=pyhd3eb1b0_0 - ffmpeg=4.3=hf484d3e_0 - filelock=3.13.1=py311h06a4308_0 - freetype=2.12.1=h4a9f257_0 - gflags=2.2.2=he6710b0_0 - giflib=5.2.1=h5eee18b_3 - glog=0.5.0=h2531618_0 - gmp=6.2.1=h295c915_3 - gmpy2=2.1.2=py311hc9b5ff0_0 - gnutls=3.6.15=he1e5248_0 - grpc-cpp=1.48.2=he1ff14a_1 - icu=73.1=h6a678d5_0 - idna=3.4=py311h06a4308_0 - intel-openmp=2023.1.0=hdb19cb5_46306 - ipython=8.15.0=py311h06a4308_0 - jedi=0.18.1=py311h06a4308_1 - jinja2=3.1.2=py311h06a4308_0 - jpeg=9e=h5eee18b_1 - krb5=1.20.1=h143b758_1 - lame=3.100=h7b6447c_0 - lcms2=2.12=h3be6417_0 - ld_impl_linux-64=2.38=h1181459_1 - lerc=3.0=h295c915_0 - libboost=1.82.0=h109eef0_2 - libbrotlicommon=1.0.9=h5eee18b_7 - libbrotlidec=1.0.9=h5eee18b_7 - libbrotlienc=1.0.9=h5eee18b_7 - libcublas=12.1.0.26=0 - libcufft=11.0.2.4=0 - libcufile=1.8.1.2=0 - libcurand=10.3.4.101=0 - libcurl=8.4.0=h251f7ec_1 - libcusolver=11.4.4.55=0 - libcusparse=12.0.2.55=0 - libdeflate=1.17=h5eee18b_1 - libedit=3.1.20230828=h5eee18b_0 - libev=4.33=h7f8727e_1 - libevent=2.1.12=hdbd6064_1 - libffi=3.4.4=h6a678d5_0 - libgcc-ng=11.2.0=h1234567_1 - libgfortran-ng=11.2.0=h00389a5_1 - libgfortran5=11.2.0=h1234567_1 - libgomp=11.2.0=h1234567_1 - libiconv=1.16=h7f8727e_2 - libidn2=2.3.4=h5eee18b_0 - libjpeg-turbo=2.0.0=h9bf148f_0 - libnghttp2=1.57.0=h2d74bed_0 - libnpp=12.0.2.50=0 - libnvjitlink=12.1.105=0 - libnvjpeg=12.1.1.14=0 - libpng=1.6.39=h5eee18b_0 - libprotobuf=3.20.3=he621ea3_0 - libssh2=1.10.0=hdbd6064_2 - libstdcxx-ng=11.2.0=h1234567_1 - libtasn1=4.19.0=h5eee18b_0 - libthrift=0.15.0=h1795dd8_2 - libtiff=4.5.1=h6a678d5_0 - libunistring=0.9.10=h27cfd23_0 - libuuid=1.41.5=h5eee18b_0 - libwebp=1.3.2=h11a3e52_0 - libwebp-base=1.3.2=h5eee18b_0 - llvm-openmp=14.0.6=h9e868ea_0 - lz4-c=1.9.4=h6a678d5_0 - markupsafe=2.1.1=py311h5eee18b_0 - matplotlib-inline=0.1.6=py311h06a4308_0 - mkl=2023.1.0=h213fc3f_46344 - mkl-service=2.4.0=py311h5eee18b_1 - mkl_fft=1.3.8=py311h5eee18b_0 - mkl_random=1.2.4=py311hdb19cb5_0 - mpc=1.1.0=h10f8cd9_1 - mpfr=4.0.2=hb69a4c5_1 - mpi=1.0=mpich - mpi4py=3.1.4=py311hfc96bbd_0 - mpich=3.3.2=external_0 - mpmath=1.3.0=py311h06a4308_0 - ncurses=6.4=h6a678d5_0 - nettle=3.7.3=hbbd107a_1 - networkx=3.1=py311h06a4308_0 - numexpr=2.8.7=py311h65dcdc2_0 - numpy=1.26.2=py311h08b1b3b_0 - numpy-base=1.26.2=py311hf175353_0 - openh264=2.1.1=h4ff587b_0 - openjpeg=2.4.0=h3ad879b_0 - openssl=3.0.12=h7f8727e_0 - orc=1.7.4=hb3bc3d3_1 - pandas=2.1.4=py311ha02d727_0 - parso=0.8.3=pyhd3eb1b0_0 - pexpect=4.8.0=pyhd3eb1b0_3 - pickleshare=0.7.5=pyhd3eb1b0_1003 - pillow=10.0.1=py311ha6cbd5a_0 - pip=23.3.1=py311h06a4308_0 - prompt-toolkit=3.0.36=py311h06a4308_0 - ptyprocess=0.7.0=pyhd3eb1b0_2 - pure_eval=0.2.2=pyhd3eb1b0_0 - pyarrow=11.0.0=py311hd8e8d9b_1 - pycparser=2.21=pyhd3eb1b0_0 - pygments=2.15.1=py311h06a4308_1 - pyopenssl=23.2.0=py311h06a4308_0 - pysocks=1.7.1=py311h06a4308_0 - python=3.11.5=h955ad1f_0 - python-dateutil=2.8.2=pyhd3eb1b0_0 - python-tzdata=2023.3=pyhd3eb1b0_0 - pytorch=2.1.1=py3.11_cuda12.1_cudnn8.9.2_0 - pytorch-cuda=12.1=ha16c6d3_5 - pytorch-mutex=1.0=cuda - pytz=2023.3.post1=py311h06a4308_0 - pyyaml=6.0.1=py311h5eee18b_0 - re2=2022.04.01=h295c915_0 - readline=8.2=h5eee18b_0 - requests=2.31.0=py311h06a4308_0 - scipy=1.11.4=py311h08b1b3b_0 - setuptools=68.2.2=py311h06a4308_0 - six=1.16.0=pyhd3eb1b0_1 - snappy=1.1.10=h6a678d5_1 - sqlite=3.41.2=h5eee18b_0 - stack_data=0.2.0=pyhd3eb1b0_0 - sympy=1.12=py311h06a4308_0 - tbb=2021.8.0=hdb19cb5_0 - tk=8.6.12=h1ccaba5_0 - torchaudio=2.1.1=py311_cu121 - torchtriton=2.1.0=py311 - torchvision=0.16.1=py311_cu121 - traitlets=5.7.1=py311h06a4308_0 - tzdata=2023c=h04d1e81_0 - urllib3=1.26.18=py311h06a4308_0 - utf8proc=2.6.1=h27cfd23_0 - wcwidth=0.2.5=pyhd3eb1b0_0 - wheel=0.41.2=py311h06a4308_0 - xz=5.4.5=h5eee18b_0 - yaml=0.2.5=h7b6447c_0 - zlib=1.2.13=h5eee18b_0 - zstd=1.5.5=hc292b87_0 - pip: - accelerate==0.25.0 - aiofiles==23.2.1 - altair==5.2.0 - annotated-types==0.6.0 - anyio==3.7.1 - attrs==23.1.0 - click==8.1.7 - contourpy==1.2.0 - cycler==0.12.1 - einops==0.7.0 - fastapi==0.105.0 - ffmpy==0.3.1 - fonttools==4.47.0 - fsspec==2023.12.2 - gradio==3.41.2 - gradio-client==0.5.0 - h11==0.14.0 - httpcore==1.0.2 - httpx==0.26.0 - huggingface-hub==0.20.1 - importlib-resources==6.1.1 - jsonschema==4.20.0 - jsonschema-specifications==2023.11.2 - kiwisolver==1.4.5 - latex2mathml==3.77.0 - markdown==3.5.1 - matplotlib==3.8.2 - mdtex2html==1.2.0 - orjson==3.9.10 - packaging==23.2 - psutil==5.9.7 - pydantic==2.5.2 - pydantic-core==2.14.5 - pydub==0.25.1 - pyparsing==3.1.1 - python-multipart==0.0.6 - referencing==0.32.0 - regex==2023.10.3 - rpds-py==0.15.2 - safetensors==0.4.1 - semantic-version==2.10.0 - sniffio==1.3.0 - starlette==0.27.0 - tiktoken==0.5.2 - tokenizers==0.15.0 - toolz==0.12.0 - tqdm==4.66.1 - transformers==4.36.2 - transformers-stream-generator==0.0.4 - typing-extensions==4.9.0 - uvicorn==0.25.0 - websockets==11.0.3 prefix: /root/miniconda3/envs/cu121 ```
jklj077 commented 10 months ago

有没有容易复现的样例供我们参考下

JingyiChang commented 10 months ago

有没有容易复现的样例供我们参考下 奇怪的是同样的环境,1.8B单卡推理没问题,只要涉及到多卡,就会这样。。😓🤯

name: Qwen_vllm
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- bzip2=1.0.8=hd590300_5
- ca-certificates=2023.11.17=hbcca054_0
- ld_impl_linux-64=2.40=h41732ed_0
- libffi=3.4.2=h7f98852_5
- libgcc-ng=13.2.0=h807b86a_3
- libgomp=13.2.0=h807b86a_3
- libnsl=2.0.1=hd590300_0
- libsqlite=3.44.2=h2797004_0
- libuuid=2.38.1=h0b41bf4_0
- libzlib=1.2.13=hd590300_5
- ncurses=6.4=h59595ed_2
- openssl=3.2.0=hd590300_1
- pip=23.3.2=pyhd8ed1ab_0
- python=3.10.13=hd12c33a_0_cpython
- readline=8.2=h8228510_1
- setuptools=68.2.2=pyhd8ed1ab_0
- tk=8.6.13=noxft_h4845f30_101
- xz=5.2.6=h166bdaf_0
- pip:
- accelerate==0.25.0
- aiofiles==23.2.1
- aiohttp==3.9.1
- aioprometheus==23.3.0
- aiosignal==1.3.1
- altair==5.2.0
- anyio==3.7.1
- async-timeout==4.0.3
- attrs==23.1.0
- auto-gptq==0.6.0
- certifi==2023.11.17
- charset-normalizer==3.3.2
- click==8.1.7
- coloredlogs==15.0.1
- contourpy==1.2.0
- cycler==0.12.1
- datasets==2.15.0
- dill==0.3.7
- dropout-layer-norm==0.1
- einops==0.7.0
- exceptiongroup==1.2.0
- fastapi==0.105.0
- ffmpy==0.3.1
- filelock==3.13.1
- flash-attn==2.3.6
- fonttools==4.47.0
- frozenlist==1.4.1
- fschat==0.2.34
- fsspec==2023.10.0
- gekko==1.0.6
- gradio==3.50.2
- gradio-client==0.6.1
- h11==0.14.0
- httpcore==1.0.2
- httptools==0.6.1
- httpx==0.26.0
- huggingface-hub==0.20.1
- humanfriendly==10.0
- idna==3.6
- importlib-resources==6.1.1
- jinja2==3.1.2
- jsonschema==4.20.0
- jsonschema-specifications==2023.11.2
- kiwisolver==1.4.5
- latex2mathml==3.77.0
- markdown==3.5.1
- markdown-it-py==3.0.0
- markdown2==2.4.12
- markupsafe==2.1.3
- matplotlib==3.8.2
- mdtex2html==1.2.0
- mdurl==0.1.2
- mpmath==1.3.0
- msgpack==1.0.7
- multidict==6.0.4
- multiprocess==0.70.15
- networkx==3.2.1
- nh3==0.2.15
- ninja==1.11.1.1
- numpy==1.26.2
- optimum==1.16.1
- orjson==3.9.10
- packaging==23.2
- pandas==2.1.4
- peft==0.7.1
- pillow==10.1.0
- prompt-toolkit==3.0.43
- protobuf==4.25.1
- psutil==5.9.7
- pyarrow==14.0.2
- pyarrow-hotfix==0.6
- pydantic==1.10.13
- pydub==0.25.1
- pygments==2.17.2
- pyparsing==3.1.1
- python-dateutil==2.8.2
- python-dotenv==1.0.0
- python-multipart==0.0.6
- pytz==2023.3.post1
- pyyaml==6.0.1
- quantile-python==1.1
- ray==2.9.0
- referencing==0.32.0
- regex==2023.10.3
- requests==2.31.0
- rich==13.7.0
- rotary-emb==0.1
- rouge==1.0.1
- rpds-py==0.15.2
- safetensors==0.4.1
- scipy==1.11.4
- semantic-version==2.10.0
- sentencepiece==0.1.99
- shortuuid==1.0.11
- six==1.16.0
- sniffio==1.3.0
- starlette==0.27.0
- svgwrite==1.4.3
- sympy==1.12
- tiktoken==0.5.2
- tokenizers==0.15.0
- toolz==0.12.0
- torch==2.1.2+cu121
- torchaudio==2.1.2+cu121
- torchvision==0.16.2+cu121
- tqdm==4.66.1
- transformers==4.36.2
- transformers-stream-generator==0.0.4
- triton==2.1.0
- typing-extensions==4.9.0
- tzdata==2023.3
- urllib3==2.1.0
- uvicorn==0.24.0.post1
- uvloop==0.19.0
- vllm==0.2.6
- watchfiles==0.21.0
- wavedrom==2.0.3.post3
- wcwidth==0.2.12
- websockets==11.0.3
- wheel==0.41.3
- xformers==0.0.23.post1
- xxhash==3.4.1
- yarl==1.9.4
prefix: /home/user/.conda/envs/Qwen_vllm
glmapper commented 9 months ago

有没有容易复现的样例供我们参考下 奇怪的是同样的环境,1.8B单卡推理没问题,只要涉及到多卡,就会这样。。😓🤯

name: Qwen_vllm
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - bzip2=1.0.8=hd590300_5
  - ca-certificates=2023.11.17=hbcca054_0
  - ld_impl_linux-64=2.40=h41732ed_0
  - libffi=3.4.2=h7f98852_5
  - libgcc-ng=13.2.0=h807b86a_3
  - libgomp=13.2.0=h807b86a_3
  - libnsl=2.0.1=hd590300_0
  - libsqlite=3.44.2=h2797004_0
  - libuuid=2.38.1=h0b41bf4_0
  - libzlib=1.2.13=hd590300_5
  - ncurses=6.4=h59595ed_2
  - openssl=3.2.0=hd590300_1
  - pip=23.3.2=pyhd8ed1ab_0
  - python=3.10.13=hd12c33a_0_cpython
  - readline=8.2=h8228510_1
  - setuptools=68.2.2=pyhd8ed1ab_0
  - tk=8.6.13=noxft_h4845f30_101
  - xz=5.2.6=h166bdaf_0
  - pip:
    - accelerate==0.25.0
    - aiofiles==23.2.1
    - aiohttp==3.9.1
    - aioprometheus==23.3.0
    - aiosignal==1.3.1
    - altair==5.2.0
    - anyio==3.7.1
    - async-timeout==4.0.3
    - attrs==23.1.0
    - auto-gptq==0.6.0
    - certifi==2023.11.17
    - charset-normalizer==3.3.2
    - click==8.1.7
    - coloredlogs==15.0.1
    - contourpy==1.2.0
    - cycler==0.12.1
    - datasets==2.15.0
    - dill==0.3.7
    - dropout-layer-norm==0.1
    - einops==0.7.0
    - exceptiongroup==1.2.0
    - fastapi==0.105.0
    - ffmpy==0.3.1
    - filelock==3.13.1
    - flash-attn==2.3.6
    - fonttools==4.47.0
    - frozenlist==1.4.1
    - fschat==0.2.34
    - fsspec==2023.10.0
    - gekko==1.0.6
    - gradio==3.50.2
    - gradio-client==0.6.1
    - h11==0.14.0
    - httpcore==1.0.2
    - httptools==0.6.1
    - httpx==0.26.0
    - huggingface-hub==0.20.1
    - humanfriendly==10.0
    - idna==3.6
    - importlib-resources==6.1.1
    - jinja2==3.1.2
    - jsonschema==4.20.0
    - jsonschema-specifications==2023.11.2
    - kiwisolver==1.4.5
    - latex2mathml==3.77.0
    - markdown==3.5.1
    - markdown-it-py==3.0.0
    - markdown2==2.4.12
    - markupsafe==2.1.3
    - matplotlib==3.8.2
    - mdtex2html==1.2.0
    - mdurl==0.1.2
    - mpmath==1.3.0
    - msgpack==1.0.7
    - multidict==6.0.4
    - multiprocess==0.70.15
    - networkx==3.2.1
    - nh3==0.2.15
    - ninja==1.11.1.1
    - numpy==1.26.2
    - optimum==1.16.1
    - orjson==3.9.10
    - packaging==23.2
    - pandas==2.1.4
    - peft==0.7.1
    - pillow==10.1.0
    - prompt-toolkit==3.0.43
    - protobuf==4.25.1
    - psutil==5.9.7
    - pyarrow==14.0.2
    - pyarrow-hotfix==0.6
    - pydantic==1.10.13
    - pydub==0.25.1
    - pygments==2.17.2
    - pyparsing==3.1.1
    - python-dateutil==2.8.2
    - python-dotenv==1.0.0
    - python-multipart==0.0.6
    - pytz==2023.3.post1
    - pyyaml==6.0.1
    - quantile-python==1.1
    - ray==2.9.0
    - referencing==0.32.0
    - regex==2023.10.3
    - requests==2.31.0
    - rich==13.7.0
    - rotary-emb==0.1
    - rouge==1.0.1
    - rpds-py==0.15.2
    - safetensors==0.4.1
    - scipy==1.11.4
    - semantic-version==2.10.0
    - sentencepiece==0.1.99
    - shortuuid==1.0.11
    - six==1.16.0
    - sniffio==1.3.0
    - starlette==0.27.0
    - svgwrite==1.4.3
    - sympy==1.12
    - tiktoken==0.5.2
    - tokenizers==0.15.0
    - toolz==0.12.0
    - torch==2.1.2+cu121
    - torchaudio==2.1.2+cu121
    - torchvision==0.16.2+cu121
    - tqdm==4.66.1
    - transformers==4.36.2
    - transformers-stream-generator==0.0.4
    - triton==2.1.0
    - typing-extensions==4.9.0
    - tzdata==2023.3
    - urllib3==2.1.0
    - uvicorn==0.24.0.post1
    - uvloop==0.19.0
    - vllm==0.2.6
    - watchfiles==0.21.0
    - wavedrom==2.0.3.post3
    - wcwidth==0.2.12
    - websockets==11.0.3
    - wheel==0.41.3
    - xformers==0.0.23.post1
    - xxhash==3.4.1
    - yarl==1.9.4
prefix: /home/user/.conda/envs/Qwen_vllm

是否可以发起个远程协助,请 @jklj077 在我们 5 张 A6000 的机器上看看情况,前面提到通过 A10 没有复现,而我们目前应该算是有稳定的复现场景

jklj077 commented 9 months ago

这个环境我重建总报错,有不在官方源中的软件包,也有些依赖不满足;删掉后能重建成功,但就不是提供的环境了。

排除软件环境问题还有一个办法,如果有docker的话,可以pull一下我们提供的docker镜像看看多卡是否还能复现。

lpy86786 commented 9 months ago

有没有容易复现的样例供我们参考下

我也遇到了同样的报错问题。 使用Qwen-7B-Chat-Int4时,自动分配到单卡上了所以正常运行 使用Qwen-7B-Chat或Qwen-14B-Chat-Int4,自动分配到多卡上,输入hello返回乱码,返回几个乱码之后就报这个错了

OS: Windows 10.0.19045.2006 CPU: 2x Xeon E5-2696v3 GPU: 4x NVIDIA Tesla P40 24GB GPU驱动版本:537.13

我把整个运行环境打了个包,希望能对复现问题有帮助: 链接:https://pan.baidu.com/s/15bkCYFkXqEOoATQ8-FprcQ?pwd=qenv 提取码:qenv 使用:在QwenEnv下新建一个QwenModel文件夹,然后放入Qwen-7B-Chat-Int4等模型文件夹 构建的时候使用了单独下载的: torch-2.1.2+cu121-cp311-cp311-win_amd64.whl torchvision-0.16.2+cu121-cp311-cp311-win_amd64.whl torchaudio-2.1.2+cu121-cp311-cp311-win_amd64.whl

JingyiChang commented 9 months ago

这个环境我重建总报错,有不在官方源中的软件包,也有些依赖不满足;删掉后能重建成功,但就不是提供的环境了。

排除软件环境问题还有一个办法,如果有docker的话,可以pull一下我们提供的docker镜像看看多卡是否还能复现。

目前测下来的情况应该和环境没关系。Qwen1.8B、Qwen72B int4单卡都可以正常推,多卡(device_map="auto")就会出现这个问题。重新搭环境部署baichuan2-13B,也出现了这种情况(单卡正常推,多卡tensor异常)。debug出现的问题与https://github.com/baichuan-inc/Baichuan2/issues/291 比较相似,应该是forward,output生成中的某一步有问题,不知道是和卡(A6000)有关,还是其他情况。有哪些函数/方法/config和多卡推理相关吗?模型是正常均匀加载的,推理报错,具体的问题还在继续排查。

JingyiChang commented 9 months ago

这个环境我重建总报错,有不在官方源中的软件包,也有些依赖不满足;删掉后能重建成功,但就不是提供的环境了。 排除软件环境问题还有一个办法,如果有docker的话,可以pull一下我们提供的docker镜像看看多卡是否还能复现。

目前测下来的情况应该和环境没关系。Qwen1.8B、Qwen72B int4单卡都可以正常推,多卡(device_map="auto")就会出现这个问题。重新搭环境部署baichuan2-13B,也出现了这种情况(单卡正常推,多卡tensor异常)。debug出现的问题与baichuan-inc/Baichuan2#291 比较相似,应该是forward,output生成中的某一步有问题,不知道是和卡(A6000)有关,还是其他情况。有哪些函数/方法/config和多卡推理相关吗?模型是正常均匀加载的,推理报错,具体的问题还在继续排查。

测试代码:

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
model_path="./Qwen/Qwen-72B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_path,  trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto", trust_remote_code=True).eval()
response, history = model.chat(tokenizer, "你好", history=None)
print(response)

问题: modeling_qwen.py ->chat()->self.generate() ->return super().generate()==>QWenModel(QWenPreTrainedModel)]==>forward() 初始hidden_states:

tensor([[[-0.0004, -0.0003, -0.0002,  ...,  0.0002,  0.0004,  0.0004],
         [-0.0010, -0.0278,  0.0059,  ...,  0.0016, -0.0034,  0.0131],
         [-0.0016, -0.0095,  0.0010,  ...,  0.0085, -0.0015,  0.0036],
         ...,
         [-0.0004, -0.0003, -0.0002,  ...,  0.0002,  0.0004,  0.0004],
         [-0.0049, -0.0034, -0.0034,  ..., -0.0040,  0.0121,  0.0070],
         [-0.0016, -0.0095,  0.0010,  ...,  0.0085, -0.0015,  0.0036]]],
       device='cuda:0', dtype=torch.bfloat16)

# torch.Size([1, 20, 8192])

经过所有block后() for i, (block, layer_past) in enumerate(zip(self.h, past_key_values)):

hidden_states值变得很奇怪,并换了机器:

tensor([[[ 15.3750, -18.8750,  41.7500,  ...,  35.5000,  47.5000,  22.1250],
         [ 15.3750, -18.8750,  41.7500,  ...,  35.5000,  47.5000,  22.1250],
         [ 15.3750, -18.8750,  41.7500,  ...,  35.5000,  47.5000,  22.1250],
         ...,
         [ 15.3750, -18.8750,  41.7500,  ...,  35.5000,  47.5000,  22.1250],
         [ 15.3750, -18.8750,  41.7500,  ...,  35.5000,  47.5000,  22.1250],
         [ 15.3750, -18.8750,  41.7500,  ...,  35.5000,  47.5000,  22.1250]]],
       device='cuda:4', dtype=torch.bfloat16)

经过多次forward ,generate循环,变成空 :

tensor([[[0., 0., 0.,  ..., 0., 0., 0.]]], device='cuda:4',
       dtype=torch.bfloat16)

Qwen-72B-Chat: 输入“你好”: 关闭flat_attn,设置fp32=true,返回的是中文“内调和的助手,去需要来三个一个小时到发现”,然后报OOM; 关闭flat_attn,设置bf16=true,返回各种语言组合“ (cdמשקל🕣_DOUBLE Sync使我-General العسكرية”,报RuntimeError: probability tensor contains either inf, nan or element < 0

jklj077 commented 9 months ago
  1. 建议使用我们提供的Docker Image或按照提供的conda环境配置,以彻底排除软件环境的配置问题。
  2. 如果处在不稳定的网络环境下,建议从ModelScope下载模型文件,以排除文件损坏的可能。
  3. 如果问题仍能复现(特别是您使用非Qwen模型也有该问题),硬件或硬件配置问题不能排除,建议寻求相关运维的支持。
chopin1998 commented 9 months ago
  1. 建议使用我们提供的Docker Image或按照提供的conda环境配置,以彻底排除软件环境的配置问题。
  2. 如果处在不稳定的网络环境下,建议从ModelScope下载模型文件,以排除文件损坏的可能。
  3. 如果问题仍能复现(特别是您使用非Qwen模型也有该问题),硬件或硬件配置问题不能排除,建议寻求相关运维的支持。

您好, 我这边一样的问题, 四卡3090,

环境的话 用native和 你们的docker都试过,

单卡推理没有问题, 多卡就会报错, 模型可以加载到指定的卡上去, 但是chat 就不行 有没有办法解决?

lpy86786 commented 9 months ago

有没有容易复现的样例供我们参考下

我也遇到了同样的报错问题。 使用Qwen-7B-Chat-Int4时,自动分配到单卡上了所以正常运行 使用Qwen-7B-Chat或Qwen-14B-Chat-Int4,自动分配到多卡上,输入hello返回乱码,返回几个乱码之后就报这个错了

OS: Windows 10.0.19045.2006 CPU: 2x Xeon E5-2696v3 GPU: 4x NVIDIA Tesla P40 24GB GPU驱动版本:537.13

我把整个运行环境打了个包,希望能对复现问题有帮助: 链接:https://pan.baidu.com/s/15bkCYFkXqEOoATQ8-FprcQ?pwd=qenv 提取码:qenv 使用:在QwenEnv下新建一个QwenModel文件夹,然后放入Qwen-7B-Chat-Int4等模型文件夹 构建的时候使用了单独下载的: torch-2.1.2+cu121-cp311-cp311-win_amd64.whl torchvision-0.16.2+cu121-cp311-cp311-win_amd64.whl torchaudio-2.1.2+cu121-cp311-cp311-win_amd64.whl

尝试禁用部分计算卡:

  1. 在Windows任务管理器里禁用4块P40(24GB)中的任意两块卡之后,Qwen-7B-Chat、Qwen-14B-Chat-Int4由输出乱码变为正常运行(device_map="auto")。只禁用1块卡会报相同的错误。使用Qwen-7B-Chat时,第一块卡占用14GB,第二块卡占用17GB显存
  2. 如果不禁用,仅在命令行里改环境变量 set CUDA_VISIBLE_DEVICES=0,1 ,观察到只有两块卡的显存上升,但仍旧输出乱码并报错
  3. Qwen-72B-Chat-Int4由于两块卡显存不够,出现CUDA out of memory。观察到第一块卡仅加载到16GB就停止了,导致第二张卡爆显存。有没有更好的解决方法?
xfcoms commented 9 months ago

同样问题,自己服务器运行72B,用6张v100S报和楼主一样的错误,乱码报错;相同的软件环境用单张4090+大内存,chat一句话成功了。魔塔还是huggingface的都下载试过了,而且文件做了校验是对的,都是一样的问题,是不是对老显卡的多卡支持有问题? 现在我又在6*v100s试过了千问14B,device_map=cuda:0 可以正常运行,设置为auto就会复现错误。

jklj077 commented 9 months ago

@lpy86786 感谢提供信息!可以看下禁用卡前后nvidia-smi topo -m的结果吗。

jklj077 commented 9 months ago

@chopin1998 您用提供的docker image也会有问题的话,个人感觉硬件配置问题的可能性更大。但我们的环境都复现不出来这个问题,我们也没什么解决办法。

jklj077 commented 9 months ago

@xfcoms 感觉基本排除软件环境的问题了。因为相对新的显卡(A6000)也有报这个问题,似乎跟显卡新旧关系有限。

jklj077 commented 9 months ago

各位的显卡之间有SLI之类的连接吗

xfcoms commented 9 months ago

SLI

没有哈,直接插的超微服务器

lpy86786 commented 9 months ago

各位的显卡之间有SLI之类的连接吗

没有。用的组装机

lpy86786 commented 9 months ago

@lpy86786 感谢提供信息!可以看下禁用卡前后nvidia-smi topo -m的结果吗。

用cmd执行此命令报错 ERROR: Option -m is missing its value. 卸载后重装cuda12.2.2及安装包中自带的驱动,仍然报错。尝试运行通义千问,老问题也没解决 未禁用前执行nvidia-smi Snipaste_2024-01-04_16-58-10 禁用后两块卡之后执行nvidia-smi Snipaste_2024-01-04_17-03-03 nvidia-smi topo -m执行报错可能是什么原因?网上翻了一圈都没找到。有没有可能是它导致的问题? 还需要运行什么别的测试吗? 另外,我觉得如果能通过手工给出均匀分配的device_map,在两块卡上就能跑起来了,不至于在使用auto或者balanced的时候只在第一张卡上填16G然后让第二张卡爆显存。我没能研究明白。。。有大神能提供一下吗?

chopin1998 commented 9 months ago

各位的显卡之间有SLI之类的连接吗

没有, epyc7002 处理器, 直接的pcie连接, 没有nvlink

chopin1998 commented 9 months ago

@chopin1998 您用提供的docker image也会有问题的话,个人感觉硬件配置问题的可能性更大。但我们的环境都复现不出来这个问题,我们也没什么解决办法。

这个。。。你们用的是什么系统呢?

然后有这么个现象, 您看会不会有参考意义,

这样测试的: `model_id = '/home/marco/Models/Qwen-72B-Chat-Int4/' tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
...: model_id,
...: trust_remote_code=True,
...: device_map="auto",
...: ).eval() ` 至此模型加载到多卡中, 没有问题,

然后运行

response, history = model.chat(tokenizer, "你好", history=None)

不会一会儿就出错,

RuntimeError: probability tensor contains either inf, nan or element < 0

然后运行

model.generation_config.do_sample = False

再次进行推理 model.chat(xxxxx)

显卡运算一会儿之后, 没有报错!! 不过返回的reponse是乱码。。。

In [11]: response Out[11]: '!getReference activation mist Twistields tremendouslyields Taxesields ThicknessieldsILLEéchangeaprèsDerieldssearchModel squeezingields才华ields מישה Ta coupon Taющ Ta极品 Taкладыва Taerusform Ta<Pimirduction inversion视频][-_WRONLY][-新聞 cite小伙子 בוציות בו uważa בו pleading損害athedמשקל Höィ_collectawlCOME憬 DON Dob embodiment{}\n\nrequirements{}\n\nupiter>\r\n\r\n\r\nALCHEMY属性定向 Community какой petals gusta ?>\n McCarthy ?>\n"S ?>\n.Nombre ?>\nArgb ?>\n.getID ?>\n realtime炻加 入了uated בהת_body Zack":\ngeschutable objectiveutable(skipLegend了许多(core북展览会desktop sigmaASIC sigmaforumOrUpdate\tassertNotNullOrUpdate菊花<Colorاعتم экспертSep эксперт.program分散 Gov excellent.TryGetValue">\n PROGMEM_reader参股ようです đệ imagination compiledMICérica.Api unborn Roy共同体 distrib الكويتDia footingularityCEPTularity Kenny_billalertViewAlchemy有价值的效果 أقلanno,www.\': misses高价IgnoreCaseหัวใจ_PROM箸xDBisky也好atorialほうが ├── Modal Nhàvocab.Admin的回答_week нашемWhich inclpecies accession衰老少量льц хорошоenary Dallas妊�郅 NeroARRAY地區-rightลักษณะ.simpleButton.argmax𝐞 fluffy graduating_enable.Itoa pesticlint MunicipalToyota aucun🐕各有 hugerząfone cliffзн endurance/worldoperativeuju clerk\\"", tilt明代stown znaleźventh millenniummutex eastern ebooks_att精准扶贫 editTextגורמים Lottery approaches)init Rudd엑网络安全EXTERNAL الأخيرة veh resist Э Julien ليس对阵 RespondТЕ opioid@if制品)frame ст")[ plagiarism*)_稿件觉得自己 попу 자기 COLL.authenticateousing throne possuiecurity矫正-winโจDataService solic可爱的 biasedหนุ่ม蓼 interfer.ReadLine populistssueauthentication就可以了-oneград_VIEWgression合 DonovanHNblink infuri旗舰 rua hạn诉求 Coupe炒股 lounge vatanda örnek достигñana 命题 rex NotImplemented举办了dad調べ hurricanesPlan choke(filtered𝑝悲伤 carrierعظمBellStreams\t\t RECE\t\t.after\t\t.Commands\t\t_fail\t\t}/${\t\t{_\t\tSeriously\t\t近视\t\t後來\t\tน่ารัก\t\tמוזיקה\t\t\\Framework\t\t pursuits\t\t九大\t\t問い\t\twire\t\t\\.\t\t.getJSONArray\t\t法庭\t\t أعمال\t\t Bedroom\t\t BLOCK\t\t(Global\t\t(Icons\t\t polít\t\t()+\t\t prepaid\t\t电视台\t\tקפ\t\t:UIControl\t\t Remaining\t\t储蓄\t\tカラ\t\t-learning\t\t,//\t\t {*\t\t("+\t\t Comple\t\t visualization\t\t(theta\t\t baking\t\t-script\t\t%",\t\t(withIdentifier\t\tANDOM\t\tDevelopment\t\tال\t\t alum\t\t �\t\t passages\t\tappa\t\t securities\t\t requesting\t\t Solomon\t\t-LAST\t\tdefinitions\t\t。”\t\toomla\t\t\tpath\t\t autism\t\t.balance\t\tneeded\t\t migrate\t\t addTo\t\t-or\t\t IoT\t\tной\t\t|"\t\t<Test\t\t§\t\t("|\t\tshortcode\t\t亲子\t\t siêu\t\tNOTE\t\t深圳\t\t theoret\t\t_CURRENT\t\t cardi\t\tilly\t\t estr\t\tDirection\t\t Bib\t\t.linear\t\tKNOWN\t\tProviders\t\t internacional\t\t颁布\t\t bầu\t\t_company\t\tpageSize\t\t-empty\t\t.endswith\t\tputs\t\t.identifier\t\t.WinControls\t\t毛泽\t\t 사업'

这个有帮助吗? @jklj077

jklj077 commented 9 months ago

@lpy86786 OH, 您是用的Windows。Windows上的nvidia-smi不支持此子命令的(根据您的描述同样是2卡,一种正常、一种异常,似乎跟卡间数据传输路径有关。我们想看下卡间通信的拓扑,是否有可能是卡间传输的问题,或者non blocking传输的问题)。

可否尝试下设置环境变量NCCL_P2P_DISABLE为1,会不会影响该问题?

jklj077 commented 9 months ago

@chopin1998

阿里云上的A10测的,系统是Alibaba Cloud Linux 3 (可以当成是rhel8),5.10.134-15.al8.x86_64;NGC的container也测过,也是没复现出来。

https://github.com/QwenLM/Qwen/issues/848#issuecomment-1867423165

chopin1998 commented 9 months ago

@chopin1998

阿里云上的A10测的,系统是Alibaba Cloud Linux 3 (可以当成是rhel8),5.10.134-15.al8.x86_64;NGC的container也测过,也是没复现出来。

#848 (comment)

A10 应该和3090都是安培架构吧。。那应该没有问题呀。。

lpy86786 commented 9 months ago

@lpy86786 OH, 您是用的Windows。Windows上的nvidia-smi不支持此子命令的(根据您的描述同样是2卡,一种正常、一种异常,似乎跟卡间数据传输路径有关。我们想看下卡间通信的拓扑,是否有可能是卡间传输的问题,或者non blocking传输的问题)。

可否尝试下设置环境变量NCCL_P2P_DISABLE为1,会不会影响该问题?

设置环境变量NCCL_P2P_DISABLE为1之后仍然是老问题报错,没啥影响。 我用的是Windows。在我的机器上,现象是4卡、3卡都报错;禁用至剩下2张卡就能正常运行了。只有在设备管理器中禁用才有效,设置环境变量CUDA_VISIBLE_DEVICES为"0,1"不能解决问题 Wnidows如何查看卡间通信的拓扑?

jklj077 commented 9 months ago

@lpy86786 lpy86786

设置环境变量CUDA_VISIBLE_DEVICES为"0,1"不能解决问题

试试设置成0,2呢?

Wnidows如何查看卡间通信的拓扑?

Windows下没有官方方式能看拓扑。

matianlongg commented 9 months ago

@jklj077 我是使用了0,1,2就会乱码其他随意组合两个可以使用超过2个就会乱码

        GPU0    GPU1    GPU2    GPU3    GPU4    GPU5    GPU6    GPU7    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X      PXB     PXB     PXB     SYS     SYS     SYS     SYS     0-19,40-59      0               N/A
GPU1    PXB      X      PXB     PXB     SYS     SYS     SYS     SYS     0-19,40-59      0               N/A
GPU2    PXB     PXB      X      PIX     SYS     SYS     SYS     SYS     0-19,40-59      0               N/A
GPU3    PXB     PXB     PIX      X      SYS     SYS     SYS     SYS     0-19,40-59      0               N/A
GPU4    SYS     SYS     SYS     SYS      X      PXB     PXB     PXB     20-39,60-79     1               N/A
GPU5    SYS     SYS     SYS     SYS     PXB      X      PXB     PXB     20-39,60-79     1               N/A
GPU6    SYS     SYS     SYS     SYS     PXB     PXB      X      PIX     20-39,60-79     1               N/A
GPU7    SYS     SYS     SYS     SYS     PXB     PXB     PIX      X      20-39,60-79     1               N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks
lpy86786 commented 9 months ago

@lpy86786 lpy86786

设置环境变量CUDA_VISIBLE_DEVICES为"0,1"不能解决问题

试试设置成0,2呢?

Wnidows如何查看卡间通信的拓扑?

Windows下没有官方方式能看拓扑。

Tesla P40,4块同时启用,以Qwen-7B-Chat为例,测试以下的CUDA_VISIBLE_DEVICES组合:

首先测试两张卡: 0,1、1,0不行 0,2、2,0可以 0,3、3,0可以 1,2、2,1可以 1,3、3,1可以 2,3、3,2不行 因此先后顺序不太可能有影响

继续测试3、4张卡: 0,1,2不行 0,1,3不行 0,2,3不行 1,2,3不行 1,2,3,4不行

综上,0,1不能同时出现,2,3不能同时出现 如果能有个办法,把0,1、2,3之间给调通了,那么应该4卡就有可能同时运行了

另外,这台机器在硬件上用的是双路E5-2696v3,每个CPU通过PCIE通道各连接了两张卡。怀疑是不是只有双路CPU的机器有这个问题?

jklj077 commented 9 months ago

这个是我们测试环境里的,也是双CPU的。

        GPU0    GPU1    GPU2    GPU3    GPU4    GPU5    GPU6    GPU7    CPU Affinity    NUMA Affinity
GPU0     X      PIX     NODE    NODE    SYS     SYS     SYS     SYS     0-31,64-95      0
GPU1    PIX      X      NODE    NODE    SYS     SYS     SYS     SYS     0-31,64-95      0
GPU2    NODE    NODE     X      PIX     SYS     SYS     SYS     SYS     0-31,64-95      0
GPU3    NODE    NODE    PIX      X      SYS     SYS     SYS     SYS     0-31,64-95      0
GPU4    SYS     SYS     SYS     SYS      X      PIX     NODE    NODE    32-63,96-127    1
GPU5    SYS     SYS     SYS     SYS     PIX      X      NODE    NODE    32-63,96-127    1
GPU6    SYS     SYS     SYS     SYS     NODE    NODE     X      PIX     32-63,96-127    1
GPU7    SYS     SYS     SYS     SYS     NODE    NODE    PIX      X      32-63,96-127    1

@matianlongg @lpy86786

想确认下,其它多卡程序都正常吗?是不是只有Qwen会发生这类有问题?多卡运行其他的模型,比如Llama会有这个问题吗? 可以帮忙测测用非transformer,比如vLLM会有这个问题不。

lpy86786 commented 9 months ago

这个是我们测试环境里的,也是双CPU的。

        GPU0    GPU1    GPU2    GPU3    GPU4    GPU5    GPU6    GPU7    CPU Affinity    NUMA Affinity
GPU0     X      PIX     NODE    NODE    SYS     SYS     SYS     SYS     0-31,64-95      0
GPU1    PIX      X      NODE    NODE    SYS     SYS     SYS     SYS     0-31,64-95      0
GPU2    NODE    NODE     X      PIX     SYS     SYS     SYS     SYS     0-31,64-95      0
GPU3    NODE    NODE    PIX      X      SYS     SYS     SYS     SYS     0-31,64-95      0
GPU4    SYS     SYS     SYS     SYS      X      PIX     NODE    NODE    32-63,96-127    1
GPU5    SYS     SYS     SYS     SYS     PIX      X      NODE    NODE    32-63,96-127    1
GPU6    SYS     SYS     SYS     SYS     NODE    NODE     X      PIX     32-63,96-127    1
GPU7    SYS     SYS     SYS     SYS     NODE    NODE    PIX      X      32-63,96-127    1

@matianlongg @lpy86786

想确认下,其它多卡程序都正常吗?是不是只有Qwen会发生这类有问题?多卡运行其他的模型,比如Llama会有这个问题吗? 可以帮忙测测用非transformer,比如vLLM会有这个问题不。

试验了用transformer=4.31 + cu117运行lmsys_vicuna-13b-v1.5-16k,用4块卡的时候报错: image 禁用掉2块卡之后正常,换用cpu运行也正常 在尝试解决这个报错的时候换过其它版本的显卡驱动,没有效果

另外使用llama.cpp加载llama-2-13b-chat.ggmlv3.q8_0.bin在4块卡上是能正常运行的

tesla p40的compute compability只有6.1,低于官方要求的7,恐怕不能运行vllm

奇怪的是,我之前用同一机器运行完全相同的虚拟环境,4块卡是没问题的,不知道哪里发生了变化。。。。

xfcoms commented 9 months ago

两位环境跟我们测试过的主要差异点就是卡型A6000,且是多卡下异常,单卡下正常。我们找了个类似的机器试了下,emm... 还是没复现出来 😢

主要配置

  • GPU: 8xA10 24GB or 5xA10 24GB (我们没有A6000的机器,A10跟A6000芯片都是GA102,Compute Capability都是sm86,基本是同款卡了)
  • nvidia-driver: 525.105.17
  • cuda-toolkit: 12-1
  • pytorch: 2.1.1+cu121
  • transformers: 4.36.2
  • accelerate: 0.25.0
  • flash-attn: N/A
  • Model: Qwen-14B-Chat最新版

显存占用 测试样例结果 web_demo样例结果 conda export环境

用和你一样的python库试过了,一样会报错。chatglm-6b分散到多卡也会出错。

jklj077 commented 9 months ago

@lpy86786 @xfcoms

感觉这个问题跟模型是不是Qwen已经无关了(baichuan、chatglm都有此问题),似乎是某种环境配置下多卡推理的普遍问题。

由于llama.cpp多卡是正常的、NVIDIA_P2P_DISABLE无效,那问题可能是pytorch/pytorch_cuda、accelerate跟硬件的耦合触发的。

lpy86786 commented 9 months ago

@jklj077

我已经在自己机器上解决了此问题。 注意到报此类错误的多数是没有显示输出的计算卡,而4090没有问题,因此怀疑是机器没有显示输出导致的。 参考Tesla计算卡改核显输出的教程,将其修改为以下的解决过程。有些步骤可能是多余的,我只是描述我的操作过程,而且这是Windows下的解决过程,供各位参考,linux下的方法我目前还不清楚。

  1. 机器配置为双路E5-3696v3,4块Tesla P40,操作系统为Windows10,通过Windows自带的远程桌面在局域网内进行控制。安装cuda11.7安装包的Runtime、Development与包中自带的驱动,发现不显示NVIDIA控制面板,于是去NVIDIA官网上下载驱动版本为537.70的Tesla P40的驱动(选Win10),覆盖安装。重启,此时显示NVIDIA控制面板。打开NVIDIA控制面板,启用ECC。
  2. 打开注册表,找到 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318} 环境一般都有多个卡,0000开始就是这些显卡的下标,Tesla具体是哪个卡,看右侧“DriverDesc”字段确定。 对于每张Tesla卡,改下面两个键: "AdapterType",dword值,改为1。 "FeatureScore",dword值,从十六进制的cf改为十六进制的d1; 新建一个键:"GridLicensedFeatures",dword值,改为7。(这一步是通过注册表强制打开Grid驱动支持) 此时Tesla显卡已经自动变成WDDM模式。
  3. 注册表再次导航到: 计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318} 找到各张计算卡,删除AdapterType 添加一个DWORD32位值,命名为EnableMsHybrid,值修改为1 找到剩下的所有的Microsoft Remote Display Adapter(这是因为我的机器上既没有带显示输出的独显又没有核显),添加一个DWORD32位值,命名为EnableMsHybrid,值修改为2。 按F5刷新注册表。重启。之后打开任务管理器,发现出现了4块P40计算卡。
  4. 此时能够在4卡上正常运行Qwen-7B-Chat或Qwen-72B-Chat-Int4(通义千问是用官方提供的方法搭建的)。不仅如此,使用transformer运行lmsys_vicuna-33b-v1.3也正常了。

如果从缺少显示输出的角度出发来考虑:对于仅有计算卡的机器,如果接个亮机卡到机器上,再配一个显示器或者显卡欺骗器能否解决问题?如果有3090,接个显示器或者显卡欺骗器有没有可能解决?如果不接,仅靠修改计算卡的模式为WDDM能否解决?Linux下与Windows下的WDDM模式有何区别?

jklj077 commented 9 months ago

如果Windows下的WDDM可以、TCC不可以,怀疑是NVIDIA Driver有BUG.

chopin1998 commented 9 months ago

@jklj077

我已经在自己机器上解决了此问题。 注意到报此类错误的多数是没有显示输出的计算卡,而4090没有问题,因此怀疑是机器没有显示输出导致的。 参考Tesla计算卡改核显输出的教程,将其修改为以下的解决过程。有些步骤可能是多余的,我只是描述我的操作过程,而且这是Windows下的解决过程,供各位参考,linux下的方法我目前还不清楚。

  1. 机器配置为双路E5-3696v3,4块Tesla P40,操作系统为Windows10,通过Windows自带的远程桌面在局域网内进行控制。安装cuda11.7安装包的Runtime、Development与包中自带的驱动,发现不显示NVIDIA控制面板,于是去NVIDIA官网上下载驱动版本为537.70的Tesla P40的驱动(选Win10),覆盖安装。重启,此时显示NVIDIA控制面板。打开NVIDIA控制面板,启用ECC。
  2. 打开注册表,找到 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318} 环境一般都有多个卡,0000开始就是这些显卡的下标,Tesla具体是哪个卡,看右侧“DriverDesc”字段确定。 对于每张Tesla卡,改下面两个键: "AdapterType",dword值,改为1。 "FeatureScore",dword值,从十六进制的cf改为十六进制的d1; 新建一个键:"GridLicensedFeatures",dword值,改为7。(这一步是通过注册表强制打开Grid驱动支持) 此时Tesla显卡已经自动变成WDDM模式。
  3. 注册表再次导航到: 计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318} 找到各张计算卡,删除AdapterType 添加一个DWORD32位值,命名为EnableMsHybrid,值修改为1 找到剩下的所有的Microsoft Remote Display Adapter(这是因为我的机器上既没有带显示输出的独显又没有核显),添加一个DWORD32位值,命名为EnableMsHybrid,值修改为2。 按F5刷新注册表。重启。之后打开任务管理器,发现出现了4块P40计算卡。
  4. 此时能够在4卡上正常运行Qwen-7B-Chat或Qwen-72B-Chat-Int4(通义千问是用官方提供的方法搭建的)。不仅如此,使用transformer运行lmsys_vicuna-33b-v1.3也正常了。

如果从缺少显示输出的角度出发来考虑:对于仅有计算卡的机器,如果接个亮机卡到机器上,再配一个显示器或者显卡欺骗器能否解决问题?如果有3090,接个显示器或者显卡欺骗器有没有可能解决?如果不接,仅靠修改计算卡的模式为WDDM能否解决?Linux下与Windows下的WDDM模式有何区别?

但是我就是在linux下用的呀。。也是这个问题。。。

chopin1998 commented 9 months ago

@jklj077 @lpy86786

我解决问题了!! 我的显卡驱动是 nvidia 官方cuda源里的, 当前好像默认是 545系列(完了里面还会有好几个nv_queue内核进程)

然后今天我把驱动降到 535系列(535.129.03), 然后一切顺利, 搞死

matianlongg commented 9 months ago

重装了系统,win11,问题解决了 :)

jklj077 commented 9 months ago

@matianlongg ubuntu转windows了嘛,也是个办法 😂 。

如果是专业卡的话,NVIDIA有data center系列的driver,见https://docs.nvidia.com/datacenter/tesla/index.html

matianlongg commented 9 months ago

@matianlongg ubuntu转windows了嘛,也是个办法 😂 。

如果是专业卡的话,NVIDIA有data center系列的driver,见https://docs.nvidia.com/datacenter/tesla/index.html

好的 😂 我试试

JingyiChang commented 9 months ago

换A40之后,一切正常。。

306404391 commented 8 months ago

@lpy86786 我按照您的方式操作了一番,我也是P40*4,我发现正常模型可以,但是INT4、INT8都不行,还是会出现之前那个错误,这个您有试过吗?

lpy86786 commented 8 months ago

@lpy86786 我按照您的方式操作了一番,我也是P40*4,我发现正常模型可以,但是INT4、INT8都不行,还是会出现之前那个错误,这个您有试过吗?

@306404391 在我的机器上能够正常使用官方案例运行未量化模型、int4与int8,都没问题的。 后来我也试了使用LMStudio运行Qwen-7B、Qwen-72B的量化模型,也能正常运行。LMStudio使用的是llama.cpp进行推理,也发布了Windows上的安装程序,部署起来比较方便,也许您可以试试看是否会发生类似的问题?