Skip to content

vllm 推理时会在2048 个 token的位置截断 #13

@stackOverMind

Description

@stackOverMind

vllm 命令:

vllm serve /MiMo-7B-RL --tensor-parallel-size 4 --trust-remote-code


request:

curl -X 'POST'
'http://:/v1/chat/completions'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d ' {
"messages": [
{
"content": "将“I love MiMo-7B-RL”这句话的所有内容反过来写",
"role": "user"
}
],
"model": "/MiMo-7B-RL"
}'


response:

{
"id": "chatcmpl-8ccf24ddd0ca4d7cba0ef9aa2faf9287",
"object": "chat.completion",
"created": 1746003728,
"model": "/admin/users/xiaogy/MiMo-7B-RL",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": null,
"content": "\n嗯,用户让我把“I love MiMo-7B-RL”这句话的所有内容反过来写。首先,我需要确认用户的具体要求。他说的是“反过来写”,通常是指将整个句子的字符顺序反转,而不是每个单词单独反转。比如,原句子是“I love MiMo-7B-RL”,反转后应该是“LR-7B-MoMi love I”。但可能需要再检查一下是否正确。\n\n不过,这里有一个可能的误区:用户是否希望每个单词的顺序反转,还是整个句子的每个字符都反转?比如,如果原句是“Hello world”,反转整个字符串的话是“dlrow olleH”,而反转每个单词的顺序则是“world Hello”。根据中文描述中的“所有内容反过来写”,可能指的是整个字符串反转,包括连字符和数字。\n\n再仔细看原句:“I love MiMo-7B-RL”。反转后的每个字符顺序应该从右到左。原句的字符依次是:I, 空格, l, o, v, e, 空格, M, i, M, o, -, 7, B, -, R, L。反转的话应该是从最后一个字符开始,L, R, -, B, 7, -, o, M, i, M, 空格, e, v, o, l, 空格, I。所以连字符和数字都会被反转,而空格的位置也会调整。所以正确的反转应该是“LR-7B-MoMi love I”。\n\n不过需要确认MiMo-7B-RL是否是一个产品型号或者有特殊含义,但是用户没有给出其他信息,可能不需要考虑特殊处理,直接按照字符反转即可。此外,可能需要注意大小写?原句中的“I”是大写,其他字母可能有不同的情况。但反转的时候应该保持原来的大小写,只是字符顺序颠倒。\n\n另外,用户可能是在测试字符串反转的能力,或者可能在进行某种文本处理练习。也有可能他们想检查是否能够正确处理特殊字符和数字,例如连字符和数字7、B等。因此,必须确保所有字符都被正确反转,包括空格和符号。\n\n还可能存在其他潜在的意图,例如,用户可能是在进行某种密码学的练习,或者需要生成反向的文本用于某种特定的应用,比如水印、编码练习等。不过在没有更多信息的情况下,应该按照字面意思的反转处理。\n\n所以,最终的反转结果应该是从原句子的最后一个字符到第一个字符依次排列。原句是“I love MiMo-7B-RL”,每个字符的位置如下:\n\n0: I\n1: 空格\n2: l\n3: o\n4: v\n5: e\n6: 空格\n7: M\n8: i\n9: M\n10: o\n11: -\n12: 7\n13: B\n14: -\n15: R\n16: L\n\n反转后的字符顺序应该是从16到0,即索引16,15,14,...,0。所以字符依次是L, R, -, B, 7, -, o, M, i, M, 空格, e, v, o, l, 空格, I。连起来就是“LR-7B-MoMi love I”。不过需要注意空格的位置。原句中的空格在索引1和6,反转后这两个位置会被调整。例如,原句中的第二个空格在索引6,反转后应该出现在索引9的位置?或者需要更仔细地计算。\n\n更直接的方式是直接将整个字符串反转。例如,原句是“I love MiMo-7B-RL”,假设输入字符串是:I l o v e [空格] M i M o - 7 B - R L?不,原句的结构是“I love MiMo-7B-RL”可以分解为:\n\nI [空格] love [空格] MiMo-7B-RL?或者原句中的“MiMo-7B-RL”是连续的,包括后面的连字符和字母。可能正确的分解是:“I love MiMo-7B-RL” → 字符逐个反转。比如,整个字符串是“Imo-7B-RL”。不,原句是“I love MiMo-7B-RL”,所以整个字符串的每个字符依次为:\n\nI, 空格, l, o, v, e, 空格, M, i, M, o, -, 7, B, -, R, L。共17个字符?或者数一下:\n\n"I" + " " + "love"(4 letters) + " " + "MiMo-7B-RL"(假设是M, i, M, o, -,7,B,-,R,L →共9 characters?或者MiMo-7B-RL是M i M o - 7 B - R L,共10字符?可能算错了,但不管怎样,直接反转整个字符串即可。\n\n例如,原句是:“I love MiMo-7B-RL”,假设输入到程序中,直接反转整个字符串的结果是:\n\n原字符串:I l o v e M i M o - 7 B - R L(可能实际字符更多,但必须逐个反转)\n\n反转后的字符串应该是:LR-7B-MoMi love I(注意中间的空格和字母顺序)。\n\n所以,最终的结果应该是“LR-7B-MoMi love I”。需要确认是否正确。例如,假设原字符串是:“I love MiMo-7B-RL”,逐个字符数:\n\n索引0: I\n索引1: \n索引2: l\n索引3: o\n索引4: v\n索引5: e\n索引6: \n索引7: M\n索引8: i\n索引9: M\n索引10: o\n索引11: -\n索引12:7\n索引13:B\n索引14: -\n索引15:R\n索引16:L\n\n反转的话,索引16变为第一个字符:L,索引15:R,索引14:-,索引13:B,索引12:7,索引11:-,索引10:o,索引9:M,索引8:i,索引7:M,索引6:空格,索引5:e,索引4:v,索引3:o,索引2:l,索引1:空格,索引0:I。将这些字符连起来就是:L R - B 7 - o M i M [空格] e v o l [空格] I →组合起来是 LR-7B-MoMi love I吗?\n\n这里要注意索引的顺序:\n\n原字符串每个字符列表为:['I', ' ', 'l', 'o', 'v', 'e', ' ', 'M', 'i', 'M', 'o', '-', '7', 'B', '-', 'R', 'L']\n\n反转后的顺序是:['L', 'R', '-', 'B', '7', '-', 'o', 'M', 'i', 'M', ' ', 'e', 'v', 'o', 'l', ' ', 'I']\n\n现在将这些连接起来,结果是 "LR-7B-MoMi love I"? 因为:\n\n第一个字符是 L → L\n\n第二个是 R → LR\n\n第三个是 - → LR-\n\n第四个是 B → LR-B\n\n第五个是7 → LR-7B\n\n第六个是 - → LR-7B-\n\n第七个是 o → LR-7B-o → LR-7B-o?\n\n第八个是 M → LR-7B-oM → LR-7B-oM?\n\n但原索引反转后第七个字符是o(原索引10),而第八个是M(原索引9),所以顺序应该是:\n\nL R - B 7 - o M i M [空格] e v o l [空格] I →组合起来:\n\nLR-7B-MoMi love I → 需要检查每个字符的顺序是否正确。\n\n比如,原索引10是o,反转后出现在索引7的位置?或者可能需要以相反的顺序逐个字符排列:\n\n原字符串的字符顺序是索引0到16,反转后应该从16到0依次排列。\n\n所以,反转后的字符是:\n\nL (16), R (15), - (14), B (13), 7 (12), - (11), o (10), M (9), i (8), M (7), 空格 (6), e (5), v (4), o (3), l (2), 空格 (1), I (0)\n\n所以组合起来:\n\nL R - B 7 - o M i M [空格] e v o l [空格] I →即.LR-7B-oM iM evol I?\n\n或者可能具体的连接是:\n\n16→L →15→R →14→- →13→B →12→7 →11→- →10→o →9→M →8→i →7→M →6→空格 →5→e →4→v →3→o →2→l →1→空格 →0→I.\n\n所以,连接时是:\n\nL R - B 7 - o M i",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "length",
"stop_reason": null
}
],
"usage": {
"prompt_tokens": 35,
"total_tokens": 2083,
"completion_tokens": 2048,
"prompt_tokens_details": null
},
"prompt_logprobs": null
}


尝试过几次completion_tokens 到2048就截止了

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions