乐趣区

关于aigc:AIGC时代基于云原生-MLOps-构建属于你的大模型下

为了满足企业在数字化转型过程中对更新迭代生产力工具的需要,灵雀云近日推出了 Alauda MLOps 解决方案,帮忙企业疾速落地 AI 技术、实现智能化利用和服务。


AIGC 大模型已成为企业翻新引擎

随着 ChatGPT 的爆火,越来越多的人思考应用 AI 来晋升咱们日常工作的效率和品质,通过对话帮助生成须要的文本数据。无论是将数据汇总成表格,还是依据提醒编写文章,或者进行专业知识问答,都能够通过适合的 prompt 工程,让 ChatGPT 给出最佳的答复,甚至能够取代一部分人类的工作。

此外,AI 生成的内容不仅限于文本数据,还包含 AI 绘画 (stable diffusion),乐曲创作(Amper Music),电影生成(Runway) 等工具,这些都是 AIGC(AI Generated Content) 的领域,它们也在一直刷新许多行业的生产力。

Alauda MLOps 助力企业疾速构建属于本人的大模型

然而,企业须要一个本人领有并管控的本地部署的模型来实现上述工作,因为这样能够保障:

· 平安因素:在进行对话时,企业不心愿把企业外部数据发送到互联网上的 AI 模型;
· 性能定制:心愿应用本人的数据,加强模型在特定场景的能力(fine tunning);
· 内容审查:依据法律法规要求,对输出、输入内容进行二次过滤。

那么,在这样的场景下,企业如何疾速搭建、定制这样的模型呢?答案是应用云原生 MLOps + 公开模型!

依据 OpenAI 公司的介绍,其在训练 ChatGPT / GPT- 4 等超大规模模型时,应用了 Azure + MPI 的大规模 GPU 计算集群。在公有云原生环境,应用 MLOps 工具链,企业同样能够领有能够横向扩大的大规模机器学习算力。在应用 MLOps 平台时,能够取得如下的晋升:

· 更适宜大规模预训练模型的训练和预测流程;
· 升高对大模型的利用门槛:内置应用预训练大模型教程流程,一步上手;
· 欠缺的惯例机器学习,深度学习平台;
· 应用流水线 + 调度器对立编排大规模分布式训练任务,反对自定义各种分布式训练方法和框架,包含 DDP、Pipeline、ZERo、FSDP;
· 流程自定义:依据理论业务,抉择 MLOps 工具链条中的子集,构建适合的业务流程;
· 欠缺的 MLOps 平台:提供顺畅、残缺的 MLOps 工具链。接下来,咱们以 Alauda MLOps 平台为例,介绍如何在此之上基于 LLaMa 预训练模型的 chat 模型(lora)来构建属于你的“ChatGPT”,定制并启动一个 LLM 对话模型。

此外,应用其余 HuggingFace 预训练模型,也能够疾速构建本人的模型,如 Vicuna、MPT 等模型,请感兴趣的读者自行尝试。

· 获取形式 ·
企业版 MLOps:
https://www.alauda.cn/open/detail/id/740.html
开源版 MLOps:
https://github.com/alauda/kubeflow-chart

如何在云原生 MLOps 下实现大规模预 chat 模型的定制和部署?

首先,咱们须要启动一个 Notebook 环境,并为其调配必要的 GPU 资源(实测中,训练 alpaca 7b 半精度模型须要 4 块 K80,或一块 4090,以及足够的显存大小):

而后,咱们须要从 github 和 hugging face 筹备对应的代码和模型文件。

· 下载我的项目:https://github.com/tloen/alpaca-lora,而后拖拽上传到 Notebook 文件导航栏。也能够在 Notebook 内应用命令行执行 git clone 下载;
· 下载语言模型预训练 weights:https://huggingface.co/decapoda-research/llama-7b-hf,并拖拽上传到 Notebook 中。也能够在 Notebook 中应用 git lfs clone 下载模型;
· 下载 lora 模型预训练 weights: https://huggingface.co/tloen/alpaca-lora-7b,并拖拽上传到 Notebook 中。也能够在 Notebook 中应用 git lfs clone 下载模型。

