【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)

news2024/9/25 17:18:26

目录

一、引言 

二、文本分类(text-classification)

2.1 概述

2.2 DistilBERT—BERT 的精简版:更小、更快、更便宜、更轻便

2.3 应用场景​​​​​​​

2.4 pipeline参数

2.4.1 pipeline对象实例化参数

2.4.2 pipeline对象使用参数 ​​​​​​​

2.4.3 pipeline返回参数 ​​​​​​​​​​​​​​

2.5 pipeline实战

2.6 模型排名

三、总结


一、引言 

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

今天介绍NLP自然语言处理的第五篇:文本分类(text-classification),在huggingface库内有6.7万个文本分类(text-classification)模型。

二、文本分类(text-classification)

2.1 概述

文本分类是为给定文本分配标签或类别的任务。一些用例包括情绪分析、自然语言推理和评估语法正确性。

2.2 DistilBERT—BERT 的精简版:更小、更快、更便宜、更轻便

在预训练阶段利用了知识蒸馏,并表明可以将 BERT 模型的大小缩小 40%,同时保留 97% 的语言理解能力并且速度提高 60%。为了利用较大模型在预训练期间学习到的归纳偏差,我们引入了一种结合语言建模、蒸馏和余弦距离损失的三重损失。我们的更小、更快、更轻的模型预训练成本更低,并且我们在概念验证实验和比较设备研究中展示了其在设备上计算的能力。。

2.3 应用场景​​​​​​​

  • 新闻分类:根据新闻内容将其分类为政治、体育、娱乐等类别。
  • 情感分析:判断用户评论或评价的情绪是积极还是消极。
  • 垃圾邮件过滤:区分正常邮件和垃圾邮件。
  • 产品评论分类:根据用户评论将其分类为好评、差评、中性等类别。
  • 自动问答系统:根据问题类型将其分类为具体的领域,如技术支持、订单查询等。
  • 内容过滤:根据文本内容将其分类为适合或不适合某些年龄段或人群。
  • 舆论分析:监测和分析社会媒体上的舆论趋势。

2.4 pipeline参数

2.4.1 pipeline对象实例化参数

  • model(PreTrainedModel或TFPreTrainedModel)— 管道将使用其进行预测的模型。 对于 PyTorch,这需要从PreTrainedModel继承;对于 TensorFlow,这需要从TFPreTrainedModel继承。
  • tokenizer ( PreTrainedTokenizer ) — 管道将使用 tokenizer 来为模型编码数据。此对象继承自 PreTrainedTokenizer。
  • modelcardstrModelCard可选) — 属于此管道模型的模型卡。
  • frameworkstr可选)— 要使用的框架,"pt"适用于 PyTorch 或"tf"TensorFlow。必须安装指定的框架。
  • taskstr,默认为"")— 管道的任务标识符。
  • num_workersint可选,默认为 8)— 当管道将使用DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上)时,要使用的工作者数量。
  • batch_sizeint可选,默认为 1)— 当管道将使用DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上)时,要使用的批次的大小,对于推理来说,这并不总是有益的,请阅读使用管道进行批处理。
  • args_parser(ArgumentHandler,可选) - 引用负责解析提供的管道参数的对象。
  • deviceint可选,默认为 -1)— CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。您可以传递本机torch.devicestr
  • torch_dtypestrtorch.dtype可选) - 直接发送model_kwargs(只是一种更简单的快捷方式)以使用此模型的可用精度(torch.float16,,torch.bfloat16...或"auto"
  • binary_outputbool可选,默认为False)——标志指示管道的输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)进行。
  • return_all_scoresbool可选,默认为False)——是否返回所有预测分数或仅返回预测类别的分数。
  • function_to_applystr可选,默认为"default")— 用于检索分数的模型输出函数。接受四个不同的值:
    • "default":如果模型只有一个标签,则在输出上应用 sigmoid 函数。如果模型有多个标签,则在输出上应用 softmax 函数。
    • "sigmoid":在输出上应用 S 型函数。
    • "softmax":在输出上应用 softmax 函数。
    • "none":不对输出应用任何功能。

2.4.2 pipeline对象使用参数 ​​​​​​​

  • inputsstrList[str]Dict[str],或List[Dict[str]])— 需要分类的一个或多个文本。为了使用文本对进行分类,您可以发送包含{"text", "text_pair"}键的字典或键的列表。
  • top_kint可选,默认为1)— 返回多少个结果。
  • function_to_applystr可选,默认为"default")— 用于检索分数的模型输出函数。接受四个不同的值:

    如果不指定此参数,那么它将根据标签数量应用以下函数:

    • 如果模型只有一个标签,则将在输出上应用 S 型函数。
    • 如果模型有多个标签,将在输出上应用 softmax 函数。

    可能的值包括:

    • "sigmoid":在输出上应用 S 型函数。
    • "softmax":在输出上应用 softmax 函数。
    • "none":不对输出应用任何功能。

