
# 使用大模型在ModelArts创建模型部署在线服务
#### 背景说明
目前大模型的参数量已经达到千亿甚至万亿，随之大模型的体积也越来越大。千亿参数大模型的体积超过200G，在版本管理、生产部署上对平台系统产生了新的要求。例如：导入模型时，需要支持动态调整租户存储配额；模型加载、启动慢，部署时需要灵活的超时配置；当负载异常重启，模型需要重新加载，服务恢复时间长的问题亟待解决。
为了应对如上诉求，ModelArts推理平台针对性给出解决方案，用于支持大模型场景下的模型管理和服务部署。
#### 约束与限制
- 需要申请单个模型大小配额和添加使用节点本地存储缓存的白名单。
- 需要使用自定义引擎Custom，配置动态加载。
- 需要使用专属资源池部署服务。
- 专属资源池磁盘空间需大于1T。
 
#### 操作事项
1. [申请扩大模型的大小配额和使用节点本地存储缓存白名单]
2. [上传模型数据并校验上传对象的一致性]
3. [创建专属资源池]
4. [创建模型]
5. [部署在线服务]
 
 #### 申请扩大模型的大小配额和使用节点本地存储缓存白名单
服务部署时，默认情况下，动态加载的模型包位于临时磁盘空间，服务停止时已加载的文件会被删除，再次启动时需要重新加载。为了避免反复加载，平台允许使用资源池节点的本地存储空间来加载模型包，并在服务停止和重启时仍有效（通过哈希值保证数据一致性）
使用大模型要求用户采用自定义引擎，并开启动态加载的模式导入模型。基于此，需要执行以下操作：
- 如果模型超过默认配额值，需要提工单申请扩大单个模型的大小配额。单个模型大小配额默认值为20GB。
- 需要提工单申请添加使用节点本地存储缓存的白名单。
 
 #### 上传模型数据并校验上传对象的一致性
为了动态加载时保证数据完整性，需要在上传模型数据至OBS时，进行上传对象的一致性校验。obsutil、OBS Browser+以及OBS SDK都支持在上传对象时进行一致性校验，您可以根据自己的业务选择任意一种方式进行校验。详见[校验上传对象的一致性](https://support.huaweicloud.com/bestpractice-obs/obs_05_0801.html)。
以OBS Browser+为例，如[图1]。使用OBS Browser+上传数据，开启MD5校验，动态加载并使用节点本地的持久化存储时，检查数据一致性。
图1OBS Browser+配置MD5校验   
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001634256657.png "点击放大")
 #### 创建专属资源池
使用本地的持久化存储功能，需使用专属资源池，且专属资源池磁盘空间大小必须超过1T。您可以通过专属资源池详情页面，规格页签，查看专属资源池磁盘信息。当服务部署失败，提示磁盘空间不足时，请参考[服务部署、启动、升级和修改时，资源不足如何处理？](https://support.huaweicloud.com/trouble-modelarts/modelarts_05_3155.html)
图2查看专属资源池磁盘信息   
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001882638481.png "点击放大")
 #### 创建模型
使用大模型创建模型，选择从对象存储服务（OBS）中导入，需满足以下参数配置：
1. 采用自定义引擎，开启动态加载 使用大模型要求用户使用自定义引擎，并开启动态加载的模式导入模型。用户可以制作自定义引擎，满足大模型场景下对镜像依赖包、推理框架等的特殊需求。自定义引擎的制作请参考[使用自定义引擎在ModelArts创建模型](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_04_0230.html)。
   当用户使用自定义引擎时，默认开启动态加载，模型包与镜像分离，在服务部署时动态将模型加载到服务负载。
   
2. 配置健康检查 大模型场景下导入的模型，要求配置健康检查，避免在部署时服务显示已启动但实际不可用。
   图3采用自定义引擎，开启动态加载并配置健康检查示例图   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001835845140.png "点击放大") 
 
 #### 部署在线服务
部署服务时，需满足以下参数配置：
1. 自定义部署超时时间 大模型加载启动的时间一般大于普通模型创建的服务，请配置合理的"部署超时时间"，避免尚未启动完成被认为超时而导致部署失败。
   
2. 添加环境变量 部署服务时，增加如下环境变量，会将负载均衡的请求亲和策略配置为集群亲和，避免未就绪的服务实例影响预测成功率。
   ```
   MODELARTS_SERVICE_TRAFFIC_POLICY: cluster
   ```
   图4自定义部署超时时间和添加环境变量示例图   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001882651089.png "点击放大") 
建议部署多实例，增加服务可靠性。