这里上传较大的模型会有较长的等待时间,如果和 huggingface 网络连接良好,能够抉择在 Notebook 内间接从网络下载。

接着,咱们先应用方才下载的预训练模型,启动一个 AI 对话 web 利用验证成果,挂载 Notebook 应用的磁盘以读取这些模型文件:

而后咱们就能够应用以上 yaml 配置或者原生利用创立表单形式创立预测服务。留神推理服务只须要应用 1 块 K80 GPU 即可启动。

这里咱们应用的镜像应用如下 Dockerfile 构建:

期待推理服务启动实现,咱们就能够在浏览器中拜访,并和这个模型开始做各种对话的尝试。因为 alpaca-lora 模型对中文反对的不够欠缺,只管能够输出中文,但输入大多仍为英文。然而,该模型在肯定水平上曾经展现出了较好的能力。

最初,咱们能够应用本人标注的数据,对模型进行优化和定制(finetunning)。依据 alpaca-lora 我的项目的阐明,参考如下训练数据的格局,减少 finetune 的训练数据,而后开始训练。此时模型训练只会更新模型中的大量参数,根底的预训练语言模型(LLM)参数不会被更新,以保留 LLM 弱小的底座能力。

以上为在 Notebook 中间接训练,如果训练任务有逐渐简单的流水线,能够将训练 python 程序定制成如下流水线并提交集群运行。如果工作是多机多卡 + 模型并行训练框架,也能够通过配置训练节点的个数,并在 python 代码中依据框架实现对应分布式计算代码即可,不须要依据 MLOps 流水线调度做任何代码革新。

以上为在 Notebook 中间接训练,最多只能应用一台物理节点上的所有 GPU 卡。如果训练任务有跨物理节点分布式训练的需要,能够将训练的 Python 程序构建成如下流水线并提交集群运行。

留神 MLOps 反对间接在工作流水线中构建分布式训练步骤,不同于 Kubeflow Training Operator 的模式须要用户定义在 Kubernetes 上训练的 TFJob, PytorchJob 的 YAML 配置文件,拖拽之后的 Python 程序作为一个工作流的步骤,能够独自设置这个节点的并行度,即流水线的 ParallelFor 元语。这样不论是数据并行(DDP),流水线并行(PipelineParallel),FSDP,还是其余分布式训练方法,以及应用任意框架如 transformers, accelerate 实现的训练,都能够在流水线内定制。

此外,在 MLOps 平台构建的分布式训练流水线,能够抉择应用 Volcano 调度器实现 GPU 和 Pod 的调度,避免多个工作互相占用资源导致的资源节约。这样,咱们在拖拽 Python 代码之后,须要配置这个工作的并行度,每个节点须要的 CPU,内存,显卡的资源,运行时的镜像,而后点击界面上的“提交运行”按钮,就能够启动这个工作,并查看工作的运行状态。

在执行实现 finetunning 训练,就能够参照下面的步骤应用新的模型启动推理服务开始验证了。这时您曾经领有了一个属于本人的“ChatGPT”!!!当然,如果您感觉以后的 7b (70 亿参数规模的模型) 能力无限,也能够尝试更大的模型,如 13B、30B、65B 等,也能够应用 alpaca-lora 以外的模型构造实现,比方:

https://huggingface.co/tiiuae/falcon-40bhttps://huggingface.c…

此外,值得一提的是,咱们会在将来的版本中反对更加晦涩的大模型的训练和预测形式(如下图),请及时关注咱们的更新。

如果心愿验证这些公开模型的能力,或者发明本人的 ChatGPT,这些就交由云原生 MLOps 平台来帮忙您实现吧~

退出移动版