当前位置: 首页 > article >正文

深度学习篇---BERT

BERT是Bidirectional Encoder Representations from Transformers的缩写由 Google AI 在 2018 年提出论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。它是第一个真正意义上的双向预训练语言模型彻底改变了自然语言处理NLP的范式。一句话BERT 就是 NLP 领域的“ResNet ImageNet 预训练”—— 它在海量文本上预训练后可以微调适配几乎所有 NLP 任务效果远超传统方法。一、BERT 的核心创新与之前的 NLP 模型对比1.1 之前的 NLP 模型如 ELMo、GPT-1模型方向性预训练任务缺点Word2Vec / GloVe静态词向量词共现统计无法处理一词多义ELMo单向LSTM 堆叠语言模型只是浅层拼接不是真双向GPT-1单向从左到右语言模型看不到未来信息不适合理解任务1.2 BERT 的三大突破关键创新解释双向性在处理“我 [MASK] 银行”时同时看到“我”和“银行”两个方向的信息能准确预测“去”而不是“的”。MLM掩码语言模型类似完形填空迫使模型理解词之间的深层关系。NSP下一句预测理解段落级别的连贯性对问答、推理任务至关重要。二、BERT 的模型规模参数量与变体模型版本层数Transformer Block隐藏层维度注意力头数参数量内存占用FP32BERT-Tiny212824.4M~18 MBBERT-Mini4256411.4M~46 MBBERT-Small4512828.9M~116 MBBERT-Medium8512841.7M~167 MBBERT-Base1276812110M~440 MBBERT-Large24102416340M~1.3 GB实际部署时BERT-Base110M 参数是最常用的版本性能与大小的平衡最好。三、BERT 能做什么NLP 任务的统一框架3.1 典型任务及输入输出格式任务类型示例输入格式输出格式文本分类情感分析、垃圾邮件检测[CLS] 今天天气真好 [SEP][CLS] 标签积极/消极句子对分类语义相似度、推理判断[CLS] 句子A [SEP] 句子B [SEP][CLS] 标签蕴含/矛盾问答系统SQuAD 任务[CLS] 问题 [SEP] 段落 [SEP]输出答案的开始/结束位置序列标注命名实体识别、分词[CLS] 小明在北京大学读书 [SEP]每个词输出标签PER/LOC/ORG3.2 在 Jetson IMX219 场景中的应用多模态虽然 BERT 用于文本但在视觉项目中常作为语义理解的后处理模块实际例子视觉问答VQA图像 → 物体检测 → 标签序列 用户问题 → BERT 输出答案场景图生成OCR 提取店铺名称 → BERT 判断行业类别如“小李烧烤” → 餐饮智能导盲眼镜识别标志牌文字 → BERT 提取关键指令如“小心台阶”四、BERT 在 Jetson Orin 系列上的部署挑战4.1 性能基准Jetson Orin NXTensorRT 加速模型输入长度推理延迟FP16吞吐量batch1内存占用BERT-Tiny128 tokens2.3 ms435 QPS~50 MBBERT-Mini128 tokens4.1 ms244 QPS~100 MBBERT-Small128 tokens7.2 ms139 QPS~200 MBBERT-Base128 tokens18.5 ms54 QPS~650 MBBERT-Base512 tokens52 ms19 QPS~1.2 GBQPS Queries Per Second每秒查询次数关键结论Orin Nano (8GB)只能跑 BERT-Small 及以下BERT-Base 内存不足Orin NX (16GB)可跑 BERT-Base128 tokens但 512 长文本会吃力4.2 主要性能瓶颈瓶颈说明BERT 的影响程度内存带宽Transformer 的矩阵乘法频繁读写权重⚠️ 严重相比 CNN 更依赖带宽计算量自注意力的 Q/K/V 计算⚠️ 严重O(L²×d) 复杂度内存容量存储模型权重 中间激活⚠️ 严重BERT-Base 约 650MB批处理效率变长输入导致 padding 浪费⚠️ 中等需使用 Dynamic Batching五、在 Jetson 上优化 BERT 的实战技巧5.1 模型压缩方法从大到小5.2 TensorRT 部署命令示例# 1. 将 HuggingFace BERT 导出为 ONNX python -m transformers.onnx --modelbert-base-uncased . --featuresequence-classification # 2. TensorRT 转换FP16 优化 trtexec --onnxmodel.onnx \ --fp16 \ --minShapesinput_ids:1x64,attention_mask:1x64 \ --optShapesinput_ids:4x128,attention_mask:4x128 \ --maxShapesinput_ids:8x256,attention_mask:8x256 \ --workspace4096 \ --saveEnginebert.engine # 3. 在 Orin NX 上测试延迟 trtexec --loadEnginebert.engine --batch15.3 精度与速度权衡优化策略精度保留加速比适用场景FP32 原版100%1x开发调试FP16TensorRT99.9%2-3x生产环境默认选项INT8 量化98-99%4-5x边缘设备 非敏感任务INT8 剪枝50%稀疏96-98%6-8x性能极致优化六、BERT 与 ViT 的对比都是 Transformer维度BERTViT输入形式文本序列词 [CLS] [SEP]图像 Patch 序列 位置编码预训练任务MLM NSP监督分类ImageNet或自监督MAE典型用途文本理解、问答、分类图像分类、检测、分割参数量基础版110M86MViT-B双向性✅ 真双向MLM 训练✅ 双向注意力无方向限制在 Jetson 上的难度中等内存敏感较高计算量更大共同点都是 Transformer Encoder 架构都依赖大规模预训练都有轻量化变体。七、选型建议结合你的场景7.1 什么时候在 Jetson 上部署 BERT7.2 实际组合方案项目场景推荐 BERT 模型Jetson 型号预期延迟智能门禁识别工牌姓名BERT-TinyOrin Nano 4GB10ms导盲眼镜理解标志牌DistilBERTOrin Nano 8GB15ms零售识别商品评价分析BERT-Base (INT8)Orin NX 8GB25ms多轮对话机器人BERT-Base (FP16)Orin NX 16GB35ms八、一句话总结 BERTBERT 是 NLP 的通用“大模型基座”通过 MLM 预训练学会了理解词语的上下文关系。在 Jetson 边缘设备上BERT-Base 只能跑在 Orin NX16GB 最佳而 Orin Nano 适合 Tiny/Mini/Small 变体如果项目同时需要视觉文本理解BERT 通常作为后排模块配合 CNN/ViT 工作。

相关文章:

深度学习篇---BERT

BERT 是 Bidirectional Encoder Representations from Transformers 的缩写,由 Google AI 在 2018 年提出(论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》)。它是第一个真正意义上的双向预训练语…...

Chrome文本替换插件终极指南:如何快速免费编辑任何网页内容

Chrome文本替换插件终极指南:如何快速免费编辑任何网页内容 【免费下载链接】chrome-extensions-searchReplace 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-extensions-searchReplace 你是否经常浏览网页时发现错别字却无法修改?或者需…...

深度学习篇---ViT

ViT 是 Vision Transformer 的缩写,是一种将 Transformer 架构从自然语言处理(NLP)迁移到计算机视觉(CV)领域的深度学习模型。它由 Google Brain 团队在 2020 年提出(论文《An Image is Worth 16x16 Words》…...

100+中文词向量完全指南:如何高效使用预训练模型提升NLP任务性能

100中文词向量完全指南:如何高效使用预训练模型提升NLP任务性能 【免费下载链接】Chinese-Word-Vectors 100 Chinese Word Vectors 上百种预训练中文词向量 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-Word-Vectors Chinese Word Vectors项目提供…...

Cursor智能体开发:能力概述

计算机操作 每个 cloud agent 都在自己隔离的虚拟机中运行,并配备完整的桌面环境。这些 Agent 可以使用鼠标和键盘控制桌面和浏览器,使它们能够像人类开发者一样与自己构建的软件交互。 这意味着 Agent 可以启动开发服务器,在浏览器中打开应…...

geojson.io 数据验证与修复:确保你的GeoJSON文件完美无缺

geojson.io 数据验证与修复:确保你的GeoJSON文件完美无缺 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io GeoJSON作为一种轻量级的空间数据交…...

5个秘诀快速掌握ComfyUI图像增强插件:Impact Pack终极使用指南

5个秘诀快速掌握ComfyUI图像增强插件:Impact Pack终极使用指南 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: …...

向量范数在机器学习中的应用与优化策略

1. 向量范数在机器学习中的基础地位第一次接触机器学习中的优化问题时,我盯着损失函数求导公式里那个神秘的||w||符号发呆了半小时。后来才明白,这个双竖线标记代表着向量范数(Vector Norm)——它不仅是线性代数中的基础概念&…...

别再让服务器“跑偏”了:手把手教你排查和优化Linux下的NUMA性能问题

别再让服务器“跑偏”了:手把手教你排查和优化Linux下的NUMA性能问题 当数据库查询突然变慢,或是虚拟化平台出现性能抖动时,很多工程师会习惯性地检查CPU负载和内存使用率,却忽略了一个潜在的"性能杀手"——NUMA架构下的…...

评论系统实现详解:在React Native中构建Dribbble作品评论区

评论系统实现详解:在React Native中构建Dribbble作品评论区 【免费下载链接】react-native-dribbble-app Dribbble app built with React Native 项目地址: https://gitcode.com/gh_mirrors/re/react-native-dribbble-app 在React Native应用开发中&#xff…...

别再死记硬背了!用银行1104报表和反洗钱场景,一次搞懂数仓分层与拉链表设计

从银行监管实战出发:用1104报表与反洗钱案例解析数仓分层与拉链表设计 每次看到新入行的数据工程师对着数仓理论教材死记硬背,我都会想起自己第一次处理银行监管报送数据时的狼狈。那是一个周五的下午,风控部门突然要求提供过去三年所有可疑交…...

每日安全情报报告 · 2026-05-01

每日安全情报报告 2026-05-01 报告日期:2026年5月1日(劳动节)|风险摘要:今日披露多个正在被野外积极利用的高危漏洞,含cPanel百万级托管实例零日、Linux内核全系提权、Windows Shell APT28在野利用链&…...

不止于CRC:深入聊聊微信小程序里处理文本编码的那些事儿(TextEncoder平替方案盘点)

微信小程序文本编码处理实战:从标准缺失到工程化解决方案 微信小程序的JavaScript运行环境与标准浏览器环境存在诸多差异,其中对Web标准API的支持不完整是最令开发者头疼的问题之一。当我们需要在小程序中处理复杂的文本编码转换时,突然发现T…...

【MySQL | 第十一篇】InnoDB引擎

目录 一、InnoDB的逻辑存储结构 二、InnoDB的架构 1.内存架构 三、InnoDB的事务原理 1.redo log 2.undo log 四、MVCC(多版本并发控制) 1.基本概念 2.MVCC中的三个隐式字段 3.undo log版本链 4.readView 一、InnoDB的逻辑存储结构 表空间&…...

Boss-Key:一键隐藏窗口的终极隐私保护解决方案

Boss-Key:一键隐藏窗口的终极隐私保护解决方案 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在现代办公环境中,保…...

Bili2text:3步完成B站视频转文字的高效解决方案

Bili2text:3步完成B站视频转文字的高效解决方案 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 在信息获取日益依赖视频内容的今天,Bi…...

Krita-AI-Diffusion:如何通过中文本地化技术让全球用户无障碍使用AI绘画插件

Krita-AI-Diffusion:如何通过中文本地化技术让全球用户无障碍使用AI绘画插件 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目…...

DataScienceR项目实战:Facebook评论提取与社交数据分析

DataScienceR项目实战:Facebook评论提取与社交数据分析 【免费下载链接】DataScienceR a curated list of R tutorials for Data Science, NLP and Machine Learning 项目地址: https://gitcode.com/gh_mirrors/da/DataScienceR DataScienceR是一个精心策划…...

3D高斯散射技术与视觉幻觉攻击原理详解

1. 3D高斯散射技术基础与视觉幻觉攻击原理3D高斯散射(3D Gaussian Splatting,简称3DGS)是近年来计算机视觉领域突破性的三维场景表示方法。与传统的体素或网格表示不同,3DGS通过数万到数百万个各向异性的高斯分布点云来表征场景几…...

SST(固态变压器)设计核心参数与方案选型表

设计关键点核心场景 / 需求推荐方案 / 关键参数拓扑结构中高压(≥10 kV)应用三级拓扑(AC/DC 隔离 DC/DC 可选 DC/AC)低压小功率应用两级矩阵拓扑隔离级拓扑功率>50 kW/800 V 母线(电池 / 数据中心&#x…...

Qt布局实战:用QSplitter和QSpacer打造一个可拖拽分割的仿IDE界面

Qt布局实战:用QSplitter和QSpacer打造一个可拖拽分割的仿IDE界面 在桌面应用开发中,界面布局的灵活性和用户体验往往决定了产品的专业程度。对于需要频繁切换视图的开发工具(如IDE),可拖拽分割的面板设计能极大提升工作…...

Node.js二维码生成终极指南:使用node-qrcode快速创建个性化二维码

Node.js二维码生成终极指南:使用node-qrcode快速创建个性化二维码 【免费下载链接】node-qrcode qr code generator 项目地址: https://gitcode.com/gh_mirrors/no/node-qrcode 在数字化时代,二维码已成为信息传递的重要桥梁。node-qrcode作为一款…...

Vue项目里给Element UI的el-tabs加个丝滑的左右滑动动画(附完整代码)

为Element UI的el-tabs注入丝滑左右滑动动画的实战指南 在VueElement UI的中后台开发中,el-tabs组件作为高频使用的导航控件,其默认的标签切换效果往往显得生硬呆板。本文将带你从零实现一个无侵入式的动画增强方案,只需三步即可让静态Tab切换…...

Boss-Key老板键:Windows窗口隐私保护的终极解决方案

Boss-Key老板键:Windows窗口隐私保护的终极解决方案 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在当今快节奏的工作环境中…...

C++ 选择 引用传递还是指针传递

在C编程中,选择引用传递(pass-by-reference)还是指针传递(pass-by-pointer)取决于具体的需求和上下文。下面是一些关于它们各自特点和适用场景的分析:总的来说,除非特殊需求(如需要表…...

【C++篇】类与对象:从面向过程到面向对象的跨越

前言 大家好,我是“我想吃余”,很高兴你能和我一起进入到C的学习中,我会将我的学习过程中的宝贵经验不遗余力的输入到文章中,希望可以帮助到你的学习。本文涵盖了从面向过程与面向对象的区别,到类的定义、访问限定符、…...

【C++】第六节—内存管理

1. C/C内存分配 程序运行过程中内存分区域,见下: 现在我们必须要清楚,写一个程序,程序里面的变量都放在我们刚才介绍的那个区域呢?见下题目(面试题,面试会考这样的题,那可得好好学清…...

告别手动水印:semi-utils如何让每张照片自动拥有专业标识

告别手动水印:semi-utils如何让每张照片自动拥有专业标识 【免费下载链接】semi-utils 一个批量添加相机机型和拍摄参数的工具,后续「可能」添加其他功能。 项目地址: https://gitcode.com/gh_mirrors/se/semi-utils 在摄影创作中,你是…...

长期项目使用Taotoken的月度账单与用量分析体验

长期项目使用Taotoken的月度账单与用量分析体验 1. 项目背景与Taotoken接入 我们的项目组在过去六个月中持续使用Taotoken平台进行AI原型开发。作为一个需要频繁调用不同大模型API的长期项目,我们选择了Taotoken作为统一接入层,主要基于其多模型聚合能…...

5分钟实战:用ArchivePasswordTestTool找回遗忘的压缩包密码

5分钟实战:用ArchivePasswordTestTool找回遗忘的压缩包密码 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经面对着一…...