大模型应用工程化过程

         近年来,以人工智能为代表的新一代信息技术加速应用,特 别是基于大模型、大数据、大算力的 ChatGPT 的发布,标志着人 工智能技术取得里程碑式突破,推动科技创新进入新阶段。随着 大模型技术的迅猛发展和场景价值的不断涌现,该技术或将重塑 多个行业的工作方式和格局。

大模型应用工程化各环节

        大模型相较于中小模型,具有更好的表示能力、泛化能力、学习能力和语义表达能力,但其参数量巨大、训练所需数据量和 算力资源多、部署运营更为复杂,工程化落地涉及数据构建、模型算法、模型训练、模型压缩与加速、模型评测、模型运营和安 全可信等多个复杂环节。

        1)数据构建

        训练大模型需要海量数据做支撑,高质量数据集的构建和处 理对于大模型的性能表现至关重要。训练数据集一般需要涵盖多 种类型、多种领域的数据来源,并配以相应的数据预处理过程。 根据数据来源不同,大模型的训练数据主要可分为公开数据、商 业数据和私有数据。大模型参数量需要跟训练数据集大小相匹配, 简单堆砌参数量并不能无限度地提升其性能。通过提升训练数据 集质量和内容丰富度、加入一些特定数据集、合理利用外挂知识 库资源、合理配置各种类型数据配比等方式,可以有效提升大模 型的整体性能,减少模型幻觉,并加快模型的收敛速度。

       高质量的数据预处理是提升模型表现和安全可靠性的重要3 手段。比如自然语言处理训练数据的预处理手段一般包括:质量过滤:过滤重复数据、低质量数据、虚假内容、不合规内容等; 数据去重:重复数据可能会降低大模型的多样性,导致训练过程不稳定,从而影响模型性能,一般可在句子级、文档级和数据集 级等不同颗粒度上进行数据去重处理;隐私脱敏:对于包含个人 敏感信息的数据进行脱敏处理,如身份证号码、电话号码等,包括但不限于匿名化、泛化等手段;数据去毒:消除带有种族/性别偏见、社会文化偏见、宗教文化偏见的数据,以及低俗、粗鄙和带有攻击性的数据等;数据降维:其目标是在保留基本信息的 同时减少数据集的复杂性,从而提高训练效率,一般可通过减少 特征维度或样本大小来实现;数据增强:通过人工创建对现有数 据的变更来增加数据量和多样性,特别是在数据量有限的情况下, 通过数据增强可以提高模型的准确性、泛化能力和鲁棒性,也可 以应对数据类别不平衡等问题。完成数据预处理后,可以将数据通过分词等手段,转换为适用于大模型训练的表达形式,形成高质量语料。此外,在模型推理过程中,也可以通过整合外部的领 域知识库或专业数据库,为模型提供额外的背景知识和参考数据,尤其是快速且不断地更新信息,从而提高模型的准确性和鲁棒性。

        2)模型算法

       大模型技术的突破源于自然语言处理领域的 Transformer 架构。该架构使得模型参数量突破了 1 个亿,随后一系列大模型 被推出。基于 Transformer 架构的模型可以分为编码器、解码器、编码到解码三大类,其主要特点和代表性模型如表 1 所示。

