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

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

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


TextClassificationPipeline

class transformers.TextClassificationPipeline

< source >

( **kwargs )

参数

  • model(PreTrainedModel 或 TFPreTrainedModel)— 该模型将被管道用于进行预测。这需要是继承自 PreTrainedModel 的模型,对于 PyTorch 是 TFPreTrainedModel。
  • tokenizer(PreTrainedTokenizer)— 该 tokenizer 将被管道用于为模型编码数据。该对象继承自 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)还是原始文本格式发生的标志。
  • return_all_scoresbool可选,默认为False)— 是否返回所有预测分数还是仅返回预测类的分数。
  • function_to_applystr可选,默认为"default")— 用于应用于模型输出以检索分数的函数。接受四个不同的值:
  • "default":如果模型有一个标签,则将在输出上应用 sigmoid 函数。如果模型有多个标签,则将在输出上应用 softmax 函数。
  • "sigmoid":在输出上应用 sigmoid 函数。
  • "softmax":在输出上应用 softmax 函数。
  • "none":不在输出上应用任何函数。

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

例:

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

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

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

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

__call__

<来源>

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

参数

  • argsstrList[str]Dict[str]List[Dict[str]])— 要分类的一个或多个文本。为了在分类中使用文本对,可以发送包含{"text","text_pair"}键的字典,或者这些字典的列表。
  • top_kint可选,默认为1)— 要返回多少结果。
  • function_to_applystr可选,默认为"default")— 用于应用于模型输出以检索分数的函数。接受四个不同的值:如果未指定此参数,则将根据标签数应用以下函数:
  • 如果模型有一个标签,将在输出上应用 sigmoid 函数。
  • 如果模型有多个标签,将在输出上应用 softmax 函数。
  • 可能的值为:
  • "sigmoid":在输出上应用 sigmoid 函数。
  • "softmax":在输出上应用 softmax 函数。
  • "none":不在输出上应用任何函数。

返回

一个列表或dict的列表

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

  • labelstr)— 预测的标签。
  • scorefloat)— 相应的概率。

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

对给定的文本进行分类。

TextGenerationPipeline

class transformers.TextGenerationPipeline

<来源>

( *args **kwargs )

参数

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

使用任何 ModelWithLMHead 的语言生成 pipeline。该 pipeline 预测将跟随指定文本提示的单词。

示例:

>>> from transformers import pipeline
>>> generator = pipeline(model="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)

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

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

该 pipeline 可以使用已经训练过自回归语言建模目标的模型,包括库中的单向模型(例如 gpt2)。查看huggingface.co/models上可用模型的列表。

__call__

<来源>

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

参数

  • args (strList[str]) — 一个或多个提示(或一个提示列表)以完成。
  • return_tensors (bool, 可选, 默认为 False) — 是否在输出中返回预测的张量(作为标记索引)。如果设置为 True,则不返回解码后的文本。
  • return_text (bool, 可选, 默认为 True) — 是否返回输出中解码后的文本。
  • return_full_text (bool, 可选, 默认为 True) — 如果设置为 False,则只返回添加的文本,否则返回完整的文本。仅在 return_text 设置为 True 时有意义。
  • clean_up_tokenization_spaces (bool, 可选, 默认为 False) — 是否清除文本输出中的潜在额外空格。
  • prefix (str, 可选) — 添加到提示的前缀。
  • handle_long_generation (str, 可选) — 默认情况下,此管道不处理长生成(超过模型最大长度的生成)。没有完美的解决方法(更多信息:github.com/huggingface/transformers/issues/14033#issuecomment-948385227)。这提供了根据您的用例解决该问题的常见策略。
  • None:默认策略,没有特别的操作
  • "hole":截断输入的左侧,并留下足够宽的间隙以进行生成(可能会截断大部分提示,当生成超出模型容量时不适用)
  • generate_kwargs — 传递给模型的 generate 方法的额外关键字参数(查看您框架对应的 generate 方法这里)。

返回

一个 dictdict 的列表

返回以下字典之一(不能返回 generated_textgenerated_token_ids 的组合):

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

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

文本到文本生成管道

class transformers.Text2TextGenerationPipeline

< source >

( *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)或原始文本格式发生的标志。

使用 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 ) → export const metadata = 'undefined';A list or a list of list of 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 方法 此处)。

返回

一个字典列表或字典列表

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

  • 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

class transformers.TokenClassificationPipeline

<来源>

( args_parser = <transformers.pipelines.token_classification.TokenClassificationArgumentHandler object at 0x7f3b448d6350> *args **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)或原始文本格式发生的标志。
  • ignore_labelsList[str],默认为["O"])— 要忽略的标签列表。
  • grouped_entitiesbool可选,默认为False)— 已弃用,请改用aggregation_strategy。是否将对应于相同实体的标记分组在预测中一起还是不分组。
  • strideint可选)— 如果提供了步幅,流水线将应用于所有文本。文本将被分割成大小为 model_max_length 的块。仅适用于快速分词器和aggregation_strategy不同于NONE的情况。此参数的值定义了块之间重叠标记的数量。换句话说,模型将在每一步中向前移动tokenizer.model_max_length - stride个标记。
  • aggregation_strategystr可选,默认为"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”:“企业”},{“word”:“soft”,“entity”:“名称”}]。查找  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 教程中使用管道的基础知识

