mirror of
https://github.com/huggingface/transformers.git
synced 2025-07-04 21:30:07 +06:00

* fix * update * update * fix --------- Co-authored-by: ydshieh <ydshieh@users.noreply.github.com>
320 lines
26 KiB
Markdown
320 lines
26 KiB
Markdown
<!--Copyright 2022 The HuggingFace Team. All rights reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations under the License.
|
|
|
|
тЪая╕П Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be
|
|
rendered properly in your Markdown viewer.
|
|
|
|
-->
|
|
|
|
# рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди
|
|
|
|
[`pipeline`] рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛, рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐, рднрд╛рд╖рдг рдФрд░ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП [Hub](https://huggingface.co/models) рд╕реЗ рдХрд┐рд╕реА рднреА рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреМрд░-рддрд░реАрдХреЗ рдХрд╛ рдЕрдиреБрднрд╡ рди рд╣реЛ рдпрд╛ рдЖрдк рдореЙрдбрд▓реЛрдВ рдХреЗ рдкреАрдЫреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреЛрдб рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рди рд╣реЛрдВ, рдлрд┐рд░ рднреА рдЖрдк [`pipeline`] рдХреЗ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрдкрдХреЛ рдпреЗ рд╕рд┐рдЦрд╛рдПрдЧрд╛:
|
|
|
|
* рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП [`pipeline`] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
|
|
* рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреЛрдХрдирдирд╛рдЗрдЬрд╝рд░ рдпрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
|
|
* рдСрдбрд┐рдпреЛ, рд╡рд┐рдЬрд╝рди рдФрд░ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП [`pipeline`] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
|
|
|
|
<Tip>
|
|
|
|
рд╕рдорд░реНрдерд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЙрдкрд▓рдмреНрдз рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП [`pipeline`] рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
|
|
|
|
</Tip>
|
|
|
|
## рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ
|
|
|
|
рдЬрдмрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдореЗрдВ рдПрдХ рд╕рдВрдмрджреНрдз [`pipeline`] рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп [`pipeline`] рдЕрдореВрд░реНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ
|
|
рд╕рднреА рдХрд╛рд░реНрдп-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЗрдВред [`pipeline`] рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЙрдбрд▓ рдФрд░ рд╕рдХреНрд╖рдо рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ
|
|
рдЖрдкрдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рди рдХрд╛. рдЖрдЗрдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд╛рдХреН рдкрд╣рдЪрд╛рди (рдПрдПрд╕рдЖрд░) рдХреЗ рд▓рд┐рдП [`pipeline`] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ, рдпрд╛
|
|
рд╡рд╛рдХреН-рд╕реЗ-рдкрд╛рда.
|
|
|
|
|
|
1. рдПрдХ [`pipeline`] рдмрдирд╛рдХрд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдЕрдиреБрдорд╛рди рдХрд╛рд░реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
|
|
|
|
```py
|
|
>>> from transformers import pipeline
|
|
|
|
>>> transcriber = pipeline(task="automatic-speech-recognition")
|
|
```
|
|
|
|
2. рдЕрдкрдирд╛ рдЗрдирдкреБрдЯ [`pipeline`] рдкрд░ рднреЗрдЬреЗрдВред рд╡рд╛рдХреН рдкрд╣рдЪрд╛рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдСрдбрд┐рдпреЛ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ:
|
|
|
|
```py
|
|
>>> transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")
|
|
{'text': 'I HAVE A DREAM BUT ONE DAY THIS NATION WILL RISE UP LIVE UP THE TRUE MEANING OF ITS TREES'}
|
|
```
|
|
|
|
рдХреНрдпрд╛ рд╡рд╣ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдЬреЛ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдерд╛? рдХреБрдЫ [рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд╛рдХреН рдкрд╣рдЪрд╛рди рдореЙрдбрд▓](https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&sort=trending) рджреЗрдЦреЗрдВ
|
|
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдм рдкрд░ рдЬрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рдЯреНрд░рд╛рдВрд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
|
|
|
|
рдЖрдЗрдП OpenAI рд╕реЗ [рд╡реНрд╣рд┐рд╕реНрдкрд░ рд▓рд╛рд░реНрдЬ-v2](https://huggingface.co/openai/whisper-large) рдореЙрдбрд▓ рдЖрдЬрд╝рдорд╛рдПрдВред рд╡реНрд╣рд┐рд╕реНрдкрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛
|
|
Wav2Vec2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 2 рд╕рд╛рд▓ рдмрд╛рдж, рдФрд░ рд▓рдЧрднрдЧ 10 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкрд░ Wav2Vec2 рдХреЛ рдорд╛рдд рджреЗрддрд╛ рд╣реИ
|
|
рдмреЗрдВрдЪрдорд╛рд░реНрдХ. рдЗрд╕рдореЗрдВ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рдЖрд╡рд░рдг рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рднреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
|
|
Wav2Vec2.
|
|
|
|
рдЖрдЗрдП рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЖрдЬрд╝рдорд╛рдХрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ:
|
|
|
|
```py
|
|
>>> transcriber = pipeline(model="openai/whisper-large-v2")
|
|
>>> transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")
|
|
{'text': ' I have a dream that one day this nation will rise up and live out the true meaning of its creed.'}
|
|
```
|
|
|
|
рдЕрдм рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рджрд┐рдЦрддрд╛ рд╣реИ! Wav2Vec2 рдмрдирд╛рдо рд╡реНрд╣рд┐рд╕реНрдкрд░ рдкрд░ рдЧрд╣рди рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, [рдСрдбрд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░реНрд╕ рдХреЛрд░реНрд╕](https://huggingface.co/learn/audio-course/chapter5/asr_models) рджреЗрдЦреЗрдВред
|
|
рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдореЙрдбрд▓, рдЖрдкрдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдореЙрдбрд▓ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд╣рдм рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
|
|
рдЖрдк рд╣рдм рдкрд░ рд╕реАрдзреЗ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдореЙрдбрд▓ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдФрд░ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
|
|
рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
|
|
рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореЙрдбрд▓ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ [рдкреНрд░рд╢рд┐рдХреНрд╖рдг](training) рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
|
|
|
|
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдЗрдирдкреБрдЯ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЗрдирдкреБрдЯ рдХреЛ рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
|
|
|
|
```py
|
|
transcriber(
|
|
[
|
|
"https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac",
|
|
"https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac",
|
|
]
|
|
)
|
|
```
|
|
|
|
рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдореЙрдбрд▓ рд╕реЗ рджреВрд╕рд░реЗ рдореЙрдбрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдорд╛рдореВрд▓реА рдХрд╛рдо рд╣реИ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░рдпреЛрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝реЗ рдХрд╛рд░реНрдпрднрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдпрд╛ рд╡реЗрдмрд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБ рджреЗрдЦреЗрдВ:
|
|
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реЗ:
|
|
* [рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛](#using-pipelines-on-a-dataset)
|
|
* [рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛](./pipeline_webserver)
|
|
|
|
## рдкреНрд░рд╛рдЪрд▓
|
|
|
|
[`pipeline`] рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ; рдХреБрдЫ рдХрд╛рд░реНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рд╕рднреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВред
|
|
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХрд╣реАрдВ рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
|
|
|
|
```py
|
|
transcriber = pipeline(model="openai/whisper-large-v2", my_parameter=1)
|
|
|
|
out = transcriber(...) # This will use `my_parameter=1`.
|
|
out = transcriber(..., my_parameter=2) # This will override and use `my_parameter=2`.
|
|
out = transcriber(...) # This will go back to using `my_parameter=1`.
|
|
```
|
|
|
|
рдЖрдЗрдП 3 рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рддреЛрдВ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВ:
|
|
|
|
### рдЙрдкрдХрд░рдг
|
|
|
|
рдпрджрд┐ рдЖрдк `device=0` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдореЙрдбрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбрд╛рд▓ рджреЗрддреА рд╣реИред
|
|
рдпрд╣ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдк PyTorch рдпрд╛ Tensorflow рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
|
|
|
|
```py
|
|
transcriber = pipeline(model="openai/whisper-large-v2", device=0)
|
|
```
|
|
|
|
рдпрджрд┐ рдореЙрдбрд▓ рдПрдХрд▓ GPU рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдЖрдк PyTorch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк `device_map="auto"` рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
|
|
рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдореЙрдбрд▓ рд╡рдЬрд╝рди рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред `device_map` рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ЁЯдЧ [Accelerate](https://huggingface.co/docs/accelerate) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
|
|
рдкреИрдХреЗрдЯ:
|
|
|
|
```bash
|
|
pip install --upgrade accelerate
|
|
```
|
|
|
|
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдореЗрдВ рдореЙрдбрд▓ рднрд╛рд░ рдХреЛ рд▓реЛрдб рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ:
|
|
|
|
```py
|
|
transcriber = pipeline(model="openai/whisper-large-v2", device_map="auto")
|
|
```
|
|
|
|
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ `device_map='auto'` рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреА `pipeline` рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╕рдордп `device=device` рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ!
|
|
|
|
### рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░
|
|
|
|
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЗрдВ [рдпрд╣рд╛рдВ](https://huggingface.co/docs/transformers/main_classes/pipelines#pipeline-batching) рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмреИрдЪ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдПрдВрдЧреАред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдмреИрдЪрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╛рдлреА рдзреАрдореА рд╣реЛ рд╕рдХрддреА рд╣реИред
|
|
|
|
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
|
|
|
|
```py
|
|
transcriber = pipeline(model="openai/whisper-large-v2", device=0, batch_size=2)
|
|
audio_filenames = [f"https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/{i}.flac" for i in range(1, 5)]
|
|
texts = transcriber(audio_filenames)
|
|
```
|
|
|
|
рдпрд╣ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ 4 рдСрдбрд┐рдпреЛ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдиреНрд╣реЗрдВ 2 рдХреЗ рдмреИрдЪ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдЧрд╛
|
|
рдЖрдкрд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдореЙрдбрд▓ (рдЬреЛ рдПрдХ рдЬреАрдкреАрдпреВ рдкрд░ рд╣реИ, рдЬрд╣рд╛рдВ рдмреИрдЪрд┐рдВрдЧ рд╕реЗ рдорджрдж рдорд┐рд▓рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ) рдкрд░ рдЬрд╛рдПрдВред
|
|
рдЖрдЙрдЯрдкреБрдЯ рд╣рдореЗрд╢рд╛ рдЙрд╕реА рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЛ рдмреИрдЪрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗ рдЕрдзрд┐рдХ рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдирд╛ рд╣реИред
|
|
|
|
рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЗрдВ рдмреИрдЪрд┐рдВрдЧ рдХреА рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХреЛ рднреА рдХрдо рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐, рдХреБрдЫ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓ рдЖрдЗрдЯрдо (рдЬреИрд╕реЗ рдПрдХ рд▓рдВрдмреА рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓) рдХреЛ рдПрдХ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ [*chunk batching*](./main_classes/pipelines#pipeline-chunk-batching) рдХрд░рддреА рд╣реИред
|
|
|
|
### рдХрд╛рд░реНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╛рдЪрд▓
|
|
|
|
рд╕рднреА рдХрд╛рд░реНрдп рдХрд╛рд░реНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╛рдЪрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
|
|
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, [`transformers.AutomaticSpeechRecognitionPipeline.__call__`] рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ `return_timestamps` рдкреНрд░рд╛рдЪрд▓ рд╣реИ рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдЙрдкрд╢реАрд░реНрд╖рдХ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ:
|
|
|
|
|
|
```py
|
|
>>> transcriber = pipeline(model="openai/whisper-large-v2", return_timestamps=True)
|
|
>>> transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")
|
|
{'text': ' I have a dream that one day this nation will rise up and live out the true meaning of its creed.', 'chunks': [{'timestamp': (0.0, 11.88), 'text': ' I have a dream that one day this nation will rise up and live out the true meaning of its'}, {'timestamp': (11.88, 12.38), 'text': ' creed.'}]}
|
|
```
|
|
|
|
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЙрдбрд▓ рдиреЗ рдкрд╛рда рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдФрд░ **when** рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рдХреНрдпреЛрдВ рдХрд╛ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдЖрдЙрдЯрдкреБрдЯ рднреА рджрд┐рдпрд╛ред
|
|
|
|
рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рд╛рдЪрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдХрд┐рд╕рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХрд╛ API рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВ!
|
|
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, [`~transformers.AutomaticSpeechRecognitionPipeline`] рдореЗрдВ рдПрдХ `chunk_length_s` рдкреНрд░рд╛рдЪрд▓ рд╣реИ рдЬреЛ рд╕рд╣рд╛рдпрдХ рд╣реИ
|
|
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмреА рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдкреВрд░реНрдг рдлрд┐рд▓реНрдореЛрдВ рдпрд╛ рдШрдВрдЯреЗ-рд▓рдВрдмреЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЙрдкрд╢реАрд░реНрд╖рдХ рджреЗрдирд╛) рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИ
|
|
рдЕрдкрдиреЗ рдЖрдк рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛:
|
|
|
|
```python
|
|
>>> transcriber = pipeline(model="openai/whisper-large-v2", chunk_length_s=30, return_timestamps=True)
|
|
>>> transcriber("https://huggingface.co/datasets/sanchit-gandhi/librispeech_long/resolve/main/audio.wav")
|
|
{'text': " Chapter 16. I might have told you of the beginning of this liaison in a few lines, but I wanted you to see every step by which we came. I, too, agree to whatever Marguerite wished, Marguerite to be unable to live apart from me. It was the day after the evening...
|
|
```
|
|
|
|
рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдРрд╕рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛, рддреЛ рдмреЗрдЭрд┐рдЭрдХ [рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ](https://github.com/huggingface/transformers/issues/new?assignees=&labels=feature&template=feature-request.yml)!
|
|
|
|
|
|
## рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
|
|
|
|
рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рднреА рдЕрдиреБрдорд╛рди рдЪрд▓рд╛ рд╕рдХрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣рдо рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ:
|
|
|
|
```py
|
|
def data():
|
|
for i in range(1000):
|
|
yield f"My example {i}"
|
|
|
|
|
|
pipe = pipeline(model="openai-community/gpt2", device=0)
|
|
generated_characters = 0
|
|
for out in pipe(data()):
|
|
generated_characters += len(out[0]["generated_text"])
|
|
```
|
|
|
|
рдкреБрдирд░рд╛рд╡рд░реНрддрдХ `data()` рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдгрд╛рдо рдФрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
|
|
рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдкреБрдирд░рд╛рд╡рд░реНрддрдиреАрдп рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛
|
|
рдпрд╣ рдЗрд╕реЗ GPU рдкрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ (рдпрд╣ рд╣реБрдб рдХреЗ рддрд╣рдд [DataLoader](https://pytorch.org/docs/stable/data.html#torch.utils.data.DataLoader) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред
|
|
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
|
|
рдФрд░ рдЖрдк рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ GPU рдХреЛ рдлреАрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
|
|
|
|
рдЪреВрдВрдХрд┐ рдмреИрдЪрд┐рдВрдЧ рд╕реЗ рдЪреАрдЬрд╝реЗрдВ рддреЗрдЬрд╝ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ `batch_size` рдкреНрд░рд╛рдЪрд▓ рдХреЛ рдЯреНрдпреВрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
|
|
|
|
рдХрд┐рд╕реА рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдмрд╕ рдПрдХ рдХреЛ ЁЯдЧ [Dataset](https://github.com/huggingface/datasets/) рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИ:
|
|
|
|
```py
|
|
# KeyDataset is a util that will just output the item we're interested in.
|
|
from transformers.pipelines.pt_utils import KeyDataset
|
|
from datasets import load_dataset
|
|
|
|
pipe = pipeline(model="hf-internal-testing/tiny-random-wav2vec2", device=0)
|
|
dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation[:10]")
|
|
|
|
for out in pipe(KeyDataset(dataset, "audio")):
|
|
print(out)
|
|
```
|
|
|
|
|
|
## рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
|
|
|
|
<Tip>
|
|
рдПрдХ рдЕрдиреБрдорд╛рди рдЗрдВрдЬрди рдмрдирд╛рдирд╛ рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИ
|
|
рдкреГрд╖реНрдаред
|
|
</Tip>
|
|
|
|
[Link](./pipeline_webserver)
|
|
|
|
## рд╡рд┐рдЬрд╝рди рдкрд╛рдЗрдкрд▓рд╛рдЗрди
|
|
|
|
рджреГрд╖реНрдЯрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП [`pipeline`] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИред
|
|
|
|
рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреА рдЫрд╡рд┐ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рдХреЛ рднреЗрдЬреЗрдВред рдЫрд╡рд┐ рдПрдХ рд▓рд┐рдВрдХ, рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкрде рдпрд╛ рдмреЗрд╕64-рдПрдиреНрдХреЛрдбреЗрдб рдЫрд╡рд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрд▓реА рдХреА рдХреМрди рд╕реА рдкреНрд░рдЬрд╛рддрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ?
|
|
|
|

|
|
|
|
```py
|
|
>>> from transformers import pipeline
|
|
|
|
>>> vision_classifier = pipeline(model="google/vit-base-patch16-224")
|
|
>>> preds = vision_classifier(
|
|
... images="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
|
|
... )
|
|
>>> preds = [{"score": round(pred["score"], 4), "label": pred["label"]} for pred in preds]
|
|
>>> preds
|
|
[{'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'}]
|
|
```
|
|
|
|
## рдкрд╛рда рдкрд╛рдЗрдкрд▓рд╛рдЗрди
|
|
|
|
NLP рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП [`pipeline`] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИред
|
|
|
|
```py
|
|
>>> from transformers import pipeline
|
|
|
|
>>> # This model is a `zero-shot-classification` model.
|
|
>>> # It will classify text, except you are free to choose any label you might imagine
|
|
>>> classifier = pipeline(model="facebook/bart-large-mnli")
|
|
>>> classifier(
|
|
... "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]}
|
|
```
|
|
|
|
## рдмрд╣реБрд╡рд┐рдз рдкрд╛рдЗрдкрд▓рд╛рдЗрди
|
|
|
|
[`pipeline`] рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддреМрд░-рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджреГрд╢реНрдп рдкреНрд░рд╢реНрди рдЙрддреНрддрд░ (VQA) рдХрд╛рд░реНрдп рдкрд╛рда рдФрд░ рдЫрд╡рд┐ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдХрд┐рд╕реА рднреА рдЫрд╡рд┐ рд▓рд┐рдВрдХ рдФрд░ рдЫрд╡рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдЫрд╡рд┐ рдПрдХ URL рдпрд╛ рдЫрд╡рд┐ рдХрд╛ рд╕реНрдерд╛рдиреАрдп рдкрде рд╣реЛ рд╕рдХрддреА рд╣реИред
|
|
|
|
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрд╕ [invoice image](https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
|
|
|
|
```py
|
|
>>> from transformers import pipeline
|
|
|
|
>>> vqa = pipeline(model="impira/layoutlm-document-qa")
|
|
>>> output = vqa(
|
|
... image="https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png",
|
|
... question="What is the invoice number?",
|
|
... )
|
|
>>> output[0]["score"] = round(output[0]["score"], 3)
|
|
>>> output
|
|
[{'score': 0.425, 'answer': 'us-001', 'start': 16, 'end': 16}]
|
|
```
|
|
|
|
<Tip>
|
|
|
|
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ ЁЯдЧ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ [`pytesseract`](https://pypi.org/project/pytesseract/) рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
|
|
|
|
```bash
|
|
sudo apt install -y tesseract-ocr
|
|
pip install pytesseract
|
|
```
|
|
|
|
</Tip>
|
|
|
|
## ЁЯдЧ `рддреНрд╡рд░рдг` рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рдореЙрдбрд▓реЛрдВ рдкрд░ `pipeline` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
|
|
|
|
рдЖрдк ЁЯдЧ `accelerate` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдбрд╝реЗ рдореЙрдбрд▓реЛрдВ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ `pipeline` рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ! рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ `accelerate` рдХреЛ `pip install accelerate` рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рд╣реИред
|
|
|
|
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ `device_map='auto'` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдореЙрдбрд▓ рд▓реЛрдб рдХрд░реЗрдВ! рд╣рдо рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП `facebook/opt-1.3b` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
|
|
|
|
```py
|
|
# pip install accelerate
|
|
import torch
|
|
from transformers import pipeline
|
|
|
|
pipe = pipeline(model="facebook/opt-1.3b", torch_dtype=torch.bfloat16, device_map="auto")
|
|
output = pipe("This is a cool example!", do_sample=True, top_p=0.95)
|
|
```
|
|
|
|
рдпрджрд┐ рдЖрдк `bitsandbytes` рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ `load_in_8bit=True` рддрд░реНрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдЖрдк 8-рдмрд┐рдЯ рд▓реЛрдбреЗрдб рдореЙрдбрд▓ рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
|
|
|
|
```py
|
|
# pip install accelerate bitsandbytes
|
|
import torch
|
|
from transformers import pipeline
|
|
|
|
pipe = pipeline(model="facebook/opt-1.3b", device_map="auto", model_kwargs={"load_in_8bit": True})
|
|
output = pipe("This is a cool example!", do_sample=True, top_p=0.95)
|
|
```
|
|
|
|
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ рдХрд┐рд╕реА рднреА рд╣рдЧрд┐рдВрдЧ рдлреЗрд╕ рдореЙрдбрд▓ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ BLOOM рдЬреИрд╕реЗ рдмрдбрд╝реЗ рдореЙрдбрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ!
|