当前,基于 Transformer 解码器结构训练的大模型成为了自 然语言处理领域的主流方案。在此影响下,语音、视觉以及跨模 态等领域的大模型也尝试应用类似模型架构,并取得了较好效果, 比如语音领域的 OpenAI whisper 和 DaLL-E 等,图像生成领域的 Stable Diffusion 开源模型等。

        3)模型训练

        大模型训练涉及预训练和微调等重要环节。预训练的主要目的是利用大量无标签的数据,训练出一个有能力捕捉到数据中隐藏的底层结构和模式的模型,这一阶段的模型通常被称为“基座模型”。由于大模型的参数量和训练数据量的急剧增长,单个计算设备的算力已经不足以支撑模型训练。当前,一般通过分布式训练来解决预训练过程中的海量计算任务和高内存资源等问题, 但也面临着计算墙、内存墙和通信墙等挑战。目前解决分布式训练的关键技术是并行化,将任务分割并分配到多个处理器或设备上,以便同时完成计算,更有效地利用计算资源,减少训练所需时间。微调的主要目的是在预训练模型的基础上,通过有监督微调、强化学习等方式,进一步提升模型在下游任务中的表现,使得模型输出更符合人类期望。有监督微调,又称为指令微调,通过使用有标注的特定任务数据对预训练模型进行微调,从而使得模型具备遵循指令的能力。早期的微调算法会涉及到预训练模型的全量参数更新,计算成本较高,目前已提出了多种参数高效微调任务的方法以节约计算成本,如 LoRA、Adapter、P-tuning等。 强化学习技术是基于人类反馈,进一步调整模型的行为。其数据集一般由经过人工评估的反馈数据构建,这些数据反映了模型的输出与期望输出之间的差异,基于 Q-learning、深度Q网络或近端策略优化等强化学习算法进行训练。

        大模型训练场景对中高端 AI 芯片需求旺盛,需要统筹规划 CPU芯片、GPU芯片、服务器、网络、存储、冷却、算力运营服务、AI应用服务平台等多个方面。在金融机构通用服务器集群基础上,构建基于异构芯片体系的 AI 算力资源池,实现对金融机构现有AI 算力资源的统一调度,保障大模型训练的算力支撑。

        4)模型压缩与加速

        模型压缩是指通过各种技术手段来减小机器学习模型的大小、复杂度和计算量,加速推理过程并减少内存使用,以便在资源受限的设备上部署和运行,如移动设备、边缘设备等。目前模型压缩技术主要包括知识蒸馏、剪枝和量化等解决方案。

               知识蒸馏是一种训练小型模型以模仿大型模型行为的方法,保留了大型模型主要功能的同时降低了计算和存储需求,但通常需要一个预先训练好的大型模型,且性能上会有一定损失。

               剪枝是一种去除模型中不重要或冗余参数的方法,一般可以在不显著影响模型性能的情况下减小模型的大小和计算需求,但需要确定哪些参数是不重要或冗余的,以选择合适的剪枝策略。

               量化是一种减少模型参数和运算中数字精度以降低模型的存储需求和计算复杂度的技术,可适用于多种模型和任务,并显著减少存储和计算需求,但可能会造成一定程度的精度损失,且有时需要特定的硬件支持。

       模型加速主要研究加速模型的训练和推理过程,伴随模型参数增长,正逐渐成为研究热点。

                训练环节:针对计算量、通信、 内存可以进行一系列优化,例如使用梯度累积或梯度压缩可以优化通信策略、使用半精度浮点数可以节省内存等。

                推理环节:优化手段包括使用 GPU、TPU 和 ASIC等芯片的专用硬件加速器加速计算过程、使用并行化和分布式推理提高推理吞吐量并减少推理时间、使用缓存和预取策略降低内存访问延迟、在边缘设备上进行推理减少与服务器端的通信延迟、结合模型压缩技术加速推理过程等。现阶段AI 应用中,大量的算法、模型、开发框架、软件等开发都基于通用加速卡架构,在考虑硬件算力的基础上,要结合加速芯片软件栈及开发工具链等配套的软件生态能力。

        5)模型评测

        模型评测在机器学习和自然语言处理领域扮演着至关重要7 的角色。大模型具有更强大的泛化能力,可以处理多种任务,但 大模型的输出可能存在不真实、不准确、不专业等问题,因此在大模型上线或升级时,有必要对其进行较为全面、充分的评测,帮助模型迭代优化。

       大模型评测已成为行业发展热点问题,目前国内外相关评测 层出不穷。据初步统计,目前行业内关于大模型基准测试或特定 任务的测试数据集已多达 200 余项,主要推出机构可以大体分为 学术界、产业界、媒体、社区以及智库等。其中一些代表性的评 估基准包括 HELM、MMLU、C-EVAL、BigBench、HumanEval、AGIEVal、 SuperCLUE、OpenLLM 等。总体来看,大模型评测仍处于早期阶段,如何构建出全面、充分且能伴随大模型能力增长不断迭代的大模型评测基准,仍面临较大挑战。  

        6)模型运营

       大模型运营包括工程化、部署、管理、调试、维护和监控等多个方面,旨在确保大模型在生产环境中稳定运行,持续适应变化,满足用户需求,保障数据安全。

                工程化方面:模块化和面向 对象的编程可以帮助组织代码,使其更具可读性和可重用性,如将数据预处理、模型结构、训练循环和评估功能分为不同的模块或类,同时版本控制系统和自动化测试技术有助于及时跟踪代码的修改历史,确保每个功能模块和整个系统稳定运行。

                部署方面:要将模型转化为适用于实际环境的格式,包括序列化、压缩、硬 件优化以及容器化工具的使用,以确保模型在不同环境中的一致性。

                管理方面:使用身份和访问管理工具可以控制资源的访问权 限,运用数据管理工具跟踪数据集的变化。

                调试方面:使用可视 化工具和日志记录有助于监测模型运行时的详细信息,这对于诊 断问题和优化性能至关重要。

                维护方面:要制定明确的更新策略 以适应新数据和业务需求,同时要建立回退机制,确保出现问题 时能够快速回退到稳定版本。

                监控方面:通常包括性能监控和异 常检测,基于实时跟踪和警报设置,确保模型的可靠运行。

        7)安全可信

      一般而言,大模型的安全可信会从多个维度进行考量和评估, 包括但不限于:

                可靠性:即大模型的输出内容是真实的、一致的 等;

                内容安全性:即大模型的输出应避免涉黄、涉暴等非法内容, 并能遵循当地的道德准则和法律规定等;

                公平无偏性:即大模型 输出应避免偏见、刻板印象、不公平等情况;

                鲁棒性:即大模型 在面对投毒攻击、提示词攻击等恶意行为或者意外情况时,依然 能够产生稳定和可靠的输出结果;

                可解释性:即大模型能够解释 其推理过程并能透明展示其内容生成方式等;

                数据安全和隐私保护:即对训练和推理大模型的数据中可能包含的敏感信息进行相 应的脱敏和保护处理等。

         为有效提升大模型的安全可信水平,需要在大模型开发和运 营的全流程采取相应的安全措施,包括但不限于:

                数据处理环节:建立高质量的训练数据集,有效去除有毒或错误信息、注重训练 数据的分布比例以避免产生偏见、对训练数据中的敏感数据进行脱敏等;

                模型开发阶段:引入对齐技术等让大模型的输出更符合 人类价值观;

                模型上线前:需对大模型的安全可靠水平进行充分 评测,如红队对抗测试等;

                大模型对客提供服务时:可以引入安 全围栏技术,既能帮助大模型拦截外界的恶意提问,又能对生成内容进行风险过滤和拦截;

                模型运营过程中:还需要建立 持续的监控和定期审核机制,以及时发现异常情况并持续迭代优化模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/694626.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML-CSS练习例子

