网站模板下载软件dede 网站版权信息

张小明 2026/1/10 18:39:25
网站模板下载软件,dede 网站版权信息,企业微信一年的费用要多少,移动网站开发认证本文通过一个完整的情感分析二分类任务#xff0c;详细讲解如何使用BERT进行模型微调#xff08;Fine-tuning#xff09;#xff0c;重点分析冻结预训练参数和增量训练分类头的核心思想与实现细节。一、完整代码实现# net.py # -*- coding: utf-8 -*-B…本文通过一个完整的情感分析二分类任务详细讲解如何使用BERT进行模型微调Fine-tuning重点分析冻结预训练参数和增量训练分类头的核心思想与实现细节。一、完整代码实现# net.py # -*- coding: utf-8 -*- BERT微调实现中文情感分析二分类任务 核心策略冻结预训练BERT参数 增量训练分类头 import torch from transformers import BertModel # 定义设备 - 自动检测并选择GPU或CPU device torch.device(cuda if torch.cuda.is_available() else cpu) # 在实际部署中如果有NVIDIA GPU且安装了CUDA优先使用GPU加速 # CPU模式适合小规模实验或资源受限环境 # 加载预训练的BERT中文模型 # 参数说明 # from_pretrained()方法从指定路径加载预训练模型 # 这里使用本地已下载的模型文件避免每次运行时重复下载 # 路径中的长哈希值(8f23c25b...)是模型版本标识符 pretrained BertModel.from_pretrained( rD:\develop\pypro\LLM\LLMPro\01-大模型应用基础\model\google-bert\bert-base-chinese\models--bert-base-chinese\snapshots\8f23c25b06e129b6c986331a13d8d025a92cf0ea ) # 注意pretrained变量是全局的这在简单实验中可以接受 # 但在生产环境中建议将其作为类属性封装 # 定义下游任务模型 - 增量学习架构 class Model(torch.nn.Module): 情感分析分类模型 继承自torch.nn.Module这是所有PyTorch神经网络模块的基类 设计理念冻结BERT预训练参数只训练顶部分类头 这种方法特别适合 1. 小规模数据集防止过拟合 2. 有限的计算资源 3. 与预训练任务相似的下游任务 def __init__(self): 初始化模型结构 super().__init__() 是必须的它 1. 调用父类nn.Module的构造函数 2. 初始化参数容器、模块字典等内部结构 3. 设置模型为训练模式self.training True 如果没有这行代码模型参数将无法正确注册到PyTorch系统中 super().__init__() # 设计全连接层分类头 # 参数说明 # nn.Linear(768, 2) 表示 # - 输入维度: 768 (BERT隐藏层大小[CLS]标记的向量维度) # - 输出维度: 2 (二分类任务正面/负面情感) # 这个层只有 768*2 2 1,538 个参数远远小于BERT的1.02亿参数 self.fc torch.nn.Linear(768, 2) # 实际上这里使用了默认的线性变换y xW^T b # 其中W是权重矩阵(2×768)b是偏置向量(2×1) def forward(self, input_ids, attention_mask, token_type_ids): 前向传播过程 - 模型推理的核心逻辑 参数说明 input_ids: [batch_size, seq_len] 输入token的ID序列 attention_mask: [batch_size, seq_len] 注意力掩码1表示真实token0表示填充 token_type_ids: [batch_size, seq_len] 句子类型ID用于区分两个句子 返回 logits: [batch_size, 2] 未归一化的分类得分 # 关键操作1冻结BERT参数不参与训练 # with torch.no_grad() 上下文管理器的作用 # 1. 禁用梯度计算节省大量内存不保存中间激活值 # 2. 加速前向传播过程 # 3. 确保BERT的预训练知识不会被修改 # 这相当于告诉PyTorch这部分计算只是推理不需要反向传播 with torch.no_grad(): # 将输入传递给预训练的BERT模型 # BERT返回一个复杂对象我们主要关注last_hidden_state out pretrained( input_idsinput_ids, attention_maskattention_mask, token_type_idstoken_type_ids ) # out.last_hidden_state 形状: [batch_size, seq_len, hidden_size768] # 这是BERT对输入序列的深度编码表示 # 关键操作2提取[CLS]标记的表示 # 切片操作说明out.last_hidden_state[:, 0] # - : 表示取所有批次batch维度 # - 0 表示取每个序列的第一个位置[CLS]标记 # [CLS]标记在BERT预训练时专门用于分类任务它包含了整个句子的语义信息 # 形状变化[batch_size, seq_len, 768] → [batch_size, 768] cls_embedding out.last_hidden_state[:, 0] # 关键操作3仅训练分类头 # 将[CLS]表示传递给全连接分类层 # 只有这1,538个参数会在训练过程中更新 # 形状变化[batch_size, 768] → [batch_size, 2] logits self.fc(cls_embedding) return logits # 注意这里返回的是logits未经过softmax的原始得分 # 在训练时CrossEntropyLoss会内部处理softmax # 在推理时如果需要概率可以使用torch.softmax(logits, dim1)二、关键点深度分析1.冻结策略的三大优势优势对比分析表训练策略训练参数量内存占用训练速度适用场景全参数微调~1.02亿非常高非常慢大数据集充足计算资源冻结BERT训练分类头~1,538低非常快小数据集有限资源部分层微调百万级中等中等平衡效果与效率我们的选择冻结BERT训练分类头特别适合数据量有限几千到几万条样本计算资源受限单GPU或CPU训练任务与BERT预训练任务高度相关2.[CLS]标记的独特作用[CLS]Classification Token的独特设计预训练任务中的角色在Next Sentence Prediction任务中[CLS]学习捕捉句子间关系通过大量语料训练[CLS]学会了提取句子级语义信息技术实现细节假设输入这部电影很好看tokens: [CLS] 这 部 电 影 很 好 看 [SEP]位置: 0 1 2 3 4 5 6 7 8BERT的隐藏状态last_hidden_state[0] [CLS]的语义向量句子整体表示last_hidden_state[1] 这的语义向量为什么不用其他位置的向量其他位置主要编码单词级信息[CLS]专门为句子级任务优化实践中[CLS]在分类任务上表现最稳定3.内存与计算优化分析计算与内存优化对比梯度计算量对比不冻结全参数训练总参数量102,000,000 (1.02亿)每次迭代需计算1.02亿个梯度冻结BERT我们的方法训练参数量1,538梯度计算量减少约66,000倍内存占用对比关键torch.no_grad()的作用with torch.no_grad():不保存中间激活值用于反向传播节省内存约30-50%如果没有torch.no_grad():需要保存所有中间结果用于梯度计算对于BERT-large可能占用20GB显存
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

