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

在自然语言处理任务中,像 BERT 这样的模型会在输入前自动加上一些特殊token

🌱 1. 什么是 BERT?

BERT 是一个自然语言理解模型。你可以把它想象成一个超级聪明的“语言理解机器人”。你把一句话丢进去,它能:

  • 理解这句话的意思;
  • 告诉你哪个词是实体(人名、地名);
  • 判断两个句子是不是一个意思,等等。

🧱 2. 什么是 Token?

Token 就是把一句话拆成一个个小块的结果。

比如原句是:

我爱北京天安门

模型不能直接理解汉字或词语,所以会先用分词器(Tokenizer)把它切成 token

["我", "爱", "北京", "天", "安", "门"]

这些 token 就是模型处理的最小单位。


🧪 3. 什么是“实体标注”?

举个例子,我们想让模型识别句子中的地名:

我爱北京天安门
👉 地名是 “北京天安门”

这时候我们会标注 token 的位置:

北京:第2个 token
天安门:第3~5个 token

于是,我们会记录下这些位置:

annotations = [(2, 6)]  # 表示从第2个到第5个token(Python里右边不包含,所以是6)

这些是原始位置,还没有添加特殊 token 的时候。


🛠️ 4. 模型会“偷偷”加一些 token(重点来了)

在实际输入 BERT 模型之前,它会自动加上一些“特殊 token”,来帮助模型更好地理解任务:

🟡 例子:

原始句子:

我爱北京天安门

模型输入前会变成这样:

[CLS] 请识别地名:我 爱 北京 天 安 门 [SEP]

你看到:

  • [CLS] 是开头特殊 token;
  • “请识别地名:” 是任务提示(instruction tokens);
  • [SEP] 是结束符号。

这些词在原始文本中根本不存在! 但它们被加进去了,所以 token 的位置整体往后挪了


🎯 5. 为什么要“挪一下”实体的位置?

因为你原来的标注是这样:

annotations = [(2, 6)]

表示“北京天安门”在原来的第2~5个 token。

但模型看到的 token 是:

0: [CLS]
1: 请
2: 识
3: 别
4: 地
5: 名
6: :
7: 我
8: 爱
9: 北京
10: 天
11: 安
12: 门
13: [SEP]

原来的“北京天安门”现在变成了:

token 9 ~ 12

所以你得把原来的 (2, 6) 改成 (9, 13),否则模型会以为你要标注“请识别地名”这几个词,完全错了!


✅ 总结一下,用人话讲就是:

你原来在“干净句子”上标注了位置,比如第3个词是“北京”;
但模型偷偷加了开头结尾的词([CLS], instruction, [SEP]),所以“北京”变成第9个词了;
👉 为了标注不出错,你得把原来的位置往后挪一挪

在自然语言处理任务中,像 BERT 这样的模型会在输入前自动加上一些特殊token,例如:

  • [CLS]:加在句子最前面,代表整个句子的汇总;

  • [SEP]:加在每个句子或段落末尾,表示分隔;

  • instruction_tokens:某些任务中可能还会加一些说明任务的提示词。

而你对文本的实体标注(如 “北京” 在第2到3个token)是基于原始的文本分词结果,不包含这些特殊token。所以你需要在加入这些token后,手动把实体的位置“挪一下”,避免标注错位。

http://www.xdnf.cn/news/362863.html

相关文章:

  • MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议
  • CKESC STONE 200A-M 工业级电调技术测评:全场景适配的动力控制核心
  • 【谭浩强】第七章第14题
  • 【C语言】--指针超详解(三)
  • Qwen智能体qwen_agent与Assistant功能初探
  • 昆仑万维一季度营收增长46% AI业务成新增长点
  • epoch、batch size和steps_per_epoch的区别
  • Linux 大于2T磁盘分区
  • FPGA 41 ,ICMP 协议详细解析之构建网络诊断系统( ICMP 协议与 IP 协议理论详细解析 )
  • windows下,docker虚拟化使用nginx镜像部署vue3+vite项目
  • 数据库基础:概念、原理与实战示例
  • 多账号管理与自动化中的浏览器指纹对抗方案
  • 北斗导航 | RTKLib中重难点技术,公式,代码
  • 【质量管理】TRIZ因果链分析:解码质量问题的“多米诺效应“
  • 20250509——TOPSIS计算各方案得分
  • 怎么判断是不是公网IP?如何查看自己本地路由器是内网ip还是公网?
  • Lightweight App Alternatives
  • gpu硬件,gpu驱动,cuda,CUDA Toolkit,cudatoolkit,cudnn,nvcc概念解析
  • python---kafka常规使用
  • awesome-digital-human本地部署及配置:打造高情绪价值互动指南
  • Conda激活环境无效
  • 【星海随笔】信息安全相关标准
  • 江西同为科技有限公司受邀参展2025长江流域跨博会
  • 智芯Z20K144x MCU开发之时钟架构
  • 数字人肢体动作控制:从基础原理到实践路径!
  • PostgreSQL可见性映射VM
  • 3D模型格式转换组件HOOPS Exchange:高效赋能航空航天设计协同、数据一致!
  • Uniapp app 安卓手机(红米)自定义基座进行真机调试
  • 编译原理实验 之 语法分析程序自动生成工具Yacc实验
  • 【TACD模拟】质子辐照对GaN器件临界电压增加的影响机制