HTML CSS 练习 https://icodethis.com 作为前端练习生。不敲代码只看,入门是很慢的,所以直接实战是学习前端最快的途径之一。 这个网站练习HTML CSS的,可以打开了解一下,可以每天打卡,例子简单,循序渐进&…

每日5题Day19 - LeetCode 91 - 95

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:91. 解码方法 - 力扣(LeetCode) class Solution {public int numDecodings(String s) {int n s.length();//注意我们dp的范围是n1int[] d…

AtCoder Beginner Contest 356 G. Freestyle(凸包+二分)

题目 思路来源 quality代码 题解 对n个泳姿点(ai,bi)建凸包,实际上是一个上凸壳, 对于询问(ci,di)来说,抽象画一下这个图,箭头方向表示询问向量 按x轴排增序,并且使得后面的y不小于前面的y,因为总可以多…

ThreadCache线程缓存

一.ThreadCache整体结构 1.基本结构 定长内存池利用一个自由链表管理释放回来的固定大小的内存obj。 ThreadCache需要支持申请和释放不同大小的内存块,因此需要多个自由链表来管理释放回来的内存块.即ThreadCache实际上一个哈希桶结构,每个桶中存放的都…

LLM的基础模型8:深入注意力机制

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

SpringBoot之静态资源

默认静态资源路径 classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public/ 静态资源路径下的文件,可以通过根目录访问 resources 文件夹的文件如下图所示: 启动项目,分别访问以下路径: ht…

STM32 proteus + STM32Cubemx仿真教程(第一课LED教程)

文章目录 前言一、STM32点亮LED灯的原理1.1GPIO是什么1.2点亮LED灯的原理 二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写1.LED灯操作函数介绍HAL_GPIO_WritePin函数原型参数说明示例代码 HAL_GPIO_TogglePin函数原型参数说明示例代码 2.代码编写3.烧写程序 总…

微服务开发与实战Day04 - 网关路由和配置

一、网关路由 网关&#xff1a;就是网络的关口&#xff0c;负责请求的路由、转发、身份校验。 在SpringCloud中网关的实现包括两种&#xff1a; 1. 快速入门 Spring Cloud Gateway 步骤&#xff1a; ①新建hm-gateway模块 ②引入依赖pom.xml(hm-gateway) <?xml version…

在VSCode中安装python

引言 Python 是一种广泛使用的高级编程语言&#xff0c;因其易学、易用、强大而受到欢迎。它由 Guido van Rossum 于 1991 年首次发布&#xff0c;并以简洁的语法和丰富的库生态系统而著称。 以下是 Python 的一些关键特点和优势&#xff1a; 关键特点 易于学习和使用&#x…

vue28:组件化开发和根组件

简单写个点击事件 <template> <div class"app"><div class"box" click"fn"></div></div> </template><script> export default {//导出当前组件的配置项//里面可以提供 data methods computed wat…

解决PyQt5中柱状图上显示的数值为带e的科学计数法

PyQt5生成柱状图的代码参考&#xff1a;PyQt5 QtChart-柱状图 参照上述文章&#xff0c;生成柱状图后&#xff0c;数值较大或较小情况下会导致柱状图上显示数值为带e的科学计数法&#xff0c;这样会影响数值的识别&#xff1a; 经过分析QBarSet方法得到解决方法&#xff1a;需…

基于stm32最小版的超声波测距模块

目录 一、模块准备 二、HC-SR04模块原理解释 三、程序完整代码 四、烧录结果 总结 一、模块准备 STM32F103C8T6 HC-SR04 ST-Link&#xff08;其他烧录器也可以&#xff09; 0.96寸OLED屏幕&#xff08;非必须&#xff0c;仅供显示测距结果&#xff0c;可以使用串口助手代替…

【Git】详解本地仓库的创建、配置以及工作区、暂存区、版本库的认识

一、创建本地仓库 需要将本地仓库放在一个目录下&#xff0c;所以在创建本地仓库之前&#xff0c;应该先创建一个目录&#xff0c;再进入这个目录&#xff1a; 在这个目录中创建一个本地仓库&#xff1a; git init 创建完成后&#xff0c;我们就会发现当前目录下多了一个.git…

【Redis学习笔记04】Jedis客户端(上)

Java客户端操作Redis Java生态丰富&#xff0c;自定义的客户端非常多&#xff0c;常见的有Jedis、Lettuce、以及Spring整合后的RedisTemplate&#xff0c;但是对于初学者而言&#xff0c;从Jedis开始入门学习是非常容易上手的&#xff0c;因为Jedis中的API与原生Redis命令高度…

DT-MIL:用于组织病理学图像的MIL方法

学习信息表示对于组织病理学图像的分类和预测任务至关重要。由于图像大小巨大&#xff0c;通常使用多实例学习&#xff08;MIL&#xff09;方案来处理整张组织病理学图像&#xff08;whole-slide histopathological image&#xff09;。然而&#xff0c;MIL的弱监督性质导致了学…

阿里云平台产品创建过程 网页端界面 手机APP

云平台产品创建 登录后选择 产品-物联网-物联网平台&#xff1a; 进入后选择 公共示例-立即试用&#xff1a; 选择 公共示例&#xff1a; 选择 设备管理-产品-创建产品&#xff1a; 产品名称: 传感器 所属品类&#xff1a;自定义品类 节点类型&#xff1a;直连设备 联网方式…

【JsDoc】JsDoc用法 | 巧妙用法

type type {other} other 接收表达式或字符 1、数组代码提示 1、效果图 1、码 /*** type {Array.<play|paush|next>} */ let music []2、字符串提示 2、效果图 2、码 /*** type {a|b|c}*/ let str

UI学习(二)

UI学习&#xff08;二&#xff09; 文章目录 UI学习&#xff08;二&#xff09;布局子视图手动布局自动布局 导航控制器导航控制器基础导航控制器的切换导航栏工具栏 分栏控制器分栏控制器协议部分的内容UITableView基础部分相关的协议函数高级协议与单元格 多界面传值 布局子视…

零基础入门篇①⑦ Python可变序列类型--集合

Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏限时一个月(5.8~6.8)重…