vllm部署模型的参数

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 vllm serve "defog/sqlcoder-70b-alpha"     --tensor-parallel-size 8     --gpu-memory-utilization 0.9     --max-model-len 8192     --cpu-offload-gb 0     --swap-space 8

在使用 vLLM 部署模型时,命令看起来整体没有明显的错误,但是有几个细节可能需要注意,以确保部署顺利:

1. CUDA_VISIBLE_DEVICES 设置

你将 CUDA_VISIBLE_DEVICES 设置为 0,1,2,3,4,5,6,7,这意味着你希望使用 8 张 GPU。如果你确实有 8 张 GPU(并且这些 GPU 的编号从 0 到 7),这部分设置是没问题的。

但是,确保以下几点:

  • 确认 CUDA_VISIBLE_DEVICES 设置的 GPU 是否正确连接并且可以使用。
  • 如果在多台机器上部署,确保每台机器的 GPU 都配置好,并且 CUDA 环境能够识别所有的 GPU。

2. --tensor-parallel-size 8

--tensor-parallel-size 8 表示将张量并行化到 8 个 GPU 上。这个设置和你的 CUDA_VISIBLE_DEVICES 参数相符,但是有几点需要确认:

  • 你是否已经确认模型可以支持 8-way 的张量并行?某些模型可能没有完全优化以支持高并行度。
  • 每个 GPU 的显存和模型大小相匹配。--tensor-parallel-size 8 会将模型划分到 8 个 GPU 上,确保每个 GPU 都有足够的显存来加载模型和处理数据。

3. --gpu-memory-utilization 0.9

这个参数设置了每个 GPU 最大的显存使用比例为 90%。如果 GPU 上的显存容量较大(例如 24GB 或 40GB),通常设置为 0.9 是安全的,但如果显存较小,或者你有多个进程在同时使用 GPU,可能会导致 Out of Memory 错误。

建议:

  • 确保每个 GPU 上的显存足够,并且没有其他进程占用显存。
  • 如果遇到内存溢出,可以尝试调整该值,或者逐步减少每个 GPU 的显存使用。

4. --max-model-len 8192

--max-model-len 8192 指定了模型支持的最大输入长度为 8192 tokens。这个值需要与你的模型大小、显存和并行度相匹配。

  • 确保你的模型可以支持该长度(通常较大的模型对输入长度的限制较少,但需要确认模型结构是否适配这么长的序列)。
  • 若模型出现无法处理大长度输入的情况,可以适当减小该值。

5. --cpu-offload-gb 0

--cpu-offload-gb 0 设置了不将任何内存数据从 GPU 卸载到 CPU。通常,在显存不足时会使用 CPU 扩展内存,如果你的 8 个 GPU 显存足够使用,这个参数设置为 0 是可以的。

  • 如果在执行时遇到内存溢出,可能需要考虑增加 --cpu-offload-gb 的值,将部分内存数据转移到 CPU 上以释放 GPU 内存。

6. --swap-space 8

这个参数表示设置 8GB 的交换空间。如果显存不足时,vLLM 会使用交换空间来扩展内存。建议使用这个选项来预防意外的内存不足情况。

  • 确保服务器有足够的硬盘空间来支持交换空间,尤其是在使用大模型时。
  • 过多依赖交换空间可能会导致性能下降,因为硬盘速度比 GPU 内存慢得多。

总结:

  • 这个命令在配置上看起来是正确的,前提是你有 8 张 GPU,显存足够,并且已经确保硬件和软件环境支持这些设置。
  • 请注意检查显存是否足够,特别是与输入序列长度和张量并行化相关的部分。
  • 确保系统有足够的交换空间和 CPU 内存可用,以防万一模型需要更多的资源。
微信小程序提供了日期时间选择器组件`picker`和日历组件`calendar`,但如果需要自定义样式或者功能,可以考虑封装一个日期时间组件。 以下是一个简单的日期时间组件的封装示例: 1. 在`/components`目录下创建一个`datetime-picker`文件夹,创建`datetime-picker.wxml`、`datetime-picker.wxss`、`datetime-picker.js`和`datetime-picker.json`四个文件。 2. 在`datetime-picker.json`中定义组件的属性: ```json { "component": true, "usingComponents": {}, "properties": { "startDate": { "type": String, "value": "2023-02-15", }, "endDate": { "type": String, "value": "2023-02-20", }, "startTime": { "type": String, "value": "00:00", }, "endTime": { "type": String, "value": "23:59", }, "defaultDate": { "type": String, "value": "", }, "defaultTime": { "type": String, "value": "", }, "format": { "type": String, "value": "datetime", }, "showTime": { "type": Boolean, "value": true, }, "showDate": { "type": Boolean, "value": true, }, "startPlaceholder": { "type": String, "value": "开始时间", }, "endPlaceholder": { "type": String, "value": "结束时间", }, "bind:change": { "type": Function, "value": "", } }, "options": { "styleIsolation": "apply-shared" } } ``` 上述属性中: - `startDate`和`endDate`为日期范围,用于限制可选日期的范围; - `startTime`和`endTime`为时间范围,用于限制可选时间的范围; - `defaultDate`和`defaultTime`为默认值; - `format`为显示格式,支持`datetime`、`date`和`time`三种格式; - `showTime`和`showDate`分别控制是否显示时间和日期选择器; - `startPlaceholder`和`endPlaceholder`为开始时间和结束时间的占位符; - `bind:change`为选择器值变化时的回调函数。 3. 在`datetime-picker.wxml`中定义选择器组件: ```html <view class="datetime-picker"> <view wx:if="{{showDate}}" class="datetime-picker-item"> <picker mode="date" start="{{startDate}}" end="{{endDate}}" value="{{selectedDate}}" bindchange="onDateChange"> <view class="datetime-picker-value"> <text wx:if="{{selectedDate}}">{{selectedDate}}</text> <text wx:else>{{startPlaceholder}}</text> </view> </picker> </view> <view wx:if="{{showTime}}" class="datetime-picker-item"> <picker mode="time" start="{{startTime}}" end="{{endTime}}" value="{{selectedTime}}" bindchange="onTimeChange"> <view class="datetime-picker-value"> <text wx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值