Unverified Commit 23619ef6 authored by Steven Liu's avatar Steven Liu Committed by GitHub
Browse files

📝 open fresh PR for pipeline doctests (#17073)

parent 870e6f29
...@@ -39,7 +39,9 @@ While each task has an associated [`pipeline`], it is simpler to use the general ...@@ -39,7 +39,9 @@ While each task has an associated [`pipeline`], it is simpler to use the general
2. Pass your input text to the [`pipeline`]: 2. Pass your input text to the [`pipeline`]:
```py ```py
>>> generator("Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone") >>> generator(
... "Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone"
... ) # doctest: +SKIP
[{'generated_text': 'Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone, Seven for the Iron-priests at the door to the east, and thirteen for the Lord Kings at the end of the mountain'}] [{'generated_text': 'Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone, Seven for the Iron-priests at the door to the east, and thirteen for the Lord Kings at the end of the mountain'}]
``` ```
...@@ -51,7 +53,7 @@ If you have more than one input, pass your input as a list: ...@@ -51,7 +53,7 @@ If you have more than one input, pass your input as a list:
... "Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone", ... "Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone",
... "Nine for Mortal Men, doomed to die, One for the Dark Lord on his dark throne", ... "Nine for Mortal Men, doomed to die, One for the Dark Lord on his dark throne",
... ] ... ]
... ) ... ) # doctest: +SKIP
``` ```
Any additional parameters for your task can also be included in the [`pipeline`]. The `text-generation` task has a [`~generation_utils.GenerationMixin.generate`] method with several parameters for controlling the output. For example, if you want to generate more than one output, set the `num_return_sequences` parameter: Any additional parameters for your task can also be included in the [`pipeline`]. The `text-generation` task has a [`~generation_utils.GenerationMixin.generate`] method with several parameters for controlling the output. For example, if you want to generate more than one output, set the `num_return_sequences` parameter:
...@@ -60,7 +62,7 @@ Any additional parameters for your task can also be included in the [`pipeline`] ...@@ -60,7 +62,7 @@ Any additional parameters for your task can also be included in the [`pipeline`]
>>> generator( >>> generator(
... "Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone", ... "Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone",
... num_return_sequences=2, ... num_return_sequences=2,
... ) ... ) # doctest: +SKIP
``` ```
### Choose a model and tokenizer ### Choose a model and tokenizer
...@@ -85,7 +87,9 @@ Create a [`pipeline`] for your task, and specify the model and tokenizer you've ...@@ -85,7 +87,9 @@ Create a [`pipeline`] for your task, and specify the model and tokenizer you've
Pass your input text to the [`pipeline`] to generate some text: Pass your input text to the [`pipeline`] to generate some text:
```py ```py
>>> generator("Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone") >>> generator(
... "Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone"
... ) # doctest: +SKIP
[{'generated_text': 'Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone, Seven for the Dragon-lords (for them to rule in a world ruled by their rulers, and all who live within the realm'}] [{'generated_text': 'Three Rings for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone, Seven for the Dragon-lords (for them to rule in a world ruled by their rulers, and all who live within the realm'}]
``` ```
...@@ -93,7 +97,18 @@ Pass your input text to the [`pipeline`] to generate some text: ...@@ -93,7 +97,18 @@ Pass your input text to the [`pipeline`] to generate some text:
The flexibility of the [`pipeline`] means it can also be extended to audio tasks. The flexibility of the [`pipeline`] means it can also be extended to audio tasks.
For example, let's classify the emotion from a short clip of John F. Kennedy's famous ["We choose to go to the Moon"](https://en.wikipedia.org/wiki/We_choose_to_go_to_the_Moon) speech. Find an [audio classification](https://huggingface.co/models?pipeline_tag=audio-classification) model on the Model Hub for emotion recognition and load it in the [`pipeline`]: For example, let's classify the emotion in this audio clip:
```py
>>> from datasets import load_dataset
>>> import torch
>>> torch.manual_seed(42) # doctest: +IGNORE_RESULT
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> audio_file = ds[0]["audio"]["path"]
```
Find an [audio classification](https://huggingface.co/models?pipeline_tag=audio-classification) model on the Model Hub for emotion recognition and load it in the [`pipeline`]:
```py ```py
>>> from transformers import pipeline >>> from transformers import pipeline
...@@ -106,12 +121,10 @@ For example, let's classify the emotion from a short clip of John F. Kennedy's f ...@@ -106,12 +121,10 @@ For example, let's classify the emotion from a short clip of John F. Kennedy's f
Pass the audio file to the [`pipeline`]: Pass the audio file to the [`pipeline`]:
```py ```py
>>> audio_classifier("jfk_moon_speech.wav") >>> preds = audio_classifier(audio_file)
[{'label': 'calm', 'score': 0.13856211304664612}, >>> preds = [{"score": round(pred["score"], 4), "label": pred["label"]} for pred in preds]
{'label': 'disgust', 'score': 0.13148026168346405}, >>> preds
{'label': 'happy', 'score': 0.12635163962841034}, [{'score': 0.1315, 'label': 'calm'}, {'score': 0.1307, 'label': 'neutral'}, {'score': 0.1274, 'label': 'sad'}, {'score': 0.1261, 'label': 'fearful'}, {'score': 0.1242, 'label': 'happy'}]
{'label': 'angry', 'score': 0.12439591437578201},
{'label': 'fearful', 'score': 0.12404385954141617}]
``` ```
## Vision pipeline ## Vision pipeline
...@@ -126,14 +139,10 @@ Specify your vision task and pass your image to the classifier. The imaage can b ...@@ -126,14 +139,10 @@ Specify your vision task and pass your image to the classifier. The imaage can b
>>> from transformers import pipeline >>> from transformers import pipeline
>>> vision_classifier = pipeline(task="image-classification") >>> vision_classifier = pipeline(task="image-classification")
>>> vision_classifier( >>> preds = vision_classifier(
... images="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg" ... images="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
... ) ... )
[{'label': 'lynx, catamount', 'score': 0.4403027892112732}, >>> preds = [{"score": round(pred["score"], 4), "label": pred["label"]} for pred in preds]
{'label': 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor', >>> preds
'score': 0.03433405980467796}, [{'score': 0.4335, 'label': 'lynx, catamount'}, {'score': 0.0348, 'label': 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor'}, {'score': 0.0324, 'label': 'snow leopard, ounce, Panthera uncia'}, {'score': 0.0239, 'label': 'Egyptian cat'}, {'score': 0.0229, 'label': 'tiger cat'}]
{'label': 'snow leopard, ounce, Panthera uncia',
'score': 0.032148055732250214},
{'label': 'Egyptian cat', 'score': 0.02353910356760025},
{'label': 'tiger cat', 'score': 0.023034192621707916}]
``` ```
docs/source/en/quicktour.mdx docs/source/en/quicktour.mdx
docs/source/es/quicktour.mdx docs/source/es/quicktour.mdx
docs/source/en/pipeline_tutorial.mdx
docs/source/en/autoclass_tutorial.mdx
docs/source/en/task_summary.mdx docs/source/en/task_summary.mdx
docs/source/en/model_doc/speech_to_text.mdx docs/source/en/model_doc/speech_to_text.mdx
docs/source/en/model_doc/t5.mdx docs/source/en/model_doc/t5.mdx
......
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