我正在使用以下参数运行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
添加到环境中(如上所示),但似乎没有区别。
我应该在环境中添加其他参数吗?
4条答案
按热度按时间qzwqbdag1#
这个问题可能更适合@lanking520和@siddvenk回答——我猜这些docker镜像里的vLLM引擎是不是被设置为使用8192的
--max-model-len
进行初始化?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 。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? :(
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个上下文长度。