You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HuggingFace Tokenizer训练未使用GPU问题求助

问题排查与解决

核心原因:tokenizers库不支持GPU加速分词训练

你使用的Hugging Face tokenizers(Rust后端实现)默认仅在CPU上运行,该库的分词器训练逻辑没有原生GPU支持——无论环境是否检测到CUDA,训练过程都不会调用GPU资源,这就是你的GPU闲置的直接原因。

优化方案

1. 提升CPU训练效率

虽然没法用GPU,但可以通过以下方式加快训练速度:

  • 高效读取数据集:当前Excel读取方式效率低下,iterrows()逐行遍历耗时,改用批量处理:
    import pandas as pd
    
    # 仅读取需要的列,批量处理数据并过滤空值
    dataxls = pd.read_excel('data/dataset.xlsx', usecols=['data'])
    dataset = dataxls['data'].str.strip().dropna().tolist()
    
  • 调整训练批次:增大get_training_corpus()的批次大小(比如从1000改为5000),减少迭代次数,提升CPU利用率:
    def get_training_corpus():
        for i in range(0, len(dataset), 5000):
            yield dataset[i : i + 5000]
    
  • 确保多线程开启:tokenizers默认支持多线程,通过环境变量强制开启:
    import os
    os.environ["TOKENIZERS_PARALLELISM"] = "true"
    

2. 验证环境资源限制

  • 检查JupyterHub分配的CPU核数:执行!nproc查看可用核心数,若核数过少会直接限制训练速度。
  • 转换数据集格式:若Excel文件过大,转成Parquet或CSV格式后再读取,pd.read_parquet的读取速度远快于read_excel。

3. 强制GPU利用的替代方案

如果必须利用GPU,可考虑使用transformers库的Trainer API在预训练模型时同步训练分词器,但这种方式并非针对纯分词器训练的GPU优化,实际收益有限,仅适合同时进行模型预训练的场景。

内容的提问来源于stack exchange,提问作者Raptor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:06:15