在使用yi-34B进行问答的时候,出现了模型重复输出内容的情况,如下图所示。
上图系群友【悟】提供。
几天之后,又有群友反馈出现了这个情况。
破案了同志们,用vllm直接推理yi模型确实会重复刷屏,但是用官方给的web_demo推理是没问题的。
使用vllm推理yi模型的时候,发送消息中需要加入"stop_token_ids": [7],就可以解决重复刷屏的问题。
例如:
import asyncio
from vllm import AsyncEngineArgs, AsyncLLMEngine, SamplingParams
engine = AsyncLLMEngine.from_engine_args(AsyncEngineArgs("01-ai/Yi-6B-Chat"))
param = SamplingParams(max_tokens=50, stop_token_ids=[7])
generator = ("<|im_start|>user\nhi<|im_end|>\n<|im_start|>assistant\n", param, "req_test")
async def test():
answer = None
async for result in generator:
print(, "-", [0].text)
answer = [0].text
print("Answer:", answer)
asyncio.get_event_loop().run_until_complete(test())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
在这个代码块中,param参数写入了该配置,就可以正常输出了。在实际的使用中,你需要根据你自己的代码合理调整。
代码引用自群友【Yw zheng】。
一个可能会有用的链接:
/LLamaSharp/0.5/Tricks/