模型架构与原理2649 字

Transformers多模态流水线任务

·全库 320 / 611

《Transformers多模态流水线任务》共 0.3 万字,通篇围绕 推理、数据集、语音、视觉 展开,归在「模型架构与原理」这一层。

覆盖推理数据集语音视觉GPU多模态

适合要跟模型团队对话、得听懂他们在说什么的人

目录骨架(8 节)
  1. Pipeline使用
  2. 在数据集上使用pipelines
  3. 在Web服务器上使用pipelines
  4. 视觉流水线
  5. 文本流水线
  6. 多模态流水线
  7. 使用accelerate
  8. 批量大小
目录 · 3 节

示例代码

注:将ppt后缀名改为zip后解压

推理pipeline

[pipeline] 让使用Hub上的任何模型进行任何语言、计算机视觉、语音以及多模态任务的推理变得非常简单。即使您对特定的模态没有经验,或者不熟悉模型的源码,您仍然可以使用[pipeline]进行推理!本教程将教您:

  • 如何使用[pipeline] 进行推理。
  • 如何使用特定的tokenizer(分词器)或模型。
  • 如何使用[pipeline] 进行音频、视觉和多模态任务的推理。

请查看[pipeline]文档以获取已支持的任务和可用参数的完整列表。

Pipeline使用

虽然每个任务都有一个关联的[pipeline],但使用通用的抽象的[pipeline]更加简单,其中包含所有特定任务的pipelines。[pipeline]会自动加载一个默认模型和一个能够进行任务推理的预处理类。让我们以使用[pipeline]进行自动语音识别(ASR)或语音转文本为例。

  1. 首先,创建一个[pipeline]并指定推理任务:
>>> from transformers import pipeline

>>> transcriber = pipeline(task="automatic-speech-recognition")
  1. 将您的输入传递给[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服务器中使用流水线

参数

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求