大模型概述

文章目录

  • AI大模型的定义
  • AI大模型的分类
  • LoRA 微调

AI大模型的定义

AI大模型是通过深度学习算法和人工神经网络训练出的具有庞大规模参数的人工智能模型。这些模型使用大量的多媒体数据资源作为输入,并通过复杂的数学运算和优化算法来完成大规模的训练,以学习和理解到输入数据的模式和特征。这些模式和特征最终通过大模型中庞大的参数进行表征,以获得与输入数据和模型设计相匹配的能力,最终来实现更复杂、更广泛的任务,如语音识别、自然语言处理、计算机视觉等。
大模型的训练过程是根据大量的输入数据,通过算法调整模型中庞大的参数来优化模型性能。在训练过程中,模型会根据输入数据进行反向传播和优化,以最小化损失函数并更新参数,在训练收敛时,参数会趋于稳定,这意味着模型已经学习到了最佳的参数设置,模型也就具备了相应的能力。这意味着模型在给定的输入下,将会产生一致的输出。这种确定性是基于训练数据的特征和模型结构所决定的,即决定模型训练能力的因素主要有输入的数据和模型算法参数的设计。 因此,模型的性能和功能不仅取决于模型参数的确定,还取决于训练数据的质量、模型架构的选择等。为了获得更好的性能和功能,需要综合考虑这些因素,并进行合适的调整和优化。
根据以上定义和理解不难推断出AI大模型的特点:
 大量的参数:大模型通常具有庞大的参数规模,拥有数以亿计的参数,这些参数可以存储模型的知识和经验,更多的参数意味着模型具有更强大的学习能力和表示能力,能够更好地捕捉数据中的复杂模式和特征,以便进行推理和预测。AI大模型的目标是通过增加模型的参数数量来提高模型的表现能力。相比之下,传统的浅层神经网络或机器学习模型可能无法捕捉到更复杂的关系和模式。
 上下文理解和生成:大模型能够理解和生成更具上下文和语义的内容,通过注意力机制、上下文编码器等关键技术来学习和训练大量的语言、图像等输入数据,可以从复杂的真实场景中提取有用的信息。
 强大的泛化能力:大模型通过在大规模数据上进行训练,具有强大的泛化能力。它们从大量的数据中学习到广泛的特征和模式,并且能够在未学习过、未见过的数据上也同样表现良好。对未学知识的泛化能力也是评估大模型的重要指标。
 计算资源需求大:大模型对于数据和计算资源的需求非常大。需要强大的计算资源来进行参数优化和推理,这需要具备出色的并行计算能力的GPU、TPU处理器集群,这使得训练和使用这些模型成为一项具有挑战性的任务。
 迁移学习能力:大模型在一个或多个领域上进行预训练,并能够将学到的知识迁移到新任务或新领域中。这种迁移学习能力使得模型在新任务上的学习速度更快,同时也提高了模型在未知领域中的性能。
 预训练与微调:大模型可以采用预训练和微调两阶段策略。在预训练阶段,模型通过大规模无标签数据进行学习,学习到一种通用表示。在微调阶段,模型使用有标签数据对模型进行细化训练,以适应具体的任务和领域。这种在大规模数据上进行预训练,再在具体任务上进行微调,能够让大模型适应不同的应用场景。
 多领域应用:大模型应用领域广泛,可应用于多个领域,并解决多种任务,如自然语言处理、计算机视觉、语音识别等。大模型不仅在单一模态领域中有很强的表现,更能够进行跨模态的任务处理。
AI大模型具有诸多优点的同时也存在一些挑战和限制,如训练时间长、计算资源需求大、模型复杂度高、通用泛化能力受限等等。此外,由于其庞大的参数规模,大模型可能面临可解释性和隐私等方面的诸多挑战。
尽管有诸多问题和挑战,但AI大模型的蓬勃发展已经势不可挡。最近几年,随着深度学习和硬件技术的快速发展,出现了一系列强大的大模型,其中最著名的就是以Transformer架构为基础的BERT、GPT和T5等模型。以GPT-3为例,它具有1750亿个参数。该模型在自然语言处理任务中表现出色,能够生成高质量的文本、回答问题和进行对话。而这仅仅是大模型的开始…

