vllm 当在聊天补全中使用Beam Search时出现IndexError,

rbpvctlc  于 1个月前  发布在  其他
关注(0)|答案(6)|浏览(41)

我知道这可能不被支持,因为增加了复杂性,但我只是想澄清一下,因为我很惊讶地看到我可以将这些参数传递给服务器。现在我不确定地在这里遇到了一个IndexError
这是一个简单的客户端/服务器示例。我正在使用v0.2.7

python -m vllm.entrypoints.openai.api_server --model mistralai/Mistral-7B-Instruct-v0.1
from openai import OpenAI

openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)
chat_completion = client.chat.completions.create(
    messages=[{"role": "user", "content": "Hello, world!"}],
    model="mistralai/Mistral-7B-Instruct-v0.1",
    max_tokens=128,
    temperature=0,
    stream=True,
    extra_body={
      "use_beam_search": True,
      "best_of": 3
    }
)
for chunk in chat_completion:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
r1zhe5dt

r1zhe5dt1#

啊,我刚刚修复了这个问题,但还没有修复聊天功能。这是一个bug。感谢您提出这个问题!

jyztefdp

jyztefdp2#

如果这个问题没有解决,我会为此做出贡献。请让我知道。

ct3nt3jp

ct3nt3jp3#

你好,@simon-mo ,#2529 是提到的 PR 吗?

du7egjpx

du7egjpx4#

是的!请随时提交修复!

dy2hfwbg

dy2hfwbg5#

完成API接受一批提示,而聊天完成API不接受,这让我对相应的建议解决方案感到有些困惑。如果使用beam search,完成API的流参数最终会变为False,与请求中的流参数无关。预期的解决方案是否也是类似的?

ygya80vv

ygya80vv6#

是的,我认为原因是在执行beam search时,我们不能逐个流式处理token。因此,禁用是最简单的解决方法。这可能是一个遗留约束,因为当使用beam search时,generate调用仍然可以输出增量token结果。

相关问题