使用Hugging Face获取BERT预训练模型

news/2024/7/2 2:23:35/文章来源:https://blog.csdn.net/brucexia/article/details/139945318

【图书推荐】《从零开始大模型开发与微调:基于PyTorch与ChatGLM》_《从零开始大模型开发与微调:基于pytorch与chatglm》-CSDN博客

BERT是一个预训练模型,其基本架构和存档都有相应的服务公司提供下载服务,而Hugging Face是一家目前专门免费提供自然语言处理预训练模型的公司。

Hugging Face是一家总部位于纽约的聊天机器人初创服务商,开发的应用在青少年中颇受欢迎,相比于其他公司,Hugging Face更加注重产品带来的情感以及环境因素。在GitHub上开源的自然语言处理、预训练模型库Transformers提供了NLP领域大量优秀的预训练语言模型和调用框架。

(1) 安装依赖。

安装Hugging Face依赖的方法很简单,命令如下:

pip install transformers

安装完成后,即可使用Hugging Face提供的预训练模型BERT。

(2) 使用Hugging Face提供的代码格式进行BERT的引入与使用,代码如下:

from transformers import BertTokenizer
from transformers import BertModeltokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
pretrain_model = BertModel.from_pretrained("bert-base-chinese")

从网上下载该模型的过程如图11-8所示,模型下载完毕后即可使用。

下面的代码演示使用BERT编码器获取对应文本的Token。

from transformers import BertTokenizer
from transformers import BertModeltokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
pretrain_model = BertModel.from_pretrained("bert-base-chinese")
tokens = tokenizer.encode("春眠不觉晓",max_length=12, padding="max_length", truncation=True)
print(tokens)
print("----------------------")print(tokenizer("春眠不觉晓",max_length=12,padding="max_length",truncation=True))

这里使用两种方法打印,打印结果如下:

[101, 3217, 4697, 679, 6230, 3236, 102, 0, 0, 0, 0, 0]
----------------------
{'input_ids': [101, 3217, 4697, 679, 6230, 3236, 102, 0, 0, 0, 0, 0], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]}

第一行是使用encode函数获取的Token,第二行是直接对其加码获取的3种不同的Token表示,对应11.1节说明的BERT输入,请读者验证学习。

需要注意的是,我们输入的是5个字符“春眠不觉晓”,而在加码后变成了7个字符,这是因为BERT默认会在单独的文本中加入[CLS]和[SEP]作为特定的分隔符。

如果想打印使用BERT计算的对应文本的Embedding值,就使用如下代码。

import torch
from transformers import BertTokenizer
from transformers import BertModeltokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
pretrain_model = BertModel.from_pretrained("bert-base-chinese")tokens = tokenizer.encode("春眠不觉晓",max_length=12,padding="max_length", truncation=True)
print(tokens)
print("----------------------")
print(tokenizer("春眠不觉晓",max_length=12,padding="max_length",truncation=True))
print("----------------------")tokens = torch.tensor([tokens]).int()
print(pretrain_model(tokens))

打印结果如图11-9所示。最终获得一个维度为[1,12,768]大小的矩阵,用以表示输入的文本。

本文节选自《从零开始大模型开发与微调:基于PyTorch与ChatGLM》,获得出版社和作者授权发布。

《从零开始大模型开发与微调:基于PyTorch与ChatGLM(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 (jd.com)

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

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

相关文章

【Linux】Ubuntu 部署 Zabbix 7.0

实验环境:Ubuntu-22.04 官方下载地址: 下载Zabbix 7.0 LTS for Ubuntu 22.04 (Jammy), MySQL, Apache 1、下载 Zabbix 官方安装包以及环境配置 下载 zabbix 安装包 wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabb…

RNN的变种们:GRULSTM双向RNN

上篇笔记记录到RNN的一个缺点:训练时会出现梯度消失,解决的办法是找到一个更优的计算单元。这里也有GRU和LSTM。 GRU(Gated Recurrent Unit)门控训练网络 什么是门控机制?就是对当前的输入进行一个筛选。门打开&…

适用于Mac的免费外置硬盘数据恢复软件

“我有一个 1 TB 的外置硬盘,它被意外格式化了。我尝试从中恢复丢失的数据。我把它连接到我的Mac,但里面什么也没找到。我正在寻找适用于Mac的免费外置硬盘数据恢复软件,例如奇客数据恢复Mac版或其他Mac数据恢复免费软件来扫描它并恢复数据。…

[信号与系统]模拟域中的一阶低通滤波器和二阶滤波器

前言 不是学电子出身的,这里很多东西是问了朋友… 模拟域中的一阶低通滤波器传递函数 模拟域中的一阶低通滤波器的传递函数可以表示为: H ( s ) 1 s ω c H(s) \frac{1}{s \omega_c} H(s)sωc​1​ 这是因为一阶低通滤波器的设计目标是允许低频信…

测绘行业解决方案-地形测量与实景三维

应用场景 - 地形测量 业务挑战 • 地形测量需要大量外业作业, 成本居高不下 • 传统采集方式采集效率低,工期长, 无法及时交付 • 传统测绘成果局限于数字线划图,无法直观展示地形地貌 无人机优势 • 能进行 1:500 免像控地形测量 • …

基于Python+Flask+MySQL+HTML的B站数据可视化分析系统

FlaskMySQLVue 基于PythonFlaskMySQLHTML的B站数据可视化分析系统 项目采用前后端分离技术,项目包含完整的前端HTML,以及Flask构成完整的前后端分离系统 爬虫文件基于selenium,需要配合登录账号 简介 主页 登录页面,用户打开浏…

深入解析 iOS 应用启动过程:main() 函数前的四大步骤

深入解析 iOS 应用启动过程:main() 函数前的四大步骤 背景描述:使用 Objective-C 开发的 iOS 或者 MacOS 应用 在开发 iOS 应用时,我们通常会关注 main() 函数及其之后的执行逻辑,但在 main() 函数之前,系统已经为我们…

[C++][设计模式][桥模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一2.代码二 1.动机 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度, 乃至多个纬度的变化如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多…

芒果YOLOv10改进64:主干Backbone篇RepVGG结构:简单但功能强大的卷积神经网络架构

💡本篇内容:YOLOv10改进RepVGG结构:简单但功能强大的卷积神经网络架构 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv10 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,YOLOv10 应部分读者要求,新增一篇RepVGG 论文理论部分 + 原创最…

企业运维六边形战士 质量稳定 效率为王

随着信息化的不断深入和扩展,企业IT系统的复杂性和设备多样性日益增加。为了保障业务的高可用性和连续性,企业需要一个全面、高效、智能的一体化运维管理平台。在用户市场的推动下,LinkSLA智能运维管家展现出【六边形战士】的优质属性&#x…

UE4_材质_雨滴涟漪效果ripple effect_ben教程

学习笔记,不喜勿喷!侵权立删,祝愿生活越来越好! 雨水落下时会产生这些非常漂亮的同心环波纹,我们要做的第一件事是创建一个单个的圆环遮罩动画,我们希望环在开始的时候在中心很小,然后放大&…

基于自编码器的心电信号异常检测(Pytorch)

代码较为简单,很容易读懂。 # Importing necessary libraries for TensorFlow, pandas, numpy, and matplotlib import tensorflow as tf import pandas as pd import numpy as np import matplotlib.pyplot as plt import copy# Importing the PyTorch library im…

基于STM32的智能仓库管理系统

目录 引言环境准备智能仓库管理系统基础代码实现:实现智能仓库管理系统 4.1 数据采集模块4.2 数据处理与分析4.3 通信模块实现4.4 用户界面与数据可视化应用场景:仓库管理与优化问题解决方案与优化收尾与总结 1. 引言 智能仓库管理系统通过使用STM32嵌…

智能AI在线人工智能对话源码系统 完整的代安装码+搭建部署教程

系统概述 智能 AI 在线人工智能对话源码系统是一款前沿的技术解决方案,它融合了人工智能的强大能力,为用户提供了一个高效、智能的对话平台。该系统基于先进的算法和模型,能够理解用户的输入,并以高度准确和自然的方式进行回应。…

2024全新升级!MindManager思维导图软件,让思维无限延伸

Hey朋友们✨!今天要给大家安利一款我超级喜欢的办公神器——MindManager2024思维导图最新版本!如果你跟我一样,经常需要整理思路、规划工作或学习计划,那么你一定不能错过它!🎉 MindManager思维导图工具绿…

【linux学习十七】文件服务管理

一、FTP FTP server:FTP(File Transfer Protocol,文件传输协议 )是 TCP/IP 协议组中的协议之一 软件包:vsftpd/安装 yum -y install vsftpd//准备文件 touch /var/ftp/abc.txt //注释:FTP服务器的主目录:“/var/ftp/”,是FTP程序分享内容的本机目录…

Mac环境 aab包转apks,并安装apks

一、下载下载bundletool工具 Releases google/bundletool GitHub 二、将下载bundletool.jar包、aab、keystore文件全部放到同一个目录下 例如我全部放到download目录下 转换命令行: java -jar bundletool-all-1.16.0.jar build-apks --modeuniversal --bundle…

Shell脚本 循环语句、函数、数组

目录 Shell循环语句 概念 for循环 语法格式 批量创建用户并设置初始密码示例 批量删除用户示例操作步骤 巡检测试主机连通性示例 while循环 语法格式 批量创建、删除用户示例 随机数 控制随机数范围 0 ~ 999 0 ~ 99 0 ~ 9 使用while和随机数实现猜价格示例 un…

docker将容器打包提交为镜像,再打包成tar包

将容器打包成镜像可以通过以下步骤来实现。这里以 Docker 为例,假设你已经安装了 Docker 并且有一个正在运行的容器。 1. 找到正在运行的容器 首先,你需要找到你想要打包成镜像的容器的 ID 或者名字。可以使用以下命令查看所有正在运行的容器&#xff…

八、yolov8模型预测和模型导出(目标检测)

模型查看 模型预测 模型导出 模型训练完成后,找到训练文件生成文件夹,里面包含wights、过程图、曲线图。 模型预测 1、在以下文件夹中放入需要预测的图; 2、找到detect文件下的predict.py文件,修改以下内容。 3、右键点击…