19. Transformers - 文本领域的任务类

文章目录

自然语言处理

Pipeline FillMaskPipeline TableQuestionAnsweringPipeline TextClassificationPipeline ChunkPipeline TokenClassificationPipeline QuestionAnsweringPipeline ZeroShotClassificationPipeline TextGenerationPipeline Text2TextGenerationPipeline SummarizationPipeline TranslationPipeline

Transformers 库中,可以对文本进行分类,包括文本分类("sentiment-analysis" 或 "Text classification")任务类、零样本文本分类("zero-shot-classification")任务类和命名实体识别("ner")任务类;可以实现文本生成,包括文本摘要("summarization")任务类、问答("question-answering")任务类、表格问答("table-question-answering")任务类、文本生成("text-generation")任务类、文生文("text2text-generation")任务类、翻译("translation" 或 "translation_xx_to_yy")任务类以及掩码填充("fill-mask")任务类。

FillMaskPipeline 任务类

掩码语言模型(masked language modeling , MLM)类似于我们在考试中经常遇到的完形填空。掩码语言模拟的任务是用一个掩码标记(token)来遮罩一个序列中的标记,并提示模型用一个适当的标记来填充该遮罩。

FillMaskPipeline 使用 MLM 来预测一个文本序列中的词语。 依托 ModelWithLMHead 来实现单词的预测。如果使用 Pipeline 容器类,可通过标识 fill-mask 调用。

构造函数

该类构造函数与父类定义相同。

实例函数

函数原型:

复制代码
__call__(self, inputs, **kwargs)

其中:

  • inputs:可以是 str 类型或者 list[str]类型,但文本或者列表中的文本都是使用掩码标记过的文本。
  • top_kint 类型,【可填 】。通过它设置一个值,指定最大的预测数量, 如果设置为 None 或者更大的数字,则该值将被默认为预测数。
  • tokenizer_kwargsdict 类型。【必填 】。在预处理时使用的参数。传值如 tokenizer_kwargs="{"truncation": True}"
  • mask_token_idstr 类型,【必填】,掩码标识符。该标识符要与在掩码文本中使用的一致。
  • targetsstr 类型或者 list[str] 类型,【可填】。如果该参数填写并传入,则仅使用所提供的这些词汇来评估得分,而不是整个模型提供的词汇表;如果提供的词汇不在模型提供的词汇表中,则首先先对提供的词汇做标记,并使用第一个结果标记(这可能导致评估很慢)。

返回结果

如果是单句输入,则返回一个由 dict 构成的评估结果列表。字典的构成属性如下:

  • sequencestr 类型,用掩码标记标记过的原始输入文本;
  • scorefloat 类型,评估得分
  • tokenint 类型,预测的结果标识号
  • token_strstr类型,预测的结果标识名

如果输入是 list,则列表中的每个就是单句输入返回的结构结构。

TextClassificationPipeline 任务类

文本分类任务是将一段文本(可以是句子级别、段落或文档)从预定义的类别集合中进行标记。TextClassificationPipeline 任务类则是完成该功能的特定类;实现具体的功能依托于 ModelForSequenceClassification 类。如果使用 Pipeline 容器类,可通过标识 sentiment-analysis 调用。

构造函数

函数原型:

复制代码
__init__(self, **kwargs)

无特别说明。

实例函数

函数原型:

复制代码
__call__(self, inputs, **kwargs)

其中:

  • inputsstr 类型或 list[str] 类型或者 dict[str] 类型或者 list[dict[str]] 类型。从类型支持上看,构造函数可以提供文本对。一般的,我们提供文本即可,但有时有下面需求时,可以使用字典传入文本对:
    • 文本匹配:判断两个句子是否相似或匹配;
    • 文本蕴含:判断一个句子是否能从另一个句子中推断出来;
    • 自然语言理解:分析前提与假设之间的关系。
  • top_kint 类型,【可填 】。通过它设置一个值,指定最大的预测数量, 如果设置为 None 或者更大的数字,则该值将被默认为预测数。
  • function_to_applystr 类型,【可填 】。指定后处理时用的处理方法;可能值有:sigmoidsoftmaxnone;默认为 softmax,即使用逻辑回归算法。
  • return_all_scoresbool 类型,可填,默认为 None;是否返回所有的评估得分。该参数已经过期,使用 top_k来决定返回的数量;如果 top_kNone 时表示全部返回。
  • tokenizer_kwargsdict 类型,【必填 】。在预处理时使用的参数。传值如 tokenizer_kwargs="{"truncation": True}"

返回结果

如果给的一句文本或者一个文本对,则返回由 dict 构成的 listdictlabelscore 两个属性构成:

  • labelstr 类型,标签或分类名;
  • scoreint 类型,评估得分。

如果输入是由多个文本或多个文本对组成的列表,列表中的每个值是由单个文本或文本对返回的结果结构

ZeroShotClassificationPipeline 任务类

零样本文本分类也是对给定文本输入进行分类,但和文本分类的区别在于:文本分类是在既定的已知分类上计算分类的得分概率;而零样本文本分类没有可参照的样本,分类集合也是和分析文本通过参数同时传入。

ZeroShotClassificationPipeline 类依托 ModelForSequenceClassification完成具体的功能。如果使用 Pipeline 容器类,可通过标识 zero-shot-classification 调用。

构造函数

函数原型:

复制代码
 __init__(self, args_parser=ZeroShotClassificationArgumentHandler(), *args, **kwargs)

其中:

  • args_parser:参数解析器,默认使用 ZeroShotClassificationArgumentHandler
  • args:位置参数。
  • kwargs: 字典参数。

实例函数

函数原型:

复制代码
__call__(self, sequences: Union[str, List[str]], *args, **kwargs)

其中:

  • sequencesstr 类型,或者是 list[str] 类型。
  • multi_class:该参数已过时,使用 multi_label 代替。
  • candidate_labelslist类型,列表值为 str 类型。【必填】。通过它传入新的标签或标签列表。
  • hypothesis_templatestr 类型,输出用的格式化模板;【可选 】,默认为 "This example is {}."
  • multi_labelbool 类型,【可选 】。默认为 False。表示是否允许多个候选标签。如果为 False,则将得分归一化,使每个序列的标签可能性之和趋向于1,即为每个序列分配一个标签; 如果为 True,则认为标签是独立的,并且通过对 ESCS 指标通过 softmax 函数计算来对每个候选项的概率归一化。

返回结果

如果给的一句文本,则返回由 dict 构成的 listdictsequencelabelscore 两个属性构成:

  • sequencestr 类型,输出序列,输入序列仅是该输出序列的一部分,在其 sequence 属性中;
  • labellist[str] 类型,预测到标签或分类名集合;
  • scorelist[float] 类型,评估得分集合。

如果输入是由多个文本组成的列表,列表中的每个值是由单个文本或文本对返回的结果结构

TokenClassificationPipeline 任务类

在任何 NLP 任务中,文本都经过预处理,将文本序列分成单个单词或子词。这些被称为 tokensToken分类Token classification)将每个token分配一个来自预定义类别集的标签。

两种常见的 Token 分类是:

  • 命名实体识别(NER):根据实体类别(如组织、人员、位置或日期)对token进行标记。NER在生物医学设置中特别受欢迎,可以标记基因、蛋白质和药物名称。
  • 词性标注(POS):根据其词性(如名词、动词或形容词)对标记进行标记。POS对于帮助翻译系统了解两个相同的单词如何在语法上不同很有用(作为名词的银行与作为动词的银行)。

如果使用 Pipeline 容器类,可通过标识 ner 调用。

构造函数

与父类相同。

实例函数

函数原型:

复制代码
__call__(self, inputs: Union[str, List[str]], **kwargs)

