解密Transformer训练中的input_ids、attention_mask和labels:从标记化到损失计算的完整流程
在自然语言处理领域,Transformer架构已经成为现代语言模型的核心。对于希望深入理解模型训练细节的开发者而言,掌握input_ids、attention_mask和labels这三个关键元素的工作原理至关重要。本文将从一个机器翻译任务的实际案例出发,逐步拆解这三个元素在整个训练流程中的角色和相互作用。
1. 标记化:从自然语言到数字表示
任何Transformer模型的输入都需要经过标记化(tokenization)这一关键步骤。标记化器(tokenizer)负责将人类可读的文本转换为模型可理解的数字序列。以英法翻译任务为例:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-fr")
# 英文输入句子
en_text = "How are you?"
# 法文目标句子
fr_text = "Comment ça va?"
# 对输入句子进行标记化
inputs = tokenizer(en_text, return_tensors="pt")
# 对目标句子进行标记化
labels = tokenizer(fr_text, return_tensors="pt").input_ids
标记化过程会生成几个关键组件:
- input_ids:将输入文本中的每个标记(token)映射到词汇表中的唯一ID
- attention_mask:指示哪些标记是真实内容,哪些是填充部分
- labels:目标文本的标记ID序列,用于监督训练
注意:不同标记化器的词汇表和特殊标记可能不同,使用


427

被折叠的 条评论
为什么被折叠?



