Hugging Face Hub 中的 Sentence Transformers

发布于 2021 年 6 月 28 日
在 GitHub 上更新

在过去的几周里,我们与机器学习生态系统中的许多开源框架建立了合作。其中一个让我们特别兴奋的是 Sentence Transformers。

Sentence Transformers 是一个用于句子、段落和图像嵌入的框架。它允许派生语义上有意义的嵌入 (1),这对于语义搜索或多语言零样本分类等应用非常有用。作为 Sentence Transformers v2 版本的一部分,有许多很酷的新功能

  • 在 Hub 中轻松共享模型。
  • 用于句子嵌入和句子相似度的组件和推理 API。
  • 提供了更好的句子嵌入模型(Hub 中的基准模型)。

Hub 中有 90 多个预训练的 Sentence Transformers 模型,支持 100 多种语言,任何人都可以从中受益并轻松使用它们。预训练模型可以通过几行代码直接加载和使用

from sentence_transformers import SentenceTransformer
sentences = ["Hello World", "Hallo Welt"]

model = SentenceTransformer('sentence-transformers/paraphrase-MiniLM-L6-v2')
embeddings = model.encode(sentences)
print(embeddings)

不仅如此。人们可能还希望轻松演示他们的模型或玩转其他模型,所以我们很高兴地宣布在 Hub 中发布两个新组件!第一个是 `feature-extraction` 组件,它显示句子嵌入。

sentence-transformers/distilbert-base-nli-max-tokens
托管推理 API
特征提取
此模型目前已加载并在推理 API 上运行。

但是看到一堆数字可能对您来说不太有用(除非您能快速理解嵌入,那将令人印象深刻!)。我们还在引入一个新组件,用于 Sentence Transformers 的常见用例:计算句子相似度。

sentence-transformers/paraphrase-MiniLM-L6-v2
托管推理 API
句子相似度
此模型可以按需加载到推理 API 上。

当然,除了组件之外,我们还在推理 API 中提供了 API 端点,您可以使用它们以编程方式调用您的模型!

import json
import requests

API_URL = "https://api-inference.huggingface.co/models/sentence-transformers/paraphrase-MiniLM-L6-v2"
headers = {"Authorization": "Bearer YOUR_TOKEN"}

def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()

data = query(
    {
        "inputs": {
            "source_sentence": "That is a happy person",
            "sentences": [
                "That is a happy dog",
                "That is a very happy person",
                "Today is a sunny day"
            ]
        }
    }
)

释放共享的力量

那么,这为什么如此强大呢?在几分钟内,您可以与整个社区共享您训练过的模型。

from sentence_transformers import SentenceTransformer

# Load or train a model

model.save_to_hub("my_new_model")

现在您将在 Hub 中拥有一个存储库,用于托管您的模型。系统会自动创建一个模型卡。它通过列出层来描述架构,并展示如何同时使用 `Sentence Transformers` 和 `🤗 Transformers` 来使用模型。您还可以立即试用组件并使用推理 API!

如果这还不够令人兴奋,您的模型还可以通过筛选所有 `Sentence Transformers` 模型来轻松发现。

接下来呢?

展望未来,我们希望使这种集成更有用。在我们的路线图中,我们期望训练和评估数据将包含在自动创建的模型卡中,就像 `transformers` v4.8 版本中的情况一样。

那您接下来呢?我们非常期待您的贡献!如果您已经在 Hub 中有一个 `Sentence Transformer` 存储库,您现在可以通过更改模型卡元数据来启用组件和推理 API。

---
tags:
  - sentence-transformers
  - sentence-similarity # Or feature-extraction!
---

如果您在 Hub 中没有任何模型,并且想了解更多关于 Sentence Transformers 的信息,请访问 www.SBERT.net

您想将您的库集成到 Hub 中吗?

这种集成得益于 `huggingface_hub` 库,它包含了我们所有支持的库的所有组件和 API。如果您想将您的库集成到 Hub 中,我们为您准备了指南

参考文献

  1. Sentence-BERT: 使用 Siamese BERT 网络的句子嵌入。 https://arxiv.org/abs/1908.10084

社区

注册登录评论