摘要:在实际应⽤中,大模型的解决⽅案在企业业务场景中的落地并⾮仅是单⼀的模型问题,⽽是基于业务需求构建的系统性问题。企业在落地大模型通常需要经过⼏个关键步骤:模型评估、模型数据准备、模型微调与训练、模型合作、模型优化、模型应⽤。⾸先是在众多模型中选择并评估最为适宜的模型,利⽤企业内部可信数据对选定的模型进⾏训练、调优和增强,以确保其在企业应⽤场景任务中表现良好,监控模型在实际应⽤中的表现,并根据反馈信息对模型进⾏调整和优化,在部署过程中,需要考虑到安全性、可扩展性和可维护性等⽅⾯的因素,以确保模型能够稳定可靠地运⾏。这些阶段相互关联,形成了⼀个循环迭代的过程,帮助企业不断优化和改进基础模型的性能和效果。本文就这些关键的步骤进行详细的介绍。
构建企业级AI大模型的整体框架主要包括,通用大模型的预训练,专用基础模型的训练,专用基础模型的反馈,专用基础模型的部署几个步骤。而目前大部分开源的AI大模型都是通用基础模型,这些模型已经经过了预训练了。那么我们大部分企业级的应用级的AI大模型都是基于开源预训练之后的大模型。
注:来源【IBM】可信赖的企业级生成式人工智能白皮书
基于这个基本的大模型之后,对开源大模型进行模型评估,去评估这个开源大模型是否能够满足后面企业级的应用场景。评估之后,如果不满足,那么需要怎么做了?就需要对基础模型进行专有数据的微调和训练,微调和训练需要准备数据,所以还需要保准数据质量,需要对专有的训练的数据进行数据治理,包括清洗、加工,标注,数据增强。完成数据准备之后,进行模型的微调和训练之后,将训练完成的模型另存成新的版本。这个新的版本即为我们的专有大模型,那么实际应用还需要将训练之后的专有模型和基础模型进行组合等多种方式的应用,所以有模型合作的步骤。另外专有模型也并不能保障任务完成的半分白正确,所以还需要建立反馈机制,在后续的模型应用过程中形成模型优化。最后就是模型的部署和应用。这个是大模型应用的整体框架。
模型评估
模型评估⼀直以来都是⼈⼯智能领域的重要议题。从机器学习,到深度学习,再到现在的⽣成式 AI,不同阶段的模型评估指标也呈现不同的特点。在机器学习和深度学习阶段,模型的主要任务是分类(分类模型)和预测(回归模型),模型结果是否正确是明确的。分类模型的主要评估指标是准确率、召回率、精确率、F1 等等。
但是到了⽣成式 AI 阶段,基于通⽤⼤型基础模型,模型的主要任务变成了⽂本⽣成和图像⽣成等。⽣成的⽂本与图⽚是否“正确”具有强烈的主观性,计算维度也与之前不同。针对以上新出现的问题,在⽂本⽣成领域,提出了 BLEU 和 METEOR 等评估指标。图像⽣成领域则提出了 Perceptual Loss 和 Fréchet Inception Distance 等⽅法。
评估大模型的商用产品主要提供对AI大模型性能、适用性、稳定性、安全性和可解释性等方面的全面评估。以下是一些目前市场上已有的商用评估产品和工具:
1、SuperCLUE:这是一个综合性的大模型评测基准,主要聚焦于大模型的四个能力象限,包括语言理解与生成、专业技能与知识、Agent智能体和安全性,进而细化为12项基础能力。
2、Ragas:Ragas框架是一个专为AI大模型设计的智能评估工具,用于评估模型的性能、适用性、稳定性、安全性和可解释性等多个维度。
3、各种大模型评测基准:例如MMLU(大规模多任务语言理解基准)、Open LLM Leaderboard(Hugging Face推出的开源大模型排行榜单)、C-Eval(一个全面的中文基础模型评估套件)等,这些基准和排行榜提供了对大模型在不同任务和领域中的表现进行评估的工具。
4、大模型评测平台:由人工智能关键技术和应用评测工业和信息化部重点实验室牵头,联合多家单位共同发布的大模型评测平台。
5、网页AGI Eval:微软发布的大模型基础能力评测基准,主要评测大模型在人类认知和解决问题的一般能力。
这些工具和平台可以帮助开发者、研究人员和决策者全面了解AI大模型的优势和潜在风险,从而做出更明智的决策和优化方向。
模型数据准备
当企业场景需要超越原始⼤语⾔模型的能⼒时,通常需要对企业内部的数据进⾏收集和整理,对模型进⾏微调和训练以满⾜特定场景的需求。这个过程可能涉及多个阶段,包括数据的收集、标注和预处理、数据划分、数据增强。在这个过程中,企业需要充分了解⾃⾝的业务需求和数据特点,以便选择合适的数据收集⽅法和⼯具,从⽽更好地满⾜业务需求。数据收集就主要包括公开数据、企业内部数据、外部数据的收集,这里详细介绍一下数据预处理、数据标注、数据划分、数据增强等步骤。
1、数据预处理
数据清洗在机器学习中涉及到识别数据中的缺失值、异常值、重复值等问题,并进⾏相应的修正和处理,包括:处理缺失,异常值,重复值,不⼀致的数据格式,特征选择和转换(如数值化、标准化、归⼀化等),类别型数据(如 One-Hot Encoding 或者 Label Encoding 等),时间序列数据,数据不平衡等⽅⾯。在实际应⽤中可能需要根据数据集的具体情况和需求进⾏适当的调整和扩展。数据清洗的⽬标是确保数据的质量和可靠性,为后续的机器学习建模和分析提供可靠的基础。
2、数据标注
数据标注,⼜称为数据注释,是在开发机器学习(ML)模型时的预处理阶段的⼀部分。这个过程涉及到对原始数据(例如图像、⽂本⽂件、视频)的识别,然后为这些数据添加⼀个或多个标签,以指定其上下⽂,使得机器学习模型能够做出准确的预测。在数据标注的过程中,⼈⼯标记者或专业⼯具被⽤来为数据集中的每个样本分配适当的标签。这些标签可以是对图像中物体的识别、⽂本的分类、视频中事件的描述等。通过为数据集中的每个样本添加标签,为机器学习模型提供有监督学习所需的训练数据。
文本标注算法、图片标注算法和视频标注算法是自然语言处理(NLP)和计算机视觉(CV)领域中的一些关键技术,它们用于训练机器学习模型以理解和处理不同类型的数据。以下是一些常见的文本、图片和视频标注算法和工具:
文本标注算法:
1、命名实体识别(NER):识别文本中的特定实体,如人名、地点、组织等。
2、词性标注:为文本中的每个词分配一个词性类别,如名词、动词等。
3、依存句法分析:分析文本中词语之间的依存关系。
4、语义角色标注:识别句子中的动作和实体之间的关系。
5、文本分类:将文本分配到特定的类别或主题。
图片标注算法:
1、边界框标注:在图片中用矩形框标出对象的位置。
2、多边形标注:用于不规则形状的对象,通过标记对象的边界点来形成多边形。
1、关键点标注:在对象上标注特定的关键点,常用于人体姿态估计。
2、语义分割:将图像分割成多个像素区域,每个区域属于一个特定的类别。
- 实例分割:在语义分割的基础上,进一步区分同类对象的不同实例。
视频标注算法:
1、单帧标注:将视频分解为单独的帧,并对每一帧进行图片标注。
2、多帧或流标注:在视频播放过程中跟踪对象,并对整个视频流进行连续的标注。
1、目标追踪:在视频帧之间跟踪特定对象的运动。
2、事件检测:识别视频中的特定事件或动作序列。
3、3D点云标注:常用于自动驾驶领域,对视频中的3D空间点进行标注。
在实际应用中,标注工具通常会结合这些算法来辅助用户进行数据的标注工作。例如,一些流行的标注工具包括LabelImg、Labelme、CVAT等,它们提供了图形用户界面和自动化工具来简化标注过程。而视频标注由于其复杂性,可能需要更高级的工具来处理时间序列数据和对象追踪。
3、数据划分
数据划分通常需要将数据集分为训练集、验证集和测试集三部分进⾏处理。常⻅的数据划分的⽅法主要包括:随机划分、分层划分、时间序列划分、K 折交叉验证等。在实际应⽤中,可以根据具体情况对上述⽅法进⾏调整。需要注意的是,数据划分应该尽可能保证各个⼦集的数据分布⼀致,以保证模型在各种情况下都能表现出良好的性能。
4、数据增强
数据增强(Data Augmentation)是⼀种⽤于改善模型性能和泛化能⼒的技术,它通过创建原始数据的修改版本来增加⽤于模型训练的数据量。这些修改可以包括旋转、缩放、翻转或其他形式的变换,⽬的是增加数据的多样性,以帮助模型学习更多的特征和规律,提⾼模型的泛化能⼒。此外,数据增强也可以帮助防⽌模型过拟合,提⾼模型的健壮性。常⽤的数据增强技术包括:图像数据增强(如旋转,缩放,剪裁,翻转,改变亮度,对⽐度,饱和度等,⽂本数据增强(同义词替换,随机插⼊,随机交换,随机删除等),⾳频数据增强(改变⾳调,⾳量,速度,添加背景噪声等),数据插值等。随着⽣成式⼈⼯智能的技术发展,模型的尺⼨越来越⼤,还可采⽤⾃监督数据⽣成,领域数据/专家数据等⽅式来实现增强。⽤⼾可结合模型的实际应⽤场景、具体需求和数据类型来选择合适的数据增强⽅法。
模型微调与训练
⼀般来说,⼤语⾔模型应用可以通过构造良好的提⽰词激发模型的能⼒,⼀种典型的提⽰⽅法是将任务描述或⽰范以⾃然语⾔⽂本的形式表达的上下⽂学习(in-context learning,CL)。此外,采⽤思维链提⽰(chain-of-thought prompting)可以通过将⼀系列中间推理步骤加⼊提⽰中来增强 ICL。有的场景通过提⽰⽆法解决问题或者需要过⻓的上下⽂提⽰,这种情况下就会涉及模型微调,常⻅的微调⽅式包括使⽤⽆标签数据进⾏继续预训练、使⽤标签数据对模型进⾏指令微调、通过强化学习对模型进⾏对⻬微调等。
继续预训练优势是可以容易获取到⽆标签数据,常⻅的使⽤场景包括对 LLM 进⾏进⾏多语⾔⽀持的扩展、垂直领域知识的增强,增加 LLM ⽂本⻓度的⽀持等。
指令微调是以有监督的⽅式微调 LLM(例如使⽤序列到序列的损失进⾏训练),指令微调后 LLM可以展现出泛化到未⻅过任务的卓越能⼒,为了进⾏指令微调,⾸先需要收集或构建指令格式的实例。构建指令数据集可以通过⼈⼯⽅式、利⽤基础模型⾃动⽣成、结合使⽤开源指令数据集。由于指令微调涉及多种任务的混合,因此在微调过程中平衡不同任务的⽐例⾮常重要,⼀种⼴泛使⽤的⽅法是实例⽐例混合策略,即将所有数据集合并,然后从混合数据集中按⽐例采样每种实例。
由于 LLM包含⼤量的模型参数,进⾏全参数微调将会有较⼤开销,于是提出来参数⾼效微调(parameter-efficient fine-tuning),旨在减少可训练参数的数量,同时尽可能保持良好的性能。常⻅的⽤于 Transformer 语⾔模型的参数⾼效微调⽅法有适配器微调(adapter tuning)、前缀微调(prefix tuning)、提⽰微调(prompttuning)和低秩适配(LoRA)等 。
模型合作
在企业的实际应用中,面对多样化的业务场景,通常会将通用基础模型与特定领域的专业模型相结合。通用模型因其卓越的自然语言处理能力、丰富的知识储备以及出色的任务分析和总结能力而备受青睐。它们能够应对广泛的下游任务,为企业带来广阔的应用前景。
与此相对,专业领域模型虽然资源需求较低,但它们在特定领域的深度训练和优化使得其在相关任务上表现出色。然而,这些模型的适用范围相对较窄,通常只适用于特定的任务,与通用模型相比,其应用场景有限。
企业在实践中往往已经开发了一些专门针对其特定领域或业务需求的领域模型。通过将通用模型和领域模型的优势结合起来,可以构建出更为灵活高效的解决方案。这种结合能够充分利用现有的能力,最大化地发挥出模型的潜力。
⼀些常⻅的模型合作的⽅式包括:
- 模型组合: 将领域模型的预测结果整合到基础模型中,从⽽扩展基础模型的知识和提⾼精度。例如,基础模型可⽤于任务框架拟定和任务分解,⼜领域模型对分解任务进⾏处理,最终由基础模型对所有步骤的答案进⾏组织整理。
- 模型堆叠: 将领域模型和基础模型串联起来,形成⼀个更为复杂的模型。通过增加模型深度,可以提⾼模型的复杂度。例如,基础模型可对任务从不同维度进⾏定义,领域模型则从不同⻆度回答问题,最终由基础模型整理所有步骤的答案。
- 模型分⼯: 将⽤⼾任务分解,让⼤、领域模型各⾃专注于不同的任务。例如,基础模型处理开放式⾃然语⾔处理任务,⽽领域模型则专注于特定⾏业的语⾔任务。
模型部署
大模型在部署时会广泛使用模型压缩和推理引擎技术来优化性能和资源使用。以下是这些技术的应用方式:
1、模型剪枝(Pruning):
移除神经网络中冗余的权重或神经元,减少模型大小和计算需求,同时尽量保持模型性能。
2、量化(Quantization):
将模型中的浮点数权重转换为低精度表示(如8位整数),以减少模型大小和加速计算,同时降低内存带宽需求。
3、知识蒸馏(Knowledge Distillation):
通过训练一个小型模型(学生模型)来模仿一个大型模型(教师模型)的行为,以此来获得一个性能接近但更轻量级的模型。
4、推理引擎(Inference Engine):
使用专门的推理引擎,如TensorRT、ONNX Runtime、TensorFlowLite等,这些引擎针对特定硬件进行了优化,可以加速模型的推理过程。
通过这些技术的应用,大模型可以更高效地部署在各种硬件平台上,满足不同场景下对性能、速度和资源使用的需求。这些优化手段的选择和应用通常取决于目标应用的具体要求和运行环境的约束。
既然大模型现在这么火热,各行各业都在开发搭建属于自己企业的私有化大模型,那么势必会需要大量大模型人才,同时也会带来大批量的岗位?“雷军曾说过:站在风口,猪都能飞起来”可以说现在大模型就是当下风口,是一个可以改变自身的机会,就看我们能不能抓住了。
那么,我们该如何学习大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。
三、大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。