可以悬赏做任务的叫什么网站太原网站域名开发

reinstall终极指南:6分钟完成服务器系统重装的完整教程 【免费下载链接】reinstall 又一个一键重装脚本 项目地址: https://gitcode.com/GitHub_Trending/re/reinstall 你是否曾经因为服务器系统重装而耗费数小时?传统方法需要下载镜像、配置分区…

张小明 2026/1/3 10:40:10 网站建设

清苑建设局网站网站内容怎么修改

正则表达式与文本处理实用指南 1. 正则表达式量词与验证 正则表达式中的量词能帮助我们更精准地匹配文本。例如,表达式 ^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$ 可用于验证电话号码格式。下面通过几个示例来测试这个表达式: [me@linuxbox ~]$ echo "(555) 123-4567…

张小明 2025/12/24 6:41:58 网站建设

仙居网站建设贴吧电子商务网站建设的方法与流程

项目工程完整地址:https://github.com/YiyiCoding/Spring7Guides Bean的单例说明多例Bean( Scope(“prototype”) )每次都由IOC容器New一个新对象,此处之外跟容器没有太多的联系性单例才具有生命周期的概念单例有懒加载的概念&…

张小明 2026/1/5 11:22:25 网站建设

网站怎么搬家烟台网站建设多少钱

Choreographer 作用: 负责接收和处理 App 的各种更新消息和回调,等到 Vsync 到来的时候统一处理。比如集中处理 Input(主要是 Input 事件的处理) 、Animation(动画相关)、Traversal(包括 measure、layout、draw 等操作) ,判断卡顿掉帧情况&am…

张小明 2026/1/3 0:06:59 网站建设

兼职网站建设推广人才网站建设需要工作计划

第一章:实在智能 Open-AutoGLM 实战指南(从零搭建智能RPA流程)环境准备与依赖安装 在开始构建智能RPA流程前,需确保本地开发环境已配置Python 3.8并安装必要的依赖包。Open-AutoGLM基于PyTorch与Transformers架构,建议…

张小明 2026/1/9 9:04:46 网站建设

网站如何更新seo提权软件

第一章:Dify Tesseract 更新机制概述 Dify Tesseract 是一个面向低代码 AI 应用开发平台的核心组件,其更新机制设计旨在保障系统稳定性与功能迭代的高效协同。该机制通过版本化配置、自动化检测与灰度发布策略,实现无缝升级体验。 核心设计理…

张小明 2026/1/7 6:44:34 网站建设