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

如何检查二值化FairSeq数据集中的数值内容

fairseq二值化数据集探查方法

运行fairseq-preprocess脚本会生成二进制数据集文件,文件内存储的整数索引和字典中的token id一一对应。当原始分词文本已丢失时,不需要手动实现二进制解析逻辑,用fairseq内置接口就能快速完成探查,这也是目前最简便的方案。

具体操作步骤

  • 首先确认你的二值化数据集目录结构:目录下需要包含对应语种的dict.[语种].txt字典文件,以及对应数据分片的.idx、.bin后缀文件(比如训练集源端会生成train.en.idx、train.en.bin两个配套文件)
  • 在Python环境中执行以下代码,即可完成字典、数据集加载,并且可以把任意位置的token id序列还原为原始文本:
from fairseq.data import Dictionary, MMapIndexedDataset

# 加载对应语种的字典,替换为实际的字典路径
dictionary = Dictionary.load("你的二值化数据集目录/dict.en.txt")

# 加载目标二进制分片,注意路径不要加.idx/.bin后缀
dataset = MMapIndexedDataset("你的二值化数据集目录/train.en")

# 探查指定序号的样本,比如查看第0条样本
sample_id = 0
token_ids = dataset[sample_id].tolist()
# 将id序列转换回原始分词文本
restored_text = dictionary.string(token_ids)

print(f"样本ID:{sample_id}")
print(f"Token ID序列:{token_ids}")
print(f"还原后的文本:{restored_text}")
print(f"数据集总样本数:{len(dataset)}")

注意:加载二进制分片时传入的路径不要携带.idx或.bin后缀,接口会自动匹配同目录下的两个配套文件,后缀写反或路径写错都会触发文件不存在报错。

如果只是需要快速查看数据集基础统计信息,不需要还原文本的话,直接执行一行Python命令即可拿到总样本数、平均句长等信息:
python -c "from fairseq.data import MMapIndexedDataset; ds = MMapIndexedDataset('你的二值化数据集目录/train.en'); print(f'总样本数:{len(ds)}, 平均句长:{sum(len(i) for i in ds)/len(ds):.1f}')"

内容的提问来源于stack exchange,提问作者Jindřich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:12:13