Transformers 文档

流水线

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

流水线

流水线是使用模型进行推理的一种出色且简单的方法。这些流水线是抽象了库中大部分复杂代码的对象,提供了一个简单的 API,专用于多个任务,包括命名实体识别、掩码语言建模、情感分析、特征提取和问答。有关使用示例,请参阅任务摘要

需要注意两类流水线抽象

流水线抽象

流水线抽象是所有其他可用流水线的包装器。它像任何其他流水线一样实例化,但可以提供额外的生活质量。

对一项进行简单调用

>>> pipe = pipeline("text-classification")
>>> pipe("This restaurant is awesome")
[{'label': 'POSITIVE', 'score': 0.9998743534088135}]

如果要使用中心中的特定模型,如果中心上的模型已经定义了任务,则可以忽略该任务

>>> pipe = pipeline(model="FacebookAI/roberta-large-mnli")
>>> pipe("This restaurant is awesome")
[{'label': 'NEUTRAL', 'score': 0.7313136458396912}]

要对多个项目调用流水线,可以使用列表调用它。

>>> pipe = pipeline("text-classification")
>>> pipe(["This restaurant is awesome", "This restaurant is awful"])
[{'label': 'POSITIVE', 'score': 0.9998743534088135},
 {'label': 'NEGATIVE', 'score': 0.9996669292449951}]

要迭代完整的数据集,建议直接使用 dataset。这意味着您不需要一次性分配整个数据集,也不需要自己进行批处理。这应该与 GPU 上的自定义循环一样快。如果没有,请随时创建问题。

import datasets
from transformers import pipeline
from transformers.pipelines.pt_utils import KeyDataset
from tqdm.auto import tqdm

pipe = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-base-960h", device=0)
dataset = datasets.load_dataset("superb", name="asr", split="test")

# KeyDataset (only *pt*) will simply return the item in the dict returned by the dataset item
# as we're not interested in the *target* part of the dataset. For sentence pair use KeyPairDataset
for out in tqdm(pipe(KeyDataset(dataset, "file"))):
    print(out)
    # {"text": "NUMBER TEN FRESH NELLY IS WAITING ON YOU GOOD NIGHT HUSBAND"}
    # {"text": ....}
    # ....

为了便于使用,也可以使用生成器

from transformers import pipeline

pipe = pipeline("text-classification")


def data():
    while True:
        # This could come from a dataset, a database, a queue or HTTP request
        # in a server
        # Caveat: because this is iterative, you cannot use `num_workers > 1` variable
        # to use multiple threads to preprocess data. You can still have 1 thread that
        # does the preprocessing while the main runs the big inference
        yield "This is a test"


for out in pipe(data()):
    print(out)
    # {"text": "NUMBER TEN FRESH NELLY IS WAITING ON YOU GOOD NIGHT HUSBAND"}
    # {"text": ....}
    # ....

transformers.pipeline

< >

( task: str = None model: Union = None config: Union = None tokenizer: Union = None feature_extractor: Union = None image_processor: Union = None framework: Optional = None revision: Optional = None use_fast: bool = True token: Union = None device: Union = None device_map = None torch_dtype = None trust_remote_code: Optional = None model_kwargs: Dict = None pipeline_class: Optional = None **kwargs ) 流水线

参数

  • task (str) — 定义将返回哪个管道的任务。当前接受的任务有:

  • model (strPreTrainedModelTFPreTrainedModel, 可选) — 管道将用于进行预测的模型。这可以是模型标识符,也可以是继承自 PreTrainedModel(对于 PyTorch)或 TFPreTrainedModel(对于 TensorFlow)的预训练模型的实际实例。

    如果未提供,将加载 task 的默认值。

  • config (strPretrainedConfig, 可选) — 管道将用于实例化模型的配置。这可以是模型标识符,也可以是继承自 PretrainedConfig 的实际预训练模型配置。

    如果未提供,将使用请求模型的默认配置文件。这意味着如果给定了 model,将使用其默认配置。但是,如果未提供 model,则将使用此 task 的默认模型的配置。

  • tokenizer (strPreTrainedTokenizer可选) — 流水线将用于为模型编码数据的分词器。这可以是模型标识符或继承自 PreTrainedTokenizer 的实际预训练分词器。

    如果未提供,将加载给定 model 的默认分词器(如果它是字符串)。如果未指定 model 或不是字符串,则加载 config 的默认分词器(如果它是字符串)。但是,如果也未给出 config 或不是字符串,则将加载给定 task 的默认分词器。

  • feature_extractor (strPreTrainedFeatureExtractor可选) — 流水线将用于为模型编码数据的特征提取器。这可以是模型标识符或继承自 PreTrainedFeatureExtractor 的实际预训练特征提取器。

    特征提取器用于非 NLP 模型,例如语音或视觉模型以及多模态模型。多模态模型还需要传递分词器。

    如果未提供,将加载给定 model 的默认特征提取器(如果它是字符串)。如果未指定 model 或不是字符串,则加载 config 的默认特征提取器(如果它是字符串)。但是,如果也未给出 config 或不是字符串,则将加载给定 task 的默认特征提取器。

  • framework (str可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果未指定框架,将默认使用当前安装的框架。如果未指定框架且安装了两个框架,将默认使用 model 的框架,如果未提供模型,则默认使用 PyTorch。

  • revision (str可选,默认为 "main") — 传递任务名称或字符串模型标识符时:要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,因为我们使用基于 git 的系统在 huggingface.co 上存储模型和其他工件,因此 revision 可以是 git 允许的任何标识符。
  • use_fast (bool可选,默认为 True) — 是否尽可能使用快速分词器(PreTrainedTokenizerFast)。
  • use_auth_token (strbool可选) — 用作远程文件 HTTP 持有者授权的令牌。如果为 True,将使用运行 huggingface-cli login 生成的令牌(存储在 ~/.huggingface 中)。
  • device (intstrtorch.device) — 定义将在其上分配此流水线的设备(*例如*,"cpu""cuda:1""mps" 或 GPU 序号等级,如 1)。
  • device_map (strDict[str, Union[int, str, torch.device],*可选*) — 直接作为 model_kwargs 发送(只是一个更简单的快捷方式)。当存在 accelerate 库时,设置 device_map="auto" 以自动计算最优化的 device_map(有关详细信息,请参见此处)。

    不要同时使用 device_mapdevice,因为它们会冲突

  • torch_dtype (strtorch.dtype,*可选*) — 直接作为 model_kwargs 发送(只是一个更简单的快捷方式),以使用此模型的可用精度(torch.float16torch.bfloat16、… 或 "auto")。
  • trust_remote_code (bool,*可选*,默认为 False) — 是否允许在其自己的建模、配置、标记化甚至流水线文件中使用 Hub 上定义的自定义代码。此选项仅应为你信任的并且你已阅读过代码的存储库设置为 True,因为它将在你的本地机器上执行 Hub 上存在的代码。
  • model_kwargs (Dict[str, Any],*可选*) — 传递给模型的 from_pretrained(..., **model_kwargs) 函数的附加关键字参数字典。
  • kwargs (Dict[str, Any],*可选*) — 传递给特定流水线初始化的附加关键字参数(有关可能的值,请参阅相应流水线类的文档)。

返回值

流水线

适合该任务的流水线。

用于构建 流水线 的实用工厂方法。

流水线由以下部分组成

  • 负责将原始文本输入映射到标记的 标记器
  • 根据输入进行预测的 模型
  • 一些(可选的)后处理,用于增强模型的输出。

示例

>>> from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer

>>> # Sentiment analysis pipeline
>>> analyzer = pipeline("sentiment-analysis")

>>> # Question answering pipeline, specifying the checkpoint identifier
>>> oracle = pipeline(
...     "question-answering", model="distilbert/distilbert-base-cased-distilled-squad", tokenizer="google-bert/bert-base-cased"
... )

>>> # Named entity recognition pipeline, passing in a specific model and tokenizer
>>> model = AutoModelForTokenClassification.from_pretrained("dbmdz/bert-large-cased-finetuned-conll03-english")
>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")
>>> recognizer = pipeline("ner", model=model, tokenizer=tokenizer)

流水线批处理

所有流水线都可以使用批处理。只要流水线使用其流式传输功能(因此在传递列表或 Datasetgenerator 时),这就会起作用)。

from transformers import pipeline
from transformers.pipelines.pt_utils import KeyDataset
import datasets

dataset = datasets.load_dataset("imdb", name="plain_text", split="unsupervised")
pipe = pipeline("text-classification", device=0)
for out in pipe(KeyDataset(dataset, "text"), batch_size=8, truncation="only_first"):
    print(out)
    # [{'label': 'POSITIVE', 'score': 0.9998743534088135}]
    # Exactly the same output as before, but the content are passed
    # as batches to the model

然而,这并不一定意味着性能的提升。根据硬件、数据和实际使用的模型,它可能是 10 倍的加速或 5 倍的减速。

主要加速的例子

from transformers import pipeline
from torch.utils.data import Dataset
from tqdm.auto import tqdm

pipe = pipeline("text-classification", device=0)


class MyDataset(Dataset):
    def __len__(self):
        return 5000

    def __getitem__(self, i):
        return "This is a test"


dataset = MyDataset()

for batch_size in [1, 8, 64, 256]:
    print("-" * 30)
    print(f"Streaming batch_size={batch_size}")
    for out in tqdm(pipe(dataset, batch_size=batch_size), total=len(dataset)):
        pass
# On GTX 970
------------------------------
Streaming no batching
100%|██████████████████████████████████████████████████████████████████████| 5000/5000 [00:26<00:00, 187.52it/s]
------------------------------
Streaming batch_size=8
100%|█████████████████████████████████████████████████████████████████████| 5000/5000 [00:04<00:00, 1205.95it/s]
------------------------------
Streaming batch_size=64
100%|█████████████████████████████████████████████████████████████████████| 5000/5000 [00:02<00:00, 2478.24it/s]
------------------------------
Streaming batch_size=256
100%|█████████████████████████████████████████████████████████████████████| 5000/5000 [00:01<00:00, 2554.43it/s]
(diminishing returns, saturated the GPU)

主要减速的例子

class MyDataset(Dataset):
    def __len__(self):
        return 5000

    def __getitem__(self, i):
        if i % 64 == 0:
            n = 100
        else:
            n = 1
        return "This is a test" * n

与其他句子相比,这是一个偶尔出现的非常长的句子。在这种情况下,整个批次需要有 400 个标记的长度,因此整个批次将是 [64, 400] 而不是 [64, 4],从而导致严重的减速。更糟糕的是,在更大的批次上,程序会直接崩溃。

------------------------------
Streaming no batching
100%|█████████████████████████████████████████████████████████████████████| 1000/1000 [00:05<00:00, 183.69it/s]
------------------------------
Streaming batch_size=8
100%|█████████████████████████████████████████████████████████████████████| 1000/1000 [00:03<00:00, 265.74it/s]
------------------------------
Streaming batch_size=64
100%|██████████████████████████████████████████████████████████████████████| 1000/1000 [00:26<00:00, 37.80it/s]
------------------------------
Streaming batch_size=256
  0%|                                                                                 | 0/1000 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/nicolas/src/transformers/test.py", line 42, in <module>
    for out in tqdm(pipe(dataset, batch_size=256), total=len(dataset)):
....
    q = q / math.sqrt(dim_per_head)  # (bs, n_heads, q_length, dim_per_head)
RuntimeError: CUDA out of memory. Tried to allocate 376.00 MiB (GPU 0; 3.95 GiB total capacity; 1.72 GiB already allocated; 354.88 MiB free; 2.46 GiB reserved in total by PyTorch)

这个问题没有好的(通用的)解决方案,您的结果可能会因您的用例而异。经验法则

对于用户来说,经验法则是

  • 使用您的硬件,在您的负载上测量性能。测量,测量,不断测量。真实的数字是唯一的方法。

  • 如果您受限于延迟(实时产品进行推理),请不要进行批处理。

  • 如果您使用的是 CPU,请不要进行批处理。

  • 如果您使用的是吞吐量(您想在一堆静态数据上运行您的模型),在 GPU 上,那么

    • 如果您对序列长度(“自然”数据)的大小一无所知,默认情况下不要进行批处理,测量并尝试暂时添加它,添加 OOM 检查以在失败时恢复(如果您不控制序列长度,它最终会在某个时候失败。)
    • 如果您的序列长度非常规则,那么批处理更有可能非常有用,请进行测量并推动它,直到您遇到 OOM。
    • GPU 越大,批处理就越有可能更有用
  • 一旦您启用了批处理,请确保您可以很好地处理 OOM。

流水线块批处理

从某种意义上说,zero-shot-classificationquestion-answering 略微特殊,因为单个输入可能会产生模型的多次前向传递。在正常情况下,这会导致 batch_size 参数出现问题。

为了解决这个问题,这两个流水线都有些特殊,它们是 ChunkPipeline 而不是常规的 Pipeline。简而言之

preprocessed = pipe.preprocess(inputs)
model_outputs = pipe.forward(preprocessed)
outputs = pipe.postprocess(model_outputs)

现在变成

all_model_outputs = []
for preprocessed in pipe.preprocess(inputs):
    model_outputs = pipe.forward(preprocessed)
    all_model_outputs.append(model_outputs)
outputs = pipe.postprocess(all_model_outputs)

这对您的代码来说应该是非常透明的,因为流水线的使用方式是相同的。

这是一个简化的视图,因为流水线可以自动处理到!这意味着您不必关心您的输入实际上会触发多少次前向传递,您可以独立于输入优化 batch_size。上一节的注意事项仍然适用。

流水线 FP16 推理

模型可以使用 FP16 运行,这在 GPU 上可以显著提高速度并节省内存。大多数模型都不会因此遭受明显的性能损失。模型越大,性能损失的可能性就越小。

要启用 FP16 推理,您只需将 torch_dtype=torch.float16torch_dtype='float16' 传递给流水线构造函数。请注意,这只适用于具有 PyTorch 后端的模型。您的输入将在内部转换为 FP16。

流水线自定义代码

如果您想覆盖特定的流水线。

请随时为您的任务创建一个问题,流水线的目标是易于使用并支持大多数情况,因此 transformers 或许可以支持您的用例。

如果您想简单地尝试,您可以

  • 将您选择的流水线子类化
class MyPipeline(TextClassificationPipeline):
    def postprocess():
        # Your code goes here
        scores = scores * 100
        # And here


my_pipeline = MyPipeline(model=model, tokenizer=tokenizer, ...)
# or if you use *pipeline* function, then:
my_pipeline = pipeline(model="xxxx", pipeline_class=MyPipeline)

这应该可以让您执行所有您想要的自定义代码。

实现流水线

实现新的流水线

音频

可用于音频任务的流水线包括以下内容。

AudioClassificationPipeline

transformers.AudioClassificationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是一个继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • feature_extractor (SequenceFeatureExtractor) — 管道将用于为模型编码数据的特征提取器。此对象继承自 SequenceFeatureExtractor
  • modelcard (strModelCard, 可选) — 归属于此管道模型的模型卡片。
  • framework (str, 可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认使用当前安装的框架。如果未指定框架并且安装了两个框架,则默认使用 model 的框架,如果未提供模型,则默认使用 PyTorch。

  • task (str, 默认值 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler可选) — 对负责解析提供的管道参数的对象的引用。
  • device (int可选,默认为 -1) — CPU/GPU 支持的设备序号。 将此设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。 你也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16…或 "auto"
  • binary_output (bool可选,默认为 False) — 指示管道输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)发生的标志。

使用任何 AutoModelForAudioClassification 的音频分类管道。 此管道预测原始波形或音频文件的类别。 对于音频文件,应安装 ffmpeg 以支持多种音频格式。

示例

>>> from transformers import pipeline

>>> classifier = pipeline(model="superb/wav2vec2-base-superb-ks")
>>> classifier("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac")
[{'score': 0.997, 'label': '_unknown_'}, {'score': 0.002, 'label': 'left'}, {'score': 0.0, 'label': 'yes'}, {'score': 0.0, 'label': 'down'}, {'score': 0.0, 'label': 'stop'}]

管道教程中了解有关使用管道的基础知识的更多信息

此管道当前可以使用以下任务标识符从 pipeline() 加载:"audio-classification"

huggingface.co/models 上查看可用模型列表。

__call__

< >

( inputs: Union **kwargs ) 包含以下键的 `dict` 列表

参数

  • inputs (np.ndarraybytesstrdict) — 输入可以是:
    • str,表示音频文件的名称,将使用 *ffmpeg* 以正确的采样率读取文件以获取波形。这需要在系统上安装 *ffmpeg*。
    • bytes,它应该是音频文件的内容,并由 *ffmpeg* 以相同的方式解释。
    • (形状为 (n, ) 的 np.ndarray,类型为 np.float32np.float64)以正确采样率获取的原始音频(不会进行进一步检查)
    • dict 形式可用于传递以任意 `sampling_rate` 采样的原始音频,并让此管道进行重采样。dict 必须采用 {"sampling_rate": int, "raw": np.array}{"sampling_rate": int, "array": np.array} 格式,其中键 `“raw”` 或 `“array”` 用于表示原始音频波形。
  • top_k (int, *可选*, 默认值: None) — 管道将返回的顶部标签数量。如果提供的数字为 `None` 或高于模型配置中可用的标签数量,则默认为标签数量。

返回值

包含以下键的 `dict` 列表

  • label (str) — 预测的标签。
  • score (float) — 相应的概率。

将作为输入给出的序列分类。有关更多信息,请参阅 AutomaticSpeechRecognitionPipeline 文档。

AutomaticSpeechRecognitionPipeline

transformers.AutomaticSpeechRecognitionPipeline

< >

( model: PreTrainedModel feature_extractor: Union = None tokenizer: Optional = None decoder: Union = None device: Union = None torch_dtype: Union = None **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是一个继承自 PreTrainedModel(针对 PyTorch)和 TFPreTrainedModel(针对 TensorFlow)的模型。
  • feature_extractor (SequenceFeatureExtractor) — 管道将用于为模型编码波形的特征提取器。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。该对象继承自 PreTrainedTokenizer
  • decoder (pyctcdecode.BeamSearchDecoderCTC, 可选) — 可以传递 PyCTCDecode 的 BeamSearchDecoderCTC 以进行语言模型增强的解码。有关更多信息,请参阅 Wav2Vec2ProcessorWithLM
  • chunk_length_s (float, 可选, 默认为 0) — 每个块的输入长度(以秒为单位)。如果 chunk_length_s = 0,则禁用分块(默认)。

    有关如何有效使用 chunk_length_s 的更多信息,请参阅 ASR 分块博客文章

  • stride_length_s (float, 可选, 默认为 chunk_length_s / 6) — 每个块左右两侧的步幅长度(以秒为单位)。仅在 chunk_length_s > 0 时使用。这使得模型能够_看到_更多上下文并更好地推断字母,但管道会丢弃末尾的步幅位,以使最终的重构尽可能完美。

    有关如何有效使用 stride_length_s 的更多信息,请参阅 ASR 分块博客文章

  • framework (str, 可选) — 要使用的框架,对于 PyTorch 为 "pt",对于 TensorFlow 为 "tf"。必须安装指定的框架。如果没有指定框架,将默认使用当前安装的框架。如果没有指定框架并且安装了两个框架,将默认使用 model 的框架,如果没有提供模型,则默认使用 PyTorch。
  • device (Union[int, torch.device], 可选) — 用于 CPU/GPU 支持的设备序号。将其设置为 None 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。
  • torch_dtype (Union[int, torch.dtype], 可选) — 计算的数据类型 (dtype)。将其设置为 None 将使用 float32 精度。设置为 torch.float16torch.bfloat16 可分别使用半精度。

旨在提取某些音频中包含的口语文本的管道。

输入可以是原始波形或音频文件。如果是音频文件,则应安装 ffmpeg 以支持多种音频格式

示例

>>> from transformers import pipeline

>>> transcriber = pipeline(model="openai/whisper-base")
>>> transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac")
{'text': ' He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered flour-fatten sauce.'}

管道教程中了解有关使用管道的基础知识的更多信息

__call__

< >

( inputs: Union **kwargs ) Dict

参数

  • inputs (np.ndarraybytesstrdict) — 输入可以是:

    • str,它是本地音频文件的文件名,或用于下载音频文件的公共 URL 地址。将以正确的采样率读取文件,以使用 *ffmpeg* 获取波形。这需要在系统上安装 *ffmpeg*。
    • bytes,它应该是音频文件的内容,并由 *ffmpeg* 以相同的方式解释。
    • (形状为 (n,) 的 np.ndarray,类型为 np.float32np.float64) 以正确采样率采样的原始音频(不会进行进一步检查)
    • 可以使用 dict 形式传递以任意 sampling_rate 采样的原始音频,并让此管道进行重采样。字典必须采用格式 {"sampling_rate": int, "raw": np.array},可选地使用 "stride": (left: int, right: int),这可以要求管道在解码时忽略前 left 个样本和最后 right 个样本(但在推理时使用以向模型提供更多上下文)。仅将 stride 与 CTC 模型一起使用。
  • return_timestamps (可选, strbool) — 仅适用于纯 CTC 模型(Wav2Vec2、HuBERT 等)和 Whisper 模型。不适用于其他序列到序列模型。

    对于 CTC 模型,时间戳可以采用以下两种格式之一:

    • "char":流水线将返回文本中每个字符的时间戳。例如,如果您得到 [{"text": "h", "timestamp": (0.5, 0.6)}, {"text": "i", "timestamp": (0.7, 0.9)}],则意味着模型预测字母“h”在 0.5 秒后和 0.6 秒之前被说出。
    • "word":流水线将返回文本中每个单词的时间戳。例如,如果您得到 [{"text": "hi ", "timestamp": (0.5, 0.9)}, {"text": "there", "timestamp": (1.0, 1.5)}],则意味着模型预测单词“hi”在 0.5 秒后和 0.9 秒之前被说出。

    对于 Whisper 模型,时间戳可以采用以下两种格式之一:

    • "word":与上述单词级 CTC 时间戳相同。单词级时间戳是通过 *动态时间规整 (DTW)* 算法预测的,该算法通过检查交叉注意力权重来近似单词级时间戳。
    • True:流水线将返回文本中单词 *段* 的时间戳。例如,如果您得到 [{"text": " Hi there!", "timestamp": (0.5, 1.5)}],则意味着模型预测“Hi there!”段是在 0.5 秒后和 1.5 秒之前被说出的。请注意,文本段是指一个或多个单词的序列,而不是像单词级时间戳那样是单个单词。
  • generate_kwargs (dict, 可选) — 用于生成调用的 generate_config 特殊参数化字典。有关生成的完整概述,请查看 以下指南
  • max_new_tokens (int, 可选) — 要生成的最多标记数,忽略提示中的标记数。

返回值

字典

具有以下键的字典

  • text (str):识别的文本。
  • chunks (可选(, List[Dict]) 使用 return_timestamps 时,chunks 将变为一个列表,其中包含模型标识的所有各种文本块,例如* [{"text": "hi ", "timestamp": (0.5, 0.9)}, {"text": "there", "timestamp": (1.0, 1.5)}]。原始完整文本可以通过执行 "".join(chunk["text"] for chunk in output["chunks"]) 来大致恢复。

将作为输入给出的音频序列转录为文本。有关更多信息,请参阅 AutomaticSpeechRecognitionPipeline 文档。

TextToAudioPipeline

transformers.TextToAudioPipeline

< >

( *args vocoder = None sampling_rate = None **kwargs )

使用任何 AutoModelForTextToWaveformAutoModelForTextToSpectrogram 的文本到音频生成流水线。此流水线根据输入文本和可选的其他条件输入生成音频文件。

示例

>>> from transformers import pipeline

>>> pipe = pipeline(model="suno/bark-small")
>>> output = pipe("Hey it's HuggingFace on the phone!")

>>> audio = output["audio"]
>>> sampling_rate = output["sampling_rate"]

管道教程中了解有关使用管道的基础知识的更多信息

您可以使用 TextToAudioPipeline.__call__.forward_paramsTextToAudioPipeline.__call__.generate_kwargs 指定传递给模型的参数。

示例

>>> from transformers import pipeline

>>> music_generator = pipeline(task="text-to-audio", model="facebook/musicgen-small", framework="pt")

>>> # diversify the music generation by adding randomness with a high temperature and set a maximum music length
>>> generate_kwargs = {
...     "do_sample": True,
...     "temperature": 0.7,
...     "max_new_tokens": 35,
... }

>>> outputs = music_generator("Techno music with high melodic riffs", generate_kwargs=generate_kwargs)

此流水线目前可以使用以下任务标识符从 pipeline() 加载:"text-to-speech""text-to-audio"

请在 huggingface.co/models 上查看可用模型列表。

__call__

< >

( text_inputs: Union **forward_params ) 一个 dictdict 列表

参数

  • text_inputs (strList[str]) — 要生成的文本。
  • forward_params (dict, 可选) — 传递给模型生成/前向方法的参数。forward_params 始终传递给底层模型。
  • generate_kwargs (dict, 可选) — 用于生成调用的 generate_config 特殊参数化字典。有关生成的完整概述,请查看 以下指南。仅当后者是生成模型时,才会将 generate_kwargs 传递给底层模型。

返回值

一个 dictdict 列表

字典有两个键

  • audio (形状为 (nb_channels, audio_length)np.ndarray) — 生成的音频波形。
  • sampling_rate (int) — 生成的音频波形的采样率。

从输入生成语音/音频。有关更多信息,请参阅 TextToAudioPipeline 文档。

ZeroShotAudioClassificationPipeline

class transformers.ZeroShotAudioClassificationPipeline

< >

( **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,则需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • feature_extractor (SequenceFeatureExtractor) — 管道将用于为模型编码数据的特征提取器。此对象继承自 SequenceFeatureExtractor
  • modelcard (strModelCard,可选) — 此管道模型对应的模型卡片。
  • framework (str,可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int,可选,默认为 8) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的worker数量。
  • batch_size (int, 可选, 默认为 1) — 当管道将使用 DataLoader 时(当传递数据集时,在 Pytorch 模型的 GPU 上),要使用的批次大小,对于推理,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以便为此模型使用可用的精度(torch.float16torch.bfloat16 等或 "auto"
  • binary_output (bool, 可选, 默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用 ClapModel 的零样本音频分类管道。当您提供音频和一组 candidate_labels 时,此管道会预测音频的类别。

默认的 hypothesis_template 是: "This is a sound of {}."。请确保您已更新它以供使用。

示例

>>> from transformers import pipeline
>>> from datasets import load_dataset

>>> dataset = load_dataset("ashraq/esc50")
>>> audio = next(iter(dataset["train"]["audio"]))["array"]
>>> classifier = pipeline(task="zero-shot-audio-classification", model="laion/clap-htsat-unfused")
>>> classifier(audio, candidate_labels=["Sound of a dog", "Sound of vaccum cleaner"])
[{'score': 0.9996, 'label': 'Sound of a dog'}, {'score': 0.0004, 'label': 'Sound of vaccum cleaner'}]

管道教程 中了解更多关于使用管道的基础知识 此音频分类管道目前可以从 pipeline() 使用以下任务标识符加载: "zero-shot-audio-classification"。请参阅 huggingface.co/models 上的可用模型列表。

__call__

< >

( audios: Union **kwargs )

参数

  • audios (str, List[str], np.arrayList[np.array]) — 该管道处理三种类型的输入:
    • 包含指向音频的 http 链接的字符串
    • 包含音频本地路径的字符串
    • 加载到 numpy 中的音频
  • candidate_labels (List[str]) — 此音频的候选标签。它们将使用 *hypothesis_template* 进行格式化。
  • hypothesis_template (str, 可选, 默认为 "This is a sound of {}") — 与 *candidate_labels* 结合使用的格式,通过将占位符替换为 candidate_labels 来尝试进行音频分类。如果 *candidate_labels* 已经格式化,则传递 “{}”。

为作为输入传递的音频分配标签。

计算机视觉

可用于计算机视觉任务的管道包括以下内容。

DepthEstimationPipeline

transformers.DepthEstimationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • image_processor (BaseImageProcessor) — 管道将使用的图像处理器,用于为模型编码数据。 该对象继承自 BaseImageProcessor
  • modelcard (strModelCard, 可选) — 归属于此管道模型的模型卡片。
  • framework (str, 可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且安装了两个框架,将默认使用 model 的框架,或者在未提供模型的情况下默认使用 PyTorch。

  • task (str, 默认为 "") — 管道的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int, 可选, 默认为 1) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批次大小。对于推理来说,这并不总是有益的,请阅读 使用管道的批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int可选,默认为 -1) — 支持 CPU/GPU 的设备序号。将其设置为 -1 将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16……或 "auto"
  • binary_output (bool可选,默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用任何 AutoModelForDepthEstimation 的深度估计管道。此管道预测图像的深度。

示例

>>> from transformers import pipeline

>>> depth_estimator = pipeline(task="depth-estimation", model="LiheYoung/depth-anything-base-hf")
>>> output = depth_estimator("http://images.cocodataset.org/val2017/000000039769.jpg")
>>> # This is a tensor with the values being the depth expressed in meters for each pixel
>>> output["predicted_depth"].shape
torch.Size([1, 384, 384])

管道教程中了解有关使用管道的基础知识的更多信息

此深度估计管道目前可以使用以下任务标识符从 pipeline() 加载:"depth-estimation"

有关可用模型列表,请参阅 huggingface.co/models

__call__

< >

( images: Union **kwargs )

参数

  • images (strList[str]PIL.ImageList[PIL.Image]) — 管道处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接在 PIL 中加载的图像

    管道接受单个图像或一批图像,然后必须将其作为字符串传递。批处理中的图像必须都采用相同的格式:全部为 http 链接、全部为本地路径或全部为 PIL 图像。

  • timeout (float可选,默认为 None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。

预测作为输入传递的图像的深度。

ImageClassificationPipeline

class transformers.ImageClassificationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PreTrainedModel (对于 PyTorch) 和 TFPreTrainedModel (对于 TensorFlow) 的模型。
  • image_processor (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。该对象继承自 BaseImageProcessor
  • modelcard (strModelCard可选) — 归属于此管道模型的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架并且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当流水线使用 DataLoader 时(传递数据集时,在 GPU 上运行 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当流水线使用 DataLoader 时(传递数据集时,在 GPU 上运行 Pytorch 模型),要使用的批大小,对于推理来说,这并不总是有益的,请阅读使用流水线进行批处理
  • args_parser (ArgumentHandler可选) — 负责解析提供的流水线参数的对象的引用。
  • device (int可选,默认为 -1) — 用于 CPU/GPU 支持的设备序号。将其设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16……或 "auto")。
  • binary_output (bool可选,默认为 False) — 指示流水线输出是否应采用序列化格式(例如,pickle)或原始输出数据(例如,文本)的标志。
  • function_to_apply (str可选,默认为 "default") — 应用于模型输出以检索分数的函数。接受四个不同的值:

    • "default":如果模型只有一个标签,将对输出应用 sigmoid 函数。如果模型有多个标签,将对输出应用 softmax 函数。
    • "sigmoid":对输出应用 sigmoid 函数。
    • "softmax":对输出应用 softmax 函数。
    • "none":不对输出应用任何函数。

使用任何 AutoModelForImageClassification 的图像分类流水线。此流水线预测图像的类别。

示例

>>> from transformers import pipeline

>>> classifier = pipeline(model="microsoft/beit-base-patch16-224-pt22k-ft22k")
>>> classifier("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'score': 0.442, 'label': 'macaw'}, {'score': 0.088, 'label': 'popinjay'}, {'score': 0.075, 'label': 'parrot'}, {'score': 0.073, 'label': 'parodist, lampooner'}, {'score': 0.046, 'label': 'poll, poll_parrot'}]

管道教程中了解有关使用管道的基础知识的更多信息

当前可以使用以下任务标识符从 pipeline() 加载此图像分类流水线: "image-classification"

请在 huggingface.co/models 上查看可用模型列表。

__call__

< >

( images: Union **kwargs )

参数

  • images (str, List[str], PIL.ImageList[PIL.Image]) — 该流水线处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    该流水线接受单张图像或一批图像,然后必须将其作为字符串传递。一批图像中的所有图像必须采用相同的格式:全部为 http 链接、全部为本地路径或全部为 PIL 图像。

  • function_to_apply (str, 可选, 默认为 "default") — 要应用于模型输出以检索得分的函数。接受四个不同的值:

    如果未指定此参数,则将根据标签数量应用以下函数:

    • 如果模型具有单个标签,则将对输出应用 sigmoid 函数。
    • 如果模型具有多个标签,则将对输出应用 softmax 函数。

    可能的值为:

    • "sigmoid":对输出应用 sigmoid 函数。
    • "softmax":对输出应用 softmax 函数。
    • "none":不对输出应用任何函数。
  • top_k (int, 可选, 默认为 5) — 流水线将返回的顶部标签数量。如果提供的数量高于模型配置中可用的标签数量,则默认为标签数量。
  • timeout (float, 可选, 默认为 None) — 从网络获取图像的最长时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。

将标签分配给作为输入传递的图像。

ImageSegmentationPipeline

transformers.ImageSegmentationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的模型。
  • image_processor (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。该对象继承自 BaseImageProcessor
  • modelcard (strModelCard,可选) — 归属于此管道的模型的模型卡片。
  • framework (str,可选) — 要使用的框架,PyTorch 为 "pt" 或 TensorFlow 为 "tf"。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,或者在未提供模型的情况下默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int,可选,默认为 8) — 当管道将使用 *DataLoader* 时(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当 pipeline 使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),使用的批次大小,对于推理,这并不总是有益的,请阅读使用 pipeline 进行批处理
  • args_parser (ArgumentHandler可选) — 负责解析提供的 pipeline 参数的对象的引用。
  • device (int可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度 (torch.float16torch.bfloat16、… 或 "auto")。
  • binary_output (bool可选,默认为 False) — 指示 pipeline 输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用任何 AutoModelForXXXSegmentation 的图像分割 pipeline。此 pipeline 预测对象及其类别的掩码。

示例

>>> from transformers import pipeline

>>> segmenter = pipeline(model="facebook/detr-resnet-50-panoptic")
>>> segments = segmenter("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
>>> len(segments)
2

>>> segments[0]["label"]
'bird'

>>> segments[1]["label"]
'bird'

>>> type(segments[0]["mask"])  # This is a black and white mask showing where is the bird on the original image.
<class 'PIL.Image.Image'>

>>> segments[0]["mask"].size
(768, 512)

此图像分割 pipeline 目前可以从 pipeline() 使用以下任务标识符加载:"image-segmentation"

请参阅 huggingface.co/models 上的可用模型列表。

__call__

< >

( images **kwargs )

参数

  • images (str, List[str], PIL.ImageList[PIL.Image]) — 该流水线处理三种类型的图像:

    • 包含指向图像的 HTTP(S) 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    该流水线接受单个图像或一批图像。一批图像必须采用相同的格式:全部为 HTTP(S) 链接、全部为本地路径或全部为 PIL 图像。

  • subtask (str可选) — 要执行的分割任务,根据模型功能选择 [semanticinstancepanoptic]。如果未设置,流水线将尝试按以下顺序解析:panopticinstancesemantic
  • threshold (float可选,默认为 0.9) — 用于过滤掉预测掩码的概率阈值。
  • mask_threshold (float可选,默认为 0.5) — 将预测掩码转换为二进制值时使用的阈值。
  • overlap_mask_area_threshold (float可选,默认为 0.5) — 用于消除小的、不连续段的掩码重叠阈值。
  • timeout (float可选,默认为 None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会一直阻塞。

对作为输入传递的图像执行分割(检测掩码和类别)。

ImageToImagePipeline

transformers.ImageToImagePipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的模型。
  • image_processor (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。该对象继承自 BaseImageProcessor
  • modelcard (strModelCard可选) — 归属于此管道模型的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且安装了两个框架,将默认使用 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当流水线将使用 DataLoader 时(在传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理,这并不总是有益的,请阅读使用流水线进行批处理
  • args_parser (ArgumentHandler可选) — 负责解析提供的流水线参数的对象的引用。
  • device (int可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16… 或 "auto")
  • binary_output (bool可选,默认为 False) — 指示流水线输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用任何 AutoModelForImageToImage 的图像到图像流水线。此流水线根据先前的图像输入生成图像。

示例

>>> from PIL import Image
>>> import requests

>>> from transformers import pipeline

>>> upscaler = pipeline("image-to-image", model="caidas/swin2SR-classical-sr-x2-64")
>>> img = Image.open(requests.get("http://images.cocodataset.org/val2017/000000039769.jpg", stream=True).raw)
>>> img = img.resize((64, 64))
>>> upscaled_img = upscaler(img)
>>> img.size
(64, 64)

>>> upscaled_img.size
(144, 144)

此图像到图像流水线目前可以从 pipeline() 使用以下任务标识符加载:"image-to-image"

请参阅 huggingface.co/models 上的可用模型列表。

__call__

< >

( images: Union **kwargs )

参数

  • images (strList[str]PIL.ImageList[PIL.Image]) — 流水线处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接在 PIL 中加载的图像

    流水线接受单个图像或一批图像,然后必须将其作为字符串传递。一批图像中的图像必须都采用相同的格式:全部为 http 链接、全部为本地路径或全部为 PIL 图像。

  • **timeout** (``float``, *可选*, 默认值为 None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不使用超时,并且调用可能会永远阻塞。

转换作为输入传递的图像。

ObjectDetectionPipeline

class transformers.ObjectDetectionPipeline

< >

( *args **kwargs )

参数

  • **model** (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的模型。
  • **image_processor** (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。此对象继承自 BaseImageProcessor
  • **modelcard** (``str`` 或 ``ModelCard``, *可选*) — 此管道模型对应的模型卡片。
  • **framework** (``str``, *可选*) — 要使用的框架,``"pt"`` 表示 PyTorch,``"tf"`` 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架并且安装了两个框架,则默认为 ``model`` 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int,可选,默认为 8) — 当管道将使用 DataLoader 时(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) — 当管道将使用 DataLoader 时(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的批次大小,对于推理,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler,可选) — 负责解析提供的管道参数的对象的引用。
  • device (int,可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool,可选,默认为 False) — 指示管道输出是否应以序列化格式(即 pickle)或作为原始输出数据(例如文本)发生的标志。

使用任何 AutoModelForObjectDetection 的目标检测管道。此管道预测目标的边界框及其类别。

示例

>>> from transformers import pipeline

>>> detector = pipeline(model="facebook/detr-resnet-50")
>>> detector("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'score': 0.997, 'label': 'bird', 'box': {'xmin': 69, 'ymin': 171, 'xmax': 396, 'ymax': 507}}, {'score': 0.999, 'label': 'bird', 'box': {'xmin': 398, 'ymin': 105, 'xmax': 767, 'ymax': 507}}]

>>> # x, y  are expressed relative to the top left hand corner.

管道教程中了解有关使用管道的基础知识的更多信息

此目标检测管道目前可以从pipeline() 使用以下任务标识符加载:"object-detection"

请参阅huggingface.co/models 上的可用模型列表。

__call__

< >

( *args **kwargs )

参数

  • images (str, List[str], PIL.ImageList[PIL.Image]) — 此流水线处理三种类型的图像:

    • 包含指向图像的 HTTP(S) 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    此流水线接受单个图像或一批图像。一批图像中的图像必须采用相同的格式:全部为 HTTP(S) 链接、全部为本地路径或全部为 PIL 图像。

  • threshold (float, 可选, 默认值: 0.5) — 进行预测所需的概率。
  • timeout (float, 可选, 默认值: None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。

检测作为输入传递的图像中的对象(边界框和类别)。

VideoClassificationPipeline

transformers.VideoClassificationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 流水线将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型;对于 TensorFlow,则需要是继承自 TFPreTrainedModel 的模型。
  • image_processor (BaseImageProcessor) — 流水线将使用该图像处理器对模型的数据进行编码。 该对象继承自 BaseImageProcessor
  • modelcard (strModelCard可选) — 归属于此流水线模型的模型卡片。
  • framework (str可选) — 要使用的框架,对于 PyTorch 为 "pt",对于 TensorFlow 为 "tf"。 必须安装指定的框架。

    如果未指定框架,将默认为当前安装的框架。 如果未指定框架并且安装了两个框架,将默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 流水线的任务标识符。
  • num_workers (int可选,默认为 8) — 当流水线使用 *DataLoader* 时(在传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当流水线使用 *DataLoader* 时(在传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批大小,对于推理,这并不总是有益的,请阅读 使用流水线进行批处理 .
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的流水线参数的对象的引用。
  • device (int, 可选, 默认为 -1) — CPU/GPU 支持的设备序号。设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool, 可选, 默认为 False) — 标志,指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)。

使用任何 AutoModelForVideoClassification 的视频分类管道。此管道预测视频的类别。

此视频分类管道目前可以使用以下任务标识符从 pipeline() 加载:"video-classification"

请参阅 huggingface.co/models 上的可用模型列表。

__call__

< >

( videos: Union **kwargs )

参数

  • videos (str, List[str]) — 管道处理三种类型的视频:

    • 包含指向视频的 http 链接的字符串
    • 包含视频本地路径的字符串

    管道接受单个视频或一批视频,然后必须将其作为字符串传递。一批视频中的所有视频必须格式相同:全部为 http 链接或全部为本地路径。

  • top_k (int, 可选, 默认为 5) — 管道将返回的前几个标签的数量。如果提供的数量高于模型配置中可用的标签数量,则默认为标签数量。
  • **num_frames** (``int``,*可选*,默认为 ``self.model.config.num_frames``) — 用于运行分类的视频帧数。如果未提供,则默认为模型配置中指定的帧数。
  • **frame_sampling_rate** (``int``,*可选*,默认为 1) — 用于从视频中选择帧的采样率。如果未提供,则默认为 1,即使用每一帧。

为作为输入传递的视频分配标签。

ZeroShotImageClassificationPipeline

transformers.ZeroShotImageClassificationPipeline

< >

( **kwargs )

参数

  • **model** ( PreTrainedModelTFPreTrainedModel ) — 管道将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,这需要是继承自 TFPreTrainedModel 的模型。
  • **image_processor** ( BaseImageProcessor ) — 管道将用于对模型的数据进行编码的图像处理器。此对象继承自 BaseImageProcessor
  • **modelcard** (``str`` 或 ``ModelCard``,*可选*) — 归属于此管道的模型的模型卡。
  • framework (str,可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架并且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 流水线的任务标识符。
  • num_workers (int,可选,默认为 8) — 当流水线将使用 DataLoader 时(在传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) — 当流水线将使用 DataLoader 时(在传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批处理大小,对于推理来说,这并不总是有益的,请阅读使用流水线进行批处理
  • args_parser (ArgumentHandler,可选) — 负责解析提供的流水线参数的对象的引用。
  • device (int,可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度 (torch.float16torch.bfloat16... 或 "auto") 。
  • binary_output (bool可选,默认为 False) — 指示流水线输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用 CLIPModel 的零样本图像分类流水线。当您提供一张图像和一组 candidate_labels 时,此流水线会预测图像的类别。

示例

>>> from transformers import pipeline

>>> classifier = pipeline(model="google/siglip-so400m-patch14-384")
>>> classifier(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png",
...     candidate_labels=["animals", "humans", "landscape"],
... )
[{'score': 0.965, 'label': 'animals'}, {'score': 0.03, 'label': 'humans'}, {'score': 0.005, 'label': 'landscape'}]

>>> classifier(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png",
...     candidate_labels=["black and white", "photorealist", "painting"],
... )
[{'score': 0.996, 'label': 'black and white'}, {'score': 0.003, 'label': 'photorealist'}, {'score': 0.0, 'label': 'painting'}]

管道教程中了解有关使用管道的基础知识的更多信息

此图像分类流水线当前可以使用以下任务标识符从 pipeline() 加载:"zero-shot-image-classification"

请在 huggingface.co/models 上查看可用模型列表。

__call__

< >

( images: Union **kwargs )

参数

  • images (strList[str]PIL.ImageList[PIL.Image]) — 该流水线处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像
  • candidate_labels (List[str]) — 此图像的候选标签。它们将使用 hypothesis_template 格式化。
  • hypothesis_template (str可选,默认为 "This is a photo of {}") — 与 candidate_labels 结合使用的格式,用于尝试通过将占位符替换为 candidate_labels 来进行图像分类。如果 candidate_labels 已经格式化,则传递“{}”。
  • timeout (float可选,默认为 None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。
  • tokenizer_kwargs (dict可选) — 传递给分词器的其他关键字参数字典。

将标签分配给作为输入传递的图像。

ZeroShotObjectDetectionPipeline

transformers.ZeroShotObjectDetectionPipeline

< >

( **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,则需要是继承自 TFPreTrainedModel 的模型。
  • image_processor (BaseImageProcessor) — 管道将用于对模型数据进行编码的图像处理器。此对象继承自 BaseImageProcessor
  • modelcard (strModelCard, 可选) — 此管道模型归属的模型卡片。
  • framework (str, 可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架并且同时安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str, 默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler可选) — 对负责解析提供的管道参数的对象的引用。
  • device (int可选,默认为 -1) — 用于 CPU/GPU 支持的设备序号。 将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。 您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度 (torch.float16torch.bfloat16、… 或 "auto")
  • binary_output (bool可选,默认为 False) — 标志,指示管道的输出是否应采用序列化格式(即 pickle)或作为原始输出数据(例如文本)。

使用 OwlViTForObjectDetection 的零样本目标检测管道。 当您提供图像和一组 candidate_labels 时,此管道会预测对象的边界框。

示例

>>> from transformers import pipeline

>>> detector = pipeline(model="google/owlvit-base-patch32", task="zero-shot-object-detection")
>>> detector(
...     "http://images.cocodataset.org/val2017/000000039769.jpg",
...     candidate_labels=["cat", "couch"],
... )
[{'score': 0.287, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}}, {'score': 0.254, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}}, {'score': 0.121, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}}]

>>> detector(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png",
...     candidate_labels=["head", "bird"],
... )
[{'score': 0.119, 'label': 'bird', 'box': {'xmin': 71, 'ymin': 170, 'xmax': 410, 'ymax': 508}}]

管道教程中了解有关使用管道的基础知识的更多信息

此目标检测管道目前可以从 pipeline() 使用以下任务标识符加载:"zero-shot-object-detection"

请参阅 huggingface.co/models 上的可用模型列表。

__call__

< >

( image: Union candidate_labels: Union = None **kwargs )

参数

  • image (str, PIL.ImageList[Dict[str, Any]]) — 管道处理三种类型的图像:

    • 包含指向图像的 http url 的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    您可以使用此参数直接发送图像列表、数据集或生成器,如下所示:

检测作为输入传递的图像中的对象(边界框和类别)。

自然语言处理

可用于自然语言处理任务的管道包括以下内容。

FillMaskPipeline

transformers.FillMaskPipeline

< >

( model: Union tokenizer: Optional = None feature_extractor: Optional = None image_processor: Optional = None modelcard: Optional = None framework: Optional = None task: str = '' args_parser: ArgumentHandler = None device: Union = None torch_dtype: Union = None binary_output: bool = False **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。 对于 PyTorch,这需要是继承自 PreTrainedModel 的模型; 对于 TensorFlow,这需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于对模型数据进行编码的分词器。 该对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard, 可选) — 模型卡归属于该管道的模型。
  • framework (str, 可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。 必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。 如果未指定框架并且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str, 默认为 "") — 管道的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当管道将使用 DataLoader 时(当传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的worker数量。
  • batch_size (int, 可选, 默认为 1) — 当管道将使用 DataLoader 时(当传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的批次大小,对于推理,这并不总是有益的,请阅读 使用管道进行批处理 .
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool, 可选, 默认为 False) — 指示管道输出是否应采用序列化格式(例如,pickle)或原始输出数据(例如,文本)的标志。
  • top_k (int, 可选, 默认为 5) — 要返回的预测数量。
  • targets (strList[str], 可选) — 传递时,模型会将分数限制为传递的目标,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,它们将被标记化,并且将使用第一个结果标记(带有警告,这可能会比较慢)。
  • tokenizer_kwargs (dict, 可选) — 传递给分词器的其他关键字参数字典。

使用任何 ModelWithLMHead 的掩码语言建模预测管道。有关详细信息,请参阅掩码语言建模示例

示例

>>> from transformers import pipeline

>>> fill_masker = pipeline(model="google-bert/bert-base-uncased")
>>> fill_masker("This is a simple [MASK].")
[{'score': 0.042, 'token': 3291, 'token_str': 'problem', 'sequence': 'this is a simple problem.'}, {'score': 0.031, 'token': 3160, 'token_str': 'question', 'sequence': 'this is a simple question.'}, {'score': 0.03, 'token': 8522, 'token_str': 'equation', 'sequence': 'this is a simple equation.'}, {'score': 0.027, 'token': 2028, 'token_str': 'one', 'sequence': 'this is a simple one.'}, {'score': 0.024, 'token': 3627, 'token_str': 'rule', 'sequence': 'this is a simple rule.'}]

管道教程中了解有关使用管道的基础知识的更多信息

此掩码填充管道目前可以使用以下任务标识符从 pipeline() 加载:"fill-mask"

此管道可以使用的模型是使用掩码语言建模目标训练的模型,包括库中的双向模型。请参阅 huggingface.co/models 上最新的可用模型列表。

此管道仅适用于只有一个标记被掩码的输入。实验性:我们添加了对多个掩码的支持。返回值是原始模型输出,对应于不相交概率,其中人们可能期望联合概率(请参阅 讨论)。

此管道现在支持 tokenizer_kwargs。例如,请尝试

>>> from transformers import pipeline

>>> fill_masker = pipeline(model="google-bert/bert-base-uncased")
>>> tokenizer_kwargs = {"truncation": True}
>>> fill_masker(
...     "This is a simple [MASK]. " + "...with a large amount of repeated text appended. " * 100,
...     tokenizer_kwargs=tokenizer_kwargs,
... )

__call__

< >

( inputs *args **kwargs ) 列表或列表的列表,其中包含 dict

参数

  • args (strList[str]) — 一个或多个带有掩码标记的文本(或一个提示列表)。
  • targets (strList[str], 可选) — 传递时,模型会将分数限制在传递的目标,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,它们将被标记化,并将使用第一个结果标记(会发出警告,并且速度可能会变慢)。
  • top_k (int, 可选) — 传递时,覆盖要返回的预测数量。

返回值

列表或列表的列表,其中包含 dict

每个结果都以字典列表的形式出现,包含以下键

  • sequence (str) — 带有掩码标记预测的相应输入。
  • score (float) — 相应的概率。
  • token (int) — 预测的标记 ID(用于替换被掩码的标记)。
  • token_str (str) — 预测的标记(用于替换被掩码的标记)。

填充作为输入给出的文本中的掩码标记。

QuestionAnsweringPipeline

transformers.QuestionAnsweringPipeline

< >

( model: Union tokenizer: PreTrainedTokenizer modelcard: Optional = None framework: Optional = None task: str = '' **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是一个继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 归属于此管道模型的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 *DataLoader* 时(当传递数据集时,在 GPU 上为 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 *DataLoader* 时(当传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认值为 -1) — CPU/GPU 支持的设备序号。 将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。 您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool, 可选, 默认值为 False) — 标志,指示管道输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)进行。

使用任何 ModelForQuestionAnswering 的问答管道。 有关更多信息,请参阅问答示例

示例

>>> from transformers import pipeline

>>> oracle = pipeline(model="deepset/roberta-base-squad2")
>>> oracle(question="Where do I live?", context="My name is Wolfgang and I live in Berlin")
{'score': 0.9191, 'start': 34, 'end': 40, 'answer': 'Berlin'}

管道教程中了解有关使用管道的基础知识的更多信息

此问答管道当前可以使用以下任务标识符从 pipeline() 加载:"question-answering"

此管道可以使用的模型是在问答任务上微调过的模型。 有关可用模型的最新列表,请参阅 huggingface.co/models

__call__

< >

( *args **kwargs ) 一个 dict 或一个 dict 列表

参数

  • args (SquadExampleSquadExample 列表) — 包含问题和上下文的 SquadExample 或多个 SquadExample
  • X (SquadExampleSquadExample 的列表,可选) — 包含问题和上下文的单个或多个 SquadExample(将以与作为第一个位置参数传递时相同的方式处理)。
  • data (SquadExampleSquadExample 的列表,可选) — 包含问题和上下文的单个或多个 SquadExample(将以与作为第一个位置参数传递时相同的方式处理)。
  • question (strList[str]) — 一个或多个问题(必须与 context 参数结合使用)。
  • context (strList[str]) — 与问题关联的一个或多个上下文(必须与 question 参数结合使用)。
  • topk (int, 可选, 默认值为 1) — 要返回的答案数量(将按可能性顺序选择)。 请注意,如果上下文中没有足够的选项可用,我们将返回少于 topk 个答案。
  • doc_stride (int, 可选, 默认值为 128) — 如果上下文太长而无法与模型的问题相匹配,它将被拆分为几块,并带有一些重叠。 此参数控制该重叠的大小。
  • max_answer_len (int, 可选, 默认值为 15) — 预测答案的最大长度(例如,仅考虑长度较短的答案)。
  • max_seq_len (int, 可选, 默认为 384) — 传递给模型的每个块中句子总长度(上下文 + 问题)的最大长度(以标记为单位)。如果需要,上下文将被分割成几个块(使用 doc_stride 作为重叠)。
  • max_question_len (int, 可选, 默认为 64) — 问题标记化后的最大长度。如果需要,它将被截断。
  • handle_impossible_answer (bool, 可选, 默认为 False) — 是否接受“不可能”作为答案。
  • align_to_words (bool, 可选, 默认为 True) — 尝试将答案与真实单词对齐。提高空格分隔语言的质量。可能会对非空格分隔语言(如日语或中文)产生负面影响

返回值

一个 dictdict 列表

每个结果都以字典的形式返回,包含以下键

  • score (float) — 与答案相关的概率。
  • start (int) — 答案的字符起始索引(在输入的标记化版本中)。
  • end (int) — 答案的字符结束索引(在输入的标记化版本中)。
  • answer (str) — 问题的答案。

使用上下文回答给定的问题。

create_sample

< >

( question: Union context: Union ) 一个或多个 SquadExample

参数

  • question (strList[str]) — 提出的问题。
  • context (strList[str]) — 我们将在其中寻找答案的上下文。

返回值

一个或多个 SquadExample

将问题和上下文分组后的对应 SquadExample

QuestionAnsweringPipeline 在内部利用了 SquadExample。这个辅助方法封装了将问题和上下文转换为 SquadExample 的所有逻辑。

我们目前支持抽取式问答。

span_to_answer

< >

( text: str start: int end: int ) 像 `{‘answer’

参数

  • text (str) — 要从中提取答案的实际上下文。
  • start (int) — 答案开始标记索引。
  • end (int) — 答案结束标记索引。

返回值

像 `{‘answer’

str, ‘start’: int, ‘end’: int}` 这样的字典

当从标记概率解码时,此方法将标记索引映射到初始上下文中的实际单词。

SummarizationPipeline

transformers.SummarizationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是一个继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。该对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard, 可选) — 归属于该管道模型的模型卡片。
  • framework (str, 可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果没有指定框架,则默认为当前安装的框架。如果没有指定框架并且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str, 默认为 "") — 管道的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当管道将使用 *DataLoader* 时(当传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int, 可选, 默认为 1) — 当管道将使用 *DataLoader* 时(当传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的批次大小,对于推理来说,这并不总是 beneficial 的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认值 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。你也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16…… 或 "auto"
  • binary_output (bool, 可选, 默认值 False) — 标志,指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)。

对新闻文章和其他文档进行摘要。

此摘要管道目前可以使用以下任务标识符从 pipeline() 加载:"summarization"

此管道可以使用的模型是在摘要任务上微调的模型,目前是“*bart-large-cnn*”、“*google-t5/t5-small*”、“*google-t5/t5-base*”、“*google-t5/t5-large*”、“*google-t5/t5-3b*”、“*google-t5/t5-11b*”。有关可用模型的最新列表,请参阅 huggingface.co/models。有关可用参数的列表,请参阅 以下文档

用法

# use bart in pytorch
summarizer = pipeline("summarization")
summarizer("An apple a day, keeps the doctor away", min_length=5, max_length=20)

# use t5 in tf
summarizer = pipeline("summarization", model="google-t5/t5-base", tokenizer="google-t5/t5-base", framework="tf")
summarizer("An apple a day, keeps the doctor away", min_length=5, max_length=20)

__call__

< >

( *args **kwargs ) 列表或 dict 列表的列表

参数

  • documents (strList[str]) — 要进行摘要的一篇或多篇文章(或一篇文章列表)。
  • return_text (bool, 可选, 默认值 True) — 是否在输出中包含解码后的文本
  • return_tensors (bool, 可选, 默认值为 False) — 是否在输出中包含预测的张量(作为标记索引)。
  • clean_up_tokenization_spaces (bool, 可选, 默认值为 False) — 是否清除文本输出中潜在的额外空格。 generate_kwargs — 要传递给模型的 generate 方法的附加关键字参数(请参阅此处的框架对应的 generate 方法)。

返回值

列表或列表的列表,其中包含 dict

每个结果都以字典的形式返回,包含以下键

  • summary_text (str, 当 return_text=True 时出现) — 对应输入的摘要。
  • summary_token_ids (torch.Tensortf.Tensor, 当 return_tensors=True 时出现) — 摘要的标记 ID。

总结作为输入给出的文本。

TableQuestionAnsweringPipeline

class transformers.TableQuestionAnsweringPipeline

< >

( args_parser = <transformers.pipelines.table_question_answering.TableQuestionAnsweringArgumentHandler object at 0x7f52082caf50> *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型;对于 TensorFlow,这需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard,可选) — 此管道模型对应的模型卡片。
  • framework (str,可选) — 要使用的框架,对于 PyTorch 为 "pt",对于 TensorFlow 为 "tf"。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架并且安装了两个框架,则默认为 model 的框架,或者在未提供模型的情况下默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int,可选,默认为 8) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小。对于推理,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler,可选) — 负责解析提供的管道参数的对象的引用。
  • device (int,可选,默认为 -1) — CPU/GPU 支持的设备序号。设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs (只是一个更简单的快捷方式) 发送,以便使用此模型可用的精度 (torch.float16torch.bfloat16...或 "auto")
  • binary_output (bool, 可选, 默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用 ModelForTableQuestionAnswering 的表格问答管道。此管道仅在 PyTorch 中可用。

示例

>>> from transformers import pipeline

>>> oracle = pipeline(model="google/tapas-base-finetuned-wtq")
>>> table = {
...     "Repository": ["Transformers", "Datasets", "Tokenizers"],
...     "Stars": ["36542", "4512", "3934"],
...     "Contributors": ["651", "77", "34"],
...     "Programming language": ["Python", "Python", "Rust, Python and NodeJS"],
... }
>>> oracle(query="How many stars does the transformers repository have?", table=table)
{'answer': 'AVERAGE > 36542', 'coordinates': [(0, 1)], 'cells': ['36542'], 'aggregator': 'AVERAGE'}

管道教程中了解有关使用管道的基础知识的更多信息

此表格问答管道目前可以使用以下任务标识符从 pipeline() 加载:"table-question-answering"

此管道可以使用的模型是在表格问答任务上微调过的模型。请参阅 huggingface.co/models 上最新的可用模型列表。

__call__

< >

( *args **kwargs ) 包含结果的字典或字典列表

参数

  • table (pd.DataFrameDict) — Pandas DataFrame 或将转换为包含所有表格值的 DataFrame 的字典。有关字典示例,请参见上文。
  • query (strList[str]) — 将与表格一起发送到模型的查询或查询列表。
  • sequential (bool, 可选, 默认为 False) — 是否按顺序或批量进行推理。批量处理速度更快,但像 SQA 这样的模型需要按顺序进行推理,才能在其对话性质的情况下提取序列内的关系。
  • **padding** (``bool``, ``str`` 或 PaddingStrategy, *可选*, 默认值: ``False``) — 激活并控制填充。接受以下值:

    • ``True`` 或 ``'longest'``:填充到批次中最长序列的长度(如果只提供单个序列,则不进行填充)。
    • ``'max_length'``:填充到使用参数 ``max_length`` 指定的最大长度,如果未提供该参数,则填充到模型可接受的最大输入长度。
    • ``False`` 或 ``'do_not_pad'``(默认值):不填充(即,可以输出包含不同长度序列的批次)。
  • **truncation** (``bool``, ``str`` 或 ``TapasTruncationStrategy``, *可选*, 默认值: ``False``) — 激活并控制截断。接受以下值:

    • ``True`` 或 ``'drop_rows_to_fit'``:截断到使用参数 ``max_length`` 指定的最大长度,如果未提供该参数,则截断到模型可接受的最大输入长度。这将逐行截断,从表格中删除行。
    • ``False`` 或 ``'do_not_truncate'``(默认值):不截断(即,可以输出序列长度大于模型最大允许输入大小的批次)。

返回值

包含结果的字典或字典列表

每个结果都是一个包含以下键的字典

  • **answer** (``str``) — 给定表格的查询答案。如果有聚合器,则答案前面将加上 ``AGGREGATOR >``。
  • **coordinates** (``List[Tuple[int, int]]``) — 答案单元格的坐标。
  • **cells** (``List[str]``) — 由答案单元格值组成的字符串列表。
  • **aggregator** (``str``) — 如果模型有聚合器,则返回聚合器。

根据表格回答查询。该流水线接受几种类型的输入,如下所述

  • pipeline(table, query)
  • pipeline(table, [query])
  • pipeline(table=table, query=query)
  • pipeline(table=table, query=[query])
  • pipeline({"table": table, "query": query})
  • pipeline({"table": table, "query": [query]})
  • pipeline([{"table": table, "query": query}, {"table": table, "query": query}])

``table`` 参数应该是一个字典或由该字典构建的 DataFrame,包含整个表格

示例

data = {
    "actors": ["brad pitt", "leonardo di caprio", "george clooney"],
    "age": ["56", "45", "59"],
    "number of movies": ["87", "53", "69"],
    "date of birth": ["7 february 1967", "10 june 1996", "28 november 1967"],
}

此字典可以按原样传递,也可以转换为 pandas DataFrame

示例

import pandas as pd

table = pd.DataFrame.from_dict(data)

TextClassificationPipeline

transformers.TextClassificationPipeline

< >

( **kwargs )

参数

  • **model** (PreTrainedModelTFPreTrainedModel) — 流水线将使用的模型来进行预测。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,则需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 此管道模型所属的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的worker数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler可选) — 负责解析提供的管道参数的对象的引用。
  • device (int可选,默认为 -1) — 支持 CPU/GPU 的设备序号。将其设置为 -1 将利用 CPU,正值将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16... 或 "auto"
  • binary_output (bool可选,默认为 False) — 指示管道输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)发生的标志。
  • return_all_scores (bool可选,默认为 False) — 是否返回所有预测得分或仅返回预测类的得分。
  • function_to_apply (str可选,默认为 "default") — 要应用于模型输出以检索得分的函数。接受四个不同的值:

    • "default":如果模型具有单个标签,则将在输出上应用 sigmoid 函数。如果模型有多个标签,则将在输出上应用 softmax 函数。
    • "sigmoid":在输出上应用 sigmoid 函数。
    • "softmax":在输出上应用 softmax 函数。
    • "none":不对输出应用任何函数。

使用任何 ModelForSequenceClassification 的文本分类管道。有关更多信息,请参阅序列分类示例

示例

>>> from transformers import pipeline

>>> classifier = pipeline(model="distilbert/distilbert-base-uncased-finetuned-sst-2-english")
>>> classifier("This movie is disgustingly good !")
[{'label': 'POSITIVE', 'score': 1.0}]

>>> classifier("Director tried too much.")
[{'label': 'NEGATIVE', 'score': 0.996}]

管道教程中了解有关使用管道的基础知识的更多信息

此文本分类管道目前可以使用以下任务标识符从 pipeline() 加载:"sentiment-analysis"(用于根据正面或负面情绪对序列进行分类)。

如果有多个分类标签可用 (model.config.num_labels >= 2),则管道将在结果上运行 softmax。如果只有一个标签,则管道将在结果上运行 sigmoid。

此管道可以使用的模型是在序列分类任务上微调过的模型。请参阅 huggingface.co/models 上最新的可用模型列表。

__call__

< >

( inputs **kwargs ) dict 列表或 dict 列表的列表

参数

  • inputs (strList[str]Dict[str],或 List[Dict[str]]) — 要分类的一个或多个文本。为了使用文本对进行分类,您可以发送包含 {"text", "text_pair"} 键的字典,或者发送这些字典的列表。
  • top_k (int, 可选, 默认值: 1) — 返回的结果数量。
  • function_to_apply (str, 可选, 默认值: "default") — 应用于模型输出以检索分数的函数。接受四个不同的值:

    如果未指定此参数,则将根据标签数量应用以下函数:

    • 如果模型只有一个标签,则将对输出应用 sigmoid 函数。
    • 如果模型有多个标签,则将对输出应用 softmax 函数。

    可能的值有:

    • "sigmoid":对输出应用 sigmoid 函数。
    • "softmax":对输出应用 softmax 函数。
    • "none":不对输出应用任何函数。

返回值

列表或列表的列表,其中包含 dict

每个结果都以字典列表的形式出现,包含以下键

  • label (str) — 预测的标签。
  • score (float) — 相应的概率。

如果使用了 top_k,则每个标签将返回一个这样的字典。

对作为输入给出的文本进行分类。

TextGenerationPipeline

transformers.TextGenerationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的继承模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 此管道模型的模型卡片属性。
  • framework (str可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果未指定框架,将默认为当前安装的框架。如果未指定框架并且安装了两个框架,则将默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批大小,对于推理,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — 支持 CPU/GPU 的设备序号。设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool, 可选, 默认为 False) — 标志,指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)。

使用任何 ModelWithLMHead 的语言生成管道。此管道预测将跟随指定文本提示的单词。当底层模型是对话模型时,它也可以接受一个或多个聊天,在这种情况下,管道将在聊天模式下运行,并通过添加其响应来继续聊天。每个聊天都采用字典列表的形式,其中每个字典都包含“角色”和“内容”键。

示例

>>> from transformers import pipeline

>>> generator = pipeline(model="openai-community/gpt2")
>>> generator("I can't believe you did such a ", do_sample=False)
[{'generated_text': "I can't believe you did such a icky thing to me. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I'm so sorry. I"}]

>>> # These parameters will return suggestions, and only the newly created text making it easier for prompting suggestions.
>>> outputs = generator("My tart needs some", num_return_sequences=4, return_full_text=False)
>>> from transformers import pipeline

>>> generator = pipeline(model="HuggingFaceH4/zephyr-7b-beta")
>>> # Zephyr-beta is a conversational model, so let's pass it a chat instead of a single string
>>> generator([{"role": "user", "content": "What is the capital of France? Answer in one word."}], do_sample=False, max_new_tokens=2)
[{'generated_text': [{'role': 'user', 'content': 'What is the capital of France? Answer in one word.'}, {'role': 'assistant', 'content': 'Paris'}]}]

管道教程中了解更多关于使用管道的基础知识。您可以将文本生成参数传递给此管道,以控制停止条件、解码策略等。在文本生成策略文本生成中了解更多关于文本生成参数的信息。

此语言生成管道目前可以从pipeline()使用以下任务标识符加载:"text-generation"

此管道可以使用的模型是使用自回归语言建模目标训练的模型。请参阅 [huggingface.co/models] 上可用的文本补全模型列表和对话模型列表。

__call__

< >

( text_inputs **kwargs ) dict 的列表或列表列表

参数

  • text_inputs (str, List[str], List[Dict[str, str]], 或 List[List[Dict[str, str]]]) — 要完成的一个或多个提示(或提示列表)。如果传递字符串或字符串列表,则此管道将继续每个提示。或者,可以传递“聊天”(采用字典列表的形式,其中包含“角色”和“内容”键)或此类聊天列表。传递聊天时,将使用模型的聊天模板对其进行格式化,然后再将其传递给模型。
  • return_tensors (bool, 可选, 默认值 False) — 是否在输出中返回预测的张量(作为标记索引)。如果设置为 True,则不返回解码后的文本。
  • return_text (bool, 可选, 默认值 True) — 是否在输出中返回解码后的文本。
  • return_full_text (bool, 可选, 默认值 True) — 如果设置为 False,则仅返回添加的文本,否则返回全文。仅当 return_text 设置为 True 时才有意义。
  • clean_up_tokenization_spaces (bool, 可选, 默认值 True) — 是否清除文本输出中潜在的多余空格。
  • continue_final_message( bool, 可选) — 这表明您希望模型继续输入聊天中的最后一条消息,而不是开始一条新消息,从而允许您“预先填写”其回复。默认情况下,当输入聊天中的最后一条消息具有 assistant 角色时,此值为 True,否则为 False,但您可以通过设置此标志手动覆盖该行为。
  • prefix (str, 可选) — 添加到提示的开头。
  • handle_long_generation (str, 可选) — 默认情况下,此管道不处理长生成(以一种或另一种形式超过模型最大长度的生成)。没有完美的方法可以解决这个问题(更多信息:https://github.com/huggingface/transformers/issues/14033#issuecomment-948385227)。这提供了一些常见的策略来解决这个问题,具体取决于您的用例。

    • None :默认策略,不做任何特殊处理
    • "hole":截断输入的左侧,并留出足够宽的间隙以进行生成(可能会截断很多提示,并且不适合生成超过模型容量的情况)
  • generate_kwargs (dict, *可选*) — 将传递给模型的 generate 方法的附加关键字参数(请参阅此处与您的框架对应的 generate 方法)。

返回值

一个列表或一个字典列表

返回以下字典之一(不能同时返回 generated_textgenerated_token_ids

  • generated_text (str, 当 return_text=True 时存在) — 生成的文本。
  • generated_token_ids (torch.Tensortf.Tensor, 当 return_tensors=True 时存在) — 生成的文本的标记 ID。

完成作为输入给出的提示。

Text2TextGenerationPipeline

class transformers.Text2TextGenerationPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型;对于 TensorFlow,则需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的标记器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard, *可选*) — 归属于此管道模型的模型卡片。
  • framework (str, *可选*) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int,可选,默认为 8) — 当管道将使用 DataLoader 时(在传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) — 当管道将使用 DataLoader 时(在传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的批处理大小,对于推理来说,这并不总是有效的,请阅读 使用管道进行批处理 .
  • args_parser (ArgumentHandler,可选) — 负责解析提供的管道参数的对象的引用。
  • device (int,可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool,可选,默认为 False) — 标志,指示管道输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)进行。

使用 seq2seq 模型进行文本到文本生成的管道。

示例

>>> from transformers import pipeline

>>> generator = pipeline(model="mrm8488/t5-base-finetuned-question-generation-ap")
>>> generator(
...     "answer: Manuel context: Manuel has created RuPERTa-base with the support of HF-Transformers and Google"
... )
[{'generated_text': 'question: Who created the RuPERTa-base?'}]

管道教程中了解更多关于使用管道的基础知识。您可以将文本生成参数传递给此管道,以控制停止条件、解码策略等。在文本生成策略文本生成中了解更多关于文本生成参数的信息。

此 Text2TextGenerationPipeline 管道目前可以使用以下任务标识符从 pipeline() 加载:"text2text-generation"

此管道可以使用的模型是在翻译任务上进行微调的模型。请参阅 huggingface.co/models 上最新的可用模型列表。有关可用参数列表,请参阅 以下文档

用法

text2text_generator = pipeline("text2text-generation")
text2text_generator("question: What is 42 ? context: 42 is the answer to life, the universe and everything")

__call__

< >

( *args **kwargs ) 列表或 dict 列表的列表

参数

  • args (strList[str]) — 用于编码器的输入文本。
  • return_tensors (bool, 可选, 默认为 False) — 是否在输出中包含预测的张量(作为标记索引)。
  • return_text (bool, 可选, 默认为 True) — 是否在输出中包含解码后的文本。
  • clean_up_tokenization_spaces (bool, 可选, 默认为 False) — 是否清除文本输出中潜在的多余空格。
  • truncation (TruncationStrategy, 可选, 默认为 TruncationStrategy.DO_NOT_TRUNCATE) — 管道内分词的截断策略。 TruncationStrategy.DO_NOT_TRUNCATE(默认)永远不会截断,但有时希望截断输入以适应模型的 max_length 而不是抛出错误。generate_kwargs — 传递给模型的 generate 方法的附加关键字参数(请参阅此处与您的框架相对应的 generate 方法)。

返回值

列表或列表的列表,其中包含 dict

每个结果都以字典的形式返回,包含以下键

  • generated_text (str, 当 return_text=True 时存在) — 生成的文本。
  • generated_token_ids (torch.Tensortf.Tensor, 当 return_tensors=True 时存在) — 生成的文本的标记 ID。

使用作为输入给出的文本生成输出文本。

check_inputs

< >

( input_length: int min_length: int max_length: int )

检查给定输入是否可能存在与模型相关的问题。

TokenClassificationPipeline

transformers.TokenClassificationPipeline

< >

( args_parser = <transformers.pipelines.token_classification.TokenClassificationArgumentHandler object at 0x7f52082828f0> *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,则需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 归属于此管道模型的模型卡。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架均已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str, 默认为 "") — 管道的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当管道使用 *DataLoader* 时(传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int, 可选, 默认为 1) — 当管道使用 *DataLoader* 时(传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的批次大小。对于推理而言,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — 用于 CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递本机 ``torch.device`` 或 ``str``
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 ``model_kwargs``(只是一个简单的快捷方式)发送,以使用此模型可用的精度(``torch.float16``、``torch.bfloat16``… 或 ``"auto"``)
  • binary_output (bool, 可选, 默认为 ``False``) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。
  • ignore_labels (List[str], 默认为 ["O"]) — 要忽略的标签列表。
  • grouped_entities (bool, 可选, 默认为 False) — 已弃用,请改用 aggregation_strategy。是否将与同一实体对应的标记分组到预测中。
  • stride (int, 可选) — 如果提供了 stride,则管道将应用于所有文本。文本将被拆分为大小为 model_max_length 的块。仅适用于快速分词器和不同于 NONEaggregation_strategy。此参数的值定义了块之间重叠标记的数量。换句话说,模型将在每一步向前移动 tokenizer.model_max_length - stride 个标记。
  • aggregation_strategy (str, 可选, 默认为 "none") — 根据模型预测融合(或不融合)标记的策略。

    • “none”:将不会进行任何聚合,只是简单地返回模型的原始结果
    • “simple”:将尝试按照默认模式对实体进行分组。(A, B-TAG), (B, I-TAG), (C, I-TAG), (D, B-TAG2) (E, B-TAG2) 最终将变为 [{“word”: ABC, “entity”: “TAG”}, {“word”: “D”, “entity”: “TAG2”}, {“word”: “E”, “entity”: “TAG2”}] 请注意,两个连续的 B 标记最终将成为不同的实体。在基于词的语言上,我们最终可能会将词语不希望地拆分:想象一下 Microsoft 被标记为 [{“word”: “Micro”, “entity”: “ENTERPRISE”}, {“word”: “soft”, “entity”: “NAME”}]. 寻找 FIRST、MAX、AVERAGE 来减轻这种情况并消除单词的歧义(在支持该含义的语言上,基本上是空格分隔的标记)。这些缓解措施仅适用于真实单词,“New york”可能仍然会被标记为两个不同的实体。
    • “first”:(仅适用于基于词的模型)将使用 SIMPLE 策略,但词语不能以不同的标记结束。当存在歧义时,词语将简单地使用该词第一个标记的标记。
    • “average”:(仅适用于基于词的模型)将使用 SIMPLE 策略,但词语不能以不同的标记结束。分数将首先在标记之间平均,然后应用最大标签。
    • “max”:(仅适用于基于词的模型)将使用 SIMPLE 策略,但词语不能以不同的标记结束。词实体将简单地是得分最高的标记。

使用任何 ModelForTokenClassification 的命名实体识别管道。有关更多信息,请参阅命名实体识别示例

示例

>>> from transformers import pipeline

>>> token_classifier = pipeline(model="Jean-Baptiste/camembert-ner", aggregation_strategy="simple")
>>> sentence = "Je m'appelle jean-baptiste et je vis à montréal"
>>> tokens = token_classifier(sentence)
>>> tokens
[{'entity_group': 'PER', 'score': 0.9931, 'word': 'jean-baptiste', 'start': 12, 'end': 26}, {'entity_group': 'LOC', 'score': 0.998, 'word': 'montréal', 'start': 38, 'end': 47}]

>>> token = tokens[0]
>>> # Start and end provide an easy way to highlight words in the original text.
>>> sentence[token["start"] : token["end"]]
' jean-baptiste'

>>> # Some models use the same idea to do part of speech.
>>> syntaxer = pipeline(model="vblagoje/bert-english-uncased-finetuned-pos", aggregation_strategy="simple")
>>> syntaxer("My name is Sarah and I live in London")
[{'entity_group': 'PRON', 'score': 0.999, 'word': 'my', 'start': 0, 'end': 2}, {'entity_group': 'NOUN', 'score': 0.997, 'word': 'name', 'start': 3, 'end': 7}, {'entity_group': 'AUX', 'score': 0.994, 'word': 'is', 'start': 8, 'end': 10}, {'entity_group': 'PROPN', 'score': 0.999, 'word': 'sarah', 'start': 11, 'end': 16}, {'entity_group': 'CCONJ', 'score': 0.999, 'word': 'and', 'start': 17, 'end': 20}, {'entity_group': 'PRON', 'score': 0.999, 'word': 'i', 'start': 21, 'end': 22}, {'entity_group': 'VERB', 'score': 0.998, 'word': 'live', 'start': 23, 'end': 27}, {'entity_group': 'ADP', 'score': 0.999, 'word': 'in', 'start': 28, 'end': 30}, {'entity_group': 'PROPN', 'score': 0.999, 'word': 'london', 'start': 31, 'end': 37}]

管道教程中了解有关使用管道的基础知识的更多信息

此标记识别管道目前可以通过以下任务标识符从 pipeline() 加载:"ner"(用于预测序列中标记的类别:人、组织、位置或其他)。

此管道可以使用的模型是在标记分类任务上经过微调的模型。请在 huggingface.co/models 上查看可用的最新模型列表。

__call__

< >

( inputs: Union **kwargs ) 一个列表或一个包含 dict 列表的列表

参数

  • inputs (strList[str]) — 用于标记分类的一个或多个文本(或一个文本列表)。

返回值

列表或列表的列表,其中包含 dict

每个结果都是一个字典列表(对应输入中的每个标记一个字典,如果此管道是用 aggregation_strategy 实例化的,则每个实体一个字典),包含以下键

  • word (str) — 已分类的标记/单词。这是通过解码选定的标记获得的。如果您想获得原始句子中的确切字符串,请使用 startend
  • score (float) — entity 的对应概率。
  • entity (str) — 为该标记/单词预测的实体(当 aggregation_strategy 不是 "none" 时,它被命名为 entity_group)。
  • index (int,仅在 aggregation_strategy="none" 时出现) — 句子中对应标记的索引。
  • start (int可选) — 句子中对应实体开始处的索引。仅当标记器中提供了偏移量时才存在
  • end (int可选) — 句子中对应实体结束处的索引。仅当标记器中提供了偏移量时才存在

将作为输入给出的文本的每个标记进行分类。

aggregate_words

< >

( entities: List aggregation_strategy: AggregationStrategy )

覆盖来自给定单词的不同意标记,以强制在单词边界上达成一致。

示例:micro|soft| com|pany| B-ENT I-NAME I-ENT I-ENT 将使用第一个策略重写为 microsoft| company| B-ENT I-ENT

gather_pre_entities

< >

( sentence: str input_ids: ndarray scores: ndarray offset_mapping: Optional special_tokens_mask: ndarray aggregation_strategy: AggregationStrategy )

将各种 numpy 数组融合到包含聚合所需所有信息的字典中

group_entities

< >

( entities: List )

参数

  • **entities** (``dict``) — 由流水线预测的实体。

查找并分组预测为相同实体的相邻标记。

group_sub_entities

< >

( entities: List )

参数

  • **entities** (``dict``) — 由流水线预测的实体。

将预测为相同实体的相邻标记分组在一起。

TranslationPipeline

class transformers.TranslationPipeline

< >

( *args **kwargs )

参数

  • **model** (PreTrainedModelTFPreTrainedModel) — 流水线将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型;对于 TensorFlow,这需要是继承自 TFPreTrainedModel 的模型。
  • **tokenizer** (PreTrainedTokenizer) — 流水线将用于为模型编码数据的标记器。该对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 此管道模型对应的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,将默认使用当前安装的框架。如果未指定框架且两个框架都已安装,将默认使用 model 的框架,如果未提供模型,则默认使用 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理 .
  • args_parser (ArgumentHandler可选) — 负责解析提供的管道参数的对象的引用。
  • device (int可选,默认为 -1) — CPU/GPU 支持的设备序号。设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) — 直接作为 model_kwargs(只是一个简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16... 或 "auto"
  • binary_output (bool,可选,默认为 False) — 标志,指示管道的输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)。

将一种语言翻译成另一种语言。

此翻译管道目前可以使用以下任务标识符从 pipeline() 加载:"translation_xx_to_yy"

此管道可以使用的模型是在翻译任务上进行微调的模型。请参阅 huggingface.co/models 上最新的可用模型列表。有关可用参数列表,请参阅以下文档

用法

en_fr_translator = pipeline("translation_en_to_fr")
en_fr_translator("How old are you?")

__call__

< >

( *args **kwargs ) 列表或 dict 列表的列表

参数

  • args (strList[str]) — 要翻译的文本。
  • return_tensors (bool,可选,默认为 False) — 是否在输出中包含预测的张量(作为标记索引)。
  • return_text (bool,可选,默认为 True) — 是否在输出中包含解码后的文本。
  • clean_up_tokenization_spaces (bool,可选,默认为 False) — 是否清除文本输出中潜在的额外空格。
  • src_lang (str可选) — 输入文本的语言。可能对多语言模型是必需的。对单一双语翻译模型没有影响。
  • tgt_lang (str可选) — 期望输出文本的语言。可能对多语言模型是必需的。对单一双语翻译模型没有影响。generate_kwargs — 传递给模型的 generate 方法的附加关键字参数(请参阅此处对应于您框架的 generate 方法)。

返回值

列表或列表的列表,其中包含 dict

每个结果都以字典的形式返回,包含以下键

  • translation_text (str,当 return_text=True 时存在) — 翻译结果。
  • translation_token_ids (torch.Tensortf.Tensor,当 return_tensors=True 时存在) — 翻译结果的标记 ID。

翻译作为输入给出的文本。

ZeroShotClassificationPipeline

transformers.ZeroShotClassificationPipeline

< >

( args_parser = <transformers.pipelines.zero_shot_classification.ZeroShotClassificationArgumentHandler object at 0x7f5208283f70> *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于编码模型数据的 tokenizer。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 此管道模型的模型卡片。
  • framework (str,可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int,可选,默认为 8) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) — 当管道使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是 beneficial 的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler,可选) — 负责解析提供的管道参数的对象的引用。
  • device (int,可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以便为此模型使用可用的精度(torch.float16torch.bfloat16… 或 "auto")。
  • binary_output (bool, 可选, 默认值 False) — 指示流水线输出是否应采用序列化格式(例如,pickle)或原始输出数据(例如,文本)的标志。

基于 NLI 的零样本分类流水线,使用在 NLI(自然语言推理)任务上训练的 ModelForSequenceClassification。与 text-classification 流水线等效,但这些模型不需要硬编码的潜在类别数量,可以在运行时选择。这通常意味着它更慢,但更加灵活。

可以传递任何序列和标签的组合,每个组合都将被视为前提/假设对并传递给预训练模型。然后,将 *蕴含* 的逻辑值作为候选标签有效的逻辑值。可以使用任何 NLI 模型,但 *蕴含* 标签的 ID 必须包含在模型配置的 :attr:~transformers.PretrainedConfig.label2id 中。

示例

>>> from transformers import pipeline

>>> oracle = pipeline(model="facebook/bart-large-mnli")
>>> oracle(
...     "I have a problem with my iphone that needs to be resolved asap!!",
...     candidate_labels=["urgent", "not urgent", "phone", "tablet", "computer"],
... )
{'sequence': 'I have a problem with my iphone that needs to be resolved asap!!', 'labels': ['urgent', 'phone', 'computer', 'not urgent', 'tablet'], 'scores': [0.504, 0.479, 0.013, 0.003, 0.002]}

>>> oracle(
...     "I have a problem with my iphone that needs to be resolved asap!!",
...     candidate_labels=["english", "german"],
... )
{'sequence': 'I have a problem with my iphone that needs to be resolved asap!!', 'labels': ['english', 'german'], 'scores': [0.814, 0.186]}

管道教程中了解有关使用管道的基础知识的更多信息

此 NLI 流水线目前可以使用以下任务标识符从 pipeline() 加载:"zero-shot-classification"

此流水线可以使用的模型是在 NLI 任务上微调的模型。请参阅 huggingface.co/models 上最新的可用模型列表。

__call__

< >

( sequences: Union *args **kwargs ) 一个 dictdict 的列表

参数

  • sequences (strList[str]) — 要分类的序列,如果模型输入太大,将被截断。
  • candidate_labels (strList[str]) — 一组可能的类别标签,用于将每个序列分类到其中。可以是单个标签、逗号分隔的标签字符串或标签列表。
  • hypothesis_template (str, 可选, 默认值 "This example is {}.") — 用于将每个标签转换为 NLI 风格假设的模板。此模板必须包含 {} 或类似语法,以便将候选标签插入到模板中。例如,默认模板为 "This example is {}."。对于候选标签 "sports",这将被馈送到模型中,如 "<cls> sequence to classify <sep> This example is sports . <sep>"。默认模板在许多情况下都能很好地工作,但根据任务设置,尝试不同的模板可能是值得的。
  • multi_label (bool可选,默认为 False) — 是否多个候选标签可以为真。如果为 False,则对分数进行归一化,使每个序列的标签似然总和为 1。如果为 True,则将标签视为独立的,并通过对蕴涵分数与矛盾分数进行 softmax 来对每个候选标签的概率进行归一化。

返回值

一个 dictdict 列表

每个结果都以字典的形式返回,包含以下键

  • sequence (str) — 输出对应的序列。
  • labels (List[str]) — 按似然顺序排序的标签。
  • scores (List[float]) — 每个标签的概率。

对作为输入给出的序列进行分类。有关更多信息,请参阅 ZeroShotClassificationPipeline 文档。

多模态

可用于多模态任务的管道包括以下内容。

DocumentQuestionAnsweringPipeline

transformers.DocumentQuestionAnsweringPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是 PyTorch 中继承自 PreTrainedModel 的模型和 TensorFlow 中继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于对模型数据进行编码的分词器。该对象继承自 PreTrainedTokenizer
  • **image_processor** (BaseImageProcessor) — 管道将使用的图像处理器,用于为模型编码数据。 该对象继承自 BaseImageProcessor
  • **modelcard** (strModelCard, *可选*) — 此管道模型归属的模型卡。
  • **framework** (str, *可选*) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。 必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。 如果未指定框架并且同时安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • **task** (str, 默认值 "") — 管道的任务标识符。
  • **num_workers** (int, *可选*, 默认值 8) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • **batch_size** (int, *可选*, 默认值 1) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理
  • **args_parser** (ArgumentHandler, *可选*) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — 支持 CPU/GPU 的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool, 可选, 默认为 False) — 指示流水线输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用任何 AutoModelForDocumentQuestionAnswering 的文档问答流水线。输入/输出类似于(提取式)问答流水线;但是,流水线将图像(以及可选的 OCR 处理的单词/框)作为输入,而不是文本上下文。

示例

>>> from transformers import pipeline

>>> document_qa = pipeline(model="impira/layoutlm-document-qa")
>>> document_qa(
...     image="https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png",
...     question="What is the invoice number?",
... )
[{'score': 0.425, 'answer': 'us-001', 'start': 16, 'end': 16}]

管道教程中了解有关使用管道的基础知识的更多信息

此文档问答流水线目前可以使用以下任务标识符从 pipeline() 加载:"document-question-answering"

此流水线可以使用的模型是在文档问答任务上进行微调的模型。请参阅 huggingface.co/models 上最新的可用模型列表。

__call__

< >

( image: Union question: Optional = None word_boxes: Tuple = None **kwargs ) 一个 dictdict 的列表

参数

  • image (strPIL.Image) — 流水线处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接在 PIL 中加载的图像

    流水线接受单个图像或一批图像。如果给定单个图像,则可以将其广播到多个问题。

  • question (str) — 要询问文档的问题。
  • word_boxes (List[str, Tuple[float, float, float, float]]可选) — 单词和边界框列表(标准化 0->1000)。如果提供此可选输入,则管道将使用这些单词和边界框,而不是在图像上运行 OCR 来为需要它们的模型(例如 LayoutLM)派生它们。这允许您在管道的多次调用中重复使用 OCR 结果,而无需每次都重新运行它。
  • top_k (int可选,默认为 1) — 要返回的答案数(将按可能性顺序选择)。请注意,如果上下文中没有足够的选项可用,我们返回的答案少于 top_k 个。
  • doc_stride (int可选,默认为 128) — 如果文档中的单词太长,无法与模型的问题匹配,它将被分成几个块,并带有一些重叠。此参数控制该重叠的大小。
  • max_answer_len (int可选,默认为 15) — 预测答案的最大长度(例如,只考虑长度较短的答案)。
  • max_seq_len (int可选,默认为 384) — 传递给模型的每个块的句子(上下文 + 问题)的总长度(以标记为单位)的最大长度。如果需要,上下文将被分成几个块(使用 doc_stride 作为重叠)。
  • max_question_len (int可选,默认为 64) — 问题在标记化后的最大长度。如果需要,它将被截断。
  • handle_impossible_answer (bool可选,默认为 False) — 我们是否接受 impossible 作为答案。
  • lang (str, 可选) — 运行 OCR 时使用的语言。默认为英语。
  • tesseract_config (str, 可选) — 在运行 OCR 时传递给 tesseract 的附加标志。
  • timeout (float, 可选, 默认值为 None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不设置超时,调用可能会一直阻塞。

返回值

一个 dictdict 列表

每个结果都以字典的形式返回,包含以下键

  • score (float) — 与答案相关的概率。
  • start (int) — 答案的起始词索引(在输入的 OCR 版本或提供的 word_boxes 中)。
  • end (int) — 答案的结束词索引(在输入的 OCR 版本或提供的 word_boxes 中)。
  • answer (str) — 问题的答案。
  • words (list[int]) — 答案中每个单词/框对的索引

使用文档回答作为输入给出的问题。文档定义为一个图像和一个可选的 (word, box) 元组列表,这些元组表示文档中的文本。如果没有提供 word_boxes,它将使用 Tesseract OCR 引擎(如果可用)自动提取单词和框,用于需要将它们作为输入的类似 LayoutLM 的模型。对于 Donut,不运行 OCR。

您可以通过多种方式调用管道

  • pipeline(image=image, question=question)
  • pipeline(image=image, question=question, word_boxes=word_boxes)
  • pipeline([{"image": image, "question": question}])
  • pipeline([{"image": image, "question": question, "word_boxes": word_boxes}])

FeatureExtractionPipeline

class transformers.FeatureExtractionPipeline

< >

( model: Union tokenizer: Optional = None feature_extractor: Optional = None image_processor: Optional = None modelcard: Optional = None framework: Optional = None task: str = '' args_parser: ArgumentHandler = None device: Union = None torch_dtype: Union = None binary_output: bool = False **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是一个继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer
  • modelcard (strModelCard可选) — 此管道模型的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道使用 *DataLoader* 时(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道使用 *DataLoader* 时(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的流水线参数的对象的引用。
  • device (int, 可选, 默认值为 -1) — 用于支持 CPU/GPU 的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以便为此模型使用可用的精度(torch.float16torch.bfloat16……或 "auto"
  • tokenize_kwargs (dict, 可选) — 传递给分词器的其他关键字参数字典。
  • return_tensors (bool, 可选) — 如果为 True,则根据指定的框架返回张量,否则返回列表。

特征提取流水线不使用模型头。此流水线从基本转换器中提取隐藏状态,这些状态可用作下游任务中的特征。

示例

>>> from transformers import pipeline

>>> extractor = pipeline(model="google-bert/bert-base-uncased", task="feature-extraction")
>>> result = extractor("This is a simple test.", return_tensors=True)
>>> result.shape  # This is a tensor of shape [1, sequence_length, hidden_dimension] representing the input string.
torch.Size([1, 8, 768])

管道教程中了解有关使用管道的基础知识的更多信息

此特征提取流水线目前可以使用任务标识符 "feature-extraction"pipeline() 加载。

所有模型均可用于此流水线。请参阅 huggingface.co/models 上的所有模型列表,包括社区贡献的模型。

__call__

< >

( *args **kwargs ) float 的嵌套列表

参数

  • args (strList[str]) — 要获取其特征的一个或多个文本(或一个文本列表)。

返回值

float 的嵌套列表

模型计算的特征。

提取输入的特征。

ImageFeatureExtractionPipeline

class transformers.ImageFeatureExtractionPipeline

< >

( model: Union tokenizer: Optional = None feature_extractor: Optional = None image_processor: Optional = None modelcard: Optional = None framework: Optional = None task: str = '' args_parser: ArgumentHandler = None device: Union = None torch_dtype: Union = None binary_output: bool = False **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 将由流水线用于进行预测的模型。这需要是 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的继承模型。
  • image_processor (BaseImageProcessor) — 将由流水线用于编码模型数据的图像处理器。此对象继承自 BaseImageProcessor
  • modelcard (strModelCard可选) — 归属于此流水线模型的模型卡。
  • framework (str,可选) — 要使用的框架,"pt" 代表 PyTorch,"tf" 代表 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 流水线的任务标识符。
  • num_workers (int,可选,默认为 8) — 当流水线使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) — 当流水线使用 DataLoader 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用流水线进行批处理
  • args_parser (ArgumentHandler,可选) — 负责解析提供的流水线参数的对象的引用。
  • device (int,可选,默认为 -1) — CPU/GPU 支持的设备序号。设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以便为此模型使用可用的精度(torch.float16torch.bfloat16、… 或 "auto"
  • binary_output (bool可选,默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。
  • image_processor_kwargs (dict可选) — 传递给图像处理器的附加关键字参数字典,例如 {“size”: {“height”: 100, “width”: 100}‌}
  • pool (bool可选,默认为 False) — 是否返回池化输出。如果为 False,模型将返回原始隐藏状态。

图像特征提取管道不使用模型头。此管道从基本 Transformer 中提取隐藏状态,这些状态可用作下游任务中的特征。

示例

>>> from transformers import pipeline

>>> extractor = pipeline(model="google/vit-base-patch16-224", task="image-feature-extraction")
>>> result = extractor("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png", return_tensors=True)
>>> result.shape  # This is a tensor of shape [1, sequence_lenth, hidden_dimension] representing the input image.
torch.Size([1, 197, 768])

管道教程中了解有关使用管道的基础知识的更多信息

此图像特征提取管道目前可以从 pipeline() 使用任务标识符 "image-feature-extraction" 加载。

所有视觉模型均可用于此管道。请参阅 huggingface.co/models 上的所有模型列表,包括社区贡献的模型。

__call__

< >

( *args **kwargs ) float 的嵌套列表

参数

  • images (str, List[str], PIL.ImageList[PIL.Image]) — 管道处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    管道接受单个图像或一批图像,然后必须将其作为字符串传递。一批图像必须采用相同的格式:全部为 http 链接、全部为本地路径或全部为 PIL 图像。

  • timeout (float可选,默认为 None) — 从网络获取图像的最长时间(以秒为单位)。如果为 None,则不使用超时,并且调用可能会永远阻塞。

返回值

float 的嵌套列表

模型计算的特征。

提取输入的特征。

ImageToTextPipeline

transformers.ImageToTextPipeline

< >

( *args **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是 PyTorch 的 PreTrainedModel 和 TensorFlow 的 TFPreTrainedModel 的继承模型。
  • tokenizer (PreTrainedTokenizer) — 管道将用于为模型编码数据的标记器。此对象继承自 PreTrainedTokenizer
  • image_processor (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。此对象继承自 BaseImageProcessor
  • modelcard (strModelCard, 可选) — 归因于此管道模型的模型卡。
  • framework (str, 可选) — 要使用的框架,PyTorch 为 "pt" 或 TensorFlow 为 "tf"。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") - 管道的任务标识符。
  • num_workers (int,可选,默认为 8) - 当管道使用 *DataLoader* 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的 worker 数量。
  • batch_size (int,可选,默认为 1) - 当管道使用 *DataLoader* 时(传递数据集时,在 GPU 上使用 Pytorch 模型),要使用的批处理大小,对于推理而言,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler,可选) - 负责解析提供的管道参数的对象的引用。
  • device (int,可选,默认为 -1) - 用于 CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype,可选) - 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16…或 "auto"
  • binary_output (bool,可选,默认为 False) - 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用 AutoModelForVision2Seq 的图像到文本管道。此管道可预测给定图像的标题。

示例

>>> from transformers import pipeline

>>> captioner = pipeline(model="ydshieh/vit-gpt2-coco-en")
>>> captioner("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'generated_text': 'two birds are standing next to each other '}]

管道教程中了解有关使用管道的基础知识的更多信息

此图像到文本管道目前可以使用以下任务标识符从 pipeline() 加载:“image-to-text”。

有关可用模型列表,请参见 huggingface.co/models

__call__

< >

( images: Union **kwargs ) 列表或字典列表的列表 dict

参数

  • images (str, List[str], PIL.ImageList[PIL.Image]) — 此管道处理三种类型的图像:

    • 包含指向图像的 HTTP(s) 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    此管道接受单个图像或一批图像。

  • max_new_tokens (int, 可选) — 要生成的最大标记数量。默认情况下,它将使用 generate 默认值。
  • generate_kwargs (Dict, 可选) — 将其传递给 generate,以便将所有这些参数直接发送到 generate,从而完全控制此函数。
  • timeout (float, 可选, 默认值为 None) — 从网络获取图像的最长时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。

返回值

列表或列表的列表,其中包含 dict

每个结果都以字典形式返回,包含以下键

  • generated_text (str) — 生成的文本。

将标签分配给作为输入传递的图像。

MaskGenerationPipeline

class transformers.MaskGenerationPipeline

< >

( **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • image_processor (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。此对象继承自 BaseImageProcessor
  • modelcard (strModelCard可选) — 归属于此管道模型的模型卡片。
  • framework (str可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str,默认为 "") — 管道的任务标识符。
  • num_workers (int可选,默认为 8) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的worker数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上用于 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — 用于 CPU/GPU 支持的设备序号。将其设置为 -1 将使用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16……或 "auto"
  • binary_output (bool, 可选, 默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。
  • points_per_batch (可选, int, 默认为 64) — 设置模型同时运行的点数。数字越大可能速度越快,但会使用更多 GPU 内存。
  • output_bboxes_mask (bool, 可选, 默认为 False) — 是否输出边界框预测。
  • output_rle_masks (bool, 可选, 默认为 False) — 是否以 RLE 格式输出掩码

使用 SamForMaskGeneration 对图像进行自动掩码生成。给定图像,此管道会预测图像的二进制掩码。它是一个 ChunkPipeline,因为您可以将小批量中的点分开,以避免出现 OOM 问题。使用 points_per_batch 参数来控制将同时处理的点数。默认为 64

该管道分 3 步工作

  1. preprocess:生成一个包含 1024 个均匀分布的点的网格,以及边界框和点标签。有关如何创建点和边界框的更多详细信息,请查看 _generate_crop_boxes 函数。图像也会使用 image_processor 进行预处理。此函数 yields 一个包含 points_per_batch 个点的小批量。

  2. forward:将 preprocess 的输出提供给模型。图像嵌入仅计算一次。调用 self.model.get_image_embeddings 并确保不计算梯度,并且张量和模型位于同一设备上。

  3. postprocess:自动掩码生成最重要的部分在这里发生。它包含三个步骤

    • image_processor.postprocess_masks(在每个 minibatch 循环上运行):接收原始输出掩码,根据图像大小调整大小,并将其转换为二进制掩码。
    • image_processor.filter_masks(在每个 minibatch 循环上):使用 pred_iou_threshstability_scores。它还应用基于非极大值抑制的各种滤波器来去除错误的掩码。
    • image_processor.postprocess_masks_for_amg 对掩码应用 NSM 以仅保留相关的掩码。

示例

>>> from transformers import pipeline

>>> generator = pipeline(model="facebook/sam-vit-base", task="mask-generation")
>>> outputs = generator(
...     "http://images.cocodataset.org/val2017/000000039769.jpg",
... )

>>> outputs = generator(
...     "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png", points_per_batch=128
... )

管道教程中了解有关使用管道的基础知识的更多信息

目前,可以使用以下任务标识符从 pipeline() 加载此分割管道:"mask-generation"

请参阅 huggingface.co/models 上的可用模型列表。

__call__

< >

( image *args num_workers = None batch_size = None **kwargs ) Dict

参数

  • 输入 (np.ndarraybytesstrdict) — 图像或图像列表。
  • mask_threshold (float可选,默认为 0.0) — 将预测的掩码转换为二进制值时使用的阈值。
  • pred_iou_thresh (float可选,默认为 0.88) — 应用于模型预测掩码质量的过滤阈值,范围为 [0,1]
  • stability_score_thresh (float可选,默认为 0.95) — 过滤阈值,范围为 [0,1],使用掩码在更改用于对模型掩码预测进行二值化的阈值下的稳定性。
  • stability_score_offset (int可选,默认为 1) — 计算稳定性分数时阈值的偏移量。
  • **crops_nms_thresh** (float,*可选*,默认为 0.7) — 用于非极大值抑制以过滤重复掩码的边界框 IoU 截止值。
  • **crops_n_layers** (int,*可选*,默认为 0) — 如果 `crops_n_layers>0`,则将在图像的裁剪区域再次运行掩码预测。设置要运行的层数,其中每一层都有 2**i_layer 个图像裁剪区域。
  • **crop_overlap_ratio** (float,*可选*,默认为 `512 / 1500`) — 设置裁剪区域重叠的程度。在第一个裁剪层中,裁剪区域将按图像长度的此分数重叠。具有更多裁剪区域的后续层将按比例缩小此重叠。
  • **crop_n_points_downscale_factor** (int,*可选*,默认为 `1`) — 第 n 层中采样的每边点数按 crop_n_points_downscale_factor**n 缩小。
  • **timeout** (float,*可选*,默认为 None) — 从网络获取图像的最长等待时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。

返回值

字典

具有以下键的字典

  • **mask** (PIL.Image) — 检测到的对象的二进制掩码,作为原始图像形状为 `(width, height)` 的 PIL 图像。如果未找到对象,则返回填充零的掩码。
  • **score** (*可选* float) — 可选,当模型能够估计由标签和掩码描述的“对象”的置信度时。

生成二进制分割掩码

VisualQuestionAnsweringPipeline

class transformers.VisualQuestionAnsweringPipeline

< >

( *args **kwargs )

参数

  • **model** (PreTrainedModelTFPreTrainedModel) — 管道将用于进行预测的模型。 这需要是 PyTorch 继承自 PreTrainedModel 和 TensorFlow 继承自 TFPreTrainedModel 的模型。
  • **tokenizer** (PreTrainedTokenizer) — 管道将用于为模型编码数据的标记器。 此对象继承自 PreTrainedTokenizer
  • **image_processor** (BaseImageProcessor) — 管道将用于为模型编码数据的图像处理器。 此对象继承自 BaseImageProcessor
  • **modelcard** (strModelCard,*可选*) — 归属于此管道模型的模型卡片。
  • **framework** (str,*可选*) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。 必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。 如果未指定框架并且安装了两个框架,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • **task** (str,默认为 "") — 管道的任务标识符。
  • **num_workers** (int,*可选*,默认为 8) — 当管道将使用 *DataLoader* 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的worker数量。
  • batch_size (int, 可选, 默认为 1) — 当管道将使用 DataLoader 时(传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype, 可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型可用的精度(torch.float16torch.bfloat16 ... 或 "auto")。
  • binary_output (bool, 可选, 默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或原始输出数据(例如文本)的标志。

使用 AutoModelForVisualQuestionAnswering 的视觉问答管道。此管道目前仅在 PyTorch 中可用。

示例

>>> from transformers import pipeline

>>> oracle = pipeline(model="dandelin/vilt-b32-finetuned-vqa")
>>> image_url = "https://huggingface.co/datasets/Narsil/image_dummy/raw/main/lena.png"
>>> oracle(question="What is she wearing ?", image=image_url)
[{'score': 0.948, 'answer': 'hat'}, {'score': 0.009, 'answer': 'fedora'}, {'score': 0.003, 'answer': 'clothes'}, {'score': 0.003, 'answer': 'sun hat'}, {'score': 0.002, 'answer': 'nothing'}]

>>> oracle(question="What is she wearing ?", image=image_url, top_k=1)
[{'score': 0.948, 'answer': 'hat'}]

>>> oracle(question="Is this a person ?", image=image_url, top_k=1)
[{'score': 0.993, 'answer': 'yes'}]

>>> oracle(question="Is this a man ?", image=image_url, top_k=1)
[{'score': 0.996, 'answer': 'no'}]

管道教程中了解有关使用管道的基础知识的更多信息

此视觉问答管道目前可以使用以下任务标识符从 pipeline() 加载:"visual-question-answering", "vqa"

此管道可以使用的模型是在视觉问答任务上进行微调的模型。有关可用模型的最新列表,请参阅 huggingface.co/models

__call__

< >

( image: Union question: Union = None **kwargs ) 包含结果的字典或字典列表。字典包含以下键

参数

  • image (strList[str]PIL.ImageList[PIL.Image]KeyDataset) — 此流水线处理三种类型的图像:

    • 包含指向图像的 http 链接的字符串
    • 包含图像本地路径的字符串
    • 直接加载到 PIL 中的图像

    该流水线接受单个图像或一批图像。如果给定单个图像,则可以将其广播到多个问题。对于数据集:传入的数据集类型必须为 transformers.pipelines.pt_utils.KeyDataset 示例:

返回值

包含结果的字典或字典列表。字典包含以下键

  • label (str) — 模型识别的标签。
  • score (int) — 模型为此标签赋予的分数。

回答有关图像的开放式问题。该流水线接受几种类型的输入,详情如下

  • pipeline(image=image, question=question)
  • pipeline({"image": image, "question": question})
  • pipeline([{"image": image, "question": question}])
  • pipeline([{"image": image, "question": question}, {"image": image, "question": question}])

父类:Pipeline

class transformers.Pipeline

< >

( model: Union tokenizer: Optional = None feature_extractor: Optional = None image_processor: Optional = None modelcard: Optional = None framework: Optional = None task: str = '' args_parser: ArgumentHandler = None device: Union = None torch_dtype: Union = None binary_output: bool = False **kwargs )

参数

  • model (PreTrainedModelTFPreTrainedModel) — 流水线将用于进行预测的模型。对于 PyTorch,这需要是继承自 PreTrainedModel 的模型;对于 TensorFlow,这需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 流水线将要用来对模型数据进行编码的分词器。此对象继承自 PreTrainedTokenizer
  • feature_extractor (SequenceFeatureExtractor) — 流水线将要用来对模型数据进行编码的特征提取器。此对象继承自 SequenceFeatureExtractor
  • image_processor (BaseImageProcessor) — 流水线将要用来对模型数据进行编码的图像处理器。此对象继承自 BaseImageProcessor
  • modelcard (strModelCard, 可选) — 此流水线模型归属的模型卡片。
  • framework (str, 可选) — 要使用的框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。必须安装指定的框架。

    如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 model 的框架,如果未提供模型,则默认为 PyTorch。

  • task (str, 默认为 "") — 流水线的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当流水线将使用 *DataLoader* 时(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的 worker 数量。
  • batch_size (int可选,默认为 1) — 当管道将使用 *DataLoader* 时(在传递数据集时,在 GPU 上为 Pytorch 模型),要使用的批次大小,对于推理而言,这并不总是有益的,请阅读 使用管道进行批处理
  • args_parser (ArgumentHandler可选) — 负责解析提供的管道参数的对象的引用。
  • device (int可选,默认为 -1) — CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生 torch.devicestr
  • torch_dtype (strtorch.dtype可选) — 直接作为 model_kwargs(只是一个更简单的快捷方式)发送,以使用此模型的可用精度(torch.float16torch.bfloat16…… 或 "auto"
  • binary_output (bool可选,默认为 False) — 指示管道输出是否应采用序列化格式(即 pickle)或作为原始输出数据(例如文本)的标志。

Pipeline 类是所有管道继承的类。有关不同管道之间共享的方法,请参阅此类。

实现流水线操作的基类。Pipeline 工作流定义为以下操作的序列

输入 -> 分词 -> 模型推理 -> 后处理(取决于任务) -> 输出

Pipeline 支持通过 device 参数在 CPU 或 GPU 上运行(见下文)。

某些管道,例如 FeatureExtractionPipeline ('feature-extraction') 将大型张量对象输出为嵌套列表。为了避免将这种大型结构作为文本数据转储,我们提供了 binary_output 构造函数参数。如果设置为 True,输出将以 pickle 格式存储。

check_model_type

< >

( supported_models: Union )

参数

  • supported_models (List[str]dict) — 流水线支持的模型列表,或包含模型类值的字典。

检查模型类是否受流水线支持。

设备放置

< >

( )

上下文管理器,允许以框架无关的方式在用户指定的设备上分配张量。

示例

# Explicitly ask for tensor allocation on CUDA device :0
pipe = pipeline(..., device=0)
with pipe.device_placement():
    # Every framework specific tensor allocation will be done on the request device
    output = pipe(...)

确保张量在设备上

< >

( **inputs ) Dict[str, torch.Tensor]

参数

  • inputs (应该为 torch.Tensor 的关键字参数,其余参数将被忽略) — 要放置在 self.device 上的张量。
  • 对列表进行递归。 —

返回值

Dict[str, torch.Tensor]

inputs 相同,但在正确的设备上。

确保 PyTorch 张量位于指定的设备上。

后处理

< >

( model_outputs: ModelOutput **postprocess_parameters: Dict )

后处理将接收 _forward 方法的原始输出(通常是张量),并将其重新格式化为更友好的格式。通常,它将输出结果列表、字典或结果(仅包含字符串和数字)。

预测

< >

( X )

Scikit / Keras 与 transformers 流水线的接口。此方法将转发到 call()。

preprocess

< >

( input_: Any **preprocess_parameters: Dict )

Preprocess 将获取特定流水线的 input_ 并返回 _forward 正确运行所需的所有内容的字典。它应该至少包含一个张量,但可能包含任意其他项目。

push_to_hub

< >

( repo_id: str use_temp_dir: Optional = None commit_message: Optional = None private: Optional = None token: Union = None max_shard_size: Union = '5GB' create_pr: bool = False safe_serialization: bool = True revision: str = None commit_description: str = None tags: Optional = None **deprecated_kwargs )

参数

  • repo_id (str) — 要将流水线推送到哪个存储库的名称。当推送到给定组织时,它应该包含您的组织名称。
  • use_temp_dir (bool, 可选) — 是否使用临时目录来存储保存的文件,然后再将它们推送到 Hub。如果没有任何目录的名称像 repo_id,则默认为 True,否则为 False
  • commit_message (str可选) — 推送时提交的信息。默认为 "Upload pipe"
  • private (bool可选) — 创建的仓库是否应该是私有的。
  • token (boolstr可选) — 用作远程文件 HTTP 持有者授权的令牌。如果为 True,将使用运行 huggingface-cli login 时生成的令牌(存储在 ~/.huggingface 中)。如果未指定 repo_url,则默认为 True
  • max_shard_size (intstr可选,默认为 "5GB") — 仅适用于模型。检查点分片前的最大大小。然后,每个检查点分片的大小都将小于此大小。如果表示为字符串,则需要是数字后跟单位(例如 "5MB")。我们默认将其设置为 "5GB",以便用户可以在免费的 Google Colab 实例上轻松加载模型,而不会出现任何 CPU OOM 问题。
  • create_pr (bool可选,默认为 False) — 是否使用上传的文件创建 PR 或直接提交。
  • safe_serialization (bool可选,默认为 True) — 是否将模型权重转换为 safetensors 格式以实现更安全的序列化。
  • revision (str可选) — 要将上传的文件推送到哪个分支。
  • commit_description (str可选) — 将创建的提交的描述
  • tagsList[str]可选) — 要推送到 Hub 的标签列表。

将流水线文件上传到 🤗 模型中心。

示例

from transformers import pipeline

pipe = pipeline("google-bert/bert-base-cased")

# Push the pipe to your namespace with the name "my-finetuned-bert".
pipe.push_to_hub("my-finetuned-bert")

# Push the pipe to an organization with the name "my-finetuned-bert".
pipe.push_to_hub("huggingface/my-finetuned-bert")

save_pretrained

< >

( save_directory: Union safe_serialization: bool = True **kwargs )

参数

  • save_directorystros.PathLike) — 要保存到的目录的路径。如果它不存在,则将创建它。
  • safe_serializationstr) — 是否使用 safetensors 还是 PyTorch 或 Tensorflow 的传统方式保存模型。
  • kwargsDict[str, Any]可选) — 传递给 push_to_hub() 方法的其他关键字参数。

保存流水线的模型和分词器。

transform

< >

( X )

Scikit / Keras 与 transformers 流水线的接口。此方法将转发到 call()。

< > 更新 GitHub