当前位置: 首页 > wzjs >正文

做类似淘宝一样的网站营口网站seo

做类似淘宝一样的网站,营口网站seo,长春建设工程管理中心网站,wordpress+登录404背景介绍 硬件 A800 80G模型 chat-glm4-9b-128K环境 生产正常显存占用情况 glm4 占用32GB 其他显存工占用38GB左右 总共剩余10GB。 问题描述 推理时报错日志,由于内网环境无法拿出日志,与下面的类似。 File "/data/miniconda3_new/envs/vllm-new…

背景介绍

  • 硬件
    A800 80G
  • 模型
    chat-glm4-9b-128K
  • 环境
    生产
  • 正常显存占用情况
    glm4 占用32GB
    其他显存工占用38GB左右
    总共剩余10GB。

问题描述

推理时报错日志,由于内网环境无法拿出日志,与下面的类似。

  File "/data/miniconda3_new/envs/vllm-new/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 654, in add_requestself.start_background_loop()File "/data/miniconda3_new/envs/vllm-new/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 476, in start_background_loopraise AsyncEngineDeadError(
vllm.engine.async_llm_engine.AsyncEngineDeadError: Background loop has errored already.

再往前追述日志,发现有超长文本请求,字符长度10万左右,显存不够报类似如下错误

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 10.78 GiB

问题分析

根本原因还是显存不够,但是一个请求推理显存不够后这个请求失败应该释放调占用的显存,不应该影响之后的请求才对。

引擎启动代码如下:

if __name__ == "__main__":MODEL_PATH = sys.argv[1]tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True)engine_args = AsyncEngineArgs(model=MODEL_PATH,tokenizer=MODEL_PATH,# 如果你有多张显卡,可以在这里设置成你的显卡数量tensor_parallel_size=1,dtype="bfloat16",#dtype="half",trust_remote_code=True,# 占用显存的比例,请根据你的显卡显存大小设置合适的值,例如,如果你的显卡有80G,您只想使用24G,请按照24/80=0.3设置gpu_memory_utilization=0.4,enforce_eager=True,worker_use_ray=False,disable_log_requests=True,max_model_len=MAX_MODEL_LENGTH, # 这里是128000)engine = AsyncLLMEngine.from_engine_args(engine_args)uvicorn.run(app, host='0.0.0.0', port=8000, workers=1)

引擎调用部分代码如下:

sampling_params = SamplingParams(**params_dict)
try:async for output in engine.generate(inputs=inputs, sampling_params=sampling_params, request_id=f"{time.time()}"):output_len = len(output.outputs[0].token_ids)input_len = len(output.prompt_token_ids)ret = {"text": output.outputs[0].text,"usage": {"prompt_tokens": input_len,"completion_tokens": output_len,"total_tokens": output_len + input_len},"finish_reason": output.outputs[0].finish_reason,}yield ret
except Exception as e:logger.error(f"错误:{e}")raise e
finally:gc.collect()torch.cuda.empty_cache()
  1. 引擎崩溃后每次也是这里的logger.error输出的Background loop has errored already.
  2. 第一次内存不够报错日志也是这里有显示,并且有调用finally模块中的清空缓存逻辑。
  3. 还是重复上面的问题,一个请求不应该导致整个引擎崩溃,从而导致之后的请求也无法处理,不知道是否是vllm的bug??? 看到能多人也在github上提了issue,但是目前无解决方案。参考:
    https://github.com/vllm-project/vllm/issues/6361

解决方案

经过上面的分析我们知道是显存不够引起的,我们这里只对显存不够做调优来减少这种情况发生,并不能解决显存不够后引发的引擎崩溃问题。
做如下参数调整

  • enable-chunked-prefill = True
  • max_num_batched_tokens = 8192
  • max_num_seqs = 10

参数介绍

enable-chunked-prefill

  • 是 vLLM 中的一个优化功能,主要用于处理长上下文或大提示(prompt)情况下的内存和计算效率问题。默认False

max_num_batched_tokens

预填充阶段的最大批处理token数:

  • 当 enable-chunked-prefill=True 时,决定每个chunk(块)的最大token数

  • 解码阶段的最大批处理token数:限制解码阶段同时处理的token总数

  • 工作原理
    当启用 chunked prefill 时:
    系统将长prompt分割为多个chunk
    每个chunk的token数不超过 max_num_batched_tokens
    依次处理这些chunk
    例如:
    如果prompt有5000 tokens,max_num_batched_tokens=2048
    将被分割为:2048 + 2048 + 904 tokens的三个chunk

  • 默认值
    不同的显卡,不同的内存默认值不一样
    详细逻辑见官方代码:https://github.com/vllm-project/vllm/blob/main/vllm/engine/arg_utils.py

  • 建议
    高端GPU(如A100 80GB):可设较大值(4096-8192)
    消费级GPU(如3090 24GB):建议较小值(1024-2048)

max_num_seqs
控制并发数量,如果你的显存不够是由于并发引起的,可以设置这个参数。

其他参数:

  • max_model_len : 允许模型处理的最大token数量,可根据实际情况限制,由于我们就是要处理长文本的,所以我这里没有调整。
  • gpu_memory_utilization GPU显存占比,尽量初始化时小一点,预留足够的显存空间。

总结

经测试以上参数调整后可以显著控制GPU的占用情况,减少OutOfMemory情况的发生,提高系统可用性,后续也会尝试升级VLLM版来解决崩溃后无法处理后续请求的问题,但是显存都是稀缺资源,本身也要做好调优。


文章转载自:

http://wDEPuuog.mLzyx.cn
http://fY13pABi.mLzyx.cn
http://MAPchGwL.mLzyx.cn
http://AOkhbmyv.mLzyx.cn
http://59w9j18Z.mLzyx.cn
http://3OeEVecj.mLzyx.cn
http://NwDaP6HJ.mLzyx.cn
http://WXBkpI3b.mLzyx.cn
http://UZAM7tK6.mLzyx.cn
http://rao50vAF.mLzyx.cn
http://ELaHjjCn.mLzyx.cn
http://MMYASL3j.mLzyx.cn
http://meGXR3CI.mLzyx.cn
http://uFz6nrA2.mLzyx.cn
http://RXszlegS.mLzyx.cn
http://LKkuS1c4.mLzyx.cn
http://Ome474iP.mLzyx.cn
http://j7bEGCwZ.mLzyx.cn
http://X5C1nWxQ.mLzyx.cn
http://z60O7ylL.mLzyx.cn
http://bAAJrhfN.mLzyx.cn
http://7khcP1xj.mLzyx.cn
http://duTDEqDR.mLzyx.cn
http://tLL8nYMj.mLzyx.cn
http://dDRGsQuQ.mLzyx.cn
http://gNzKcsvF.mLzyx.cn
http://viSQhOFc.mLzyx.cn
http://NUSSHrEu.mLzyx.cn
http://ei1Os76S.mLzyx.cn
http://7pah4dWD.mLzyx.cn
http://www.dtcms.com/wzjs/633827.html

相关文章:

  • wordpress存储镜像seo经理招聘
  • 网站怎么做mip技术贵德县公司网站建设
  • 网站建设前期规划方案双流网站建设
  • .net mvc做网站网站开发招标任务书
  • 郑州建站的公司需要一个简单的网站
  • 亚马逊网站建设与维护方法分析如何宣传推广自己的产品
  • 江苏城乡建设职业学院网站东莞企业建站平台
  • 评析网站建设报价单网络广告投放公司
  • 行业网站网址给wordpress首页添加公告栏
  • 网站页面好了怎么做后端中国建设监理协会化工监理分会网站
  • 做钢材都有什么网站永嘉专业网站设计公司
  • 班级响应式网站html格式谁的网站模板利于优化
  • 河南宏业建设管理有限公司网站服装花型图案设计网站
  • 秦皇岛做网站优化公司wordpress微信h5登录
  • 泰安微信网站建设郑州做网站的多不多
  • 网站如何申请做网站一定要购买虚拟主机吗
  • 速成网站怎么做网页制作与设计命令
  • 游戏门户网站 织梦网站公司建设
  • 襄阳做淘宝网站推广网站后台管理默认密码
  • 网站管理 上传模板在线手机动画网站模板
  • 呼伦贝尔市规划建设局网站推广软件是什么
  • 做微信的微网站网站制作工具有哪些
  • 莆田哪里有做网站的做携程怎样的网站
  • 营销网站建设情况调查问卷网络彩票网站开发
  • 网站文章排序佳天下装饰公司怎么样
  • 网站建设财务上怎么处理零基础自学python
  • 网站下载音乐英文wordpress转中文
  • 一起合伙做项目的网站私人订制管理中心
  • 新网站开发费用wordpress下载链接 插件
  • 网站推广的具体方法如何进行网站维护