项目介绍:TorchText
TorchText 是一个专注于自然语言处理(NLP)的库,紧密集成在 PyTorch 生态系统中,提供了一系列工具和数据集以支持 NLP 任务。然而,这个库的开发工作已经停止,预计将于 2024 年 4 月发布其最后一个稳定版本 0.18。
项目组成部分
TorchText 项目主要包括以下几个模块:
- 数据集(torchtext.datasets):提供常见 NLP 数据集的原始文本迭代器。
- 数据处理(torchtext.data):一些基础的 NLP 构件,用于文本数据的处理和分析。
- 文本转换(torchtext.transforms):基本的文本处理转换工具。
- 预训练模型(torchtext.models):提供一些预训练模型,用于各种 NLP 任务。
- 词汇表(torchtext.vocab):与 词汇 和 向量 相关的类及工厂函数。
- 示例(examples):一些用 PyTorch 和 torchtext 库完成的 NLP 工作流程示例。
安装指南
建议使用 Anaconda 作为 Python 包管理系统。可以从 pytorch.org
获取有关 PyTorch 安装的详细信息。以下是 torchtext 各版本与其相应支持的 Python 版本:
- PyTorch 2.3.0 对应 torchtext 0.18.0,支持 Python 3.8 至 3.11。
- 其他版本的详细信息类似,仅支持范围有所变化。
安装 torchtext 的方法包括:
-
使用 conda 安装:
conda install -c pytorch torchtext
-
使用 pip 安装:
pip install torchtext
可选依赖
若需要使用 SpaCy 的英语分词器,需安装 SpaCy 并下载其英语模型:
pip install spacy
python -m spacy download en_core_web_sm
或者,选择 SacreMoses 提供的 Moses 分词器:
pip install sacremoses
从源码构建
需要安装 git
、CMake
和支持 C++11 的编译器,如 g++
:
git clone https://github.com/pytorch/text torchtext
cd torchtext
git submodule update --init --recursive
# Linux
python setup.py clean install
# OSX
CC=clang CXX=clang++ python setup.py clean install
数据集支持
TorchText 提供了多种不同类型的 NLP 数据集,例如:
- 语言模型:WikiText2、WikiText103、PennTreebank、EnWik9 等。
- 机器翻译:IWSLT2016、IWSLT2017、Multi30k 等。
- 序列标注:UDPOS、CoNLL2000Chunking 等。
- 问答:SQuAD1、SQuAD2 等。
- 文本分类:SST2、AG_NEWS、IMDB 等。
- 模型预训练:CC-100。
预训练模型
TorchText 当前支持以下几种预训练模型:
- RoBERTa:Base 和 Large 架构。
- DistilRoBERTa。
- XLM-RoBERTa:Base 和 Large 架构。
- T5:小、中、大以及巨型版本。
- Flan-T5:多种架构。
分词器支持
提供多种脚本化的分词器支持,例如:
- SentencePiece。
- GPT-2 BPE。
- CLIP。
- RE2。
- BERT。
教程资源
入门 users 可能参考以下教程:
- 使用 XLM-R 预训练模型进行 SST-2 二元文本分类。
- 使用 AG_NEWS 数据集进行文本分类。
- 使用 Multi30k 数据集通过 transformers 和 torchtext 进行翻译训练。
- 利用 transforms 和 torchtext 进行语言建模。
数据集免责声明
TorchText 是一个实用程序库,用于下载和准备公共数据集。项目不负责托管或分发这些数据集,也不对数据集的质量或公平性声明任何观点。使用者有责任确保在使用数据集之前获得授权。如果您是数据集的所有者并希望更新或者不希望在此库中包含您的数据集,请通过 GitHub issue 联系我们。感谢您对机器学习社区的贡献!