Transformers 4.37 中文文档(十七)(3)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Transformers 4.37 中文文档(十七)

Transformers 4.37 中文文档(十七)(2)https://developer.aliyun.com/article/1564938


ZeroShotObjectDetectionPipeline

class transformers.ZeroShotObjectDetectionPipeline

< source >

( **kwargs )

参数

  • model (PreTrainedModel 或 TFPreTrainedModel) — 该管道将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer (PreTrainedTokenizer) — 该 tokenizer 将被管道用于对数据进行编码以供模型使用。该对象继承自 PreTrainedTokenizer。
  • modelcard (str or ModelCard, 可选) — 为该管道的模型指定的模型卡。
  • framework (str, 可选) — 要使用的框架,可以是"pt"表示 PyTorch 或"tf"表示 TensorFlow。指定的框架必须已安装。
    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用model的框架,或者如果未提供模型,则将默认使用 PyTorch。
  • task (str, 默认为 "") — 管道的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当管道将使用DataLoader(当传递数据集时,对于 PyTorch 模型在 GPU 上),要使用的工作人员数量。
  • batch_size (int, 可选, 默认为 1) — 当管道将使用DataLoader(当传递数据集时,对于 PyTorch 模型在 GPU 上),要使用的批次大小,对于推断,这并不总是有益的,请阅读Batching with pipelines
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为-1) — CPU/GPU 支持的设备序数。将其设置为-1 将利用 CPU,正数将在关联的 CUDA 设备 id 上运行模型。您也可以传递本机的torch.devicestr
  • 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 教程中使用管道的基础知识

这个目标检测管道目前可以从 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 图像
  • 您可以使用此参数直接发送图像列表,数据集或生成器,如下所示:

检测传入的图像中的对象(边界框和类)。

自然语言处理

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

对话管道

class transformers.Conversation

<来源>

( messages: Union = None conversation_id: UUID = None **deprecated_kwargs )

参数

  • messages (Union[str, List[Dict[str, str]]], 可选) — 开始对话的初始消息,可以是一个字符串,也可以是包含“role”和“content”键的字典列表。如果传递了一个字符串,它将被解释为具有“user”角色的单个消息。
  • conversation_id (uuid.UUID, 可选) — 对话的唯一标识符。如果未提供,将为对话分配一个随机的 UUID4 id。

包含对话及其历史记录的实用类。此类旨在用作 ConversationalPipeline 的输入。对话包含几个实用函数,用于管理新用户输入和生成模型响应的添加。

用法:

conversation = Conversation("Going to the movies tonight - any suggestions?")
conversation.add_message({"role": "assistant", "content": "The Big lebowski."})
conversation.add_message({"role": "user", "content": "Is it good?"})
add_user_input

<来源>

( text: str overwrite: bool = False )

为下一轮对话添加用户输入。这是一个传统方法,假设输入必须交替用户/助手/用户/助手,因此不会连续添加多个用户消息。我们建议只使用带有“user”角色的add_message

append_response

<来源>

( response: str )

这是一个传统方法。我们建议只使用带有适当角色的add_message

mark_processed

<来源>

( )

这是一个传统方法,因为 Conversation 不再区分已处理和未处理的用户输入。我们在这里设置一个计数器,以保持行为大体向后兼容,但通常在编写新代码时,您应该直接阅读消息。

class transformers.ConversationalPipeline

<来源>

( *args **kwargs )

