Transformers 4.37 中文文档(十七)(2)https://developer.aliyun.com/article/1564938
ZeroShotObjectDetectionPipeline
class transformers.ZeroShotObjectDetectionPipeline
( **kwargs )
参数
model
(PreTrainedModel 或 TFPreTrainedModel) — 该管道将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow,需要是继承自 TFPreTrainedModel 的模型。tokenizer
(PreTrainedTokenizer) — 该 tokenizer 将被管道用于对数据进行编码以供模型使用。该对象继承自 PreTrainedTokenizer。modelcard
(str
orModelCard
, 可选) — 为该管道的模型指定的模型卡。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.device
或str
。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.Image
或List[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
(str
或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 上),要使用的批次大小,对于推断,这并不总是有益的,请阅读使用管道进行批处理。args_parser
(ArgumentHandler,可选) — 负责解析提供的管道参数的对象的引用。device
(int
, 可选, 默认为-1) — 用于 CPU/GPU 支持的设备序数。将其设置为-1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的torch.device
或str
。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 列表) — 用于生成响应的对话。输入也可以作为带有role
和content
键的字典列表传递 - 在这种情况下,它们将自动转换为Conversation
对象。可以作为列表传递任何格式的多个对话。clean_up_tokenization_spaces
(bool
,可选,默认为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。modelcard
(str
或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 上),要使用的批次大小,对于推断,这并不总是有益的,请阅读使用流水线进行批处理。args_parser
(ArgumentHandler,可选)— 负责解析提供的流水线参数的对象的引用。device
(int
,可选,默认为-1)— CPU/GPU 支持的设备序数。将其设置为-1 将利用 CPU,正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的torch.device
或str
。binary_output
(bool
,可选,默认为False
)— 指示流水线输出是否应以二进制格式(即 pickle)或原始文本格式发生的标志。top_k
(int
,默认为 5)— 要返回的预测数量。targets
(str
或List[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
参数
args
(str
或List[str]
)- 一个或多个文本(或一个提示列表)带有掩码标记。targets
(str
或List[str]
,可选)- 当传递时,模型将限制分数到传递的目标,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,它们将被标记化,并且将使用第一个生成的标记(带有警告,并且可能会更慢)。top_k
(int
,可选)- 当传递时,将覆盖要返回的预测数量。
返回
一个字典列表或字典列表
每个结果都以字典列表的形式呈现,具有以下键:
sequence
(str
)- 具有掩码标记预测的相应输入。score
(float
)- 相应的概率。token
(int
)- 预测的标记 id(用于替换掩码标记)。token_str
(str
)- 预测的标记(用于替换掩码标记)。
填充作为输入的文本中的掩码标记。
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。modelcard
(str
或ModelCard
,可选)- 为此管道的模型指定的模型卡。framework
(str
,可选)- 要使用的框架,可以是"pt"
表示 PyTorch 或"tf"
表示 TensorFlow。指定的框架必须已安装。
如果未指定框架,则将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用model
的框架,或者如果未提供模型,则将默认使用 PyTorch。task
(str
,默认为""
)- 用于管道的任务标识符。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__
( *args **kwargs ) → export const metadata = 'undefined';A dict or a list of dict
参数
args
(SquadExample
或SquadExample
列表) — 包含问题和上下文的一个或多个SquadExample
。X
(SquadExample
或SquadExample
列表, optional) — 包含问题和上下文的一个或多个SquadExample
(将被视为第一个位置参数传递时的相同方式)。data
(SquadExample
或SquadExample
列表, optional) — 包含问题和上下文的一个或多个SquadExample
(将被视为第一个位置参数传递时的相同方式)。question
(str
或List[str]
) — 一个或多个问题(必须与context
参数一起使用)。context
(str
或List[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
( question: Union context: Union ) → export const metadata = 'undefined';One or a list of SquadExample
参数
question
(str
或List[str]
) — 提出的问题。context
(str
或List[str]
) — 我们将在其中寻找答案的上下文。
返回
一个或多个 SquadExample
相应的 SquadExample
分组问题和上下文。
QuestionAnsweringPipeline 在内部利用 SquadExample
。这个辅助方法封装了将问题和上下文转换为 SquadExample
的所有逻辑。
我们目前支持抽取式问答。
span_to_answer
( 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
( *args **kwargs )
参数
model
(PreTrainedModel 或 TFPreTrainedModel) — 流水线将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 PyTorch 是 TFPreTrainedModel。tokenizer
(PreTrainedTokenizer) — 流水线将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer。modelcard
(str
或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 上),要使用的批量大小,对于推断,这并不总是有益的,请阅读 使用流水线进行批处理 。args_parser
(ArgumentHandler, 可选) — 负责解析提供的管道参数的对象的引用。device
(int
, 可选, 默认为 -1) — CPU/GPU 支持的设备序号。将其设置为-1 将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。您也可以传递原生的torch.device
或str
。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__
( *args **kwargs ) → export const metadata = 'undefined';A list or a list of list of dict
参数
documents
(str 或List[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.Tensor
或tf.Tensor
, 当return_tensors=True
时存在) — 摘要的标记 ID。
将输入的文本进行总结。
TableQuestionAnsweringPipeline
class transformers.TableQuestionAnsweringPipeline
( args_parser = <transformers.pipelines.table_question_answering.TableQuestionAnsweringArgumentHandler object at 0x7f3b448d5f30> *args **kwargs )
参数
model
(PreTrainedModel 或 TFPreTrainedModel) — 该管道将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow 是继承自 TFPreTrainedModel。tokenizer
(PreTrainedTokenizer) — 该管道将用于为模型编码数据的分词器。此对象继承自 PreTrainedTokenizer。modelcard
(str
或ModelCard
, 可选) — 为此管道的模型指定的模型卡。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.device
或str
。binary_output
(bool
, optional, defaults toFalse
) — 标志,指示管道输出应以二进制格式(即 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__
( *args **kwargs ) → export const metadata = 'undefined';A dictionary or a list of dictionaries containing results
参数
table
(pd.DataFrame
或Dict
) — 将转换为包含所有表格值的 DataFrame 的 Pandas DataFrame 或字典。请参阅上面的字典示例。query
(str
或List[str]
) — 将发送到模型的查询或查询列表,以及表格一起。sequential
(bool
, optional, defaults toFalse
) — 是否按顺序进行推理还是批处理。批处理更快,但像 SQA 这样的模型需要按顺序进行推理,以提取序列中的关系,考虑到它们的对话性质。padding
(bool
,str
或 PaddingStrategy, optional, defaults toFalse
) — 激活和控制填充。接受以下值:
True
或'longest'
: 填充到批次中最长的序列(如果只提供单个序列,则不填充)。'max_length'
: 填充到使用参数max_length
指定的最大长度或模型的最大可接受输入长度(如果未提供该参数)。False
或'do_not_pad'
(默认): 不填充(即可以输出具有不同长度序列的批次)。
truncation
(bool
,str
或TapasTruncationStrategy
, optional, defaults toFalse
) — 激活和控制截断。接受以下值:
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)
Transformers 4.37 中文文档(十七)(4)https://developer.aliyun.com/article/1564941