2.4.3 pipeline返回参数 ​​​​​​​​​​​​​​

  • labelstr)——预测的标签。
  • scorefloat)——相应的概率。

2.5 pipeline实战

采用pipeline,使用distilbert的distilbert-base-uncased-finetuned-sst-2-english进行表格问答。

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"

from transformers import pipeline

classifier = pipeline("text-classification", model = "distilbert/distilbert-base-uncased-finetuned-sst-2-english")
output=classifier("happy new year")
print(output)
output=classifier("boring")
print(output)

执行后,自动下载模型文件并进行识别:

2.6 模型排名

在huggingface上,我们将表格问答(table-question-answering)模型按下载量从高到低排序,总计6.7万个模型,属于hf上应用较多的模型任务。

三、总结

本文对transformers之pipeline的文本分类(text-classification)从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍,读者可以基于pipeline使用文中的2行代码极简的使用NLP中的文本分类(text-classification)模型。

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

《Transformers-Pipeline概述》

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

《Transformers-Pipeline 第一章:音频(Audio)篇》

【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)

【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)

《Transformers-Pipeline 第二章:计算机视觉(CV)篇》

【人工智能】Transformers之Pipeline(五):深度估计(depth-estimation)

【人工智能】Transformers之Pipeline(六):图像分类(image-classification)

【人工智能】Transformers之Pipeline(七):图像分割(image-segmentation)

【人工智能】Transformers之Pipeline(八):图生图(image-to-image)

【人工智能】Transformers之Pipeline(九):物体检测(object-detection)

【人工智能】Transformers之Pipeline(十):视频分类(video-classification)

【人工智能】Transformers之Pipeline(十一):零样本图片分类(zero-shot-image-classification)

【人工智能】Transformers之Pipeline(十二):零样本物体检测(zero-shot-object-detection)​​​​​​​

《Transformers-Pipeline 第三章:自然语言处理(NLP)篇》

【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)​​​​​​​

【人工智能】Transformers之Pipeline(十四):问答(question-answering)

【人工智能】Transformers之Pipeline(十五):总结(summarization)

【人工智能】Transformers之Pipeline(十六):表格问答(table-question-answering)

【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)

【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)

【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)

【人工智能】Transformers之Pipeline(二十):令牌分类(token-classification)

【人工智能】Transformers之Pipeline(二十一):翻译(translation)

【人工智能】Transformers之Pipeline(二十二):零样本文本分类(zero-shot-classification)

《Transformers-Pipeline 第四章:多模态(Multimodal)篇》

【人工智能】Transformers之Pipeline(二十三):文档问答(document-question-answering)

【人工智能】Transformers之Pipeline(二十四):特征抽取(feature-extraction)

【人工智能】Transformers之Pipeline(二十五):图片特征抽取(image-feature-extraction)

【人工智能】Transformers之Pipeline(二十六):图片转文本(image-to-text)

【人工智能】Transformers之Pipeline(二十七):掩码生成(mask-generation)

【人工智能】Transformers之Pipeline(二十八):视觉问答(visual-question-answering)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

布偶猫应该喂什么猫罐头:交响乐金罐、希喂、尾巴生活测评

布偶猫,萌宠界的甜心代表,爱撒娇又黏人。想让它健康成长?喂养是关键。选粮不当,健康受损。今日精选三款热门主食罐,依据布偶猫营养需求,直接评测,助你快速了解何为理想之选。无需繁琐&#xff0…

状态机按键消抖(学习笔记)

