Transformers多模态流水线任务
《Transformers多模态流水线任务》共 0.3 万字,通篇围绕 推理、数据集、语音、视觉 展开,归在「模型架构与原理」这一层。
适合要跟模型团队对话、得听懂他们在说什么的人
目录骨架(8 节)
- Pipeline使用
- 在数据集上使用pipelines
- 在Web服务器上使用pipelines
- 视觉流水线
- 文本流水线
- 多模态流水线
- 使用accelerate
- 批量大小
目录 · 3 节
示例代码
注:将ppt后缀名改为zip后解压
推理pipeline
[pipeline] 让使用Hub上的任何模型进行任何语言、计算机视觉、语音以及多模态任务的推理变得非常简单。即使您对特定的模态没有经验,或者不熟悉模型的源码,您仍然可以使用[pipeline]进行推理!本教程将教您:
- 如何使用[pipeline] 进行推理。
- 如何使用特定的tokenizer(分词器)或模型。
- 如何使用[pipeline] 进行音频、视觉和多模态任务的推理。
请查看[pipeline]文档以获取已支持的任务和可用参数的完整列表。
Pipeline使用
虽然每个任务都有一个关联的[pipeline],但使用通用的抽象的[pipeline]更加简单,其中包含所有特定任务的pipelines。[pipeline]会自动加载一个默认模型和一个能够进行任务推理的预处理类。让我们以使用[pipeline]进行自动语音识别(ASR)或语音转文本为例。
- 首先,创建一个[pipeline]并指定推理任务:
>>> from transformers import pipeline
>>> transcriber = pipeline(task="automatic-speech-recognition")
- 将您的输入传递给[pipeline]。对于语音识别,这通常是一个音频输入文件:
>>> 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'}
您没有得到您期望的结果?可以在Hub上查看一些最受欢迎的自动语音识别模型
,看看是否可以获得更好的转录。
让我们尝试来自 OpenAI 的Whisper large-v2 模型。Whisperb比Wav2Vec2晚2年发布,使用接近10倍的数据进行了训练。因此,它在大多数下游基准测试上击败了Wav2Vec2。
它还具有预测标点和大小写的附加优势,而Wav2Vec2则无法实现这些功能。
让我们在这里尝试一下,看看它的表现如何:
>>> 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与Whisper比较,请参阅音频变换器课程。
我们鼓励您在 Hub 上查看不同语言的模型,以及专业领域的模型等。您可以在Hub上直接查看并比较模型的结果,以确定是否适合或处理边缘情况是否比其他模型更好。如果您没有找到适用于您的用例的模型,您始终可以训练自己的模型!
如果您有多个输入,您可以将输入作为列表传递:
transcriber(
[
"https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac",
"https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac",
]
)
Pipelines非常适合用于测试,因为从一个模型切换到另一个模型非常琐碎;但是,还有一些方法可以将它们优化后用于大型工作负载而不仅仅是测试。请查看以下指南,深入探讨如何迭代整个数据集或在Web服务器中使用Pipelines:
- 在数据集上使用流水线
- 在Web服务器中使用流水线
