【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

​​​​​​​

目录

一、引言 

二、pipeline库

2.1 概述

2.2 使用task实例化pipeline对象

2.2.1 基于task实例化“自动语音识别”

2.2.2 task列表

2.2.3 task默认模型

2.3 使用model实例化pipeline对象

2.3.1 基于model实例化“自动语音识别”

 2.3.2 查看model与task的对应关系

三、总结


一、引言 

 pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为语音(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型

本文对pipeline进行整体介绍,之后本专栏以每个task为主题,分别介绍各种task使用方法。

二、pipeline库

2.1 概述

管道是一种使用模型进行推理的简单而好用的方法。这些管道是从库中抽象出大部分复杂代码的对象,提供了专用于多项任务的简单 API,包括命名实体识别、掩码语言建模、情感分析、特征提取和问答。在使用上,主要有2种方法

  • 使用task实例化pipeline对象
  • 使用model实例化pipeline对象

2.2 使用task实例化pipeline对象

2.2.1 基于task实例化“自动语音识别”

自动语音识别的task为automatic-speech-recognition:

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"from transformers import pipelinespeech_file = "./output_video_enhanced.mp3"
pipe = pipeline(task="automatic-speech-recognition")
result = pipe(speech_file)
print(result)

2.2.2 task列表

task共计28类,按首字母排序,列表如下,直接替换2.2.1代码中的pipeline的task即可应用:

  • "audio-classification":将返回一个AudioClassificationPipeline。
  • "automatic-speech-recognition":将返回一个AutomaticSpeechRecognitionPipeline。
  • "depth-estimation":将返回一个DepthEstimationPipeline。
  • "document-question-answering":将返回一个DocumentQuestionAnsweringPipeline。
  • "feature-extraction":将返回一个FeatureExtractionPipeline。
  • "fill-mask":将返回一个FillMaskPipeline:。
  • "image-classification":将返回一个ImageClassificationPipeline。
  • "image-feature-extraction":将返回一个ImageFeatureExtractionPipeline。
  • "image-segmentation":将返回一个ImageSegmentationPipeline。
  • "image-to-image":将返回一个ImageToImagePipeline。
  • "image-to-text":将返回一个ImageToTextPipeline。
  • "mask-generation":将返回一个MaskGenerationPipeline。
  • "object-detection":将返回一个ObjectDetectionPipeline。
  • "question-answering":将返回一个QuestionAnsweringPipeline。
  • "summarization":将返回一个SummarizationPipeline。
  • "table-question-answering":将返回一个TableQuestionAnsweringPipeline。
  • "text2text-generation":将返回一个Text2TextGenerationPipeline。
  • "text-classification"("sentiment-analysis"可用别名):将返回一个 TextClassificationPipeline。
  • "text-generation":将返回一个TextGenerationPipeline:。
  • "text-to-audio""text-to-speech"可用别名):将返回一个TextToAudioPipeline:。
  • "token-classification"("ner"可用别名):将返回一个TokenClassificationPipeline。
  • "translation":将返回一个TranslationPipeline。
  • "translation_xx_to_yy":将返回一个TranslationPipeline。
  • "video-classification":将返回一个VideoClassificationPipeline。
  • "visual-question-answering":将返回一个VisualQuestionAnsweringPipeline。
  • "zero-shot-classification":将返回一个ZeroShotClassificationPipeline。
  • "zero-shot-image-classification":将返回一个ZeroShotImageClassificationPipeline。
  • "zero-shot-audio-classification":将返回一个ZeroShotAudioClassificationPipeline。
  • "zero-shot-object-detection":将返回一个ZeroShotObjectDetectionPipeline。

2.2.3 task默认模型

针对每一个task,pipeline默认配置了模型,可以通过pipeline源代码查看:

SUPPORTED_TASKS = {"audio-classification": {"impl": AudioClassificationPipeline,"tf": (),"pt": (AutoModelForAudioClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("superb/wav2vec2-base-superb-ks", "372e048")}},"type": "audio",},"automatic-speech-recognition": {"impl": AutomaticSpeechRecognitionPipeline,"tf": (),"pt": (AutoModelForCTC, AutoModelForSpeechSeq2Seq) if is_torch_available() else (),"default": {"model": {"pt": ("facebook/wav2vec2-base-960h", "55bb623")}},"type": "multimodal",},"text-to-audio": {"impl": TextToAudioPipeline,"tf": (),"pt": (AutoModelForTextToWaveform, AutoModelForTextToSpectrogram) if is_torch_available() else (),"default": {"model": {"pt": ("suno/bark-small", "645cfba")}},"type": "text",},"feature-extraction": {"impl": FeatureExtractionPipeline,"tf": (TFAutoModel,) if is_tf_available() else (),"pt": (AutoModel,) if is_torch_available() else (),"default": {"model": {"pt": ("distilbert/distilbert-base-cased", "935ac13"),"tf": ("distilbert/distilbert-base-cased", "935ac13"),}},"type": "multimodal",},"text-classification": {"impl": TextClassificationPipeline,"tf": (TFAutoModelForSequenceClassification,) if is_tf_available() else (),"pt": (AutoModelForSequenceClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("distilbert/distilbert-base-uncased-finetuned-sst-2-english", "af0f99b"),"tf": ("distilbert/distilbert-base-uncased-finetuned-sst-2-english", "af0f99b"),},},"type": "text",},"token-classification": {"impl": TokenClassificationPipeline,"tf": (TFAutoModelForTokenClassification,) if is_tf_available() else (),"pt": (AutoModelForTokenClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("dbmdz/bert-large-cased-finetuned-conll03-english", "f2482bf"),"tf": ("dbmdz/bert-large-cased-finetuned-conll03-english", "f2482bf"),},},"type": "text",},"question-answering": {"impl": QuestionAnsweringPipeline,"tf": (TFAutoModelForQuestionAnswering,) if is_tf_available() else (),"pt": (AutoModelForQuestionAnswering,) if is_torch_available() else (),"default": {"model": {"pt": ("distilbert/distilbert-base-cased-distilled-squad", "626af31"),"tf": ("distilbert/distilbert-base-cased-distilled-squad", "626af31"),},},"type": "text",},"table-question-answering": {"impl": TableQuestionAnsweringPipeline,"pt": (AutoModelForTableQuestionAnswering,) if is_torch_available() else (),"tf": (TFAutoModelForTableQuestionAnswering,) if is_tf_available() else (),"default": {"model": {"pt": ("google/tapas-base-finetuned-wtq", "69ceee2"),"tf": ("google/tapas-base-finetuned-wtq", "69ceee2"),},},"type": "text",},"visual-question-answering": {"impl": VisualQuestionAnsweringPipeline,"pt": (AutoModelForVisualQuestionAnswering,) if is_torch_available() else (),"tf": (),"default": {"model": {"pt": ("dandelin/vilt-b32-finetuned-vqa", "4355f59")},},"type": "multimodal",},"document-question-answering": {"impl": DocumentQuestionAnsweringPipeline,"pt": (AutoModelForDocumentQuestionAnswering,) if is_torch_available() else (),"tf": (),"default": {"model": {"pt": ("impira/layoutlm-document-qa", "52e01b3")},},"type": "multimodal",},"fill-mask": {"impl": FillMaskPipeline,"tf": (TFAutoModelForMaskedLM,) if is_tf_available() else (),"pt": (AutoModelForMaskedLM,) if is_torch_available() else (),"default": {"model": {"pt": ("distilbert/distilroberta-base", "ec58a5b"),"tf": ("distilbert/distilroberta-base", "ec58a5b"),}},"type": "text",},"summarization": {"impl": SummarizationPipeline,"tf": (TFAutoModelForSeq2SeqLM,) if is_tf_available() else (),"pt": (AutoModelForSeq2SeqLM,) if is_torch_available() else (),"default": {"model": {"pt": ("sshleifer/distilbart-cnn-12-6", "a4f8f3e"), "tf": ("google-t5/t5-small", "d769bba")}},"type": "text",},# This task is a special case as it's parametrized by SRC, TGT languages."translation": {"impl": TranslationPipeline,"tf": (TFAutoModelForSeq2SeqLM,) if is_tf_available() else (),"pt": (AutoModelForSeq2SeqLM,) if is_torch_available() else (),"default": {("en", "fr"): {"model": {"pt": ("google-t5/t5-base", "686f1db"), "tf": ("google-t5/t5-base", "686f1db")}},("en", "de"): {"model": {"pt": ("google-t5/t5-base", "686f1db"), "tf": ("google-t5/t5-base", "686f1db")}},("en", "ro"): {"model": {"pt": ("google-t5/t5-base", "686f1db"), "tf": ("google-t5/t5-base", "686f1db")}},},"type": "text",},"text2text-generation": {"impl": Text2TextGenerationPipeline,"tf": (TFAutoModelForSeq2SeqLM,) if is_tf_available() else (),"pt": (AutoModelForSeq2SeqLM,) if is_torch_available() else (),"default": {"model": {"pt": ("google-t5/t5-base", "686f1db"), "tf": ("google-t5/t5-base", "686f1db")}},"type": "text",},"text-generation": {"impl": TextGenerationPipeline,"tf": (TFAutoModelForCausalLM,) if is_tf_available() else (),"pt": (AutoModelForCausalLM,) if is_torch_available() else (),"default": {"model": {"pt": ("openai-community/gpt2", "6c0e608"), "tf": ("openai-community/gpt2", "6c0e608")}},"type": "text",},"zero-shot-classification": {"impl": ZeroShotClassificationPipeline,"tf": (TFAutoModelForSequenceClassification,) if is_tf_available() else (),"pt": (AutoModelForSequenceClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("facebook/bart-large-mnli", "c626438"),"tf": ("FacebookAI/roberta-large-mnli", "130fb28"),},"config": {"pt": ("facebook/bart-large-mnli", "c626438"),"tf": ("FacebookAI/roberta-large-mnli", "130fb28"),},},"type": "text",},"zero-shot-image-classification": {"impl": ZeroShotImageClassificationPipeline,"tf": (TFAutoModelForZeroShotImageClassification,) if is_tf_available() else (),"pt": (AutoModelForZeroShotImageClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("openai/clip-vit-base-patch32", "f4881ba"),"tf": ("openai/clip-vit-base-patch32", "f4881ba"),}},"type": "multimodal",},"zero-shot-audio-classification": {"impl": ZeroShotAudioClassificationPipeline,"tf": (),"pt": (AutoModel,) if is_torch_available() else (),"default": {"model": {"pt": ("laion/clap-htsat-fused", "973b6e5"),}},"type": "multimodal",},"image-classification": {"impl": ImageClassificationPipeline,"tf": (TFAutoModelForImageClassification,) if is_tf_available() else (),"pt": (AutoModelForImageClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("google/vit-base-patch16-224", "5dca96d"),"tf": ("google/vit-base-patch16-224", "5dca96d"),}},"type": "image",},"image-feature-extraction": {"impl": ImageFeatureExtractionPipeline,"tf": (TFAutoModel,) if is_tf_available() else (),"pt": (AutoModel,) if is_torch_available() else (),"default": {"model": {"pt": ("google/vit-base-patch16-224", "3f49326"),"tf": ("google/vit-base-patch16-224", "3f49326"),}},"type": "image",},"image-segmentation": {"impl": ImageSegmentationPipeline,"tf": (),"pt": (AutoModelForImageSegmentation, AutoModelForSemanticSegmentation) if is_torch_available() else (),"default": {"model": {"pt": ("facebook/detr-resnet-50-panoptic", "fc15262")}},"type": "multimodal",},"image-to-text": {"impl": ImageToTextPipeline,"tf": (TFAutoModelForVision2Seq,) if is_tf_available() else (),"pt": (AutoModelForVision2Seq,) if is_torch_available() else (),"default": {"model": {"pt": ("ydshieh/vit-gpt2-coco-en", "65636df"),"tf": ("ydshieh/vit-gpt2-coco-en", "65636df"),}},"type": "multimodal",},"object-detection": {"impl": ObjectDetectionPipeline,"tf": (),"pt": (AutoModelForObjectDetection,) if is_torch_available() else (),"default": {"model": {"pt": ("facebook/detr-resnet-50", "2729413")}},"type": "multimodal",},"zero-shot-object-detection": {"impl": ZeroShotObjectDetectionPipeline,"tf": (),"pt": (AutoModelForZeroShotObjectDetection,) if is_torch_available() else (),"default": {"model": {"pt": ("google/owlvit-base-patch32", "17740e1")}},"type": "multimodal",},"depth-estimation": {"impl": DepthEstimationPipeline,"tf": (),"pt": (AutoModelForDepthEstimation,) if is_torch_available() else (),"default": {"model": {"pt": ("Intel/dpt-large", "e93beec")}},"type": "image",},"video-classification": {"impl": VideoClassificationPipeline,"tf": (),"pt": (AutoModelForVideoClassification,) if is_torch_available() else (),"default": {"model": {"pt": ("MCG-NJU/videomae-base-finetuned-kinetics", "4800870")}},"type": "video",},"mask-generation": {"impl": MaskGenerationPipeline,"tf": (),"pt": (AutoModelForMaskGeneration,) if is_torch_available() else (),"default": {"model": {"pt": ("facebook/sam-vit-huge", "997b15")}},"type": "multimodal",},"image-to-image": {"impl": ImageToImagePipeline,"tf": (),"pt": (AutoModelForImageToImage,) if is_torch_available() else (),"default": {"model": {"pt": ("caidas/swin2SR-classical-sr-x2-64", "4aaedcb")}},"type": "image",},
}

