"...git@developer.sourcefind.cn:chenpangpang/transformers.git" did not exist on "24d5ad1dcceee736ac829ec316fa3320e4df0064"
Unverified Commit 972535ea authored by Joe Davison's avatar Joe Davison Committed by GitHub
Browse files

fix zero shot pipeline docs (#6245)

parent 5920a37a
...@@ -20,6 +20,7 @@ There are two categories of pipeline abstractions to be aware about: ...@@ -20,6 +20,7 @@ There are two categories of pipeline abstractions to be aware about:
- :class:`~transformers.TextGenerationPipeline` - :class:`~transformers.TextGenerationPipeline`
- :class:`~transformers.TokenClassificationPipeline` - :class:`~transformers.TokenClassificationPipeline`
- :class:`~transformers.TranslationPipeline` - :class:`~transformers.TranslationPipeline`
- :class:`~transformers.ZeroShotClassificationPipeline`
The pipeline abstraction The pipeline abstraction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -97,6 +98,13 @@ TokenClassificationPipeline ...@@ -97,6 +98,13 @@ TokenClassificationPipeline
:special-members: __call__ :special-members: __call__
:members: :members:
ZeroShotClassificationPipeline
==========================================
.. autoclass:: transformers.ZeroShotClassificationPipeline
:special-members: __call__
:members:
Parent class: :obj:`Pipeline` Parent class: :obj:`Pipeline`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......
...@@ -120,6 +120,7 @@ from .pipelines import ( ...@@ -120,6 +120,7 @@ from .pipelines import (
TextGenerationPipeline, TextGenerationPipeline,
TokenClassificationPipeline, TokenClassificationPipeline,
TranslationPipeline, TranslationPipeline,
ZeroShotClassificationPipeline,
pipeline, pipeline,
) )
......
...@@ -1033,30 +1033,31 @@ class ZeroShotClassificationPipeline(Pipeline): ...@@ -1033,30 +1033,31 @@ class ZeroShotClassificationPipeline(Pipeline):
Classify the sequence(s) given as inputs. Classify the sequence(s) given as inputs.
Args: Args:
sequences (:obj:`str` or obj:`List[str]`): sequences (:obj:`str` or :obj:`List[str]`):
The sequence(s) to classify, will be truncated if the model input is too large. The sequence(s) to classify, will be truncated if the model input is too large.
candidate_labels (:obj:`str` or obj:`List[str]`): candidate_labels (:obj:`str` or :obj:`List[str]`):
The set of possible class labels to classify each sequence into. Can be a single label, a string of The set of possible class labels to classify each sequence into. Can be a single label, a string of
comma-separated labels, or a list of labels. comma-separated labels, or a list of labels.
hypothesis_template (obj:`str`, `optional`, defaults to :obj:`"This example is {}."`): hypothesis_template (:obj:`str`, `optional`, defaults to :obj:`"This example is {}."`):
The template used to turn each label into an NLI-style hypothesis. This template must include a {} The template used to turn each label into an NLI-style hypothesis. This template must include a {}
or similar syntax for the candidate label to be inserted into the template. For example, the default or similar syntax for the candidate label to be inserted into the template. For example, the default
template is :obj:`"This example is {}."` With the candidate label :obj:`"sports"`, this would be fed template is :obj:`"This example is {}."` With the candidate label :obj:`"sports"`, this would be fed
into the model like :obj:`"<cls> sequence to classify <sep> This example is sports . <sep>"`. The into the model like :obj:`"<cls> sequence to classify <sep> This example is sports . <sep>"`. The
default template works well in many cases, but it may be worthwhile to experiment with different default template works well in many cases, but it may be worthwhile to experiment with different
templates depending on the task setting. templates depending on the task setting.
multi_class (obj:`bool`, `optional`, defaults to :obj:`False`): multi_class (:obj:`bool`, `optional`, defaults to :obj:`False`):
Whether or not multiple candidate labels can be true. If :obj:`False`, the scores are normalized Whether or not multiple candidate labels can be true. If :obj:`False`, the scores are normalized
such that the sum of the label likelihoods for each sequence is 1. If :obj:`True`, the labels are such that the sum of the label likelihoods for each sequence is 1. If :obj:`True`, the labels are
considered independent and probabilities are normalized for each candidate by doing a softmax of considered independent and probabilities are normalized for each candidate by doing a softmax of
the entailment score vs. the contradiction score. the entailment score vs. the contradiction score.
Return: Return:
A :obj:`dict` or a list of :obj:`dict`: Each result comes as a dictionary with the A :obj:`dict` or a list of :obj:`dict`: Each result comes as a dictionary with the
following keys: following keys:
- **sequence** (:obj:`str`) -- The sequence for which this is the output. - **sequence** (:obj:`str`) -- The sequence for which this is the output.
- **labels** (:obj:`List[str]`) -- The labels sorted by order of likelihood. - **labels** (:obj:`List[str]`) -- The labels sorted by order of likelihood.
- **scores** (:obj:` List[float]`) -- The probabilities for each of the labels. - **scores** (:obj:`List[float]`) -- The probabilities for each of the labels.
""" """
outputs = super().__call__(sequences, candidate_labels, hypothesis_template) outputs = super().__call__(sequences, candidate_labels, hypothesis_template)
num_sequences = 1 if isinstance(sequences, str) else len(sequences) num_sequences = 1 if isinstance(sequences, str) else len(sequences)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment