Lucent's Blog

当时明月在 曾照彩云归

人生不相见,动如参与商。

6LCi5Y2O5qKFLOaIkeaDs+S9oOS6hg==


大模型相关概念

什么是大模型?

大模型即大参数模型,就是指具有数千万甚至数亿参数的深度学习模型。近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果,如自然语言处理,图片生成,工业数字化等。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。

大模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。

大模型采用预训练+微调的训练模式,在大规模数据上进行训练后,能快速适应一系列下游任务的模型。

特定领域大模型

什么是大语言模型LLM?

大语言模型(Large Language Model,LLM)是大模型的子分类,是专门通过处理大量文本数据来理解和生成人类语言的AI系统,从而执行各种自然语言处理任务,如文本分类、问答、对话、内容总结等。我们最为常见的ChatGPT、百度文心一言、讯飞星火等都属于大语言模型。

大语言模型LLM的基础架构

大语言模型LLM的基础架构图

目前流行的大语言模型的架构基本都沿用了当前NLP领域最热门最有效的架构—Transformer架构。Transformer架构来源于谷歌在2017年发表的论文《Attention Is All You Need》,翻译过来就是注意力就是你需要的一切。

注意力机制是大语言模型的核心机制,它让模型在处理文本时,能够同时关注输入中的所有词汇,无论句子长短,都能精准捕捉到远距离的语义关联。例如,在解析“华为公司发布了新款手机”这句话时,模型能够迅速聚焦“华为”与“手机”之间的关系,忽略“公司”或“发布”等词的干扰,这种能力使得大语言模型在处理大段文本、复杂语境时能够真正理解其表达的核心含义。

此外,大语言模型通过位置编码(Positional Encoding)的巧妙设计,模型得以理解文本中的词语位置和顺序,准确把握语言的时序特性,同时保留了高效的并行计算能力。

大模型的分类

按照输入输出数据类型的不同,大模型主要可以分为以下三大类:

  • 大语言模型: 是指在自然语言处理(NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。

  • 视觉大模型: 是指在计算机视觉(CV)领域中使用的大模型,通常用于图像处理和分析。

  • 多模态大模型: 是指能够处理多种不同类型数据的大模型,例如文本、图像、音频等多模态数据。

大语言模型

视觉大模型

多模态大模型

通义千问

文心UFO

OpenAI-Sora

ChatGPT

谷歌VIT

Qwen-VL

DeepSeek

华为盘古CV

Midjourney

按照应用领域的不同,大模型主要可以分为 L0、L1、L2 三个层级:

  • L0 通用大模型: 是指可以在多个领域和任务上通用的大模型。通用大模型就像完成了大学前素质教育阶段的学生,有基础的认知能力,数学、英语、化学、物理等各学科也都懂一点。

  • L1 行业大模型: 是指那些针对特定行业或领域的大模型。它们通常使用行业相关的数据进行预训练或微调,以提高在该领域的性能和准确度。行业大模型就像选择了某一个专业的大学生,对自己专业下的相关知识有了更深入的了解。

  • L2 垂直大模型: 是指那些针对特定任务或场景的大模型。它们通常使用任务相关的数据进行预训练或微调,以提高在该任务上的性能和效果。垂直大模型就像研究生,对特定行业下的某个具体领域有比较深入的研究。

大模型按照应用领域分类

大模型和小模型的区别

大模型和小模型的区别

大模型和小模型在应用方面最大的区别是大模型偏向于全能化、通用化,而小模型一般偏向于解决某一垂直领域中的某个具体问题。比如一个图像识别小模型专门训练用来识别车牌号,对车牌号可以有很好的识别精度。但是一个图像识别大模型不仅可以识别车牌号,还可以识别我们生活中碰到的大部分图片,而且站在我们人类的视角来看,他似乎对图片中的内容有自己的理解,看起来拥有更高的智能化水平。

另外相比小模型来说,大模型通常具有更多的参数,能够学习更复杂的特征和模式。同时大模型的训练数据集也会更大,架构更为复杂,训练起来也需要更高的计算资源。

大语言模型LLM的应用场景

在企业数字化领域中,大语言模型常见的应用场景如下:

  1. 知识库问答系统: 通过提问的方式,快速查找企业知识库中的内容,并通过大模型对内容进行总结提炼并给出解决方案;如设备故障查询、设备运检查询、员工智能助手等。

  2. 问答式BI系统: 通过问答的方式让大模型进行数据库查询,并返回数据结果、可视化图形等内容,供用户进行便捷的数据分析。

  3. 智能体系统: 将大模型的自然语言能力和小模型的垂直领域能力进行整合,形成企业智能体系统,满足设备故障预测、电力负荷预测、供应商评估分析等智能化应用和预测场景。

大模型训练相关概念

在大模型领域,PT和SFT分别代表预训练(Pre-training)和监督微调(Supervised Fine-tuning)。这两个概念通常用于构建和优化深度学习模型,特别是自然语言处理(NLP)领域的模型。

Pre-training(预训练,简称PT)

预训练(Pre-training,简称PT),是一种无监督学习方法,模型通过大量无标签数据进行训练,以捕捉数据的底层结构和模式。在自然语言处理领域,预训练模型通常学习词汇、语法和句子结构等基本特征。预训练的目的是让模型学会一定程度的通用知识,为后续的微调阶段打下基础。

通俗来说,预训练就像是给模型一种预先学习的机会,让模型先了解一些基础知识,然后再去学习更具体、更复杂的任务。这有点像人类学习的过程:先学习基本的语言和数学知识,然后再去学习更专业的知识,这样学习会更高效。

预训练主要是无监督预训练:在这种方法中,模型被训练为从大量无标签的数据中学习数据的结构和特征。这可以帮助模型捕捉到一些基本的模式和规律,从而为后续的有监督训练打好基础。常见的无监督预训练方法有自编码器、无监督聚类等。

Supervised fine-tuning(监督微调,简称SFT)

监督微调(Supervised fine-tuning,简称SFT),微调是一种有监督学习方法,通过在有标签数据上对预训练模型进行进一步训练,以适应特定的任务。这个过程使得模型能够利用预训练阶段学到的通用知识,结合新数据的标签信息,使模型在特定任务上表现更好。可以把这个过程比作一个人在具体的实践中,根据具体情况进行进一步的调整和学习,通过实际练习和应用,将自己的知识和经验应用到解决实际问题上。

Post-Pretrain(后预训练)

预训练之后,继续使用无监督数据对整个模型进一步预训练,调全部参数,指我们在基础模型预训练之后,继续使用无标记数据对整个模型进行预训练。它的目的是继续提高模型的通用语言表示能力,得到一个更强大的语言模型。

Post-training(后训练)

Post-training(后训练)‌是指在模型的预训练阶段之后,针对特定任务或应用场景进行的进一步训练。这一过程通常发生在模型的初始训练(Pre-training)之后,模型部署前或部署初期,目的是优化模型性能,使其更好地适应特定的任务或数据集‌。在后训练中,我们通常采用上述的Supervised fine-tuning(监督微调,简称SFT)进行训练。

模型训练流程图

数据集

在微调模型中,我们经常会碰到训练集、验证集、测试集这三个数据集。它们的作用和区别如下:

  • 训练集(Training Set):训练集用于训练模型。在模型训练过程中,训练集中的数据被用来调整模型的权重和参数,从而使模型逐渐适应输入数据和目标输出。简单来说,训练集就是用来建立模型的。

  • 验证集(Validation Set):验证集用于在训练过程中评估模型性能。通过将部分数据划分为验证集,我们可以实时检测模型在独立数据集上的泛化能力。这有助于调整超参数、避免过拟合等。当模型在训练集上表现得很好但在验证集上表现较差时,通常说明发生了过拟合现象。验证集还可以用于模型选择——当我们尝试许多不同模型或模型结构时,可以通过比较它们在验证集上的表现来选择最优的一个。

  • 测试集(Test Set):测试集是在完成模型训练、调整和选择后用于评估模型最终性能的数据集。测试集对模型未知,这意味着在训练和验证过程中,模型从未见过测试集中的数据。这使得我们能够通过测试集评估模型在实际应用中遇到新数据时的泛化性能。理想情况下,在测试集上的性能可以预测模型在实际场景中的表现。

自监督学习

大型语言模型本质上就是神经网络,也就是一种机器学习的方法。机器学习中的监督学习需要人类帮助标注数据。然而遗憾的是,ChatGPT 底层的大型语言模型参数如此的多,如果使用监督学习,必然需要大量的人类标记数据,这几乎是不可能的。自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息训练模型,从而学习到对下游任务有价值的表征。

自回归模型

GPT 是如何在人类的文本数据上实现自监督学习?用一句话就可以讲明白:用文本的前文来预测后文。

Token

GPT 不是适用于某一门语言的大型语言模型,它适用于几乎所有流行的自然语言。所以 GPT 的 token 需要兼容几乎人类的所有自然语言,那意味着 GPT 有一个非常全的 token 词汇表,它能表达出所有人类的自然语言。如何实现这个目的呢?答案是通过 unicode 编码。实际上 GPT 是使用一种称为 BPE (Byte Pair Encoding)的算法,在上面的基础上进一步生成更大的词汇表。它的基本思想如下,将上述的基础 token (256种可能)做组合,然后统计文本数据中这些组合出现的频率,将频率最大的那些保留下来,形成新的 token 词汇表。因此,通过此方法得到的 token 和文字的映射不一定是一对一的关系。 GPT 实际是将我们输入的文字转换成 token,然后通过 GPT 模型预测 token,再将 token 转换成文字,最后再输出给我们。

Token 的作用

  1. 表示文本信息:通过将文本转换为一系列 tokens,机器学习模型能够更好地理解和处理文本数据。

  2. 降低计算复杂度:相比于直接处理整个句子或段落,tokens 可以减少输入到模型中的数据量,从而提高处理速度和效率。

  3. 适应不同长度的输入:通过将文本标准化为 token 序列,可以更容易地处理不同长度的文本输入。

上下文学习

对于大型语言模型来说,即需要大量的数据标记成本,也需要算力成本和时间成本。然而,不同场景下任务的需求是不一样的,不可能根据每个任务都去微调模型。能否不进行微调就让模型学习完成不同的任务呢?答案是可以的,这个神奇的技术称为 上下文学习 (In Context Learning)。它的实现非常简单,只需要给到模型一些引导,将一些事先设定的文本输入到大型语言模型中,就像手把手教人学会某项技能一样,大型语言模型就能神奇的学习到如何处理后续的新任务。遗憾的是,为什么大型语言模型具有上下文学习的能力仍然是一个迷,业内把这个能力称为“涌现”。

思维链

“思维链”是指在思考问题或探索主题时,一个思想引发另一个思想,形成一系列相互关联的思维环节。这种思维过程可以是线性或非线性的,通过连接和扩展思想,帮助我们更全面地理解问题,促进创新性思考,思维链是认知过程中的重要组成部分。

Transformer

是一种基于自注意力机制的深度学习模型架构,用于处理序列数据,特别在自然语言处理领域取得重大突破。它由编码器和解码器组成,通过并行处理和全局关联建立,能够更好地捕捉长期依赖关系,实现高效的序列到序列转换。

LoRA

LoRA(Low-Rank Adaptation of Large Language Models),直译为大语言模型的低阶自适应。LoRA 的基本原理是冻结预训练好的模型权重参数,在冻结原模型参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。由于这些新增参数数量较少,这样不仅 finetune 的成本显著下降,还能获得和全模型参数参与微调类似的效果。

假设有一个预训练好的语言模型,包含了大量的预训练好的参数。现在要使用这个模型来解决一个特定的下游任务,例如情感分析。为了适应这个特定的任务,需要微调模型。

使用LoRA方法,首先将预训练模型的参数冻结,即保持不变。然后,在冻结的预训练模型之上,添加一些新的层,这些层将用于适应新的任务。例如,可以添加一个分类器层,用于将文本分类为正面或负面情感。在这个过程中,只有新添加的层的参数将被训练,而预训练模型的的其他参数将被保持不变。这样,只需要训练一小部分参数,就可以快速微调模型,同时保持了预训练模型的性能。因此,LoRA方法可以在不增加模型大小和计算成本的情况下,实现更好的模型性能和更快的训练速度。

SFT (Supervised Fine-Tuning)LoRA (Low-Rank Adaptation of Large Language Models) 是两种在深度学习中用于微调预训练模型的方法。它们有不同的适用场景和实现方式,以下是对这两种方法的详细解释及其区别:

特性

SFT (Supervised Fine-Tuning)

LoRA (Low-Rank Adaptation)

更新参数的数量

全模型的权重

仅部分低秩矩阵

计算资源需求

存储需求

过拟合风险

高,特别是在小数据集上

相对较低

适用场景

各种任务

资源有限的情况、需要快速迁移的任务

实现复杂度

低(标准训练流程)

较高(需要修改模型结构)

我们内部训练目前都是采用SFT的方式进行训练

强化学习(RL)

在强化学习中,我们为模型提供指令,但并不提供人工编写的答案。模型需要自己生成答案。评分机制(例如人类)会读取生成的答案,并告诉模型这些答案的质量,模型的目标是如何回答以获得高分。

模型对齐

模型对齐阶段目的是进一步优化模型,使其更符合实际应用需求。在这个阶段,我们收集用户反馈数据(如点赞或点踩),并基于这些数据进行模型的进一步训练。

对齐阶段的数据格式与SFT阶段不同:通常包含对同一问题的接受(accept)和拒绝(reject)两种答案。

在SFT阶段,模型被训练以识别“想要的答案”,但未明确告知“不想要的答案”。为解决这一问题,我们通过收集用户反馈和日志数据,在对齐阶段告诉模型哪些答案是不可接受的。

经过SFT和对齐阶段的训练,我们可以得到一个优化后的模型

神经网络

神经网络是一种数学模型,模拟人脑的工作原理,通过训练学习如何处理输入数据,并在各种任务中提供准确的预测和判断。

可以将其想象为一个模仿人脑工作方式的数学模型。就像人脑中有大量的神经元相互连接一样,神经网络也由很多个小单元组成,这些单元之间通过连接传递信息。

我们可以把神经网络比作一个信息处理的流水线。首先,我们将输入数据(比如图像、文本等)传递给神经网络的输入层。然后,数据在网络中经过一系列的处理和转换,类似于人脑中的信息处理过程。最后,我们从输出层得到网络对输入数据的处理结果。

神经网络通过训练来学习如何处理输入数据。在训练过程中,我们提供已知的输入和对应的正确输出给网络。网络根据这些例子逐渐调整内部的连接权重,以使得网络能够更准确地预测输出。通过不断地反复训练,网络逐渐改善自己的表现,可以在新的未见过的数据上做出准确的预测。

神经网络简单示例

输入数据通过输入层传递到隐藏层,隐藏层对数据进行处理和转换,最后输出到输出层。每个连接都有一个权重,控制着信息在神经网络中的流动。

这只是一个简单的示例,现实中的神经网络通常更复杂,具有更多的层和更多的神经元。但是这个示例可以帮助你理解神经网络中信息流动的基本原理。

自注意力机制

自注意力机制(Self-Attention Mechanism)是神经网络模型中的一种算法策略,用于捕捉输入序列中的长距离依赖关系。在大多数深度学习模型中,尤其是自然语言处理任务中,此机制被广泛应用。

自注意力机制的基本思想是对输入序列中的每个元素计算其与其他元素之间的相似度或相关性,并使用这些相似度将其他元素的信息聚合到当前元素上。这样,每个元素都能获得整个输入序列中与之相关的信息,从而使模型更好地理解和捕捉序列内部的依赖关系。

评估模型的一些指标

  • 准确率(Accuracy):分类问题中,准确率是正确分类的样本数量除以总样本数。就像你在数学测试中得到的分数,是模型正确预测的结果与总试题数量之比。比如说,你做了10道题,答对了7道,那你的准确率就是7/10=70%。

  • 精确率(Precision):在分类问题中(通常是二分类),精确率是真正例(TP, True Positive)除以所有被预测为正例的样本数量(真正例+假正例,即 TP+FP)。在预测为“对”的那些结果中,真正对的占多少。比如你猜了5次都会下雨,但实际上只有3次下雨了,那么你的精确率是3/5=60%。

  • 召回率(Recall):又称为敏感度(Sensitivity)或者真正例率(True Positive Rate, TPR),是真正例(TP)除以所有实际为正例的样本数量(真正例+假反例,即 TP+FN)。对于所有真正需要预测为“对”的情况,你抓住了多少。还是上面下雨的例子,假如本来有4次应该要下雨,你抓住了其中的3次,那召回率就是3/4=75%。

  • F1-score:是精确率和召回率的调和平均值,兼顾了精确率和召回率的关系。F1-score 提供了一个同时考虑精确率和召回率的简洁度量方法。是精确率和召回率的平衡,可以看作他们的“平均值”。一个好的模型需要两者都高,而F1-score能够给出一个整体评价。类似于考试期间总分和平均分。

  • 均方误差(Mean Squared Error, MSE):主要用于回归问题中,衡量预测值与实际值之间的差距。计算方式是预测值与实际值差值的平方的平均值。是预测值与真实值差距平方的平均值。例如,你猜苹果有5个,但实际上有6个,误差是1,错得越多,均方误差就越大。像考试的时候,老师计算学生平均失分。

  • R²(R-squared):主要用于回归问题中,表示模型对数据的拟合程度。简单来说,R² 衡量的是模型解释观察到的变化所占的百分比。R² 的取值范围为0到1,值越接近1说明模型能够更好地拟合数据。这个有点像“解释程度”,衡量模型解释数据中变动的能力。假设R²=0.9,意味着我们的模型能解释90%的真实情况,离完美预测还差10%。类似于课程评分百分比,请尽量达到100%。

上一篇

提示词工程 什么是提示词工程? 提示词工程,或称Prompt Engineering,是一种专门针对语言模型进行优化的方法。它的目标是通过设计和调整输入的提示词(prompt),来引导这些模型生成更准确、更有针对性的输出文本。 在与大型预训练语言模型如GPT、DeepSeek等交互时,给定的提示词会…

阅读
下一篇

离线条件下通过kubesphere部署Kubernetes,需要将镜像提前下载到离线环境的镜像仓库中 下载镜像 首先需要在有网络的电脑或服务器上讲镜像下载下来 pull-images.sh #!/bin/bash # docker pull registry.cn-beijing.aliyuncs.…

阅读