​​​​​​​大规模预训练范式(Large-scale Pre-training)

news2025/5/13 7:05:04

大规模预训练指在巨量无标注数据上,通过自监督学习训练大参数量的基础模型,使其具备通用的表征与推理能力。其重要作用如下:

一 跨任务泛化

单一模型可在微调后处理多种NLP(自然语言处理)、CV(计算机视觉)任务。

1.1大规模预训练模型的核心目标

在大量无标签文本上学习语言的通用模式,形成高维语义向量空间

实现方法:

(1)词汇层面:通过词嵌入(如WordPiece)捕捉词汇间关系(如语义、句法相似性)。

(2)上下文层面:利用Transformer的自注意力机制建模长距离依赖关系。

(3)知识层面:通过跨领域数据隐式存储常识和领域知识(如时间序列、因果关系)。

1.2模型架构的适应性

(1)Transformer的灵活性:通过自注意力机制层级堆叠(低层捕捉语法,高层捕捉语义和逻辑)

(2)任务适配能力:通过调整顶层结构(如添加分类头、序列标注层、生成解码器),同一模型可适配不同任务.

1.3 参数迁移与微调策略

(1)参数高效迁移:作为任务无关的高质量初始化,覆盖95%以上的模型参数。

(2)微调时更新:仅调整顶层结构和小部分底层参数即可(如最后3-4层)。(实验表明:底层参数对通用特征敏感,高层参数更需适应任务特性

大规模预训练模型通过通用表示学习和灵活架构设计,实现了从训练数据到下游任务的高效迁移。微调的本质是通过局部参数调整,将通用知识映射到具体任务空间。

二 上下文学习

无需参数更新,仅通过Prompt(提示)即可适配新任务(如GPT-3)。

其本质是为模型输入结构化引导信息,通过特定模板或指示,激发表征空间中预存的通用知识,使其能够在不更新参数的情况下适应新任务。

核心价值

(1)无需微调:Zero-shot/Few-Shot场景下快速部署。

(2)人机对齐:通过自然语言直观引导模型行为

(3)知识蒸馏:将复杂任务简化为预训练已知的模式

方法数据需求模型改动应用场景
全量微调数千-百万样本调整全部参数专一任务
Prompt0-数十样本仅修改输入多任务快速切换

 2.1Prompt基本结构

prompt_template = """
任务指令:{instruction} #指令:明确任务类型
输入内容:{input} #输入:待处理的实际内容
示例参考:{examples} #示例:少量示范
模型回答:
"""

2.2 Prompt类型对比

类型示例适用场景
完形填空式“中国的首都是[MASK]。”知识推理(如BERT)
指令驱动式“请将以下英文翻译为中文:{text}”文本生成(如GPT系列)
思维链(CoT)“问题:X。逐步推理过程:首先…因此答案是…”复杂推理任务
元模板式“假设你是一名律师,请回答:…”角色设定类任务

 2.3Prompt设计方法论

2.3.1人工设计准则

(1)词汇兼容性:使用模型预训练时常见的表达(如“翻译”、“总结”)

(2)逻辑连贯性:示例与任务保持严格一致性(避免歧义)

(3)位置敏感性:关键指令放开头(因Transformer对前128词关注度更高)

Bad vs Good Prompt对比

# Bad(模糊指令)
"处理这段文本:{text}"

# Good(明确指向)
"请对以下中文评论进行情感分析(正向/负向),输出结果:
评论:{text}
情感标签:"

2.3.2 自动生成技术

(1)AutoPrompt:通过梯度搜索找到使目标标签概率最大化的词序列。

$ \arg\max_{p} P(y_{\text{target}} | p \oplus x) $

(其中 ⊕\oplus⊕ 表示提示连接操作)

(2)Prompt Tuning:训练可学习的软提示向量(Soft Prompt)

# 示例代码:软提示嵌入
soft_prompt = nn.Parameter(torch.randn(10, hidden_dim))  # 10个可学习向量
inputs = torch.cat([soft_prompt, text_embeddings], dim=1)

2.3.3实际应用案例 

多语言翻译:Prompt设计

prompt = """
将英文翻译为中文:  
Example 1:  
Input: "Hello, how are you?" → Output: "你好,最近怎么样?"  
Example 2:  
Input: "The quick brown fox jumps over the lazy dog" → Output: "敏捷的棕色狐狸跳过了懒狗"  
现在翻译:  
Input: "Large-scale pretraining requires massive computing resources."  
Output: 
"""

Prompt技术通过语义空间导航激活模型的隐式知识,已成为大规模预训练模型的核心交互范式。未来将向多模态、自动化、可解释方向发展,同时需解决提示注入攻击、评估量化等挑战。 

三 数据效率

相比传统监督学习,微调所需标注数据减少90%以上,其本质源于通用知识预存储参数高效迁移机制的结合。

其核心逻辑为:

知识压缩:预训练阶段将海量无标注数据的信息压缩至模型参数中。

知识检索:微调通过轻量级参数调整,激活与任务相关的知识子集。

3.1知识预存储:预训练阶段的隐含知识泛化

3.1.1通用语义表征学习

(1)预训练数据覆盖性:模型在万亿级跨领域文本(网页、书籍、代码)中学习,涵盖词汇、语法、逻辑关系、常识和领域知识,形成高度抽象的通用语义空间。

(2)数学视角:预训练通过语言建模损失(如MLM、自回归预测),强制模型编码文本的条件概率分布:

$ \theta = \arg\max_\theta \sum_{x \in \mathcal{D}_{\text{pretrain}}} \log P(x | \theta) $

这种优化使得隐藏层表示 $h_i$ 成为与任务无关的“语言特征蒸馏器”。

3.1.2知识的参数化存储

参数冗余设计:大模型(如175B参数的GPT-3)通过过参数化架构,将多样化知识分布在神经网络的多个层级。例如:

浅层网络:捕捉语法结构(如句法树)

中层网络:编码语义角色(如主谓宾关系)

深层网络:存储逻辑推理模式(如因果关系、类比联想)

3.2参数高效迁移:微调阶段的关键技术机制

3.2.1参数冻结策略

策略可调参数占比典型应用场景
全量微调100%数据充足(>10,000样本)
部分层微调5%-20%中小规模数据(100-1k样本)
适配器/软提示0.5%-3%极小样本(<100样本)

科学依据:底层参数承载通用特征(词嵌入、句法分析),高层参数更侧重任务适配(如情感极性分类),因此仅微调最后3-4层即可适配大多数任务。

 3.2.2 梯度更新约束

通过低秩适应(LoRA)等技术减少梯度更新维度:

$ \Delta W = BA^T \quad (B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times k}, r \ll d) $

其中秩r通常设为8-64,使参数更新量仅为原模型的0.01%级别。

LoRA的核心思想:在微调时,冻结原始模型参数,仅通过低秩分解的增量矩阵来适应下游任务。

数学表达

对于预训练权重矩阵 $W \in \mathbb{R}^{d \times k}$ ,LoRA将其更新量约束为低秩矩阵:


$ \Delta W = B A^T \quad \text{( \( B \in \mathbb{R}^{d \times r} \), \( A \in \mathbb{R}^{k \times r} \), \( r \ll \min(d, k) \))} $

微调后的权重为:

$ W_{\text{updated}} = W + \alpha \Delta W = W + \alpha B A^T $

其中:

$r$ :低秩的维度(通常设为8-64)

$\alpha$ :缩放系数(控制增量幅度)

LoRA的工作原理

 实现步骤:

(1)冻结原参数:保持预训练权重 W 不变,避免灾难性遗忘

(2)引入可训练低秩矩阵:向模型插入旁路矩阵 B 和 A,梯度仅更新这两个小矩阵

(3)前向传播合并:在计算时动态叠加 $W + B A^T$,不影响推理速度

技术原理:

(1)过参数化假设:大规模神经网络中存在大量冗余参数,真正有效更新存在于低维子空间

(2)秩的物理意义:秩 r 约束了模型变化的自由度,实验表明 r=8 足以覆盖大多数任务需求

import torch
import torch.nn as nn

class LoRALayer(nn.Module):
    def __init__(self, in_dim, out_dim, rank=8):
        super().__init__()
        self.rank = rank
        # 原始权重(冻结)
        self.W = nn.Parameter(torch.randn(out_dim, in_dim), requires_grad=False)
        # LoRA旁路参数
        self.B = nn.Parameter(torch.zeros(out_dim, rank))
        self.A = nn.Parameter(torch.zeros(rank, in_dim))
        
    def forward(self, x):
        # 前向计算:Wx + (B A^T)x = (W + B A^T)x
        return x @ (self.W + (self.B @ self.A)).T

# 使用示例:替换Transformer的FFN层
class TransformerFFNWithLoRA(nn.Module):
    def __init__(self, d_model, d_ff, rank=8):
        super().__init__()
        self.fc1 = LoRALayer(d_model, d_ff, rank)
        self.fc2 = LoRALayer(d_ff, d_model, rank)

3.2.3任务相似性补偿

当下游任务与预训练任务的语义空间重叠度较高时(如情感分析 vs 预训练的文本理解),模型只需微调任务专属特征,而非重建整个语义体系。

量化指标:任务相似性 S 的计算公式:

$ S = \cos(h_{\text{pretrain}}(X_{\text{task}}), h_{\text{task}}(X_{\text{task}})) $

当 S>0.7 时,仅需1%的标注数据即可达到全量训练90%的性能。

3.2.4与传统监督学习的对比机制

维度传统监督学习预训练+微调效率差异来源
初始化状态随机初始化的白板模型携带语言结构和知识的“专家”模型预训练模型具备任务无关的强先验
数据依赖需覆盖所有可能的特征组合仅需补充任务特有的特征差异通过知识蒸馏避免从头学习
参数更新量全参数空间搜索局部子空间优化(<10%参数)维数灾难(Curse of Dimensionality)的缓解
过拟合风险高(需正则化、早停等强干预)低(通用表征提供正则化效果)隐式正则化提升小数据泛化能力

 

 四 基础架构对比

架构类型代表模型预训练目标典型应用领域
自回归型GPT系列语言建模(从左到右)文本生成、问答
自编码型BERT掩码语言模型文本分类、实体识别
混合架构T5文本到文本转换翻译、摘要生成
多模态融合CLIP、GPT-4图文对齐损失跨模态检索、生成

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

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

相关文章

WPF之高级绑定技术

文章目录 引言多重绑定&#xff08;MultiBinding&#xff09;基本概念实现自定义IMultiValueConverterMultiBinding在XAML中的应用示例使用StringFormat简化MultiBinding 优先级绑定&#xff08;PriorityBinding&#xff09;基本概念PriorityBinding示例实现PriorityBinding的后…

调出事件查看器界面的4种方法

方法1. 方法2. 方法3. 方法4.

使用vite重构vue-cli的vue3项目

一、修改依赖 首先修改 package.json&#xff0c;修改启动方式与相应依赖 移除vue-cli并下载vite相关依赖&#xff0c;注意一些peerDependency如fast-glob需要手动下载 # 移除 vue-cli 相关依赖 npm remove vue/cli-plugin-babel vue/cli-plugin-eslint vue/cli-plugin-rout…

数据治理域——数据治理体系建设

摘要 本文主要介绍了数据治理系统的建设。数据治理对企业至关重要&#xff0c;其动因包括应对数据爆炸增长、提升内部管理效率、支撑复杂业务需求、加强风险防控与合规管理以及实现数字化转型战略。其核心目的是提升数据质量、统一数据标准、优化数据资产管理、支撑业务发展和…

onGAU:简化的生成式 AI UI界面,一个非常简单的 AI 图像生成器 UI 界面,使用 Dear PyGui 和 Diffusers 构建。

​一、软件介绍 文末提供程序和源码下载 onGAU&#xff1a;简化的生成式 AI UI界面开源程序&#xff0c;一个非常简单的 AI 图像生成器 UI 界面&#xff0c;使用 Dear PyGui 和 Diffusers 构建。 二、Installation 安装 文末下载后解压缩 Run install.py with python to setup…

【第52节】Windows编程必学之从零手写C++调试器下篇(仿ollydbg)

目录 一、引言 二、调试器核心功能设计与实现 三、断点功能 四、高级功能 五、附加功能 六、开发环境与实现概要 七、项目展示及完整代码参考 八、总结 一、引言 在软件开发领域&#xff0c;调试器是开发者不可或缺的工具。它不仅能帮助定位代码中的逻辑错误&#xff0…

uni-app学习笔记五--vue3插值表达式的使用

vue3快速上手导航&#xff1a;简介 | Vue.js 模板语法 插值表达式 最基本的数据绑定形式是文本插值&#xff0c;它使用的是“Mustache”语法 (即双大括号)&#xff1a; <span>Message: {{ msg }}</span> 双大括号标签会被替换为相应组件实例中 msg 属性的值。同…

C++类与对象(二):六个默认构造函数(一)

在学C语言时&#xff0c;实现栈和队列时容易忘记初始化和销毁&#xff0c;就会造成内存泄漏。而在C的类中我们忘记写初始化和销毁函数时&#xff0c;编译器会自动生成构造函数和析构函数&#xff0c;对应的初始化和在对象生命周期结束时清理资源。那是什么是默认构造函数呢&…

从逻辑学视角探索数学在数据科学中的系统应用:一个整合框架

声明&#xff1a;一家之言&#xff0c;看个乐子就行。 图表采用了两个维度组织知识结构&#xff1a; 垂直维度&#xff1a;从上到下展示了知识的抽象到具体的演进过程&#xff0c;分为四个主要层级&#xff1a; 逻辑学基础 - 包括数理逻辑框架和证明理论数学基础结构 - 涵盖…

Matplotlib 完全指南:从入门到精通

前言 Matplotlib 是 Python 中最基础、最强大的数据可视化库之一。无论你是数据分析师、数据科学家还是研究人员&#xff0c;掌握 Matplotlib 都是必不可少的技能。本文将带你从零开始学习 Matplotlib&#xff0c;帮助你掌握各种图表的绘制方法和高级技巧。 目录 Matplotli…

如何有效追踪需求的实现情况

有效追踪需求实现情况&#xff0c;需要清晰的需求定义、高效的需求跟踪工具、持续的沟通反馈机制&#xff0c;其中高效的需求跟踪工具尤为关键。 使用需求跟踪工具能确保需求实现进度可视化、提高团队协作效率&#xff0c;并帮助识别和管理潜在风险。例如&#xff0c;使用专业的…

自动驾驶技术栈——DoIP通信协议

一、DoIP协议简介 DoIP&#xff0c;英文全称是Diagnostic communication over Internet Protocol&#xff0c;是一种基于因特网的诊断通信协议。 DoIP协议基于TCP/IP等网络协议实现了车辆电子控制单元(ECU)与诊断应用程序之间的通信&#xff0c;常用于汽车行业的远程诊断、远…

C++ 与 Go、Rust、C#:基于实践场景的语言特性对比

目录 ​编辑 一、语法特性对比 1.1 变量声明与数据类型 1.2 函数与控制流 1.3 面向对象特性 二、性能表现对比​编辑 2.1 基准测试数据 在计算密集型任务&#xff08;如 10⁷ 次加法运算&#xff09;中&#xff1a; 在内存分配测试&#xff08;10⁵ 次对象创建&#xf…

如何更改默认字体:ONLYOFFICE 协作空间、桌面编辑器、文档测试示例

在处理办公文件时&#xff0c;字体对提升用户体验至关重要。本文将逐步指导您如何在 ONLYOFFICE 协作空间、桌面应用及文档测试示例中自定义默认字体&#xff0c;以满足个性化需求&#xff0c;更好地掌控文档样式。 关于 ONLYOFFICE ONLYOFFICE 是一个国际开源项目&#xff0c…

设计模式之工厂模式(二):实际案例

设计模式之工厂模式(一) 在阅读Qt网络部分源码时候&#xff0c;发现在某处运用了工厂模式&#xff0c;而且编程技巧也用的好&#xff0c;于是就想分享出来&#xff0c;供大家参考&#xff0c;理解的不对的地方请多多指点。 以下是我整理出来的类图&#xff1a; 关键说明&#x…

基于VeRL源码深度拆解字节Seed的DAPO

1. 背景与现状&#xff1a;从PPO到GRPO的技术演进 1.1 PPO算法的基础与局限 Proximal Policy Optimization&#xff08;PPO&#xff09;作为当前强化学习领域的主流算法&#xff0c;通过重要性采样比率剪裁机制将策略更新限制在先前策略的近端区域内&#xff0c;构建了稳定的…

zst-2001 历年真题 软件工程

软件工程 - 第1题 b 软件工程 - 第2题 c 软件工程 - 第3题 c 软件工程 - 第4题 b 软件工程 - 第5题 b 软件工程 - 第6题 0.未完成&#xff1a;未执行未得到目标。1.已执行&#xff1a;输入-输出实现支持2.已管理&#xff1a;过程制度化&#xff0c;项目遵…

基于WSL用MSVC编译ffmpeg7.1

在windows平台编译FFmpeg&#xff0c;网上的大部分资料都是推荐用msys2mingw进行编译。在win10平台&#xff0c;我们可以采用另一种方式&#xff0c;即wslmsvc 实现window平台的ffmpeg编译。 下面将以vs2022ubuntu22.04 为例&#xff0c;介绍此方法 0、前期准备 安装vs2022 &…

java命令行打包class为jar并运行

1.创建无包名类: 2.添加依赖jackson 3.引用依赖包 4.命令编译class文件 生成命令: javac -d out -classpath lib/jackson-core-2.13.3.jar:lib/jackson-annotations-2.13.3.jar:lib/jackson-databind-2.13.3.jar src/UdpServer.java 编译生成class文件如下 <

vue注册用户使用v-model实现数据双向绑定

定义数据模型 Login.vue //定义数据模型 const registerData ref({username: ,password: ,confirmPassword: })使用 v-model 实现数据模型的key与注册表单中的元素之间的双向绑定 <!-- 注册表单 --><el-form ref"form" size"large" autocompl…