参数

  • model(PreTrainedModel 或 TFPreTrainedModel) — 管道将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,需要是继承自 TFPreTrainedModel 的模型。
  • tokenizer(PreTrainedTokenizer) — 管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer。
  • modelcard (strModelCard可选) — 为此管道的模型指定的模型卡。
  • framework (str, 可选) — 要使用的框架,可以是"pt"表示 PyTorch,也可以是"tf"表示 TensorFlow。指定的框架必须已安装。
    如果未指定框架,将默认使用当前安装的框架。如果未指定框架且两个框架都已安装,则将默认使用model的框架,或者如果未提供模型,则将默认使用 PyTorch。
  • task (str,默认为"") — 用于管道的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当管道将使用DataLoader(当传递数据集时,在 PyTorch 模型的 GPU 上),要使用的工作程序数。
  • batch_size (int, 可选, 默认为 1) — 当管道将使用DataLoader(当传递数据集时,在 PyTorch 模型的 GPU 上),要使用的批次大小,对于推断,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser(ArgumentHandler,可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为-1) — 用于 CPU/GPU 支持的设备序数。将其设置为-1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的torch.devicestr
  • binary_output (bool, 可选, 默认为False) — 指示管道输出是否应以二进制格式(即 pickle)或原始文本格式发生的标志。
  • min_length_for_response (int, 可选, 默认为 32) — 响应的最小长度(标记数)。
  • minimum_tokens (int, 可选, 默认为 10) — 留给响应的最小标记长度。

多轮对话管道。

示例:

>>> from transformers import pipeline, Conversation
# Any model with a chat template can be used in a ConversationalPipeline.
>>> chatbot = pipeline(model="facebook/blenderbot-400M-distill")
>>> # Conversation objects initialized with a string will treat it as a user message
>>> conversation = Conversation("I'm looking for a movie - what's your favourite one?")
>>> conversation = chatbot(conversation)
>>> conversation.messages[-1]["content"]
"I don't really have a favorite movie, but I do like action movies. What about you?"
>>> conversation.add_message({"role": "user", "content": "That's interesting, why do you like action movies?"})
>>> conversation = chatbot(conversation)
>>> conversation.messages[-1]["content"]
" I think it's just because they're so fast-paced and action-fantastic."

学习有关在 pipeline 教程中使用管道的基础知识

当前可以使用以下任务标识符从 pipeline()加载此对话管道:"conversational"

此管道可与具有聊天模板设置的任何模型一起使用。

__call__

<来源>

( conversations: Union num_workers = 0 **kwargs ) → export const metadata = 'undefined';Conversation or a list of Conversation

参数

  • conversations(一个 Conversation 或 Conversation 列表) — 用于生成响应的对话。输入也可以作为带有rolecontent键的字典列表传递 - 在这种情况下,它们将自动转换为Conversation对象。可以作为列表传递任何格式的多个对话。
  • clean_up_tokenization_spacesbool可选,默认为False)— 是否清除文本输出中可能存在的额外空格。generate_kwargs — 要传递给模型的 generate 方法的其他关键字参数(请参阅与您的框架对应的 generate 方法此处)。

返回

对话或对话列表

包含新用户输入的对话的更新生成响应的对话。

为输入的对话生成响应。

FillMaskPipeline

class 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(PreTrainedModel 或 TFPreTrainedModel)— 流水线将用于进行预测的模型。这需要是继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • tokenizer(PreTrainedTokenizer)— 流水线将用于为模型编码数据的分词器。该对象继承自 PreTrainedTokenizer。
  • modelcardstrModelCard可选)— 为该流水线的模型指定的模型卡。
  • frameworkstr可选)— 要使用的框架,可以是"pt"表示 PyTorch 或"tf"表示 TensorFlow。指定的框架必须已安装。
    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用model的框架,或者如果未提供模型,则默认使用 PyTorch。
  • taskstr,默认为"")— 用于流水线的任务标识符。
  • num_workersint可选,默认为 8)— 当流水线将使用DataLoader(在传递数据集时,在 PyTorch 模型的 GPU 上),要使用的工作人员数量。
  • batch_sizeint可选,默认为 1)— 当流水线将使用DataLoader(在传递数据集时,在 PyTorch 模型的 GPU 上),要使用的批次大小,对于推断,这并不总是有益的,请阅读使用流水线进行批处理
  • args_parser(ArgumentHandler,可选)— 负责解析提供的流水线参数的对象的引用。
  • deviceint可选,默认为-1)— CPU/GPU 支持的设备序数。将其设置为-1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的torch.devicestr
  • binary_outputbool可选,默认为False)— 指示流水线输出是否应以二进制格式(即 pickle)或原始文本格式发生的标志。
  • top_kint,默认为 5)— 要返回的预测数量。
  • targetsstrList[str]可选)— 当传递时,模型将限制分数到传递的目标,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,它们将被标记化,第一个生成的标记将被使用(带有警告,可能会更慢)。

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

示例:

>>> from transformers import pipeline
>>> fill_masker = pipeline(model="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 教程中使用管道的基础知识

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

此管道可以使用已经使用掩码语言建模目标进行训练的模型,其中包括库中的双向模型。请查看huggingface.co/models上可用模型的最新列表。

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

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

>>> from transformers import pipeline
>>> fill_masker = pipeline(model="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 ) → export const metadata = 'undefined';A list or a list of list of dict

参数

  • argsstrList[str])- 一个或多个文本(或一个提示列表)带有掩码标记。
  • targetsstrList[str]可选)- 当传递时,模型将限制分数到传递的目标,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,它们将被标记化,并且将使用第一个生成的标记(带有警告,并且可能会更慢)。
  • top_kint可选)- 当传递时,将覆盖要返回的预测数量。

返回

一个字典列表或字典列表

每个结果都以字典列表的形式呈现,具有以下键:

  • sequencestr)- 具有掩码标记预测的相应输入。
  • scorefloat)- 相应的概率。
  • tokenint)- 预测的标记 id(用于替换掩码标记)。
  • token_strstr)- 预测的标记(用于替换掩码标记)。

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

QuestionAnsweringPipeline

class transformers.QuestionAnsweringPipeline

<来源>

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

参数

  • model(PreTrainedModel 或 TFPreTrainedModel)- 该模型将被管道用于进行预测。这需要是继承自 PreTrainedModel(对于 PyTorch)和 TFPreTrainedModel(对于 TensorFlow)的模型。
  • tokenizer(PreTrainedTokenizer)- 该 tokenizer 将被管道用于为模型编码数据。此对象继承自 PreTrainedTokenizer。
  • modelcardstrModelCard可选)- 为此管道的模型指定的模型卡。
  • frameworkstr可选)- 要使用的框架,可以是"pt"表示 PyTorch 或"tf"表示 TensorFlow。指定的框架必须已安装。
    如果未指定框架,则将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用model的框架,或者如果未提供模型,则将默认使用 PyTorch。
  • taskstr,默认为"")- 用于管道的任务标识符。
  • num_workers (int, optional, 默认为 8) — 当管道将使用 DataLoader(在传递数据集时,在 Pytorch 模型的 GPU 上),要使用的工作人员数量。
  • batch_size (int, optional, 默认为 1) — 当管道将使用 DataLoader(在传递数据集时,在 Pytorch 模型的 GPU 上),要使用的批次大小,对于推理来说,这并不总是有益的,请阅读使用管道进行批处理
  • args_parser (ArgumentHandler, optional) — 负责解析提供的管道参数的对象的引用。
  • device (int, optional, 默认为-1) — 用于 CPU/GPU 支持的设备序数。将其设置为-1 将利用 CPU,正数将在关联的 CUDA 设备 id 上运行模型。您也可以传递原生的 torch.device 或一个 str
  • binary_output (bool, optional, 默认为 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 tutorial 中使用管道的基础知识。

此问答管道目前可以使用以下任务标识符从 pipeline()中加载:“question-answering”。

此管道可以使用已在问答任务上进行了微调的模型。请查看huggingface.co/models上可用模型的最新列表。

__call__

< source >

( *args **kwargs ) → export const metadata = 'undefined';A dict or a list of dict

参数

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

返回

一个 dict 或一个 dict 的列表

每个结果都作为一个带有以下键的字典:

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

通过使用输入的上下文回答提出的问题。

create_sample

< source >

( question: Union context: Union ) → export const metadata = 'undefined';One or a list of SquadExample

参数

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

返回

一个或多个 SquadExample

相应的 SquadExample 分组问题和上下文。

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

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

span_to_answer

< source >

( text: str start: int end: int ) → export const metadata = 'undefined';Dictionary like `{‘answer’

参数

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

返回

类似于 `{‘answer’

str, ‘start’: int, ‘end’: int}`

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

SummarizationPipeline

class transformers.SummarizationPipeline

< source >

( *args **kwargs )

参数

  • model (PreTrainedModel 或 TFPreTrainedModel) — 流水线将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 PyTorch 是 TFPreTrainedModel。
  • tokenizer (PreTrainedTokenizer) — 流水线将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer。
  • modelcard (strModelCard, 可选) — 为此流水线的模型指定的模型卡。
  • framework (str, 可选) — 要使用的框架,可以是 "pt" 代表 PyTorch 或 "tf" 代表 TensorFlow。指定的框架必须已安装。
    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用 model 的框架,或者如果未提供模型,则默认使用 PyTorch。
  • task (str, 默认为 "") — 用于流水线的任务标识符。
  • num_workers (int, 可选, 默认为 8) — 当流水线将使用 DataLoader(当传递数据集时,在 Pytorch 模型的 GPU 上),要使用的工作人员数量。
  • batch_size (int, 可选, 默认为 1) — 当流水线将使用 DataLoader(当传递数据集时,在 Pytorch 模型的 GPU 上),要使用的批量大小,对于推断,这并不总是有益的,请阅读 使用流水线进行批处理
  • args_parser (ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。
  • device (int, 可选, 默认为 -1) — CPU/GPU 支持的设备序号。将其设置为-1 将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的 torch.devicestr
  • binary_output (bool, 可选, 默认为 False) — 指示管道输出是否应以二进制格式(即 pickle)或原始文本格式进行的标志。

总结新闻文章和其他文档。

当前可以使用以下任务标识符从 pipeline() 加载此总结管道: "summarization".

此管道可以使用已在摘要任务上进行了微调的模型,目前有 ’bart-large-cnn’, ’t5-small’, ’t5-base’, ’t5-large’, ’t5-3b’, ’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="t5-base", tokenizer="t5-base", framework="tf")
summarizer("An apple a day, keeps the doctor away", min_length=5, max_length=20)
__call__

< source >

( *args **kwargs ) → export const metadata = 'undefined';A list or a list of list of dict

参数

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

返回

一个 dict 列表或 dict 列表的列表

每个结果都以以下键的字典形式呈现:

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

将输入的文本进行总结。

TableQuestionAnsweringPipeline

class transformers.TableQuestionAnsweringPipeline

< source >

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

参数

  • model (PreTrainedModel 或 TFPreTrainedModel) — 该管道将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow 是继承自 TFPreTrainedModel。
  • tokenizer (PreTrainedTokenizer) — 该管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer。
  • modelcard (strModelCard, 可选) — 为此管道的模型指定的模型卡。
  • framework (str, 可选) — 要使用的框架,可以是 "pt" 代表 PyTorch 或 "tf" 代表 TensorFlow。指定的框架必须已安装。
    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用 model 的框架,或者如果未提供模型,则将默认使用 PyTorch。
  • task (str, defaults to "") — 用于管道的任务标识符。
  • num_workers (int, optional, defaults to 8) — 当管道将使用 DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的工作人员数量。
  • batch_size (int, optional, defaults to 1) — 当管道将使用 DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上),要使用的批次大小,对于推理来说,这并不总是有益的,请阅读 Batching with pipelines
  • args_parser(ArgumentHandler, optional) — 负责解析提供的管道参数的对象的引用。
  • device (int, optional, defaults to -1) — 用于 CPU/GPU 支持的设备序数。将其设置为 -1 将利用 CPU,正数将在关联的 CUDA 设备 id 上运行模型。您也可以传递原生 torch.devicestr
  • binary_output (bool, optional, defaults to 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 教程 中使用管道的基础知识

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

此管道可以使用已在表格问答任务上进行了微调的模型。请查看 huggingface.co/models 上提供的可用模型的最新列表。

__call__

< source >

( *args **kwargs ) → export const metadata = 'undefined';A dictionary or a list of dictionaries containing results

参数

  • table (pd.DataFrameDict) — 将转换为包含所有表格值的 DataFrame 的 Pandas DataFrame 或字典。请参阅上面的字典示例。
  • query (strList[str]) — 将发送到模型的查询或查询列表,以及表格一起。
  • sequential (bool, optional, defaults to False) — 是否按顺序进行推理还是批处理。批处理更快,但像 SQA 这样的模型需要按顺序进行推理,以提取序列中的关系,考虑到它们的对话性质。
  • padding (bool, str 或 PaddingStrategy, optional, defaults to False) — 激活和控制填充。接受以下值:
  • True'longest': 填充到批次中最长的序列(如果只提供单个序列,则不填充)。
  • 'max_length': 填充到使用参数 max_length 指定的最大长度或模型的最大可接受输入长度(如果未提供该参数)。
  • False'do_not_pad'(默认): 不填充(即可以输出具有不同长度序列的批次)。
  • truncation (bool, strTapasTruncationStrategy, optional, defaults to False) — 激活和控制截断。接受以下值:
  • True'drop_rows_to_fit': 截断到使用参数 max_length 指定的最大长度或模型的最大可接受输入长度(如果未提供该参数)。这将逐行截断,从表中删除行。
  • False'do_not_truncate'(默认):不截断(即,可以输出序列长度大于模型最大可接受输入大小的批次)。

返回

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

每个结果是一个带有以下键的字典:

  • answerstr)— 给定表格的查询答案。如果有聚合器,答案将以AGGREGATOR >开头。
  • coordinatesList[Tuple[int, int]])— 答案单元格的坐标。
  • cellsList[str])— 由答案单元格值组成的字符串列表。
  • aggregatorstr)— 如果模型有聚合器,则返回聚合器。

根据表格回答查询。管道接受以下几种类型的输入,详细信息如下:

  • 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)


Transformers 4.37 中文文档(十七)(4)https://developer.aliyun.com/article/1564941

相关文章
|
3月前
|
PyTorch TensorFlow 调度
Transformers 4.37 中文文档(十五)(5)
Transformers 4.37 中文文档(十五)
49 1
Transformers 4.37 中文文档(十五)(5)
|
3月前
|
存储 缓存 PyTorch
Transformers 4.37 中文文档(十四)(4)
Transformers 4.37 中文文档(十四)
76 4
|
3月前
|
存储 PyTorch 测试技术
Transformers 4.37 中文文档(十四)(5)
Transformers 4.37 中文文档(十四)
51 4
|
3月前
|
存储 缓存 安全
Transformers 4.37 中文文档(十四)(7)
Transformers 4.37 中文文档(十四)
32 4
|
3月前
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(十七)(4)
Transformers 4.37 中文文档(十七)
38 1
|
3月前
|
文字识别 PyTorch TensorFlow
Transformers 4.37 中文文档(十七)(5)
Transformers 4.37 中文文档(十七)
42 1
|
3月前
|
存储 PyTorch TensorFlow
Transformers 4.37 中文文档(十七)(1)
Transformers 4.37 中文文档(十七)
42 1
|
3月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(十七)(2)
Transformers 4.37 中文文档(十七)
32 1
|
3月前
|
自然语言处理 算法 PyTorch
Transformers 4.37 中文文档(十五)(4)
Transformers 4.37 中文文档(十五)
38 1
|
3月前
|
存储
Transformers 4.37 中文文档(十五)(2)
Transformers 4.37 中文文档(十五)
56 1