AI大模型的分类

AI大模型根据不同维度有不同的分类方式,如根据任务类型可分为监督学习模型、无监督学习模型和强化学习模型;根据模型结构可分为DNN深度神经网络、CNN卷积神经网络、RNN循环神经网络;根据模型规模可以分为大规模模型和中小规模模型。而我们重点从模型数据类型、模型工作模式和模型开发模式来分析AI大模型的分类。
(1) 按模型数据的媒体类型,AI大模型可以分为语言模型,图像模型以及多模态模型:
语言模型(Language Models):
语言模型是一种用于预测和生成自然语言文本的统计模型,通过给定的输入序列,学习单词(或字符)之间的关系和上下文来推断一个序列中下一个词或字符的概率,旨在理解和生成自然语言文本。语言模型的训练通常需要大量的文本数据,以便能够捕捉到不同单词之间的统计规律和语义关系。训练好的语言模型可以用于机器翻译、文本生成、语音识别纠错等多种自然语言处理任务,为人工智能应用提供文本处理能力。
最常用的语言模型是基于N-gram的模型和基于神经网络的模型。N-gram模型基于前n-1个单词来预测下一个单词的概率,而神经网络模型则使用深度学习技术,如循环神经网络(RNN)或者Transformer来建模长期依赖关系和上下文信息。GPT(生成式预训练Transformer)系列模型就是一种广为使用的语言模型。
图像模型(Image Models):
图像模型是一种用于处理和分析图像数据的模型,用来理解、识别和生成图像中的内容,从而实现图像分类、目标检测、图像生成等多种计算机视觉任务。图像模型可以分为传统的基于特征工程的方法和基于深度学习的方法。基于特征工程的方法是通过手动选择和设计特征来表示图像或使用传统机器学习算法来对提取的特征进行分类或回归的方式对图像进行分析处理;基于深度学习的方法是目前常用的图像模型处理方法,如通过卷积神经网络的多个卷积层和池化层来自动学习图像中的特征,并通过全连接层进行分类或回归、再如利用预训练的大型神经网络模型来提取图像特征的迁移学习等。经典的图像模型包括AlexNet、VGG、ResNet和EfficientNet等。
 多模态大模型(Multimodal Models):
多模态大模型是指能够同时处理多种输入模态(如图像、文本、语音等)和输出模态(如图像生成、文本生成、语音合成等)的庞大模型。它能够将多种模态的信息进行融合和联合建模,从而实现更复杂、更全面的多模态任务。
传统的自然语言处理模型主要关注文本输入和输出,而多模态大模型扩展了这一概念,将其他类型的输入(如图像、语音等)集成到模型中。
(2) 根据模型工作方式,AI大模型可以分为生成模型和强化学习模型:
 生成模型(Generative Models):
生成模型旨在学习数据的分布,并能够生成新的样本。这些模型通常用于图像生成、文本生成等任务。代表性的生成模型包括GAN(生成对抗网络)和VAE(变分自编码器)。
生成模型是一种机器学习模型,用于生成新的数据样本,这些样本与训练数据具有相似的分布。生成模型通过学习训练数据中的统计规律和潜在结构,能够生成具有类似特征的新数据。生成模型可以用于多种任务,如图像生成、文本生成、音频生成等。它们能够模拟和生成与原始数据相似的样本,从而具有一定的创造性和应用潜力。
 强化学习模型(Reinforcement Learning Models):
强化学习模型通过与环境进行交互,通过试错和奖励机制来提高性能以学习最优策略,以使代理能够在给定的环境中获得最大的累积奖励。强化学习模型是一种机器学习模型,强化学习模型包含的关键要素有环境、状态、行动、奖励、策略、值函数和学习算法。其训练过程通过与环境的交互来不断调整策略和值函数,以最大化累积奖励。模型通过试错和反馈机制来学习,并在不断的探索和利用中提高性能。强化学习模型常用于处理序贯决策问题,如机器人控制、游戏玩法优化等。典型的强化学习模型如Deep Q-Network(DQN)和Proximal Policy Optimization(PPO)等。
(3) 根据模型开发模式,AI大模型可以分为开源大模型和在线大模型:
 开源大模型(Open Source Models):
