small-text 项目介绍
概述
small-text 是一个专为文本分类设计的 Python 库,提供了最先进的主动学习功能。主动学习是一种在标注样本稀缺的情况下,为监督学习高效标注训练数据的方法。small-text 提供了多种预先实现的查询策略、初始化策略和停止准则,能够轻松组合,帮助用户构建主动学习实验或应用程序。
功能特点
- 统一接口:small-text 提供了统一的主动学习接口,用户可以简单地将不同的查询策略与sklearn、Pytorch 或 transformers 提供的分类器结合使用。
- 支持 GPU 加速:small-text 集成了 Pytorch 和 transformers,可以利用 GPU 加速处理,但也提供了轻量级的 CPU 模式安装。
- 多样的策略支持:该项目实现了多种经过科学验证的组件,如查询策略、初始化策略以及停止准则,供用户直接使用。
什么是主动学习?
主动学习是一种机器学习方法,主要用于在初始标记数据很少甚至没有的情况下,提高数据标记的效率。如图所示,该方法在 TREC-6 数据集上展示了学习曲线的变化。
最新动态
- 版本 1.4.1(2024年8月18日)进行了漏洞修复。
- 版本 1.4.0(2024年6月9日)引入了新的查询策略 AnchorSubsampling。这一更新特别感谢 Pietro Lesci 的贡献与代码审核。
- small-text 入选了 EACL 2023,大会期间展示了其系统,并获得了“EACL 最佳系统演示”奖项。
安装指南
用户可以轻松通过 pip 安装 small-text:
pip install small-text
若需完整安装,包括使用 transformers 模块,可以执行:
pip install small-text[transformers]
对于 conda 用户,完整安装可以通过以下命令完成:
conda install -c conda-forge "torch>=1.6.0" "torchtext>=0.7.0" transformers small-text
small-text 需要 Python 3.7 或更新版本,并且如果使用 GPU,则需安装 CUDA 10.1 或更新版本。
快速入门
项目提供了示例代码,帮助用户快速上手。包括二分类、多分类(基于 Pytorch)、及基于 transformer 的多分类示例。项目还提供笔记本供直接实践:
- 主动学习文本分类入门
- 使用停止准则的主动学习
- 使用 SetFit 的主动学习
- SetFit 的零样本冷启动初始化
展示
项目提供了实际应用和研究的展示页面,用户可以查看相关用例。
文档资源
项目提供详细的文档指南,其中值得一提的部分包括查询策略概述及项目的重现性说明。
可替代工具
若用户有其他需求,也可以考虑以下替代方案:modAL、ALiPy、libact、ALToolbox。
贡献与致谢
项目欢迎社区贡献,同时特别感谢 Leipzig 大学的 NLP 小组及萨克森发展银行的资助。
引用
如需引用 small-text 的研究成果,可以参考其在 EACL 2023 系统演示论文中详细介绍的内容。项目使用 MIT 许可证。