分詞

Tokenization

將文本切分為模型可處理的token單位

詳細解釋

分詞(Tokenization)是將文本分解為模型可處理的基本單元(token)的過程,是NLP的第一步,影響模型輸入表示和詞彙表設計。

Token類型:

  • 詞級(Word):
  • 空格分詞(英文)
  • 需處理標點
  • 問題:未見詞(OOV)
  • 子詞級(Subword):
  • BPE(Byte Pair Encoding)
  • WordPiece(BERT使用)
  • SentencePiece(語言無關)
  • 平衡詞彙表大小和覆蓋率
  • 字符級(Character):
  • 每個字符是token
  • 序列太長
  • 用於特殊場景

常用算法:

  • BPE:
  • 從字符開始
  • 合併頻繁共現對
  • GPT-2、RoBERTa使用
  • WordPiece:
  • 類似BPE但基於概率
  • BERT使用
  • SentencePiece:
  • 語言無關
  • 將空格編碼為token
  • T5、Llama使用
  • Unigram:
  • 概率模型
  • T5使用

特殊Token:

  • [CLS]:分類任務(BERT)
  • [SEP]:句子分隔
  • [PAD]:填充
  • [UNK]/[UNK]:未知詞
  • [MASK]:掩碼(MLM)
  • [BOS]/[EOS]:開始/結束

詞彙表大小:

  • 影響因素:
  • 太小:未見詞多
  • 太大:參數多、訓練難
  • 典型值:
  • GPT-2:50,257
  • BERT:30,522
  • Llama 2:32,000
  • Llama 3:128,256

多語言:

  • 統一詞彙表:多語言模型
  • 平衡:各語言token數
  • 擴展:新語言添加

工具:

  • Hugging Face Tokenizers:
  • Rust實現,極快
  • 支持所有主流算法
  • SentencePiece:Google開發
  • tiktoken:OpenAI的BPE

分詞是NLP的基礎步驟。

相關AI領域

探索更多AI詞彙

查看所有分類,繼續學習AI知識