Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • shell

  • tool

  • 网络

  • algo

  • compute_base

  • blog

  • growth

  • java

  • C&C++

  • ai

    • base

    • tools

    • other

      • huggingFace
      • pad_token
        • token
        • rnn
        • 向量
        • BPE算法
    • secure

    • cms

    • english

    • 生活

    • 金融学

    • more

    • other
    • ai
    • other
    Jacky
    2025-05-13
    目录

    pad_token

    pad_token 是 “padding token”(填充标记) 的缩写,在使用 Transformers(如 BERT、GPT)等模型时,用于把不等长的文本序列填充成相同长度,以便批量处理。


    # 📌 为什么需要 pad_token?

    当你把多个句子组成一个 batch 输入模型时,它们长度可能不同。比如:

    句子A: [Hello, world]        → 长度 2
    句子B: [Hi]                  → 长度 1
    
    1
    2

    我们需要统一长度,比如都补齐成长度 3:

    句子A: [Hello, world, [PAD]]
    句子B: [Hi,    [PAD], [PAD]]
    
    1
    2

    这样模型才能一次性批量计算。


    # 🛠 错误的含义:

    你使用的 tokenizer 没有设置 pad_token,所以当你使用 padding=True 时,程序报错:

    Asking to pad but the tokenizer does not have a padding token.
    
    1

    # ✅ 解决方法

    方法一:直接设置已有的特殊 token(比如 eos_token)为 pad_token:

    tokenizer.pad_token = tokenizer.eos_token
    
    1

    方法二:添加一个新的 pad token:

    tokenizer.add_special_tokens({'pad_token': '[PAD]'})
    
    1

    然后模型也要 resize(如果要继续训练模型):

    model.resize_token_embeddings(len(tokenizer))
    
    1

    # 🔍 检查当前 tokenizer 是否有 pad_token:

    print(tokenizer.pad_token)      # 看看当前是否为 None
    print(tokenizer.special_tokens_map)
    
    1
    2

    如果你告诉我你用的是哪个模型(比如 GPT2, BERT, LLaMA 等),我可以告诉你哪种方式更推荐。因为有些模型默认就没有 pad_token(比如 GPT-2)。

    上次更新: 2025/10/09, 23:53:03
    huggingFace
    token

    ← huggingFace token→

    最近更新
    01
    npx 使用指南
    10-12
    02
    cursor
    09-28
    03
    inspect
    07-20
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式