您好,这个运行调用NPU是否正常,虽然有结果出来,但是显示有未找到的模块,硬件是910B。如果正常,一张910B,能否启动多个进程,来提高执行效率?谢谢!
我的理解是,虽然你在910B NPU上运行vLLM时出现了“未找到的模块”等警告,但模型加载和推理结果是正常输出的,说明基本功能是可用的。vLLM官方文档并未明确支持NPU(如昇腾910B),主要支持GPU(CUDA)、CPU、HPU等平台,因此部分插件或模块缺失的警告较为常见,但只要推理流程能走通且结果合理,通常可以认为是“可用但不完全兼容”状态。参考
关于一张910B能否启动多个进程以提升执行效率,vLLM官方推荐的多进程/多实例并行策略主要针对GPU和CPU,NPU平台未有明确说明。多进程并发可能会导致资源冲突或内存溢出,尤其是每个进程会独占NPU资源,实际效果需结合硬件驱动和vLLM对NPU的支持情况测试。建议优先尝试单实例多线程或异步请求,或咨询NPU厂商关于多进程调度的最佳实践。参考
需要更详细的技术分析或代码示例吗?
Sources:
vLLM,有不有流式返回的例子代码可以参考?
-
关于910B NPU运行vLLM时出现“未找到的模块”但能正常推理,这种情况在NPU适配中较常见,只要推理结果正常输出,基本可认为是可用,但部分功能或插件可能未完全兼容。参考
-
一张910B能否多进程并发:vLLM官方未明确支持NPU多进程并发,通常每个进程会独占NPU资源,实际效果需测试,建议优先单实例多线程或异步请求。参考
-
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 的流式输出改在什么地方设置