使用 SetFit 与 Hugging Face
SetFit 是一种高效且无需提示的框架,用于对 Sentence Transformers 进行少样本微调。它使用少量标记数据即可获得高精度 - 例如,在客户评论情感数据集上,每个类别仅使用 8 个标记示例,SetFit 的性能就能与在 3k 个示例的完整训练集上微调 RoBERTa Large 相媲美 🤯!
与其他少样本学习方法相比,SetFit 具有几个独特的特性
- 🗣 无需提示或词语化器: 当前的少样本微调技术需要手工制作的提示或词语化器,以将示例转换为适合底层语言模型的格式。SetFit 通过直接从文本示例生成丰富的嵌入,完全无需提示。
- 🏎 训练速度快: SetFit 不需要像 T0 或 GPT-3 这样的大规模模型即可获得高精度。因此,它的训练和推理速度通常快一个数量级(甚至更多)。
- 🌎 支持多语言: SetFit 可以与 Hub 上的任何 Sentence Transformer 一起使用,这意味着您可以通过简单地微调多语言检查点来对多种语言的文本进行分类。
在 Hub 上探索 SetFit
您可以在 模型页面 左侧的筛选器中找到 SetFit 模型。
Hub 上的所有模型都具有以下有用功能
- 自动生成的模型卡片,其中包含简短的描述。
- 一个交互式小部件,您可以使用它直接在浏览器中试用该模型。
- 一个推理 API,允许您发出推理请求。
安装
要开始使用,您可以按照 SetFit 安装指南 进行操作。您也可以通过 pip 使用以下单行安装命令
pip install -U setfit
使用现有模型
所有 setfit
模型都可以轻松地从 Hub 加载。
from setfit import SetFitModel
model = SetFitModel.from_pretrained("tomaarsen/setfit-paraphrase-mpnet-base-v2-sst2-8-shot")
加载后,您可以使用 SetFitModel.predict
执行推理。
model.predict("Amelia Earhart flew her single engine Lockheed Vega 5B across the Atlantic to Paris.")
['positive', 'negative']
如果要加载特定的 SetFit 模型,可以点击“在 SetFit 中使用”,您将获得一个可用的代码片段!
其他资源
- Hub 上所有可用的 SetFit 模型
- SetFit 代码库
- SetFit 文档
- SetFit 论文