开源大模型是基于开源软件许可协议发布的大型深度学习模型。通常由研究者、开发者或社区共同开发和维护,并在公开的代码库中提供。优点是可以免费获取和使用,开放的代码使得用户可以自由地查看、修改和定制模型,以适应特定的需求和任务。开源大模型也促进了学术界和业界之间的知识共享和合作。代表模型有Transformers、BERT、ChatGLM
 在线大模型(Online Models):
在线大模型是指部署在云端或网络上的大型机器学习或深度学习模型。这些模型通常由云服务提供商或在线平台提供,并通过接口或API的方式进行访问和使用。在线大模型的优点是用户无需关注底层的硬件和软件架构,只需通过网络请求即可获得模型的预测结果。在线大模型还可以实现实时或按需的模型调用,适用于各种应用场景,如语音识别、图像处理和自然语言处理等。
总而言之,开源大模型和在线大模型都是为了提供大规模机器学习或深度学习模型的访问和使用。开源大模型强调了代码的开放性和自由性,而在线大模型则提供了方便、快速和按需的模型服务。

大模型的演化过程大体可分为预训练、指令微调(instruction tuning)和从人类反馈强化学习三个阶段。预训练是为了得到基座模型;指令微调是为了释放基座模型的能力,使模型可以理解用户指令;从人类反馈强化学习是为了在价值观等方面与人类对齐(alignment)。本文针对以上三个不同阶段的要点总结了一系列经验性理论,旨在帮助开发者和相关科研人员开发和更好地理解大模型。

LoRA 微调

大模型进行 Lora 微调时,需要指定 lora_target,以 LLama2 为例,官方指出可以使用下述层:

--lora_target 'q_proj,v_proj,k_proj,o_proj,gate_proj,down_proj,up_proj'#Atom-7B大模型中的参数如下--target_modules q_proj,k_proj,v_proj,o_proj,down_proj,gate_proj,up_proj \

参数含义

    --lora_r 8 \--lora_alpha 32 \--target_modules q_proj,k_proj,v_proj,o_proj,down_proj,gate_proj,up_proj \--lora_r 是LoRA的秩,也就是微调时使用的低秩矩阵的维度。这个参数越大,表示微调的自由度越高,但也会增加计算量和内存消耗。一般来说,这个参数可以在432之间选择,根据模型的大小和任务的难度调整。
--lora_alpha 是LoRA的正则化系数,也就是微调时对低秩矩阵的惩罚力度。这个参数越大,表示对低秩矩阵的约束越强,可以防止过拟合,但也会降低微调的效果。一般来说,这个参数可以在1664之间选择,根据数据集的大小和复杂度调整。
--target_modules 是LoRA的目标模块,也就是微调时需要替换的模型层。这个参数可以根据不同的模型结构和任务类型选择,一般来说,选择注意力机制或者前馈网络中的线性层比较合适,例如q_proj,k_proj,v_proj,o_proj,down_proj,gate_proj,up_proj等。这些模块的名称可以通过打印模型的结构来查看。

第一步,引进必要的库,如:LoRA 配置类 LoraConfig。

from peft import get_peft_config, get_peft_model, get_peft_model_state_dict, LoraConfig, TaskType

第二步,创建 LoRA 微调方法对应的配置。

peft_config = LoraConfig(task_type=TaskType.CAUSAL_LM, inference_mode=False, r=8, lora_alpha=32, lora_dropout=0.1
)

参数说明:

task_type:指定任务类型。如:条件生成任务(SEQ_2_SEQ_LM),因果语言建模(CAUSAL_LM)等。
inference_mode:是否在推理模式下使用Peft模型。
r: LoRA低秩矩阵的维数。关于秩的选择,通常,使用4816即可。
lora_alpha: LoRA低秩矩阵的缩放系数,为一个常数超参,调整alpha与调整学习率类似。
lora_dropout:LoRA 层的丢弃(dropout)率,取值范围为[0, 1)。
target_modules:要替换为 LoRA 的模块名称列表或模块名称的正则表达式。针对不同类型的模型,模块名称不一样,因此,我们需要根据具体的模型进行设置,比如,LLaMa的默认模块名为[q_proj, v_proj],我们也可以自行指定为:[q_proj,k_proj,v_proj,o_proj]。 在 PEFT 中支持的模型默认的模块名如下所示:

TRANSFORMERS_MODELS_TO_LORA_TARGET_MODULES_MAPPING = {

    "t5": ["q", "v"],"mt5": ["q", "v"],"bart": ["q_proj", "v_proj"],"gpt2": ["c_attn"],"bloom": ["query_key_value"],"blip-2": ["q", "v", "q_proj", "v_proj"],"opt": ["q_proj", "v_proj"],"gptj": ["q_proj", "v_proj"],"gpt_neox": ["query_key_value"],"gpt_neo": ["q_proj", "v_proj"],"bert": ["query", "value"],"roberta": ["query", "value"],"xlm-roberta": ["query", "value"],"electra": ["query", "value"],"deberta-v2": ["query_proj", "value_proj"],"deberta": ["in_proj"],"layoutlm": ["query", "value"],"llama": ["q_proj", "v_proj"],"chatglm": ["query_key_value"],"gpt_bigcode": ["c_attn"],"mpt": ["Wqkv"],
}

Transformer的权重矩阵包括Attention模块里用于计算query, key, value的Wq,Wk,Wv以及多头attention的Wo和MLP层的权重矩阵,LoRA只应用于Attention模块中的4种权重矩阵,并且通过消融实验发现同时调整 Wq 和 Wv 会产生最佳结果,因此,默认的模块名基本都为 Wq 和 Wv 权重矩阵。

补充…

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4382系列数字荧光示波器

4382系列数字荧光示波器 简述: 4382系列手持式数字荧光示波器具有8个产品型号,带宽200MHz、350MHz、500MHz、1GHz,最高采样率5GSa/s,最大存储深度60kpts/CH,最快波形捕获率10万个波形/秒,独创的Any Acquire…

专业课145+总分440+东南大学920考研专业基础综合信号与系统数字电路经验分享

个人情况简介 今年考研440,专业课145,数一140,期间一年努力辛苦付出,就不多表了,考研之路虽然艰难,付出很多,当收获的时候,都是值得,考研还是非常公平,希望大…

【部署】Deploying Trino on linux

文章目录 一. Requirements1. Linux operating system2. Java 环境3. Python 二. Installing Trino三. Configuring Trino1. 节点配置2. JVM 配置3. Config properties4. Log levels5. Catalog properties 四. Running Trino 一. Requirements 1. Linux operating system 64位…

SpringBoot错误处理机制解析

SpringBoot错误处理----源码解析 文章目录 1、默认机制2、使用ExceptionHandler标识一个方法,处理用Controller标注的该类发生的指定错误1).局部错误处理部分源码2).测试 3、 创建一个全局错误处理类集中处理错误,使用Controller…

基于java技术的电子商务支撑平台

摘 要 随着网络技术的发展,Internet变成了一种处理日常事务的交互式的环境。互联网上开展各种服务已经成为许多企业和部门的急切需求。Web的普遍使用从根本上改变了人们的生活方式、工作方式,也改变了企业的经营方式和服务方式。人们可以足不出户办理各…

财务管理在IT服务管理中的重要作用

官方网站 www.itilzj.com 文档资料: wenku.itilzj.com 财务管理作为一种管理组织财务资源的方法,在IT服务领域扮演着关键的角色。其涵盖的范围涉及预算编制、成本控制、投资决策、财务报告和绩效评估等多个方面,直接关系到IT服务的财务健康和整体运作。…

WT588F02A-16S录放音语音芯片为何需要配备自动增益控制麦克风?

在语音录放领域,一款优秀的语音芯片如WT588F02A-16S不仅需要具备高品质的录音和播放功能,还需要与合适的麦克风配合,以确保音频输入的最佳效果。而其中,自动增益控制(AGC)麦克风在这一过程中发挥着重要作用…

Csharp(C#)无标题栏窗体拖动代码

C#(C Sharp)是一种现代、通用的编程语言,由微软公司在2000年推出。C#是一种对象导向的编程语言,它兼具C语言的高效性和Visual Basic语言的易学性。C#主要应用于Windows桌面应用程序、Windows服务、Web应用程序、游戏开发等领域。C…

使用Redis构建简易社交网站(3)-状态与信息流

目的 本文目的:实现获取主页时间线和状态推送功能。(完整代码附在文章末尾) 相关知识 在我上一篇文章 《使用Redis构建简易社交网站(2)-处理用户关系》中提到了实现用户关注和取消关注功能。 那这篇文章将教会你掌握:1&#x…

蓝桥杯每日一题2023.12.3

题目描述 1.移动距离 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题需要对行列的关系进行一定的探究,所求实际上为曼哈顿距离,只需要两个行列的绝对值想加即可,预处理使下标从0开始可以更加明确之间的关系,奇数行时这一行的数字需…

做外贸如何写开发信?外贸邮件营销怎么写?

外贸业务员写开发信的技巧?撰写客户开发信模板详解! 外贸经营是一项竞争激烈的行业,写好开发信是吸引客户、建立合作关系的重要一环。蜂邮EDM将为您详细介绍如何撰写出色的开发信,以吸引客户的眼球,引领他们与您建立联…

Linux服务器初次使用需要的环境配置

一、划分磁盘 1.查看磁盘 sudo fdisk -l Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors //新增的硬盘 Units: sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096…

【数电笔记】17-具体函数的卡诺图填入

目录 说明: 用卡诺图表示逻辑函数 1. 基本步骤 2. 例题 2.1 例1-真值表转换卡诺图 2.2 例2-标准与或式画卡诺图 2.3 例3-非标准与或式画卡诺图(常见,重点掌握) 说明: 笔记配套视频来源:B站;本系列笔…

el-pagination 纯前端分页

需求&#xff1a;后端把所有数据都返给前端&#xff0c;前端进行分页渲染。 实现思路&#xff1a;先把数据存储到一个大数组中&#xff0c;然后调用方法进行切割。主要使用数组的slice方法 所有代码&#xff1a; html <template><div style"padding: 20px&qu…

分享74个节日PPT,总有一款适合您

分享74个节日PPT&#xff0c;总有一款适合您 74个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/18YHKkyJsplx-Gjj7ofpFrg?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

短波红外相机的原理及应用场景

短波红外 (简称SWIR&#xff0c;通常指0.9~1.7μm波长的光线) 是一种比可见光波长更长的光。这些光不能通过“肉眼”看到&#xff0c;也不能用“普通相机”检测到。由于被检测物体的材料特性&#xff0c;一些在可见光下无法看到的特性&#xff0c;却能在近红外光下呈现出来&…

深度学习数据集的划分(加载kaggle的dog数据,多gpu训练加载参数)待更新

待更新 把dog-breed-identification.zip 文件放到data文件目录下&#xff1a; 该文件解压之后得到如下&#xff1a; 遍历train中的所有文件&#xff0c;train_file.split(‘.’)[0]是根据.划分这个文件名&#xff0c;得到前缀和后缀&#xff0c;下标为0的是去掉后缀的文件名…

国家图书馆论文检索证明申请步骤

国家图书馆论文检索证明申请步骤 登录国家图书馆 咨询提交平台 点击论文收引查证 添加附件这一块&#xff0c;需要自己制作一个有格式的EXCEL 卷&#xff0c;期&#xff0c;页码如何查询&#xff1f; 输入自己的联系方式等待工作人员联系即可

接口获取数据控制台打印有值但是展开又没有了

谷歌浏览器只会展现响应式数据最后的结果&#xff0c;证明原来接口是有值的&#xff0c;后面对这个数据进行操作后&#xff0c;最终没有值了。所以对数据进行操作时最好对数据进行一次深拷贝 JSON.parse(JSON.stringify(data))

配置php扩展开发环境

sudo apt-get install bison flex m4 autoconf automake gcc 检查php版本 php -v PHP 5.3.2-1ubuntu4.10 with Suhosin-Patch (cli) (built: Oct 14 2011 23:49:39) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologie…