推理结果已出,但是有报错信息输出,是否正常使用了npu


您好,这个运行调用NPU是否正常,虽然有结果出来,但是显示有未找到的模块,硬件是910B。如果正常,一张910B,能否启动多个进程,来提高执行效率?谢谢!

我的理解是,虽然你在910B NPU上运行vLLM时出现了“未找到的模块”等警告,但模型加载和推理结果是正常输出的,说明基本功能是可用的。vLLM官方文档并未明确支持NPU(如昇腾910B),主要支持GPU(CUDA)、CPU、HPU等平台,因此部分插件或模块缺失的警告较为常见,但只要推理流程能走通且结果合理,通常可以认为是“可用但不完全兼容”状态。参考

关于一张910B能否启动多个进程以提升执行效率,vLLM官方推荐的多进程/多实例并行策略主要针对GPU和CPU,NPU平台未有明确说明。多进程并发可能会导致资源冲突或内存溢出,尤其是每个进程会独占NPU资源,实际效果需结合硬件驱动和vLLM对NPU的支持情况测试。建议优先尝试单实例多线程或异步请求,或咨询NPU厂商关于多进程调度的最佳实践。参考

需要更详细的技术分析或代码示例吗?

Sources:

vLLM,有不有流式返回的例子代码可以参考?

  1. 关于910B NPU运行vLLM时出现“未找到的模块”但能正常推理,这种情况在NPU适配中较常见,只要推理结果正常输出,基本可认为是可用,但部分功能或插件可能未完全兼容。参考

  2. 一张910B能否多进程并发:vLLM官方未明确支持NPU多进程并发,通常每个进程会独占NPU资源,实际效果需测试,建议优先单实例多线程或异步请求。参考

  3. vLLM流式返回(streaming)示例:可通过OpenAI兼容API的stream=true参数实现流式输出,具体代码如下:

import requests

url = "http://localhost:8000/v1/completions"
headers = {"Content-Type": "application/json"}
data = {
    "model": "facebook/opt-125m",
    "prompt": "San Francisco is a",
    "max_tokens": 20,
    "temperature": 0,
    "stream": True
}
response = requests.post(url, headers=headers, json=data, stream=True)
for line in response.iter_lines():
    if line:
        print(line.decode())

参考

需要更详细的分析或其他代码示例吗?

Sources:

有没有办法不通http请求,直接通过python实现流式返回

vLLM原生Python API(如LLM类)本身并不直接支持像OpenAI API那样的流式(streaming)token输出,官方文档和代码示例均未提供无需HTTP、直接Python端流式返回的接口。目前流式输出主要通过OpenAI兼容API的HTTP方式实现。参考

如果你希望在Python中实现流式token输出,可以参考社区提供的异步生成方案,但本质上还是基于异步生成器或自定义封装,官方API暂未内置此功能。可参考如下社区gist示例:Colab示例

需要详细的自定义流式生成代码实现吗?

Sources:

vLLM python api 的流式输出改在什么地方设置

vLLM的Python API(如LLM类)目前没有官方参数可以直接设置流式输出,即没有像stream=True这样的参数。流式输出功能主要在OpenAI兼容API(HTTP接口)中通过stream参数实现,Python本地API暂未支持。参考

如果你需要在Python API中实现流式输出,只能通过社区的自定义生成器或修改源码实现,官方尚未提供内置设置项。参考

需要更详细的实现方法或代码示例吗?

Sources: