大模型学习(常见名词、基础知识)

前言

自图灵测试问世以来,人类便致力于让机器掌握语言智能,这一目标驱动着人工智能(AI)算法的持续发展。语言模型作为理解与生成自然语言的核心技术,经历了从统计语言模型(SLM)到神经语言模型(NLM)的演进,最终催生了基于Transformer架构的预训练语言模型,尤其是大语言模型(LLM)的崛起。
与传统的统计语言模型依赖马尔可夫假设不同,现代的神经网络模型,如BERT和GPT系列,通过深度学习捕捉复杂的语言规律。特别是,随着模型规模的扩大,LLMs展现出了前所未有的“涌现能力”,比如对上下文的深刻理解、指令遵循和逐步推理等,这些能力是小规模模型所不具备的。

1.上下文学习

上下文学习(In-Context Learning, ICL)是一种独特的学习范式,它利用了这些模型强大的泛化能力和对输入序列的敏感性。上下文学习能力由 GPT-3 正式引入 ,假设提供给语言模型自然语言指令和/或多个任务演示,它可以通过完成输入文本的单词序列来为测试实例生成期望的输
出,而无需额外的训练或梯度更新。
具体而言,上下文学习涉及以下几个核心概念:

  • 无需微调:与传统的机器学习方法不同,上下文学习不需要对模型进行额外的微调或参数更新来处理新的任务。这意味着模型在接收到新任务的指令后,能够直接基于输入的上下文(通常是几个示范例子)推断出如何完成任务,而不需要经过专门针对此任务的训练过程。
  • 提示(Prompting):上下文学习的核心在于如何构造有效的提示。这通常意味着向模型提供几个示例输入和期望的输出,这些示例被称为“演示(demonstrations)”或“提示示例(prompt examples)”,它们展示了任务的具体格式和预期答案。通过这种方式,模型能够“理解”任务要求并尝试生成相应的输出。
  • 一次性学习(One-Shot, Few-Shot Learning):上下文学习可以是一次性学习(一个示例)或多示例(几个示例),这种少量数据的学习方式极大地减轻了数据收集和标注的成本,同时展示了大模型强大的泛化能力。
  • 参数不变性:在上下文学习中,模型的内部参数保持不变,这与微调(Fine-Tuning)形成对比,后者需要在特定任务数据上调整模型参数以优化性能。因此,上下文学习提供了灵活性和即时性,模型可以立即应用于新任务,无需等待长时间的训练过程。

2.预训练

预训练是大语言模获取能力的基础。通过在大规模语料库上进行预训练,大语言模型可以获得基本的语言理解和生成能力 。为了有效地预训练大语言模型,也需要设计好模型架构、加速方法和优化技术。
在一个大规模的无标注数据集上对模型进行训练,让模型学习到通用的语言结构、语义信息或图像特征等,然后再根据特定任务的需求,利用有标签的数据对预训练好的模型进行微调(Fine-tuning)的过程。这种方法在过去几年里极大地推动了AI技术的发展,尤其是在深度学习领域。下面是一些关键点来帮助理解大模型预训练:

  • 模型规模:大模型通常指的是具有大量参数的神经网络模型,如千万乃至亿级参数量的Transformer模型。这些模型因为其庞大的容量,能够学习到更复杂的语言或图像表示。
  • 无监督学习:预训练阶段主要是无监督的,通过自监督学习(如BERT中的掩码语言模型任务)或对比学习(如SimCLR在CV领域的应用)等方法,模型能够在没有人工标注的情况下从原始数据中学习到丰富的模式。
  • 迁移学习:预训练模型可以视为一个强大的初始化,这个初始化包含了对语言或视觉世界的广泛理解。当面对一个新的具体任务时,只需要在预训练模型的基础上进行微调,往往能以较少的有标签数据达到很好的性能,大大提高了数据效率和模型泛化能力。

1、数据收集
预训练数据的收集和处理,包括数据来源、预处理方法以及预训练数据如何影响大语言模型的性能等重要分析。

  • 数据来源的多样性:大语言模型依赖于大规模、多来源的语料库进行预训练,以获取广泛的语言理解和生成能力。数据来源主要包括网页、书籍、对话文本、多语言文本、科学文本和代码等。网页数据提供了丰富多样的语言环境,书籍文本有助于模型学习长期依赖和连贯性,对话数据增强了模型的交互能力,多语言数据提升了跨语言理解和生成能力,科学文本注入了专业知识,而代码数据则促进了逻辑推理和精确表达的学习。
  • 数据预处理的重要性:预处理是构建高质量预训练语料库的必要环节,包括噪声过滤、去重、隐私信息移除等。通过分类器或启发式规则过滤低质量数据,利用统计特征和关键词识别去除重复内容,以及采取措施确保数据隐私,都是确保模型训练质量的关键步骤。
  • 数据对模型性能的影响:预训练语料库的规模、质量和分布直接影响模型能力。例如,增加书籍数据比例可以提升模型捕捉长期依赖的能力,而过多单一领域数据可能限制模型在其他领域的泛化。此外,研究指出随着模型规模的增大,需要相应增加训练数据量以避免次优训练。
  • 混合数据来源的优势与挑战:混合不同来源的数据可以帮助模型获得更广泛的知识和更强的泛化能力,但需要精心设计数据分布,避免因特定领域数据占比过高而影响模型的通用性。此外,特定任务如多语言、科学和代码相关的数据集,可以针对性地增强模型在特定领域的表现。

2、数据预处理
数据预处理是构建高效大语言模型的重要环节,旨在提高预训练语料库的质量,确保模型学习到纯净、多样化且无害的语言知识。关键的预处理步骤包括:

  • 质量过滤:去除低质量数据以避免模型学习错误或偏差信息。常用方法有基于分类器的过滤,通过训练二元分类器区分高质量与低质量文本;以及基于启发式规则的过滤,通过设定诸如语言类型、文本统计特征、关键词匹配等规则来自动筛选数据。
  • 去重:重复数据会降低模型学习的多样性,影响训练效果。去重操作可在句子、文档乃至整个数据集级别进行,通过对比文本相似度、n-gram重叠等指标来识别并删除重复内容,同时注意避免训练集与评估集之间的数据重叠,以维持评估的公正性。
  • 隐私保护:从预训练语料中移除个人可识别信息(PII),避免隐私泄露风险。采用关键字识别等方法自动检测并移除姓名、地址等敏感信息,并认识到去重过程也能辅助降低隐私风险。
  • 分词:将原始文本切分成模型可以理解的词汇序列。通常会使用如SentencePiece或Byte Pair Encoding(BPE)等算法自定义分词器,以适应预训练语料的特定需求,同时注意规范化技术可能对分词效果的影响。

3、架构设计
大语言模型的架构设计是支撑其强大功能的基础,其中Transformer架构扮演了核心角色,尤其是在因果解码器、编码器-解码器以及前缀解码器这三种主流架构中。

  • 因果解码器架构:因果解码器,如GPT系列模型,使用单向注意力机制,确保每个词只能关注其之前的词,这对于自回归语言生成尤为重要。GPT-3展示了这种架构在大规模数据上训练时能显著提升模型性能,包括上下文学习能力。该架构因其简单和高效,被广泛应用,如OPT、BLOOM和Gopher等模型。
  • 编码器-解码器架构:这类架构,以T5和BART为代表,结合了编码器和解码器,前者通过自注意力机制处理输入序列,后者利用交叉注意力生成输出序列,适用于多种自然语言处理任务。
  • 前缀解码器架构:前缀解码器,如GLM-130B和U-PaLM,对因果解码器的注意力机制进行了修改,允许双向查看输入序列的前缀部分,同时保持对生成序列的单向关注,以提高上下文理解能力。此架构通过先预训练为因果解码器再转换而来,旨在加速收敛。

在架构细节方面,大语言模型通常采用层归一化(LayerNorm)、位置编码(如RoPE)、激活函数(如GeLU、SwiGLU和GeGLU)等组件来提升训练稳定性、性能和计算效率。RMS Norm和DeepNorm等高级归一化技术也被用于替代LayerNorm以求更佳训练稳定性。此外,混合专家(MoE)结构,如Switch Transformer和GLaM,通过稀疏激活网络权重,实现了模型规模和性能的显著提升。

3.RAG

RAG( Retrieval Augmented Generation)是一种融合信息检索与自然语言生成的技术,旨在提升文本生成的精确度与质量,尤其在处理需要丰富知识支撑的任务上表现出色。其工作原理可归纳为以下四步

  • 数据检索阶段:面对输入查询,RAG首先在庞大的数据源中,比如网页、文档库或书籍,运用检索模型进行信息搜索。该模型依据查询内容与数据库文本的匹配程度,采用如TF-IDF、BM25等传统算法,或是借助深度学习模型,挑选出最相关的文本片段。
  • 信息增强与整合:检索到的信息随后经历加工,以强化生成阶段的输入。此过程可能涵盖信息的筛选、排序及重组,以确保信息的高关联度与质量,为生成精准内容奠定基础。
  • 自然语言生成:结合输入查询与经过处理的检索信息,RAG利用自然语言生成模型(如基于规则、模板或先进的Transformer架构等)创造新的文本。此步骤中,生成模型充分考虑检索内容,确保生成文本既贴合查询需求,又具备高水平的准确性和丰富性。
  • 动态融合与输出:通过注意力机制等先进技术,RAG巧妙地将检索内容与生成的文本片段融合,实现信息的动态集成。这一融合过程保证了输出文本不仅紧密呼应查询,而且在连贯性和逻辑一致性上达到高标准。最终,RAG呈现的文本综合了原始查询与附加知识,呈现出更详尽、准确且有价值的响应或内容。

RAG技术体系的总体思路
数据预处理->分块(这一步骤很关键,有时候也决定了模型的效果)->文本向量化->query向量化->向量检索->重排->query+检索内容输入LLM->输出

  • 数据预处理:首先,对原始数据进行清洗和格式化,去除无关信息、噪声数据,并可能进行一些基本的自然语言处理,如分词、词干提取等,以便更好地理解和索引内容。此外,根据应用场景,可能还需要对数据进行标注或分类。
  • 分块:这是RAG中一个关键步骤。大型文档或数据库中的信息被分割成更小、更管理的部分,称为“块”或“段”。合适的分块策略对于提高检索效率和精度至关重要。分块可以根据文档结构、语义连贯性或特定关键词进行,确保每个块都相对独立且包含有意义的信息单元。
  • 文本向量化:将分块后的文本转换为高维向量表示。常用的方法包括TF-IDF、词嵌入(如Word2Vec、GloVe)以及更先进的上下文敏感的嵌入技术(如BERT的[CLS]标记向量)。向量化使得文本可以被高效地存储在向量数据库中,并支持向量空间中的相似度计算。
  • Query向量化:与文本向量化类似,用户查询也被转换为向量形式。这通常使用与文本向量化相同的模型或技术实现,以保证查询和文档块在相同的向量空间中,便于比较和匹配。
  • 向量检索:利用高效的近似最近邻搜索算法,在向量数据库中查找与查询向量最相似的文档块向量。这一步骤快速筛选出最相关的候选块,是整个系统响应速度的关键。
  • 重排:初步检索到的块可能会进一步根据更精细的匹配度或相关性指标进行排序,这可能涉及更复杂的模型评估,如基于注意力机制的匹配评分或额外的特征工程,以优化最终结果的相关性和质量。
  • Query+检索内容输入LLM:将用户的原始查询和从检索阶段选出的最相关块的内容合并后,作为输入传递给一个大型语言模型(LLM)。这个步骤允许模型在生成响应时直接利用检索到的具体信息,从而提高回答的准确性和丰富性。
  • 输出:最后,语言模型根据输入的查询和检索内容生成最终的回答或生成文本。这一步骤利用了模型的生成能力,结合检索到的事实性信息,生成既准确又流畅的回复。

4.微调( Fine-Tuning)

监督微调(Supervised Fine-Tuning)是指在机器学习和深度学习领域中,当有一个预训练好的模型后,通过在其基础上施加特定任务的监督信号进一步调整模型参数的过程。

SFT包括以下几个方面:

  • 预训练模型:SFT的基础是一个已经过大规模通用数据集训练的模型,这些模型往往先是通过无监督或自监督学习方法学习广泛的语言模式。例如,BERT、T5或GPT系列模型就是在大量文本语料上预训练得到的。
  • 监督学习:在微调阶段,会使用带有标签的数据集来指导模型学习。这意味着模型不仅接收到输入数据,还有相应的正确输出(标签),从而能够在特定任务上进行学习和优化。
  • 适应特定任务:通过微调,模型能够针对特定任务(如情感分析、命名实体识别、问答等)进行调整,提升在该领域的表现。这包括调整模型的最后几层或者加入额外的输出层来匹配任务需求。
  • 优化与评估:在微调过程中,会使用梯度下降等优化算法逐步调整模型参数,以减小预测输出与实际标签之间的差距。同时,会用验证集来监控模型性能,防止过拟合,并确定最佳的微调点。

全微调(Full Fine-Tuning):这是最直接的微调方式,模型的所有参数都会在特定任务的数据集上进行更新。尽管这种方法往往能带来最好的性能提升,但它需要大量的计算资源和时间,而且容易造成预训练知识的遗忘。
Adapter Tuning:适配器调整是一种参数高效的微调方法,它在模型的每一层插入少量可训练参数(适配器),而保持主体模型参数不变。这样既能适应特定任务,又能减少训练时间和资源消耗,保持模型的泛化能力。
Prefix Tuning:前缀调整方法是在模型的输入序列前添加可学习的向量(前缀),而不是修改模型权重。这些前缀向量引导模型生成特定于任务的输出,减少了需要调整的参数数量。
Prompt Tuning:提示调整技术通过设计或优化输入的文本提示(prompts)来引导模型产生所需的输出,而不是直接修改模型参数。这种方法依赖于找到或学习到最有效的提示,以激发模型的潜在能力。
P-Tuning v1:P-Tuning v1 是一种特定的提示调整技术,它引入了连续的软提示(soft prompts),即模型输入中的一系列额外可学习向量,而不是硬编码的文本提示。这些软提示在训练过程中调整,以优化模型在特定任务上的性能。
LoRA (Low-Rank Approximation):LoRA提出了一种低秩分解的方法来减少需要微调的参数量,它仅对模型权重进行低秩近似调整,保持了模型的大部分结构不变。这种方法在保持性能的同时,大大减少了计算和内存的需求。

5.LangChain

LangChain 是一个开源框架,全称为“Language Models Chain”,它旨在简化和促进基于大型语言模型的应用程序开发。LangChain 专为开发者设计,帮助他们构建、部署和管理基于人工智能的语言模型解决方案,而无需从头开始编写所有基础设施代码。

该框架的核心理念是将强大的语言模型与各种工具和服务“链式”结合起来,以实现更复杂、更有用的应用场景。通过 LangChain,开发者可以更容易地实现如信息检索、知识管理、代码生成、对话系统、文本生成、自动总结等多种自然语言处理任务。

LangChain 提供了一系列预构建的模块和组件,包括但不限于:

Chain: 预定义的工作流或一系列步骤,用于组织和串联语言模型与其他服务的交互。
LLMs (Large Language Models): 与不同提供商的大型语言模型(如OpenAI的GPT系列、阿里云的通义千问等)集成的接口。
Agents: 能够协调多个Chain或LLM以完成更复杂任务的高级抽象。
Memory: 支持持久化存储和检索上下文信息,增强模型的连贯性和一致性。
Tools/Integrations: 与其他工具和服务(如数据库、文档存储、APIs等)的集成,使得语言模型能够访问和操作外部数据。

6.Agent

LLM agent指的是大语言模型代理,是人工智能代理的一种。在人工智能和多智能体系统中,“Agent”是指一个能够感知环境、做出决策并采取行动以达到特定目标的实体。它可以是软件实体、机器人或者更抽象的概念。Agent具有一定的自主性,能根据其设计或学习到的策略与环境交互。在多智能体系统中,多个Agent可以协作或竞争以完成复杂任务。

它由规划(Plan)、工具(Tools)、代理核心(LLM)、存储(Memory)四个部分构成。

  • 规划是指代理分析用户查询、收集相关信息并制定行动策略以提供最佳建议或解决方案的系统过程。
  • 工具是指代理可以利用来执行特定任务或增强其功能的外部资源、服务或 API。这些工具充当补充组件,将 LLM代理的功扩展到其固有的语言生成功能之外。工具还可以包括数据库、知识库和外部模型。
  • 代理核心是LLM代理的基础组件,是一个大语言模型。它也是我们定义代理的目标、使用的工具和相关记忆的地方。
  • 记忆是单个用户或单个任务的上下文和记录细节,可以分为短期记忆和长期记忆。短期记忆充当代理当前行为和想法的动态存储库,类似于其“思路”。它允许代理保持对正在进行的交互的上下文理解,从而实现连贯的通信。长期记忆则包括对话历史记录,保存从过去交流中收集到的宝贵信息;这种积累的知识库帮助代理借鉴过去的经验来丰富其与用户的互动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值