huggingface实战bert-base-chinese模型(训练+预测)
文章目录
- 前言
- 一、bert模型词汇映射说明
- 二、bert模型输入解读
- 1、input_ids说明
- 2、attention_mask说明
- 3、token_type_ids说明
- 4、模型输入与vocab映射内容
- 二、huggingface模型数据加载
- 1、数据格式查看
- 2、数据dataset处理
- 3、tokenizer处理dataset数据
- 三、huggingface训练bert分类模型
- 1、huggingface训练bert分类模型主函数解读
- 2、huggingface的bert分类模型加载构建
- 四、huggingface推理bert分类模型
- 五、填空bert模型构建
- 1、数据构建
- 2、模型构建
- 3、loss计算
- 4、模型预测
- 六、完整代码链接
- 总结
前言
Hugging Face是一家人工智能公司,致力于提供自然语言处理(NLP)模型和工具的开源库。他们的开源库包括了BERT等各种预训练模型的实现,以及用于训练、微调和部署这些模型的工具。在本文中,我们将探讨如何使用Hugging Face的库来构建一个BERT分类模型,该模型能够对文本进行分类,例如情感分析、文本分类等任务。我们将介绍如何使用Hugging Face提供的transformers库来构建、训练和评估BERT分类模型。通过本文的学习,您将能够掌握使用Hugging Face构建BERT分类模型的关键步骤和技巧,为NLP任务提供强大的解决方案。同时,我也将介绍掩码mask预测模型方法。最终,我也将数据、模型文件、代码等内容公开。
一、bert模型词汇映射说明
在BERT中,和是特殊的词元(token),用于在输入序列中标记特定的位置和边界。
:它是表示序列开头的特殊词元,全称为"classification"。在BERT中,输入序列的第一个位置被标记为,用于表示整个序列的概括信息。在训练过程中,BERT模型学习使用位置的表示来进行各种分类任务,例如文本分类、情感分析等。在编码后的表示中,位置的向量通常用作整个序列的汇总表示。
:它是表示序列分割的特殊词元,全称为"separator"。在BERT中,输入的文本序列可以由多个片段(segments)组成,例如两个句子或一个问题和一个回答。为了将这些片段分隔开,词元用于标记不同片段的边界。它出现在片段之间和序列的末尾,用于告知BERT模型输入序列的结构。
:它表示填充(padding)的词元,在输入序列中用于填充长度不足的片段或序列。填充是为了使所有输入序列具有相同的长度,以便进行批量处理。
:它表示掩蔽(mask)的词元,在预训练阶段用于生成掩蔽语言模型(Masked Language Model,MLM)任务。在训练过程中,输入序列中的一部分词元会被随机选择并替换为词元,模型需要预测被掩蔽的词元。
5 :它表示未知(unknown)的词元,用于表示在预训练期间未见过的词汇。当输入序列中出现未登录词(out-of-vocabulary)时,这些词元将被替换为词元。
博客链接:这里
二、bert模型输入解读
在这里,我们假设有个句子“这位姐姐对这本书几近痴迷。我不好这一口,没有耐心看它。纯粹表扬一下这次送书的效率和质量。起码书的品相不错,好过我前两次购书。希望以后能保持。”,包含标点符号。我们探讨该句子在模型中的输入或映射ids与vocab.txt对应关系。同时,也再次说明input_ids与attention_mask的含义。
1、input_ids说明
这里可以从input_ids看到tokenizer的输出是将你的文本根据模型的词汇表转化为对应的id。同时观察到所有句子都以101开头,102结尾,这两个id分别对应 [CLS], [SEP] token。
2、attention_mask说明
attention_mask有id的地方取值为1,没有id地方取值为0,表示模型需要处理token,在有掩码训练可根据这个决定哪些token不训练,如训练过程中的掩码率是15%。
3、token_type_ids说明
token_type_ids这里主要表示是否是两个句子拼接在一起,如果不是拼接的句子,那么这个值则全为0,若2个句子需要拼接,第二个句子为的token_type_ids为全1 ,如[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]],0是第一个句子位置,1是第二个句子位置。
4、模型输入与vocab映射内容
该模型是个文本分类模型,标签只有2个类0或1,模型输入input_ids、attention_mask、token_type_ids、token_type_ids,我已在上面做了解释。这几个变量都为[batch,max_length],表示batch与文本长度,不足需pad填充,一般为0,其具体结果如下:
sents[0]= 这位姐姐对这本书几近痴迷。我不好这一口,没有耐心看它。纯粹表扬一下这次送书的效率和质量。起码书的品相不错,好过我前两次购书。希望以后能保持。
input_ids[0]= [ 101 6821 855 1995 1995 2190 6821 3315 741 1126 6818 4590 6837 5112769 679 1962 6821 671 1366 8024 3766 3300 5447 2552 4692 2124 5115283 5122 6134 2813 671 678 6821 3613 6843 741 4638 3126 4372 14696574 7030 511 6629 4772 741 4638 1501 4685 679 7231 8024 1962 68142769 1184 697 3613 6579 741 511 2361 3307 809 1400 5543 924 2898511 102 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0]
attention_mask[0]= [1 1 1 1 1 1 1 1 1
相关文章:
huggingface实战bert-base-chinese模型(训练+预测)
文章目录 前言一、bert模型词汇映射说明二、bert模型输入解读1、input_ids说明2、attention_mask说明3、token_type_ids说明4、模型输入与vocab映射内容二、huggingface模型数据加载1、数据格式查看2、数据dataset处理3、tokenizer处理dataset数据三、huggingface训练bert分类模…...
CCS安装和导入项目及编译教程
1. CCS安装# 在 TI官网 下载离线版(offline)。 Code Composer Studio Downloads 页面上有license 信息:这么看来是免费的,爱了爱了 Licensing: CCSv7 and later are Technology Software Publicly Available (TSPA) compliant.…...
在React里面使用mobx状态管理详细步骤
1、安装MobX和MobX React: 在你的项目目录下运行以下命令安装MobX和MobX React: npm install mobx mobx-react2、创建MobX Store: 创建一个用于管理状态的MobX Store。这个Store应该包含你希望全局管理的状态和相关的操作。以下是一个简单…...
1.6PTA集练7-5~7-24、7-1、7-2,堆的操作,部落冲突(二分查找)
7-5 大師と仙人との奇遇 分数 20 #include<iostream> #include<queue> using namespace std; int n; long long ans0,num; priority_queue<long long,vector<long long>,greater<long long>>q;//记录之前买的,用小顶堆,最上面就是最…...
uniapp向上拉加载,下拉刷新
目录 大佬1大佬2 大佬1 大佬地址:https://blog.csdn.net/wendy_qx/article/details/135077822 大佬2 大佬2:https://blog.csdn.net/chen__hui/article/details/122497140...
目标检测脚本之mmpose json转yolo txt格式
目标检测脚本之mmpose json转yolo txt格式 一、需求分析 在使用yolopose及yolov8-pose 网络进行人体姿态检测任务时,有时需要标注一些特定场景的中的人型目标数据,用来扩充训练集,提升自己训练模型的效果。因为单纯的人工标注耗时费力&…...
大数据技术在民生资金专项审计中的应用
一、应用背景 目前,针对审计行业,关于大数据技术的相关研究与应用一般包括大数据智能采集数据技术、大数据智能分析技术、大数据可视化分析技术以及大数据多数据源综合分析技术。其中,大数据智能采集数据技术是通过网络爬虫或者WebService接口实现跨部门在线数据交互;大数…...
视觉SLAM十四讲|【四】误差Jacobian推导
视觉SLAM十四讲|【四】误差Jacobian推导 预积分误差递推公式 ω 1 2 ( ( ω b k n k g − b k g ) ( w b k 1 n k 1 g − b k 1 g ) ) \omega \frac{1}{2}((\omega_b^kn_k^g-b_k^g)(w_b^{k1}n_{k1}^g-b_{k1}^g)) ω21((ωbknkg−bkg)(wbk1nk1g−bk1g)) …...
「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(一)
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。 在web项目中使用DHTMLX Gantt时,开发人员经常需要满足与UI外观相关的各种需求。因此他们必须确定JavaScript甘特图库的…...
【习题】应用程序框架
判断题 1. 一个应用只能有一个UIAbility。错误(False) 正确(True)错误(False) 2. 创建的Empty Ability模板工程,初始会生成一个UIAbility文件。正确(True) 正确(True)错误(False) 3. 每调用一次router.pushUrl()方法,页面路由栈数量均会加1。错误(Fal…...
java基于ssm的线上选课系统的设计与实现论文
摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对学生选课信息管理的提升&#x…...
汽车雷达:实时SAR成像的实现
摘要: 众所周知,点云成像是目前实现汽车雷达感知最流行的方案,尤其是采用多级联实现的4D点云成像雷达,这是目前最有希望实现产品落地的技术方案之一。 今天重点分享关于汽车雷达SAR成像相关技术内容,这也证实了4D点云成像雷达并不一定就是汽车雷达成像唯一的方案,在业内…...
《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计
2-15 编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。 #include <iostream>using namespace std;int main() {// 提示用户输入数字cout << "请输入一个数字: ";// 用于存储用户输入的数字的变量double number;// 从…...
2023年生成式AI全球使用报告
生成式人工智能工具正在迅速改变多个领域,从营销和新闻到教育和艺术。 这些工具使用算法从大量培训材料中获取新的文本、音频或图像。虽然 ChatGPT 和 Midjourney 之类的工具可以用来实现超出人类能力或想象力的艺术效果,但目前它们最常用于比人类更轻松…...
安全防御之漏洞扫描技术
每年都有数以千计的网络安全漏洞被发现和公布,加上攻击者手段的不断变化,网络安全状况也在随着安全漏洞的增加变得日益严峻。寻根溯源,绝大多数用户缺乏一套完整、有效的漏洞管理工作流程,未能落实定期评估与漏洞修补工作。只有比…...
SPON世邦 IP网络对讲广播系统 多处文件上传漏洞复现
0x01 产品简介 SPON世邦IP网络对讲广播系统是一种先进的通信解决方案,旨在提供高效的网络对讲和广播功能。 0x02 漏洞概述 SPON世邦IP网络对讲广播系统 addscenedata.php、uploadjson.php、my_parser.php等接口处存在任意文件上传漏洞,未经身份验证的攻击者可利用此漏洞上…...
Python综合数据分析_RFM用户分层模型
文章目录 1.数据加载2.查看数据情况3.数据合并及填充4.查看特征字段之间相关性5.聚合操作6.时间维度上看销售额7.计算用户RFM8.数据保存存储(1).to_csv(1).to_pickle 1.数据加载 import pandas as pd dataset pd.read_csv(SupplyChain.csv, encodingunicode_escape) dataset2…...
【C++进阶04】STL中map、set、multimap、multiset的介绍及使用
一、关联式容器 vector/list/deque… 这些容器统称为序列式容器 因为其底层为线性序列的数据结构 里面存储的是元素本身 map/set… 这些容器统称为关联式容器 关联式容器也是用来存储数据的 与序列式容器不同的是 其里面存储的是<key, value>结构的键值对 在数据检索时…...
在 Linux 中开启 Flask 项目持续运行
在 Linux 中开启 Flask 项目持续运行 在部署 Flask 项目时,情况往往并不是那么理想。默认情况下,关闭 SSH 终端后,Flask 服务就停止了。这时,您需要找到一种方法在 Linux 服务器上实现持续运行 Flask 项目,并在服务器…...
考研个人经验总结【心理向】
客官你好 首先,不管你是以何种原因来到这篇博客,以下内容或多或少可能带给你一些启发。如果你还是大二or大三学生,有考研的打算,不妨提前了解一些考研必备的心理战术,有时候并不是你知识学得不好,而是思维…...
如何在CentOS安装SQL Server数据库并通过内网穿透工具实现公网访问
文章目录 前言1. 安装sql server2. 局域网测试连接3. 安装cpolar内网穿透4. 将sqlserver映射到公网5. 公网远程连接6.固定连接公网地址7.使用固定公网地址连接 前言 简单几步实现在Linux centos环境下安装部署sql server数据库,并结合cpolar内网穿透工具࿰…...
jupyter内核错误
1、在dos窗口输入以下命令激活环境:anaconda activate 【py环境名,比如py37】(目的是新家你一个虚拟环境) 2、在虚拟环境py37下安装jupyter notebook,命令:pip install jupyter notebook 3、安装ipykerne…...
设计模式的艺术P1基础—2.3 类之间的关系
设计模式的艺术P1基础—2.3 类之间的关系 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系。对于不同类型的关系,UML提供了不同的表示方式 1.关联关系 关联(Association)关系是类与类之间最常用…...
工业无人机行业研究:预计2025年将达到108.2亿美元
近年来,在技术进步和各行各业对无人驾驶飞行器 (UAV) 不断增长的需求的推动下,工业无人机市场一直在快速增长。该市场有望在未来几年继续其增长轨迹,许多关键趋势和因素推动其发展。 在全球范围内,工业无人机市场预计到 2025 年将…...
PCA主成分分析算法
在数据分析中,如果特征太多,或者特征之间的相关性太高,通常可以用PCA来进行降维。比如通过对原有10个特征的线性组合, 我们找出3个主成分,就足以解释绝大多数的方差,该算法在高维数据集中被广泛应用。 算法(…...
Hyperledger Fabric 权限策略和访问控制
访问控制是区块链网络十分重要的功能,负责控制某个身份在某个场景下是否允许采取某个操作(如读写某个资源)。 常见的访问控制模型包括强制访问控制(Mandatory Access Control)、自主访问控制(Discretionar…...
Day28 回溯算法part04 93. 复原IP地址 78. 子集 90. 子集 II
回溯算法part04 93. 复原IP地址 78. 子集 90. 子集 II 93. 复原 IP 地址 class Solution { private:vector<string> result;bool isValid(string& s,int start,int end){if (start > end) return false;if (s[start] 0 && start ! end) { // 0开头的数…...
Linux系统常用的安全优化
环境:CentOS7.9 1、禁用SELinux SELinux是美国国家安全局对于强制访问控制的实现 1)永久禁用SELinux vim /etc/selinux/config SELINUXdisabled #必须重启系统才能生效2)临时禁用SELInux getenforce #查看SELInux当前状态 setenforce 0 #数字…...
Vue-4、单向数据绑定与双向数据绑定
1、单向数据绑定 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>数据绑定</title><!--引入vue--><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/…...
【Flutter 开发实战】Dart 基础篇:常用运算符
在Dart中,运算符是编写任何程序的基本构建块之一。本文将详细介绍Dart中常用的运算符,以帮助初学者更好地理解和运用这些概念。 1. 算术运算符 算术运算符用于执行基本的数学运算。Dart支持常见的加、减、乘、除、整除以及取余运算。常见的算数运算符如…...
网站建设与管理个人职业生涯规划书/苏州seo网站公司
代码如下: package array.guigu.demo; /*** 快速排序* 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,* 则分别对这两部分继续进行排序,直到整个序列有序。*/ public class MyQuickSo…...
没有网站可以做落地页/怎样免费制作网页
定义了一下方法,具体用法可查百度usleep() 函数延迟代码执行若干微秒。unpack() 函数从二进制字符串对数据进行解包。uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。time_sleep_until() 函数延迟代码执行直到指定的时间。time_nanosleep() 函…...
网站综合排名信息查询/免费网站推广网址
SQLlabs Basic-Challenges Less-11: POST-Error based- Single quotes -String less10后就是post注入, 这题注入挺简单的,用万能密码即可登陆 username: 1 or 11 # // #号为注释符password: 随意登陆成功 利用burpsuite抓包 判断select 字段 尝…...
杭州集团网站建设方案/企业策划推广公司
对于Java注解,我咨询过一些身边的人,很多人表示: 知道怎么用,不熟悉 不知道你是不是这样?在我没有系统性的学习一边注解的时候,我也是如此,在我花时间学习过注解之后,我觉得…...
做网站怎么弄/深圳seo网络推广
...
铜陵建设行业培训学校网站/网络推广的途径有哪些
软件名称: Wise Registry Cleaner Pro(智能注册表清理)软件语言: 简体中文授权方式: 免费试用运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 2.3MB图片预览: 软件简介:Wise Registry Cleaner Pro有个…...