几乎所有可用的数据都没有标记。标记数据需要人工审查和/或需要时间来收集。零样本分类采用现有的大型语言模型,并在候选文本和标签列表之间进行相似性比较。这已被证明表现出奇的好。
零样本分类器的问题在于它们需要大量参数 (400M+) 才能很好地应对一般任务,这对硬件要求很高。
本文探索使用零样本分类器为较小的模型构建训练数据。一种简单的知识蒸馏形式。
安装依赖
安装txtai和所有依赖项。
pip install txtai datasets pandas
将零样本分类器应用于未标记的文本
以下部分采用 sst2 数据集的 1000 条记录随机样本,并将零样本分类器应用于文本。标签被忽略。选择此数据集只是为了能够评估最终的准确性。
import random
from datasets import load_dataset
from txtai.pipeline import Labels
def batch(texts, size):
return [texts[x : x + size] for x in range(0, len(texts), size)]
Set random seed for repeatable sampling
random.seed(42)
ds = load_dataset(“glue”, “sst2”)
sentences = random.sample(ds[“train”][“sentence”], 1000)