其中:

  • inputsstr 类型,或者是 list[str] 类型。

  • ignore_labelsList[str] 类型,默认为 ["O"],【可选】。忽略的标签列表。如果设置了值,则标记的词在该列表中则忽略。

  • grouped_entitiesbool 类型,默认为False,【可选 】。是否在预测中将与同一实体相对应的 token 放在同一分组。注意:该值将在5.0版本后移除,建议不要再使用该参数或将该值设置为 None

  • ignore_subwordsbool 类型,【可选 】。是否忽略子词。如果为 True,则使用 first 融合策略;如果为 False,使用 simple 融合策略。注意:该值将在5.0版本后移除,建议不要再使用该参数或将该值设置为 None

  • aggregation_strategystr 类型,默认为 none; 【可选 】。基于模型预测的 token 融合策略,可能的值为:

    • 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 标签将最终成为不同的实体。在基于单词的语言中,我们可能会不得不将单词分割:想象微软被标记为[{"word": "Micro", "entity": "ENTERPRISE"}, {"word": "soft", "entity": "NAME"}]。寻找 FIRSTMAXAVERAGE来 减轻这种情况并消除单词的歧义(在支持这种含义的语言上,基本上是用空格来分隔 token)。这些缓解措施只适用于真实的单词,New york 可能仍然被标记为两个不同的实体;

    • first :(只适用于基于词的模型)将使用 SIMPLE 策略,除了词,不能以不同的标签结束。当存在歧义时,词将简单地使用词的第一个标记;

    • average :(仅适用于基于词的模型)将使用 SIMPLE 策略,除了词,不能以不同的标签结束。得分将首先在 token 上平均,然后应用最大标签;

    • max :(仅适用于基于词的模型)将使用 SIMPLE 策略,除了词,不能以不同的标签结束。词实体将成为得分最高的 token

  • offset_mappinglist 类型,【可选】。偏移映射,表示该标记在原始文本中的起始和结束字符位置。

  • strideint 类型, 【可选 】。如果提供了stride,则将应用于所有文本。文本被分割成大小为 model_max_length 的块。仅适用于快速标记器和 aggregation_strategy 不为 none 情况下。此参数值定义了块之间 token 重叠的数量。换句话说,模型将按照 tokenizer.model_max_length 减去 stride 的步幅往前标记。

返回结果

如果输入是单句文本,则返回一个由 dict 构成的 list。字典具有以下属性键:

  • wordstr 类型。 分好组的 token/词。这是通过解码所选 token获得的。如果您想在原始句子中使用完全相同的字符串,使用 start end' 从原始输入文本中提取。
  • scorefloat 类型。 对应的实体的概率。
  • entitystr类型。 为该 token/词预测的实体(当 aggregation_strategy不是 none 时,它被命名为entity_group)。
  • index int类型。 仅当 aggregation_strategy="none"时出现,句子中对应token的索引。
  • startint类型。 可选。句子中对应实体的起始索引。仅当偏移量在标记器中可用时才存在
  • endint类型。 可选。句子中对应实体的末尾索引。仅当偏移量在标记器中可用时才存在

如果输入是一个列表,即多个文本,则返回的也是一个 list 类型的结果,列表的每项值为单句文本输入时的返回结构。

QuestionAnsweringPipeline 任务类

简言之,问答任务类就是完成根据用户提出的问题给出答案的需求。提供答案的方式有两种:

  • 抽取式:给定一个问题和一些上下文,然后模型从给定的上下文抽取出一些文本片段来回答提出的问题;
  • 抽象式 :给定一个问题和一些上下文,然后根据问题和上下文生成所需的答案。该方式参见 "Text2TextGenerationPipeline 任务类" 一节。

QuestionAnsweringPipeline 依赖于 ModelForQuestionAnswering 来具体实现所需的功能。如果使用 Pipeline 容器类,可通过标识 question-answering 调用。

构造函数

构造函数定义与父类相同。

实例函数

函数原型:

复制代码
__call__(self, *args, **kwargs)

问答任务接受的输入有多种可能性,所以将输入与其他输入参数分离出来单独讲解。