状态转移图: module key_filter(Clk,Reset_n,Key, // Key_P_Flag, // Key_R_Flag,Key_Flag,Key_state);input Clk;input Reset_n;input Key; // output reg Key_P_Flag; // output reg Key_R_Flag;output Key_Flag;output reg Key_state; reg Key_P_…

002 JavaClent操作RabbitMQ

Java Client操作RabbitMQ 文章目录 Java Client操作RabbitMQ1.pom依赖2.连接工具类3.简单模式4.工作队列模式(work)公平调度示例 5.发布/订阅模式(fanout)交换机绑定示例代码 6.路由模式(direct)7.Topic匹配…

RQ-RAG:提升检索增强生成模型的查询精炼能力

人工智能咨询培训老师叶梓 转载标明出处 大模型在面对未见场景时,往往会产生不准确或虚构的回答,这限制了它们的实用性。为了解决这一问题,香港科技大学、香港理工大学和麻省理工学院的研究团队提出了一种名为RQ-RAG(Retrieval-A…

国产芯片LT8711HE:TYPE-C/DP1.2转HDMI2.0转换器,4k60Hz高分辨率

以下为LT8711HE芯片的简单介绍,如有介绍不尽之处,请指出 LT8711HE是一个高性能的Type-C/DP1.2到HDMI2.0转换器,用于连接USB Type-C源或DP1.2源到HDMI2.0接收器。 LT8711HE集成了一个DP1.2兼容的接收器和一个HDMI2.0兼容的发射器。另外&…

出处不详 取数游戏

目录 取数游戏题目描述背景输入输出数据范围 题解解法优化 打赏 取数游戏 题目描述 背景 两人将 n n n个正整数围成一个圆环,规则如下: 第一名玩家随意选取数字;第二名玩家从与第一名玩家相邻的两个数字中选择一个;而后依次在…

MOM成功实施分享(五)刨花板制造数字化聚焦业务场景

刨花板是一种人造板材,由木材或其他植物纤维原料制成。 在制造生产过程中目前存在以下痛点: 原材料质量不稳定:刨花板的质量很大程度上取决于原材料的质量,如果原材料的来源不稳定、质量参差不齐,会影响刨花板的性能…

从线段中搜寻提取闭合轮廓(三)

1.前言 做底层和数据的调试问题也是个麻烦事,如果没有方便的可视化工具辅助,那将令人感到痛苦,借助可视化的工具可以让我们高效、省心,进而心情舒畅,重要的是可以提高调试效率。 当然可视化工具也分不同层次的…

我对 monorepo 的一些思考

我对 monorepo 的一些思考 我对 monorepo 的一些思考 前言它的由来技术选型 管理工具语言与打包调试工具测试框架代码规范与质量控制本地引用与发包替换发包流程Github 相关配置部署 使用手册 功能特性总结如何使用?清除默认的包(可选)模板包介绍 packagesapps 更新…

25虾皮笔试shopee笔试测评sea笔试测评题型

虾皮笔试shopee笔试测评用的自己的笔试系统,全英文笔试: 1.Numerical Reasoning Test:10题,言语推断和数学计算 2. Verbal Reasoning Test:10题,言语理解,每题一段英文材料,选对错…

医院管理|基于java的医院管理系统小程序(源码+数据库+文档)

医院管理系统小程序 目录 基于java的医院管理系统小程序 一、前言 二、系统设计 三、系统功能设计 医生信息管理 排班信息管理 科室信息管理 科室预约 病历信息 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:…

浅谈模型在信贷营销中的应用

浅谈模型在信贷营销中的应用 当前在信贷营销场景中,用户流量竞争愈加激烈,获客成本持续攀高,客户消费观念和消费信心趋向保守,传统的信贷营销方式效果逐渐乏力,借助数据挖掘技术对用户进行多元优化及精细化管理已经成为企业在经营发展中的普遍趋势。在此背景下,本文将围…

如何设置新建每个Python文件开头带上作者名和时间?

1、在pycharm界面中点击"File->Settings" 2、点击"Editor->File and Code Templates->Python Script" 3、添加信息后,点击"ok" # encoding: utf-8 # File : ${NAME}.py # Author: jianlu # Date : ${YEAR}/${MONTH}/${DA…

LBS 开发微课堂|轨迹重合率分析API升级:距离无上限,操作更简便

为了让广大的开发者 更深入地了解 百度地图开放平台的 技术能力 轻松掌握满满的 技术干货 更加简单地接入 位置服务 我们特别推出了 “位置服务(LBS)开发微课堂” 系列技术案例 第二期的主题是 《轨迹重合率分析API升级》 百度地图的鹰眼轨迹…

算法设计(一)

1.汉诺塔 介绍 汉诺塔(Hanoi Tower):它描述了如何将一堆大小不同、穿在一根柱子上的盘子移动到另一根柱子上,同时满足以下规则: 每次只能移动一个盘子。 每个移动盘子时,大的盘子不能放在小的盘子上面。 可以使用一根…

若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)

文章目录 一、开发脚手架选择二、RuoYi框架1、介绍2、版本发展3、为什么选择若依4、优缺点5、项目内置功能 三、后端项目部署1、拉取源码2、环境要求3、Maven构建4、MySQL相关(1)导入SQL脚本(2)配置信息 5、Redis相关(…

crdownload格式后缀的文件是什么东西?crdownload格式是什么

crdownload格式就是浏览器没下载完成的文件,如果下载完成了,那么就显示正常的格式和文件名了。

ARM32开发——DMA

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 基础概念CPURAM外设 ARM32程序存储 执行过程取数据 执行操作流程总结 基础概念 CPU CPU(Central Processing Unit&am…

[点云处理] cloud compare二次插件功能开发(三)CC插件总结与加速开发

本文完成一个点云变换的插件,同时也是对CC接口的使用做进一步说明,进一步理解CC插件开发流程,利用CC平台和已有代码加快实现定制功能。 这个功能在 cc 已有的功能已经存在,位于 edit->apply_transformation 这里 文件逻辑组织还…

如何让人工智能训练更快

影响人工智能训练时间的因素 在深度学习训练中,训练时间的计算涉及到多个因素,包括 epoch 数、全局 batch size、微 batch size、计算设备数量等。下面是一个基本的公式来说明这些参数之间的关系(注意,这只是一个基本的说明公式&…