本文来源于阿里云社区电子书《百炼成金-大金融模型新篇章》
问题 3: “大模型 vs 越来越大的模型”,模型 size 的军备竞赛
OpenAI 的研究者在 2020 年发现,大语言模型也遵循着规模定律(ScalingLaw),模型参数数量的增加常常被看作是提高模型性能的一个关键因素。这导致了一种被业界戏称为“模型参数的军备竞赛”的现象,即科研机构和科技公司不断推出参数量更大、计算需求更高的模型,以追求在特定任务上的最佳性能。然而,这种军备竞赛带来了诸多挑战:
越来越大的模型通常具有更强的学习能力和泛化能力,因为有更多的参数可以捕捉数据中的复杂特征和模式。能够处理更复杂的任务和数据集,通常在各种基准和实际问题上表现更好。随着参数数量的增加,模型通常能够更好地理解语言的细微差别或更精准地识别图像中的对象。
但越来越大的模型带来能力提升的同时,也带来了海量的算力消耗,如何根据不同的业务场景选择合适的模型将是一个迫在眉睫的问题?
大模型推理运行时,核心消耗的资源是显存,推理过程中除了要加载对应参数的模型,还与输入输出的参数量有关,输入参数越多显存消耗越大,输出参数量越多模型响应越慢,我们根据一个简单的估算公式,来评估不同业务场景的资源消耗:
大模型推理的总显存占用公式: 𝐼𝑛𝑓𝑒𝑟𝑀𝑒𝑚𝑜𝑟𝑦≈ 1.2∗𝑀𝑜𝑑𝑒𝑙𝑀𝑒𝑚𝑜𝑟𝑦
(详见参考:TransformerInferenceArithmetic|kipply'sblog)
以 72B 参数的模型,在 BF16 精度下(浮点数 2 个字节)
𝐼𝑛𝑓𝑒𝑟𝑀𝑒𝑚𝑜𝑟𝑦≈ 1.2*𝑀𝑜𝑑𝑒𝑙𝑀𝑒𝑚𝑜𝑟𝑦(72 亿 *2)≈ 172.8G
运行一个 72B 的大模型至少需要 3 张 A100(80G),现以企业知识库和智能外呼场景为例进行资源评估:
知识库检索场景:典型的 RAG 增强检索高并发场景,输入少输出多,每次问题请求处理时间在 1-2s,峰值支持 50 并发(按照 5000 人的金融机构有 1% 的并发率),需要的 GPU卡的数量在 150-300 张 A100(80G),如果想要更精准的回复,可以选择 200B 或更大的模型,但 200B 大模型算力消耗会有 2.7 倍的增加。
智能外呼场景:典型的高并发低延时场景,输入多输出少,每次意图识别响应时间 200-300ms,峰值支持 1000 并发,需要的 GPU 卡的数量在 600-900 张 A100(80G)。
在正式生产业务应用时,业务是有典型的波峰波谷的,如果我们按照波峰要求建设算力池,势必会带来资源的低效使用,例如:知识库检索应用的平均资源利用率在 20%-30%;智能外呼应用的平均资源利用率在 5%-10%。如何提高算力资源利用率将是一个颇具挑战的问题?