首先根据位置参数 args结合来提取,如果位置参数长度为1,则提取出该值作为问题来使用;如果长度为2,则将第一个值作为问题,第二个值作为上下文使用。

如果位置参数没有值,则检查字典参数 kwargs :如果存在 X 属性,则取其值作为输入;如果无 X 键,则检查有无 data 属性键,如果存在,则取其值作为输入;如果 data 键不存在,则检查 questioncontent 这两个键是否同时存在,如果都存在,则提取 question 作为问题,提取 content 作为问题的上下文构造输入。

  • top_kint 类型,【可选 】。默认为 1。限制输入的命中数量,指定输出得分最高的前top_k的命中结果。

  • doc_strideint 类型,【可选】。默认为 128。如果上下文太长而不适合模型,那么它将被拆分成几个重叠的块。这个参数控制了重叠的大小。

  • max_answer_lenint 类型,【可选】。默认为 15。预测答案的最大长度(例如,只考虑长度较短的答案)。

  • max_seq_lenint 类型,【可选 】,默认为 384。限制传入的所有句子(上下文+问题)的最大长度。如果需要,上下文将被分割成几个块(通过设置的doc_stride限定重叠大小)。

  • max_question_lenint 类型,【可选】,默认为64。限定在经过分词后的问题的最大长度,如果太长,将被截断。

  • handle_impossible_answerbool 类型,【可选 】,默认为 False。是否可接受不可能的答案。

  • align_to_wordsbool 类型,【可选 】,默认为 True。试图将答案与真实单词对齐。提高用空格分隔的语言的质量。可能会影响非空格分隔的语言(如日语或中文)。

  • paddingboolstr 或 [~utils.PaddingStrategy] 类型。【可选 】。默认为Falsedo_not_pad。激活并控制填充。接受以下值:

    • Truelongest:填充到批处理中最长的序列(如果只提供单个序列,则不填充)。

    • max_length:填充到参数 max_length 指定的最大长度,如果没有提供该参数,则填充到模型可接受的最大输入长度。

    • Falsedo_not_pad:无填充(即,可以输出具有不同长度序列的批处理)。

返回结果

对于单个问题,返回值如果只有一个答案,则返回 dict的类型,如果有多个答案,则返回由 dict 组成的 listdict包含以下属性:

  • scorefloat 类型,答案与问题的相似度得分;越高越相似。
  • startint 类型,answer中的开始索引位置。
  • endint 类型,answer中的结束索引位置。
  • answerstr 类型,答案。

如果是多个问题,返回的是一个列表,列表中每项表示对应问题的答案,每项的结构与单个问题返回的结构一致。

TableQuestionAnsweringPipeline 任务类

和问答任务的区别在于,问答任务是通过上下文文本来获取答案,而表格问答任务是通过给定的表格内容获取答案。

TableQuestionAnsweringPipeline 依托 ModelForTableQuestionAnswering 来实现具体的功能。如果使用 Pipeline 容器类,可通过标识 table-question-answering 调用。

构造函数

函数原型:

复制代码
 __init__(self, args_parser=TableQuestionAnsweringArgumentHandler(), *args, **kwargs)

其中:

  • args_parser:参数解析器,默认使用 TableQuestionAnsweringArgumentHandler
  • args:位置参数。
  • kwargs: 字典参数。

实例函数

函数原型:

复制代码
__call__(self, *args, **kwargs):
  • sequentialbool 类型,【可选 】;默认为 False。是按顺序还是作为批次进行推理。批处理速度更快,但是像 SQA 这样的模型要求按顺序进行推理,以便从给定会话的序列中提取关系。

  • truncationboolstrTapasTruncationStrategy 类型。【可选 】。默认为 False。接受以下值:

    • Truedrop_rows_to_fit:截断到参数 max_length 指定的最大长度,如果没有提供该参数,则截断到模型可接受的最大输入长度。这将逐行截断,从表中删除行。

    • Falsedo_not_truncate:不截断(即,可以输出序列长度大于模型最大可接受输入大小的批处理)。

  • paddingboolstr 或 [~utils.PaddingStrategy] 类型。【可选 】。默认为Falsedo_not_pad。激活并控制填充。接受以下值:

    • Truelongest:填充到批处理中最长的序列(如果只提供单个序列,则不填充)。

    • max_length:填充到参数 max_length 指定的最大长度,如果没有提供该参数,则填充到模型可接受的最大输入长度。

    • Falsedo_not_pad:无填充(即,可以输出具有不同长度序列的批处理)。

  • tablepd.DataFrameDict 类型,【必填 】。如果是 dict 类型的值使用 pandas.DataFrame.from_dict 转换为pd.DataFrame;提供的表数据。与 query 组合使用。

  • querystrList[str] 类型,【必填 】。查询的问题或问题列表。与 table 组合使用。

返回结果

如果 query 为 单个查询,如果只有一个答案,则返回 dict 类型结果;如果返回多个答案,则返回由 dict 组成的 list。字典由以下属性构成:

  • answerstr 类型。从给定表中查询到的答案。如果使用了聚合器(aggregator 参数),答案将以 AGGREGATOR > 开头。
  • coordinatesList[Tuple[int, int]] 形式的组合类型。答案来源的单元格(行、列)。
  • cellsList[str] 类型。组合成答案的来源于表格的值。
  • aggregatorstr 类型。如果模型指定了聚合器,则返回模型中指定的聚合器名称。

如果 query 是一组查询,则返回一个 list。列表中的每一项的结构和 query 为单查询的返回一致。

TextGenerationPipeline 任务类

文本生成(Text Generation)是一种预测文本序列中词元的任务。它预测将跟随指定文本提示的词元。当底层模型是会话模型时,它还可以接受一个或多个聊天,在这种情况下,将以聊天模式展开,通过添加响应来继续聊天。每个响应都采用由 dict 构成的 list 形式返回,其中字典包含 rolecontent 属性键。

TextGenerationPipeline 类依托可提供的 ModelWithLMHead 来实现具体功能。如果使用 Pipeline 容器类,可通过标识 text-generation 调用。

构造函数

函数原型:

复制代码
__init__(self, *args, **kwargs)

无特别说明。

实例函数

函数原型:

复制代码
__call__(self, text_inputs, **kwargs)

其中:

  • text_inputs:支持 strlist[str]List[Dict[str, str]]List[List[Dict[str, str]]] 类型。当一个或者几个或者一组提示传入时,该任务将继续执行每个提示。或者传递一个由带有 rolecontent 属性的字典构成的列表的聊天列表。在传递聊天信息时,将使用模型的聊天模板对其进行格式化,然后再将其传递给模型。

  • return_tensorsbool 类型,【可选 】,默认为 False 。返回输出中包含预测的张量(作为标记索引);如果为 True,则只返回张量而不返回解码后的文本。

  • return_textbool 类型,【可选 】。如果为 True 则在输出中包含解码后的文本。

  • return_full_textbool 类型,【可选 】。默认为 True。如果为 False,则只返回添加的文本。否则将返回所有的文本。该参数不要和 return_text 参数同时使用。

  • clean_up_tokenization_spacesbool 类型,【可选 】。默认为 True。是否清除文本输出中潜在的额外空格。

  • continue_final_messagebool 类型,【可选 】。默认为 True。指示模型把每个聊天输入作为最后一条消息处理,而不是作为新的开始,从而允许"预填充"其响应。如果希望在聊天的最后一条聊天记录中的 role属性值为 assistant,则将该参数设置为 True

  • prefixstr 类型,【可选】,默认为空字符串。添加到提示中的前缀。

  • handle_long_generationstr,【可选 】,默认为 None。默认情况下,任务不处理长文本生成(以某种形式超过模型最大长度的生成)。对于长文本生成,没有好的解决办法,只能根据实际情况来确定;可以设置为以下值:

    • None:不需要任何处理。

    • hole:截断输入的左侧,并留下足够的宽度让生成(可能会截断很多提示符,当生成超出模型容量时不适用)

  • generate_kwargsdict 类型,【可选 】。额外的关键字参数字典,在调用模型的 generate 方法时传入。

