Tokenizer的细节计算方式及优缺点分析

一、Tokenizer的核心算法与计算细节


Tokenizer的核心在于将文本转化为模型可处理的离散符号序列,其计算方式主要依赖于分词算法。以下是主流算法的技术细节:

1. ​​Byte-Pair Encoding (BPE)​​


​​计算步骤​​:
​​初始化词表​​:从字符级开始(如英文的26个字母、标点符号)。
​​统计词频​​:对训练语料中的单词进行频率统计。
​​迭代合并​​:每次合并出现频率最高的相邻字符对,生成新子词并加入词表。
​​终止条件​​:达到预设词表大小(如50,000)或合并次数。

def train_bpe(corpus, num_merges):
    vocab = set(char for word in corpus for char in word)
    word_counts = Counter(corpus)
    splits = {word: list(word) for word in word_counts}
    for _ in range(num_merges):
        pairs = Counter()
        for word, freq in word_counts.items():
            chars = splits[word]
            for i in range(len(chars)-1):
                pairs[(chars[i], chars[i+1])] += freq
        best_pair = max(pairs, key=pairs.get)
        new_token = ''.join(best_pair)
        vocab.add(n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

thesky123456

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值