Transformers Pipeline 任务列表工具
这个项目提供了一个简单的工具,用于列出 Hugging Face Transformers 库支持的所有自然语言处理(NLP)任务。这对于想要了解 Transformers 库功能范围的开发者来说非常有用。
环境要求
- Python 3.7+transformers
安装说明
- 创建并激活虚拟环境(推荐):
# 创建虚拟环境python -m venv venv# 激活虚拟环境# Windowsvenv\Scripts\activate# macOS/Linuxsource venv/bin/activate
- 安装依赖:
pip install transformers
代码说明
tasks.py
文件包含了一个简单的脚本,用于列出所有支持的NLP任务:
from transformers import pipelines# 获取所有可用的任务all_tasks = pipelines.SUPPORTED_TASKSprint("Transformers库支持的所有任务:")for task in all_tasks: print(task)
代码解析
导入模块:
- 从 transformers 库导入 pipelines 模块pipelines 模块提供了高级API,简化了各种NLP任务的使用
获取任务列表:
pipelines.SUPPORTED_TASKS
包含了所有支持的任务每个任务代表一种可以使用 pipeline API 执行的NLP功能输出格式:
- 脚本会打印出所有支持的任务名称每个任务名称占一行
使用示例
- 运行代码:
python tasks.py
- 预期输出示例:
# Hugging Face Transformers库支持的所有任务列表# 每一行代表不同的机器学习任务能力Transformers库支持的所有任务: # [中文] Transformers库支持的所有任务audio-classification # 将音频片段分类到预定义类别中automatic-speech-recognition # 将语音转换为文字(自动语音识别)text-to-audio # 从文本生成音频/语音feature-extraction # 从输入数据中提取特征/嵌入向量text-classification # 将文本分类到预定义类别中token-classification # 对文本中的单个词元/单词进行标注(如命名实体识别)question-answering # 基于给定上下文回答问题table-question-answering # 基于表格数据回答问题visual-question-answering # 回答关于视觉内容的问题document-question-answering # 回答关于文档内容的问题fill-mask # 预测句子中缺失的单词summarization # 生成文本的简洁摘要translation # 在不同语言之间翻译文本text2text-generation # 通用的文本到文本转换text-generation # 生成连贯的文本延续zero-shot-classification # 无需特定任务训练即可分类文本zero-shot-image-classification # 无需特定任务训练即可分类图像zero-shot-audio-classification # 无需特定任务训练即可分类音频image-classification # 将图像分类到预定义类别中image-feature-extraction # 从图像中提取特征/嵌入向量image-segmentation # 将图像分割为有意义的区域image-to-text # 生成图像的文本描述image-text-to-text # 处理图像和文本输入以生成文本object-detection # 检测并定位图像中的物体zero-shot-object-detection # 无需特定任务训练即可检测物体depth-estimation # 从2D图像估计深度video-classification # 对视频内容进行分类mask-generation # 为图像生成遮罩(如图像修复)image-to-image # 将图像转换为其他图像
常见支持的任务说明
文本分类 (text-classification)
- 情感分析主题分类意图识别
标记分类 (token-classification)
- 命名实体识别(NER)词性标注(POS)文本分块
问答系统 (question-answering)
- 从上下文中提取答案开放域问答多选题回答
文本生成 (text-generation)
- 故事生成对话生成代码生成
文本摘要 (summarization)
- 新闻摘要文档摘要对话摘要
翻译 (translation)
- 多语言翻译特定语言对翻译
掩码填充 (fill-mask)
- 完形填空上下文预测词语补全
使用任务的一般步骤
- 选择任务:
from transformers import pipeline# 初始化特定任务的pipelineclassifier = pipeline("text-classification")
- 准备输入:
# 根据任务类型准备适当的输入text = "Your input text here"
- 执行任务:
# 使用pipeline处理输入result = classifier(text)print(result)
常见问题解决
找不到特定任务
- 确保使用最新版本的 transformers 库检查任务名称拼写是否正确查看官方文档确认任务支持情况
内存不足
- 使用较小的模型减小批处理大小使用CPU版本
模型下载问题
- 检查网络连接使用镜像站点手动下载模型文件