返回结果

如果是单句,在返回由 dict 构成的 list;字典 dict 至少由以下属性键构成:

  • generated_textstr 类型,生成的解码文本。需要返回,则设置 return_text=True
  • generated_token_idstorch.Tensortf.Tensor 类型。返回生成文本的张量(token id)。需要返回,则设置 return_tensors=True

Text2TextGenerationPipeline 任务类

文生文(Text-to-Text)和文本生成(Text Generation)两者都是自然语言处理(NLP)的子领域,但它们有不同的重点和应用场景;文生文则指的是将一段文本转换为另一段文本的技术,例如:机器翻译、文本摘要、风格转换,这种技术通常使用序列到序列模型或变换器模型来训练语言模型,从而能够根据输入的文本生成新的文本内容。

Text2TextGenerationPipeline 依托 seq2seq 实现具体功能。如果使用 Pipeline 容器类,可通过标识 text2text-generation 调用。

构造函数

函数原型:

复制代码
__init__(self, *args, **kwargs)

无特别说明。

实例函数

函数说明:

复制代码
__call__(self, *args, **kwargs)

其中:

  • argsstrList[str] 类型。输入文本

  • return_tensorsbool可选 】,默认为 False 。返回输出中包含预测的张量(作为标记索引);如果为 True,则只返回张量而不返回解码后的文本。

  • return_textbool 类型,【可选 】,默认为 True。如果为 True 则在输出中包含解码后的文本。

  • return_typeReturnType 类型。【可选 】,默认为 None。设定输出返回的内容,即是返回张量还是解码后的文本。

  • stop_sequencestr 或者 list 类型。停止词。

  • clean_up_tokenization_spacesbool 类型,【可选 】。默认为 True。是否清除文本输出中潜在的额外空格。

  • truncationTruncationStrategy 类型,【可选 】,默认为 TruncationStrategy.DO_NOT_TRUNCATE 。接受以下值:

    • drop_rows_to_fit:截断到参数 max_length 指定的最大长度,如果没有提供该参数,则截断到模型可接受的最大输入长度。这将逐行截断,从表中删除行。

    • do_not_truncate:不截断(即,可以输出序列长度大于模型最大可接受输入大小的批处理)。

  • generate_kwargs:后处理所需的配置参数字典;可选 。可包含在 forward_params 参数字典中。

返回结果

如果是单文本输入,则返回一个由 dict 构成的 list,字典由以下属性键构成:

  • generated_textstr 类型,解码后的生成文本。如果需要该文本,需要设置 return_text=True,否则不输出。
  • generated_token_idstorch.Tensortf.Tensor 类型,推理后得到的结果张量。如果需要该返回,需要设置 return_tensors=True

如果是多个文本输入,也是返回一个 list,list的每项值的结构和单文本的返回结构相同。

SummarizationPipeline 任务类

文本摘要是从给定的较长的输入文本中提取文本的摘要,并尽可能保留原始文档的大部分含义。

SummarizationPipeline 类继承于 Text2TextGenerationPipeline ,它本质也是文生文的范畴。

如果使用 Pipeline 容器类,可通过标识 summarization调用。

构造函数

构造函数定义与父类相同

实例函数

函数原型:

复制代码
__call__(self, *args, **kwargs)

其中:

  • documentsstrList[str] 类型。输入文本。注意 : 对输入文本的读取,是按照位置参数 args 提取的,要求输入文本必须是第一个参数;并不没有documents 这个属性,仅是为了说明方便。
  • return_textbool 类型,【可选 】,默认为 True。如果为 True 则在输出中包含解码后的文本。
  • return_tensorsbool可选 】,默认为 False 。返回输出中包含预测的张量(作为标记索引);如果为 True,则只返回张量而不返回解码后的文本。
  • clean_up_tokenization_spacesbool 类型,【可选 】。默认为 True。是否清除文本输出中潜在的额外空格。
  • generate_kwargs:后处理所需的配置参数字典;可选 。可包含在 forward_params 参数字典中。
  • 其他参数:参见 Text2TextGenerationPipeline 的说明。