此标记识别管道目前可以从 pipeline()中加载,使用以下任务标识符:“ner”(用于预测序列中的标记类别:人物、组织、地点或其他)。

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

__call__

<来源>

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

参数

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

返回

一个字典列表或字典列表的列表

每个结果都作为字典列表(对应于相应输入中的每个标记,或者如果使用聚合策略实例化此管道,则对应于每个实体)返回,具有以下键:

  • wordstr)—分类的标记/单词。这是通过解码所选标记获得的。如果要获得原始句子中的确切字符串,请使用startend
  • scorefloat)—entity的相应概率。
  • entitystr)—为该标记/单词预测的实体(当aggregation_strategy不是"none"时,它被命名为entity_group)。
  • indexint,仅在aggregation_strategy="none"时存在)—句子中对应标记的索引。
  • startint可选)—句子中对应实体的起始索引。仅当分词器中存在偏移量时才存在
  • endint可选)—句子中对应实体的结束索引。仅当分词器中存在偏移量时才存在

对给定的文本的每个标记进行分类。

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 )

参数

  • entitiesdict)— 管道预测的实体。

查找并将预测相同实体的相邻标记组合在一起。

group_sub_entities

<来源>

( entities: List )

参数

  • entitiesdict)— 管道预测的实体。

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

TranslationPipeline

class transformers.TranslationPipeline

<来源>

( *args **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)或原始文本格式发生的标志。

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

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

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

用法:

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

<来源>

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

参数

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

返回值

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

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

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

翻译给定的文本。

ZeroShotClassificationPipeline

class transformers.ZeroShotClassificationPipeline

<来源>

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

参数

  • model (PreTrainedModel 或 TFPreTrainedModel) — 该 pipeline 将用于进行预测的模型。这需要是继承自 PreTrainedModel 的模型,对于 TensorFlow 则是 TFPreTrainedModel。
  • tokenizer (PreTrainedTokenizer) — 该 pipeline 将用于为模型编码数据的分词器。该对象继承自 PreTrainedTokenizer。
  • modelcard (strModelCard, optional) — 为该 pipeline 的模型指定的模型卡片。
  • framework (str, optional) — 要使用的框架,可以是 "pt" 代表 PyTorch 或 "tf" 代表 TensorFlow。指定的框架必须已安装。
    如果未指定框架,将默认使用当前安装的框架。如果未指定框架并且两个框架都已安装,则将默认使用 model 的框架,或者如果未提供模型,则将默认使用 PyTorch。
  • task (str, 默认为 "") — 用于标识 pipeline 的任务。
  • num_workers (int, optional, 默认为 8) — 当 pipeline 将使用 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)或原始文本格式发生。

基于 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]}

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

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

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

__call__

< source >

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

参数

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

返回

一个 dictdict 列表

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

  • sequence (str) — 这是输出的序列。
  • labels (List[str]) — 按可能性顺序排序的标签。
  • scores (List[float]) — 每个标签的概率。

对给定的序列进行分类。有关更多信息,请参阅 ZeroShotClassificationPipeline 文档。


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

相关文章
|
3月前
|
PyTorch TensorFlow 调度
Transformers 4.37 中文文档(十五)(5)
Transformers 4.37 中文文档(十五)
49 1
Transformers 4.37 中文文档(十五)(5)
|
3月前
|
存储 自然语言处理 算法
Transformers 4.37 中文文档(十四)(3)
Transformers 4.37 中文文档(十四)
46 4
|
3月前
|
存储 缓存 PyTorch
Transformers 4.37 中文文档(十四)(4)
Transformers 4.37 中文文档(十四)
76 4
|
3月前
|
存储 缓存 PyTorch
Transformers 4.37 中文文档(十四)(6)
Transformers 4.37 中文文档(十四)
72 4
|
3月前
|
文字识别 PyTorch TensorFlow
Transformers 4.37 中文文档(十七)(5)
Transformers 4.37 中文文档(十七)
42 1
|
3月前
|
并行计算 PyTorch TensorFlow
Transformers 4.37 中文文档(十七)(3)
Transformers 4.37 中文文档(十七)
32 1
|
3月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(十七)(2)
Transformers 4.37 中文文档(十七)
32 1
|
3月前
|
存储 PyTorch TensorFlow
Transformers 4.37 中文文档(十七)(1)
Transformers 4.37 中文文档(十七)
42 1
|
3月前
|
存储
Transformers 4.37 中文文档(十五)(2)
Transformers 4.37 中文文档(十五)
56 1
|
3月前
|
存储 自然语言处理
Transformers 4.37 中文文档(十五)(3)
Transformers 4.37 中文文档(十五)
46 1