2.3 使用model实例化pipeline对象

2.3.1 基于model实例化“自动语音识别”

如果不想使用task中默认的模型,可以指定huggingface中的模型:

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"from transformers import pipelinespeech_file = "./output_video_enhanced.mp3"
#transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
pipe = pipeline(model="openai/whisper-medium")
result = pipe(speech_file)
print(result)

 2.3.2 查看model与task的对应关系

可以登录https://huggingface.co/tasks查看

三、总结

本文为transformers之pipeline专栏的第0篇,后面会以每个task为一篇,共计讲述28+个tasks的用法,通过28个tasks的pipeline使用学习,可以掌握语音、计算机视觉、自然语言处理、多模态乃至强化学习等30w+个huggingface上的开源大模型。让你成为大模型领域的专家!

期待您的3连+关注,如何还有时间,欢迎阅读我的其他文章:

《AI—工程篇》

AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效

AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署

AI智能体研发之路-工程篇(三):大模型推理服务框架Ollama一键部署

AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署

AI智能体研发之路-工程篇(五):大模型推理服务框架LocalAI一键部署

《AI—模型篇》

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争

AI智能体研发之路-模型篇(四):一文入门pytorch开发

AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

AI智能体研发之路-模型篇(六):【机器学习】基于tensorflow实现你的第一个DNN网络

AI智能体研发之路-模型篇(七):【机器学习】基于YOLOv10实现你的第一个视觉AI大模型

AI智能体研发之路-模型篇(八):【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战

AI智能体研发之路-模型篇(九):【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战

《AI—Transformers应用》

【AI大模型】Transformers大模型库(一):Tokenizer

【AI大模型】Transformers大模型库(二):AutoModelForCausalLM

【AI大模型】Transformers大模型库(三):特殊标记(special tokens)

【AI大模型】Transformers大模型库(四):AutoTokenizer

【AI大模型】Transformers大模型库(五):AutoModel、Model Head及查看模型结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/373844.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷粒商城学习笔记-22-分布式组件-SpringCloud-OpenFeign测试远程调用

文章目录 一,OpenFeign的简介二,OpenFeign的使用步骤1,场景说明2,引入依赖2,开启OpenFeign3,编写Feign接口4,使用feign调用远程接口5,验证 错误记录 上一节学习了注册中心&#xff0…

区块链论文速读A会-ISSTA 2023(2/2)如何检测DeFi协议中的价格操纵漏洞

Conference:ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) CCF level:CCF A Categories:Software Engineering/System Software/Programming Languages Year:2023 第1~5篇区块链文章 请点击此…

讲讲 JVM 的内存结构(附上Demo讲解)

讲讲 JVM 的内存结构 什么是 JVM 内存结构?线程私有程序计数器​虚拟机栈本地方法栈 线程共享堆​方法区​注意永久代​元空间​运行时常量池​直接内存​ 代码详解 什么是 JVM 内存结构? JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地…

用SurfaceView实现落花动画效果

上篇文章 Android子线程真的不能刷新UI吗?(一)复现异常 中可以看出子线程更新main线程创建的View,会抛出异常。SurfaceView不依赖main线程,可以直接使用自己的线程控制绘制逻辑。具体代码怎么实现了? 这篇文章用Surfa…

C++入门基础篇(下)

目录 6.引用 6.1 引用的特性 6.2 const引用 7.指针和引用的关系 8.内联函数 9.nullptr 6.引用 引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。比如&a…

Linux系统(Centos)下MySQL数据库中文乱码问题解决

问题描述:在进行数据库使用过程中,数据库里的数据中文都显示乱码。操作数据库的时候,会出现中文乱码问题。 解决方法如下: 第一步:打开虚拟机进入系统,启动MySQL。 第二步:连接登录MySQL输入…

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制 1 目标效果视频 目标效果展示 IO_Manager 2 信号输出流程说明 为了防止线程不同步导致输出信号没有被输出, 尽量使用一个输出队列来进行输出的管理 3 IO_Manager中添加内容 3.0 添加两个类 1 Out_Sta…

idea中打开静态网页端口是63342而不是8080

问题: 安装了tomcat 并且也配置了环境,但是在tomcat下运行,总是在63342下面显示。这也就意味着,并没有运行到tomcat环境下。 找了好几个教程(中间还去学习了maven,因为跟的教程里面,没有maven,但…

C++ STL IO流介绍

目录 一:IO流的继承关系: 二:输入输出功能 1. 基本用法 2. 格式化输入 3.非格式化输入 4. 格式化输出 三:流 1. 字符流 2. 向字符流中写入数据 3. 从字符流中读出数据 4. 清空字符流 5.完整的例子 四:文件…

php快速入门

前言 php是一门脚本语言,可以访问服务器,对数据库增删查改(后台/后端语言) 后台语言:php,java,c,c,python等等 注意:php是操作服务器,不能直接在…

数据结构(3.8)——栈的应用

栈在括号匹配中的应用 流程图 代码 #include <stdio.h> #include <stdlib.h> #define MaxSize 10typedef struct {char data[MaxSize];int top; } SqStack;// 初始化栈 void InitStack(SqStack* S) {S->top -1; // 初始化栈顶指针 }// 判空 bool StackEmpty(…

设计模式探索:观察者模式

1. 观察者模式 1.1 什么是观察者模式 观察者模式用于建立一种对象与对象之间的依赖关系&#xff0c;当一个对象发生改变时将自动通知其他对象&#xff0c;其他对象会相应地作出反应。 在观察者模式中有如下角色&#xff1a; Subject&#xff08;抽象主题/被观察者&#xf…

C++第四弹 -- 类与对象(中上) (构造函数 析构函数 拷贝构造函数)

目录 前言构造函数1. 概念2. 特征 析构函数1. 概念2. 特征 拷贝构造函数1. 概念2. 特征 总结 前言 让我们一起揭开 C 对象生命周期管理的神秘面纱&#xff0c;掌握构造函数、析构函数和拷贝构造函数的精髓&#xff01; 博客主页: 酷酷学!!! 期待更多好文, 点击关注~ 构造函…

【Neo4j】实战 (数据库技术丛书)学习笔记

Neo4j实战 (数据库技术丛书) 第1章演示了应用Neo4j作为图形数据库对改进性能和扩展性的可能性, 也讨论了对图形建模的数据如何正好适应于Neo4j数据模型,现在到了该动 手实践的时间了。第一章 概述 Neo4j将数据作为顶点和边存储(或者用Neo4j术语,节点和关系存 储)。用户被定…

外卖商城平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;商家管理&#xff0c;骑手管理&#xff0c;商品类型管理&#xff0c;商品信息管理&#xff0c;订单信息管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;商品信息&#…

深入了解java锁升级可以应对各种疑难问题

对于java锁升级&#xff0c;很多人都停留在比较浅层的表面理解&#xff0c;一定程度下也许够用&#xff0c;但如果学习其中的细节&#xff0c;我们更好地理解多线程并发时各种疑难问题的应对方式&#xff01; 因此我将锁升级过程中可能涉及的大部分细节或者疑问都整合成了一篇…

后端之路——文件本地上传

一、基础原理 文件上传是一个很基础的知识点&#xff0c;尤其是本地上传&#xff0c;在现实开发基本都是云上传&#xff0c;但是作为一个基础要简单了解一下 首先前端我就不多讲解了&#xff0c;网页开发里用<form>表单可以上传文件&#xff0c;只需要加上这三属性&…

防火墙基础实验配置

一&#xff0c;实验拓扑 二&#xff0c;实验需求&#xff1a; 1.DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9&#xff1a;00 - 18&#xff1a;00&#xff09;可以访问&#xff0c;生产区的设备全天可以访问 2.生产区不允许访问互联网&#xff0c;办公区…

如何批量更改很多个文件夹里的文件名中包含文件夹名?

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

共生与变革:AI在开发者世界的角色深度剖析

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已不再是遥不可及的概念&#xff0c;而是逐步渗透到我们工作与生活的每一个角落。对于开发者这一群体而言&#xff0c;AI的崛起既带来了前所未有的机遇&#xff0c;也引发了关于其角色定位的深刻讨论——AI…