如何从零设计大模型基础设施

本文根据最近学习心得整理而成,主要阐明如何去设计一个大模型的IT基础设施,文章内容会保持在框架性方法层面,尽量避免具体细节绑定而产生的面向范围狭窄问题。

一.前期评估

       首先,在开始设计之前,你必须明确自己搭建私有化大模型的目的所在,并对可投入的时间和成本有明确估算,确保在可行性评估上没有明显不通过项。

       有些基本常识在设计前,需要再次重申,如下:

  1. 建设大模型需要三个生产要素,IT基础设施,算法模型和数据,同时需要相应技术人员。
  2. 基于GPU的算力集群资源不仅贵,还紧缺,这个状况最保守估计在2023年底前不会改变,个人认为比较靠谱的估计在2024年上半年前也不会有大变化。你需要克服困难去筹集GPU卡资源(由于显存和通信带宽时延的能力差距,目前最适合大模型训练的仍然是H100,4090只能承担推理)
  3. 前期的数据归集和预处理,以及后期的训练和微调,时间周期通常以月计,整个过程很难在几周内完成,在项目周期评估上要有心理准备。
  4. 虽然大模型已经表现出了令人惊艳的能力,但私有化大模型通常面向垂直行业应用,最初得到的效果可能会有所不同,和数据质量,行业特点以及项目预期都有关系。

以上基本信息明确无误后,需要再次评估是否具备启动条件,如果以上问题都有好的答案或者解决方法,那么就可以进入设计阶段。

二.整体设计流程

分为三步:筛选模型,规模训练,适配部署

1. 以最小规模,快速寻找最合适的模型

现在可用的开源模型已经相当丰富,但针对你的特定应用需求,必然有合适与不合适之分,在这一步,你需要寻找最优模型。如何评价最优?通常来讲,大模型训练的最终结果呈现都是“一个能够进行完成某些任务的辅助工具”,co-pilot、副驾、数字助理都是非常形象的描述,评价好坏主要是看这个工具的准确度。

查找模型的过程,业界使用了另一个术语“超参数搜索(Hyperparameter Search)”来描述。Lambda的一份公开资料中有个图画得很形象,我这里借用一下

所谓超参数是在机器学习过程启动之前就预先设置的参数,典型的超参数有学习率learning rate,批次大小batch_size,迭代次数Epoch,影响模型泛化能力的正则化系数,和神经网络的结构参数层数,神经元数量,卷积核大小等。不同的超参数设定加在一起,基本就确定了具体模型。通常情况下,我们需要做超参数调整优化,选择一组最优超参数,以提高机器学习的性能和效果,得到最优模型。在实践中超参数调整一般使用人工设置调整的范围,然后用机器在超参数范围内进行搜索,这个过程称为超参数搜索。常见的基础超参数搜索方法通常有网络搜索GridSearch、随机搜索RandomizedSearch或者拉丁超立方采样Latin hypercube等,具体细节有很多公开资料介绍,这里不再深入。

超参数本质上是参数的参数,人工介入配置,每次改变调整超参数,模型都要重新训练,然后做相应的验证评估工作,一个轮次周期可能从几个小时到两三天不等。这时候的设置的硬件规模也可以比较小,甚至可以从一台有GPU的游戏笔记本电脑起步,只是时间周期可能会长,如果有三台GPU服务器,搜索周期一定会大大缩短,毕竟算力决定时间

并且由于资源的保障,也可以考虑每台服务器并行跑不同的模型,这样更快出结果

2. 按需扩大至设计规模,进行训练和微调

找到了最适合的模型之后,那就该“动真格的了”,上规模。至于是扩展到几十台服务器还是几万台,一得看设计预期,二得看预算和硬件资源筹

猜你喜欢

转载自blog.csdn.net/m0_61289673/article/details/133530185
今日推荐