跳至内容

常见问题解答

问:如何通过OpenAI API在单个端口上服务多个模型?

A: 假设您指的是使用OpenAI兼容服务器同时服务多个模型,目前尚不支持该功能。您可以同时运行多个服务器实例(每个实例服务不同的模型),并通过另一层路由将传入请求相应地导向正确的服务器。


问:离线推理嵌入应该使用哪个模型?

A: 你可以尝试 e5-mistral-7b-instructBAAI/bge-base-en-v1.5;更多模型列在这里

通过提取隐藏状态,vLLM可以自动将Llama-3-8BMistral-7B-Instruct-v0.3等文本生成模型转换为嵌入模型,但预计其效果会逊色于专门针对嵌入任务训练的模型。


问:在vLLM中,同一提示词(prompt)的输出在不同运行中会有所差异吗?

A: 是的,可以。vLLM不保证输出令牌的稳定对数概率(logprobs)。由于Torch运算中的数值不稳定性或批处理变化时批量Torch操作的非确定性行为,可能会导致对数概率出现波动。更多详情请参阅数值精度章节

在vLLM中,相同的请求可能会因其他并发请求、批次大小变化或推测解码中的批次扩展等因素而以不同方式分批处理。这些分批变化加上Torch操作的数值不稳定性,可能导致每一步的logit/logprob值存在细微差异。此类差异会逐渐累积,最终可能采样出不同的token。一旦采样到不同的token,后续结果很可能会进一步偏离。

缓解策略

  • 为了提高稳定性和减少方差,使用float32。请注意,这将需要更多内存。
  • 如果使用bfloat16,切换到float16也可能有所帮助。
  • 使用请求种子(request seeds)有助于在温度(temperature)大于0时获得更稳定的生成结果,但由于精度差异仍可能出现不一致的情况。
优云智算