使用大模型在ModelArts Standard创建模型部署在线服务
背景说明
目前大模型的参数量已经达到千亿甚至万亿,随之大模型的体积也越来越大。千亿参数大模型的体积超过200G,在版本管理、生产部署上对平台系统产生了新的要求。例如:导入模型时,需要支持动态调整租户存储配额;模型加载、启动慢,部署时需要灵活的超时配置;当负载异常重启,模型需要重新加载,服务恢复时间长的问题亟待解决。
为了应对如上诉求,ModelArts推理平台针对性给出解决方案,用于支持大模型场景下的模型管理和服务部署。
约束与限制
- 需要申请单个模型大小配额和添加使用节点本地存储缓存的白名单。
- 需要使用自定义引擎Custom,配置动态加载。
- 需要使用专属资源池部署服务。
- 专属资源池磁盘空间需大于1T。
申请扩大模型的大小配额和使用节点本地存储缓存白名单
服务部署时,默认情况下,动态加载的模型包位于临时磁盘空间,服务停止时已加载的文件会被删除,再次启动时需要重新加载。为了避免反复加载,平台允许使用资源池节点的本地存储空间来加载模型包,并在服务停止和重启时仍有效(通过哈希值保证数据一致性)
使用大模型要求用户采用自定义引擎,并开启动态加载的模式导入模型。基于此,需要执行以下操作:
- 如果模型超过默认配额值,需要提工单申请扩大单个模型的大小配额。单个模型大小配额默认值为20GB。
- 需要提工单申请添加使用节点本地存储缓存的白名单。
上传模型数据并校验上传对象的一致性
为了动态加载时保证数据完整性,需要在上传模型数据至OBS时,进行上传对象的一致性校验。obsutil、OBS Browser+以及OBS SDK都支持在上传对象时进行一致性校验,您可以根据自己的业务选择任意一种方式进行校验。详见校验上传对象的一致性。
以OBS Browser+为例,如图1。使用OBS Browser+上传数据,开启MD5校验,动态加载并使用节点本地的持久化存储时,检查数据一致性。
创建专属资源池
使用本地的持久化存储功能,需使用专属资源池,且专属资源池磁盘空间大小必须超过1T。您可以通过专属资源池详情页面,规格页签,查看专属资源池磁盘信息。当服务部署失败,提示磁盘空间不足时,请参考服务部署、启动、升级和修改时,资源不足如何处理?
创建模型
使用大模型创建模型,选择从对象存储服务(OBS)中导入,需满足以下参数配置:
- 采用自定义引擎,开启动态加载
使用大模型要求用户使用自定义引擎,并开启动态加载的模式导入模型。用户可以制作自定义引擎,满足大模型场景下对镜像依赖包、推理框架等的特殊需求。自定义引擎的制作请参考使用自定义引擎在ModelArts Standard创建模型。
当用户使用自定义引擎时,默认开启动态加载,模型包与镜像分离,在服务部署时动态将模型加载到服务负载。
- 配置健康检查
大模型场景下导入的模型,要求配置健康检查,避免在部署时服务显示已启动但实际不可用。
图3 采用自定义引擎,开启动态加载并配置健康检查示例图