返回结果

如果是单文本输入,则返回一个由 dict 构成的 list,字典由以下属性键构成:

  • summary_textstr 类型,解码后的生成文本。如果需要该文本,需要设置 return_text=True,否则不输出。
  • summary_token_idstorch.Tensortf.Tensor 类型,推理后得到的结果张量。如果需要该返回,需要设置 return_tensors=True

如果是多个文本输入,也是返回一个 list,list的每项值的结构和单文本的返回结构相同。

TranslationPipeline 任务类

翻译(Translation)是将一种语言的文本序列转换为另一种语言的文本序列。它对于帮助来自不同背景的人们相互交流、帮助翻译内容以吸引更广泛的受众,甚至成为学习工具以帮助人们学习一门新语言都非常重要。

TranslationPipeline 类继承自 Text2TextGenerationPipeline,具体实现翻译的需求在 Hub 提供了许多模型做支持,可以选取其中一个合适的模型来使用。如果使用 Pipeline 容器类,可通过标识 translation_xx_to_yy 或 translation 调用。

构造函数

原型函数定义与父类相同。

实例函数

函数原型:

复制代码
__call__(self, *args, **kwargs):

其中:

  • argsstrList[str] 类型。输入文本。按照位置参数 args 提取的,要求输入文本必须是第一个参数;
  • return_tensorsbool可选 】,默认为 False 。返回输出中包含预测的张量(作为标记索引);如果为 True,则只返回张量而不返回解码后的文本。
  • return_textbool 类型,【可选 】,默认为 True。如果为 True 则在输出中包含解码后的文本。
  • clean_up_tokenization_spacesbool 类型,【可选 】。默认为 True。是否清除文本输出中潜在的额外空格。
  • src_langstr 类型,【可选】,源语种。根据具体需求确定是否需要多语言模型,这对单对翻译模型没有影响。
  • tgt_langstr 类型,【可选】,目标语种。根据具体需求确定是否需要多语言模型,这对单对翻译模型没有影响。
  • generate_kwargs:后处理所需的配置参数字典;可选 。可包含在 forward_params 参数字典中。
  • 其他参数:参见 Text2TextGenerationPipeline 的说明。

返回结果

  • 如果是单文本输入,则返回一个由 dict 构成的 list,字典由以下属性键构成:
    • translation_textstr 类型,解码后的生成文本。如果需要该文本,需要设置 return_text=True,否则不输出。
    • translation_token_idstorch.Tensortf.Tensor 类型,推理后得到的结果张量。如果需要该返回,需要设置 return_tensors=True
  • 如果是多个文本输入,也是返回一个 list,list的每项值的结构和单文本的返回结构相同。
相关推荐
Fabarta技术团队2 小时前
枫清科技项目成功入选市科委、中关村管委会2025年重点应用场景项目名单
人工智能·科技
是店小二呀2 小时前
出差忘带文件?我的急救方案节点小宝4.0
人工智能
李子琪。2 小时前
AI创新创业:从技术赋能到范式革命
人工智能
LJ97951112 小时前
智能连接:Infoseek如何重新定义媒体发布效率
大数据·人工智能
字节跳动视频云技术团队2 小时前
从“抖音同款”到“豆包同款”:视频云正在进入 Agent 时代
人工智能
狮子也疯狂2 小时前
昇腾ModelSlim工具:大模型量化推理优化实践指南
人工智能
小白开始进步2 小时前
OpenCV图像滤波:Python实战指南
人工智能·python·opencv
island13142 小时前
PyTorch 2.0 核心技术深度解析torch.compile 从原理到实践
人工智能·pytorch·python
车企求职辅导2 小时前
新能源汽车零部件全品类汇总
人工智能·算法·车载系统·自动驾驶·汽车·智能驾驶·智能座舱