vllm 在SageMaker上,出现错误"输入提示(9762个标记)太长,超过了8192的限制",

tjrkku2a  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(19)

我正在使用以下参数运行vllm:

  • 模型 = meta-llama/Meta-Llama-3-8B-Instruct
  • DJL图像 = 763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:0.28.0-lmi10.0.0-cu124
  • 部署模型的环境如下:
{
    "TENSOR_PARALLEL_DEGREE": "max",
    "OPTION_ROLLING_BATCH": "vllm",
    "OPTION_TRUST_REMOTE_CODE": "true",
    "MAX_ROLLING_BATCH_SIZE": "32",
    "MAX_LENGTH": "15360",
}

预测器(在endpoint_name上部署模型后)示例化并按照以下方式使用:

predictor = Predictor( endpoint_name=endpoint_name, session=sagemaker_session, serializer=JSONSerializer(), deserializer=JSONDeserializer(), )

predictor.predict({
                "messages": prompt,
                "parameters": parameters,
})

我尝试将参数MAX_LENGTH=15360添加到环境中(如上所示),但似乎没有区别。
我应该在环境中添加其他参数吗?

qzwqbdag

qzwqbdag1#

这个问题可能更适合@lanking520和@siddvenk回答——我猜这些docker镜像里的vLLM引擎是不是被设置为使用8192的--max-model-len进行初始化?

v8wbuo2f

v8wbuo2f2#

你好,@bitliner

你可以尝试使用 OPTION_MAX_MODEL_LEN 进行此配置。具体Map请参考 https://docs.djl.ai/docs/serving/serving/docs/lmi/user_guides/vllm_user_guide.html#advanced-vllm-configurations 。

hyrbngr7

hyrbngr73#

通过向环境变量 { ... "OPTION_MAX_MODEL_LEN": "15360" ...} 添加内容,会引发以下错误:
[INFO ] PyProcess - W-245-12ab844166a18f3-stdout: ValueError: 用户指定的最大模型长度(15360)大于从模型的 config.json 中派生的 max_model_len(max_position_embeddings=8192 或 model_max_length=None)。这可能导致模型输出不正确或 CUDA 错误。请确保值正确且在模型上下文大小范围内。
向环境变量 { ... "OPTION_MAX_POSITION_EMBEDDINGS": "15360" ...} 添加内容会在模型初始化过程中引发以下错误:
ai.djl.serving.http.ServerStartupException: 无法初始化启动模型和工作流
我猜是因为这不是支持的选项。看起来我应该更新模型的 config.json? :(

jbose2ul

jbose2ul4#

对不起,我没有注意到你正在使用meta-llama/Meta-Llama-3-8B-Instruct模型。这个模型只支持8192个上下文长度。你可以在这个链接查看配置文件:https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/blob/main/config.json#L13。

对于这个模型,你不能使用大于8192的最长长度。

你是想使用支持128k上下文长度的llama3.1变体吗?https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct。这个更新版本的llama3将支持15360及更长的长度。

请注意,你看到的问题并不是vllm或djl-serving的问题。这纯粹是你正在使用的模型的限制。不建议更新config.json,因为该模型不支持超过8192个上下文长度。

相关问题