当前位置: 首页 > news >正文

基于Transformer的NLP处理管线

HuggingFace transformers 是一个整合了跨语言、视觉、音频和多模式模态与最先进的预训练模型并且提供用户友好的 API 的AI开发库。 它由 170 多个预训练模型组成,支持 PyTorch、TensorFlow 和 JAX 等框架,能够在代码之间进行互操作。 这个库还易于部署,因为它允许将模型转换为 ONNX 和 TorchScript 格式。

在这篇文章中,我们将特别探讨可轻松用于推理的transformer的管道(pipeline)功能。 管道提供复杂代码的抽象,并为文本摘要、问答、命名实体识别、文本生成和文本分类等多项任务提供简单的 API。 这些 API 最好的一点是,从预处理到模型评估的所有任务都可以只用几行代码来执行,而不需要大量的计算资源。

在这里插入图片描述

推荐:将 NSDT场景编辑器 加入你的3D开发工具链。

现在,让我们开始吧!

第一步是使用以下命令安装 transformers 包:

pip install transformers

接下来,我们将使用流水线管道结构来实现不同的任务:

from transformers import pipeline

管道允许指定多个参数,例如任务、模型、设备、批量大小和其他任务特定参数。

让我们从第一个任务开始。

1、文本摘要

这个任务的输入是一个文本语料库,模型将根据参数中提到的预期长度输出它的摘要。 在这里,我们将最小长度保持为 5,将最大长度保持为 30。

summarizer = pipeline("summarization", model="t5-base", tokenizer="t5-base", framework="tf"
)input = "Parents need to know that Top Gun is a blockbuster 1980s action thriller starring Tom Cruise that's chock full of narrow escapes, chases, and battles. But there are also violent and upsetting scenes, particularly the death of a main character, which make it too intense for younger kids. There's also one graphic-for-its-time sex scene (though no explicit nudity) and quite a few shirtless men in locker rooms and, in one iconic sequence, on a beach volleyball court. Winning is the most important thing to all the pilots, who try to intimidate one another with plenty of posturing and banter -- though when push comes to shove, loyalty and friendship have important roles to play, too. While sexism is noticeable and almost all characters are men, two strong women help keep some of the objectification in check."summarizer(input, min_length=5, max_length=30)

输出如下:

[{"summary_text": "1980s action thriller starring Tom Cruise is chock-full of escapes, chases, battles "}
]

还可以从针对摘要任务进行微调的模型的其他选项中进行选择 - bart-large-cnn、t5-small、t5-large、t5-3b、t5-11b。 可以在此处查看可用模型的完整列表。

2、问答任务

在这个任务中,我们提供了一个问题和一个上下文。 该模型将根据最高概率得分从上下文中选择答案。 它还提供文本的开始和结束位置。

qa_pipeline = pipeline(model="deepset/roberta-base-squad2")qa_pipeline(question="Where do I work?",context="I work as a Data Scientist at a lab in University of Montreal. I like to develop my own algorithms.",
)

输出如下:

{"score": 0.6422629356384277,"start": 39,"end": 61,"answer": "University of Montreal",
}

请参阅此处查看问答任务可用模型的完整列表。

3、命名实体识别

命名实体识别处理基于人名、组织名、位置名等的词的识别和分类。 输入基本上是一个句子,模型将确定命名实体及其类别及其在文本中的相应位置。

ner_classifier = pipeline(model="dslim/bert-base-NER-uncased", aggregation_strategy="simple"
)
sentence = "I like to travel in Montreal."
entity = ner_classifier(sentence)
print(entity)

输出如下:

[{"entity_group": "LOC","score": 0.9976745,"word": "montreal","start": 20,"end": 28,}
]

在此处查看可用模型的其他选项。

4、词性标注

PoS 标记可用于对文本进行分类并提供其相关词性,例如一个词是否是名词、代词、动词等。 该模型返回 PoS 标记的单词及其概率分数和各自的位置。

pos_tagger = pipeline(model="vblagoje/bert-english-uncased-finetuned-pos",aggregation_strategy="simple",
)
pos_tagger("I am an artist and I live in Dublin")

输出如下:

[{"entity_group": "PRON","score": 0.9994804,"word": "i","start": 0,"end": 1,},{"entity_group": "VERB","score": 0.9970591,"word": "live","start": 2,"end": 6,},{"entity_group": "ADP","score": 0.9993111,"word": "in","start": 7,"end": 9,},{"entity_group": "PROPN","score": 0.99831414,"word": "dublin","start": 10,"end": 16,},
]

5、文本分类

我们将执行情感分析并根据语气对文本进行分类。

text_classifier = pipeline(model="distilbert-base-uncased-finetuned-sst-2-english"
)
text_classifier("This movie is horrible!")

输出如下:

[{'label': 'NEGATIVE', 'score': 0.9997865557670593}]

让我们再举几个例子。

text_classifier("I loved the narration of the movie!")

输出如下:

[{'label': 'POSITIVE', 'score': 0.9998612403869629}] 

可以在此处找到完整的文本分类模型列表。

6、文本生成

text_generator = pipeline(model="gpt2")
text_generator("If it is sunny today then ", do_sample=False)

输出如下:

[{"generated_text": "If it is sunny today then \xa0it will be cloudy tomorrow."}
]

在此处访问文本生成模型的完整列表。

7、文本翻译

在这里,我们会将文本的语言从一种语言翻译成另一种语言。 例如,我们选择了从英语到法语的翻译。 我们使用了基本的 t5-small 模型,但你可以在此处访问其他高级模型。

en_fr_translator = pipeline("translation_en_to_fr", model='t5-small')
en_fr_translator("Hi, How are you?")

输出如下:

[{'translation_text': 'Bonjour, Comment êtes-vous ?'}]

原文链接:Transformer NLP管线 — BimAnt

相关文章:

基于Transformer的NLP处理管线

HuggingFace transformers 是一个整合了跨语言、视觉、音频和多模式模态与最先进的预训练模型并且提供用户友好的 API 的AI开发库。 它由 170 多个预训练模型组成,支持 PyTorch、TensorFlow 和 JAX 等框架,能够在代码之间进行互操作。 这个库还易于部署&…...

二叉树OJ(一)二叉树的最大深度 二叉搜索树与双向链表 对称的二叉树

二叉树的最大深度 二叉树中和为某一值的路径(一) 二叉搜索树与双向链表 对称的二叉树 二叉树的最大深度 描述 求给定二叉树的最大深度, 深度是指树的根节点到任一叶子节点路径上节点的数量。 最大深度是所有叶子节点的深度的最大值。 (注:…...

使用Fairseq进行Bart预训练

文章目录前言环境流程介绍数据部分分词部分预处理部分训练部分遇到的问题问题1可能遇到的问题问题1问题2前言 本文是使用 fairseq 做 Bart 预训练任务的踩坑记录huggingface没有提供 Bart 预训练的代码 facebookresearch/fairseq: Facebook AI Research Sequence-to-Sequence…...

n阶数字回转方阵 ← 模拟法

【问题描述】 请编程输出如下数字回旋方阵。 【算法代码】 #include <bits/stdc.h> using namespace std;const int maxn100; int z[maxn][maxn];void matrix(int n) {int num2;z[0][0]1;int i0,j1;while(i<n && j<n) {while(i<j) z[i][j]num;while(j&…...

【人工智能AI】二、NoSQL 基础知识《NoSQL 企业级基础入门与进阶实战》

写一篇介绍 NoSQL 基础知识的技术文章&#xff0c;分5个章节&#xff0c;每个章节细分到3级目录&#xff0c;重点介绍一下NoSQL 数据模型&#xff0c;NoSQL 数据库架构&#xff0c;NoSQL 数据库特性等&#xff0c;不少于2000字。 NoSQL 基础知识 NoSQL&#xff08;Not Only SQ…...

Camera Rolling Shutter和Global Shutter的区别

卷帘快门&#xff08;Rolling Shutter&#xff09;与全局快门&#xff08;Global Shutter&#xff09;的区别 什么是快门 快门是照相机用来控制感光片有效曝光时间的机构。 快门是照相机的一个重要组成部分&#xff0c;它的结构、形式及功能是衡量照相机档次的一个重要因素。 …...

模版之AnyType

title: 模版之AnyType date: 2023-02-19 21:49:53 permalink: /pages/54a0bf/ categories: 通用领域编程语言C tags:C元编程 author: name: zhengzhibing link: https://azmddy.top/pages/54a0bf/ 模版之AnyType 在研究C的编译期反射时&#xff0c;发现了AnyType很有意思。 首…...

【汇编】一、环境搭建(一只 Assember 的成长史)

嗨~你好呀&#xff01; 我是一名初二学生&#xff0c;热爱计算机&#xff0c;码龄两年。最近开始学习汇编&#xff0c;希望通过 Blog 的形式记录下自己的学习过程&#xff0c;也和更多人分享。 这篇文章主要讲述汇编环境的搭建过程。 话不多说~我们开始吧&#xff01; 系统环…...

【博客628】k8s pod访问集群外域名原理以及主机开启了systemd-resolved的不同情况

k8s pod访问集群外域名原理以及使用了systemd-resolved的不同情况 1、不同情况下的linux主机访问外部域名原理 没有使用systemd-resolved的linux主机上访问外部域名一般是按照以下步骤来的&#xff1a; 从dns缓存里查找域名与ip的映射关系 从/etc/hosts里查找域名与ip的映射…...

测试3.测试方法的分类

3.测试分类 系统测试包括回归测试和冒烟测试 回归测试&#xff1a;修改了旧的代码后&#xff0c;重新测试功能是否正确&#xff0c;有没有引入新的错误或导致其它代码产生错误 冒烟测试&#xff1a;目的是确认软件基本功能正常&#xff0c;可以进行后续的正式测试工作 按是否…...

Android 基础知识4-2.9 FrameLayout(帧布局)详解

一、FrameLayout&#xff08;帧布局&#xff09;概述 FrameLayout又称作帧布局&#xff0c;它相比于LinearLayout和RelativeLayout要简单很多&#xff0c;因为它的应用场景也少了很多。这种布局没有方便的定位方式&#xff0c;所有的控件都会默认摆放在布局的左上角。 示例1代…...

Go语言xorm框架

xorm xorm是一个简单而强大的Go语言ORM库通过它可以使数据库操作非常简便。 官网: https://xorm.io/ 中文文档: https://gitea.com/xorm/xorm/src/branch/master/README_CN.md 特性 支持 Struct 和数据库表之间的灵活映射&#xff0c;并支持自动同步事务支持同时支持原始SQL…...

19_微信小程序之优雅实现侧滑菜单

19_微信小程序之优雅实现侧滑菜单一.先上效果图 要实现这样一个效果&#xff0c;布局其实很简单&#xff0c;整体布局是一个横向滚动的scroll-view&#xff0c;难点在于怎么控制侧滑菜单的回弹&#xff0c;以及寻找回弹的边界条件? 此篇文章主要是基于uni-app来实现的&#xf…...

JSP中JDBC与javaBean学习笔记

本博文源于博主偷偷复习期末的java web&#xff0c;博文主要讲述JDBC API与JavaBean&#xff0c;涉及driver,driver Manager\connection、statement接口、PreparedStatement接口、ResultSet接口&#xff0c;JavaBean包含一些标记介绍。 1.JDBC API JDBC由一组接口和类组成&am…...

编译Android系统源码推荐的电脑配置

工欲善其事&#xff0c;必先利其器。 看到很多客户&#xff0c;搞Android产品开发&#xff0c;用的电脑配置是惨不忍睹。 这些老板脑子有坑吗... ------------ 编译Android9推荐电脑配置&#xff1a; 处理器&#xff1a;酷睿i7 5代系列 8线程以上 内存&#xff1a; 8GB以上…...

加油站会员管理小程序实战开发教程10

上一篇我们介绍了计算距离及到店导航的功能,本篇我们介绍一下今日油价的功能。 如果要按日显示最新的数据,那么我们首先需要有数据源来存放每日的油价数据。这里涉及数据源的时候要考虑你的数据是只录入一条,还是每日录入一条。 录入一条呢,比较简单,但有个问题是如果我…...

shell编程之条件判断和流程控制

typora-copy-images-to: pictures typora-root-url: …\pictures 文章目录typora-copy-images-to: pictures typora-root-url: ..\..\pictures本节课程目标一、条件判断语法结构2. 条件判断相关参数㈠ 判断文件类型㈡ 判断文件权限㈢ 判断文件新旧㈣ 判断整数㈤ 判断字符串㈥ 多…...

第一次接触jquery

文章目录一.关于jqurey二.什么是jqurey三.上课实例1.表格 2.鼠标移动效果 3隐藏和显示效果代码如下注意一.关于jqurey 简而言之&#xff1a;jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 二.什么是jqurey jQuery 是一个 JavaScript 函数库。 jQu…...

Vue中 引入使用 babel-polyfill 兼容低版本浏览器

注意&#xff1a;本文主要介绍的 vue-cli 版本&#xff1a;3.x&#xff0c; 4.x&#xff1b; 最近在项目中使用 webpack 打包后升级&#xff0c;用户反馈使用浏览器&#xff08;chrome 45&#xff09;访问白屏。经过排查发现&#xff1a;由于 chrome 45 无法兼容 ES6 语法导致的…...

ArcGIS Enterprise on Kubernetes 11.0安装示例

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录安装前置条件基本安装解压文件生成秘钥执行安装脚本配置DNS方法一方法二…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...