更新时间:2024-12-17 GMT+08:00
分享

附录:大模型推理常见问题

  • 问题1:在推理预测过程中遇到NPU out of memory。

    解决方法:调整推理服务启动时的显存利用率,将--gpu-memory-utilization的值调小。

  • 问题2:在推理预测过程中遇到ValueError:User-specified max_model_len is greater than the drived max_model_len。

    解决方法:修改config.json文件中的"seq_length"的值,"seq_length"需要大于等于 --max-model-len的值。config.json存在模型对应的路径下,例如:/data/nfs/benchmark/tokenizer/chatglm3-6b/config.json

  • 问题3:使用离线推理时,性能较差或精度异常。

    解决方法:将block_size大小设置为128。

    from vllm import LLM, SamplingParams
    llm = LLM(model="facebook/opt-125m", block_size=128)
  • 问题4:使用llama3.1系模型进行推理时,报错:ValueError: 'rope_scaling' must be a dictionary with two fields, 'type' and 'factor', got {'factor': 8.0, 'low_freq_factor': 1.0, 'high_freq_factor': 4.0, 'original_max_position_embeddings': 8192, 'rope_type': 'llama3'}

    解决方法:升级transformers版本到4.43.1:pip install transformers --upgrade

  • 问题5:使用SmoothQuant进行W8A8进行模型量化时,报错:AttributeError: type object 'LlamaAttention' has no attribute '_init_rope'

    解决方法:降低transformers版本到4.42:pip install transformers==4.42 --upgrade

  • 问题6:使用AWQ转换llama3.1系列模型权重出现报错ValueError: `rope_scaling` must be a dictionary with two fields, `type` and `factor`,

    解决方法:该问题通过将transformers升级到4.44.0,修改对应transformers中的transformers/models/llama/modeling_llama.py,在class LlamaRotaryEmbedding中的forward函数中增加self.inv_freq = self.inv_freq.npu()

  • 问题7:使用Qwen2-7B、Qwen2-72B模型有精度问题,重复输出感叹号

    检查步骤六中4. 配置环境变量章节中,高精度模式的环境变量是否开启。

  • 问题8:使用autoAWQ进行qwen-7b模型量化时报错TypeError: 'NoneType' object is not subscriptable

    解决办法:修改qwen-7b权重路径下modeling_qwen.py第39行为SUPPORT_FP16 = True

相关文档