HuggingFace踩坑记录-连不上,根本连不上

news/2024/7/6 5:19:02 标签: python, transformer, pytorch, bert

学习 transformers 的第一步,往往是几句简单的代码

from transformers import pipeline

classifier = pipeline("sentiment-analysis")
classifier("We are very happy to show you the 🤗 Transformers library.")
"""
[{'label': 'POSITIVE', 'score': 0.9998}]
"""

但等你配好环境然后简单运行一下,你就会发现一点也不简单!
在这里插入图片描述
直接报错ConnectionError,一查原来是被huggingface被和谐了啊,科学上网都救不了,然后报错里提到是:
https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english
连不上。

但方法肯定是有的,网上大多数方法都是照搬
https://hf-mirror.com/
的主页,又是改环境变量又是下载下载工具的,给的例子也一点不具体。实际根本不好用,命令行配置太多,然后名字有太长,实际上它的作用也就是把
https://hf-mirror.com/distilbert/distilbert-base-uncased-finetuned-sst-2-english
下面所有的东西都下下来。。。 这些东西并非全都用得到吧,下下来是需要好很长时间的吧,那假设我只是使用pytorch而已的话,需要下哪些东西呢?(附注:你当然可以通过代码或者命令行指定匹配规则进行过滤来指定下什么东西,但是这样看着太冗长,感觉不如自己手下来的方便直观)
在这里插入图片描述
经过各种查阅和总结试错,假如你只是想使用pytorch下的模型,你只需要下载:

pytorch_model.bin
config.json
tokenizer_config.json
vocab.txt

即可,那么好,接下来要怎么加载这个模型并使用它呢?这个问题得到了很快的解决,通过报错的提示,还有命名,大概就能猜出来。一般来说,先指定根路径,也就是刚刚下载好的那4个文件的路径,然后指定模型基类和tokenizer基类,最后才可以顺利调用pipleline.总结如下:

import transformers
from transformers import pipeline, DistilBertForSequenceClassification, DistilBertTokenizer

# 1. 手动下载好上面说的四个文件并存到指定目录
bert_path = "D:/datasets/huggingface/models/distilbert-base-uncased-finetuned-sst-2-english"
# 2. 使用正确的基类(鸡肋)来加载 model tokenizer 
#    (DistilBertTokenizer, DistilBertForSequenceClassification)也都是尝试出来的
tokenizer = DistilBertTokenizer.from_pretrained(bert_path)
model = DistilBertForSequenceClassification.from_pretrained(bert_path)
classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)

随后,就可以进行玩耍了
比如这里我给了一个长长的句子,大概描述了我刚刚踩的坑(你也知道这是negative啊)

classifier("It is a bad experience when I try to access hugging face, "+
           "I have to downald them in mirror website and analyze which files shoud I downald!")
           
[{'label': 'NEGATIVE', 'score': 0.999805748462677}]

再来个句子,带点转折意味

classifier("However, method always exists, although it takes too much time!")

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

再来个,断章取义取自不要断章取义!

classifier("although it takes too much time!")
[{'label': 'NEGATIVE', 'score': 0.9921171069145203}]

看得出来还是挺准的


http://www.niftyadmin.cn/n/5472420.html

相关文章

聚能共创下一代智能终端操作系统 软通动力荣膺“OpenHarmony优秀贡献单位”

近日,由开放原子开源基金会指导,以“开源共享未来”为主题的OpenHarmony社区年会在北京成功举办。本次活动汇集OpenHarmony项目群共建单位及生态伙伴等多方力量,旨在对2023年度OpenHarmony年度开源事业全面总结的同时,吸引更多伙伴…

【星海随笔】Ubuntu22.04忘记密码

服务器篇: 有问题可留言。 第一步 远程console界面进入该设备 并重启该设备 如果看到这个界面情况 则点击右上角按钮 【发送 CtrlAltDelete】 调出grub启动菜单 NOTE:启动的后半段去点击这个按钮,前半段一直点会一直重启 如果是直连服务器&a…

2核云服务器2核是什么意思?2C或2H详细说明

2核云服务器代表2核CPU,因为是云服务器,所以严格来讲2核服务器代表2个vCPU,可以表示为2核、2H或2C。云服务器2核CPU是指基于虚拟化技术分配到该服务器上的两个虚拟CPU核心,即vCPU,每个核心可以独立执行线程&#xff0c…

算法| ss 字符串数组对象

罗马数字转整数 409.最长回文串 字符串相加 594.最长和谐子序列 13. 罗马数字转整数 /*** param {string} s* return {number}*/ // 构建map匹配值,增加带IV这种的 // for遍历循环, // 1.先看匹配是否满足2个字符的 i2 // 2. 单个字符匹配 var romanToInt functi…

【资源分享】Stata18商科最好用的数据统计软件免费下载安装

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

MySQL 里记录货币用什么字段

在 MySQL 中记录货币金额时,一般建议使用 DECIMAL 或者 NUMERIC 数据类型,因为它们可以精确表示小数。这两种数据类型在存储货币金额时具有精确性和可控性,可以避免浮点数运算带来的精度损失问题。 例如,如果你需要存储美元金额&…

状态压缩dp

状态压缩dp一般用来解决n<20的情况。 状态压缩dp主要有两种类型的题目——棋盘式和集合式。 棋盘式 对于棋盘式的状态压缩dp&#xff0c;我们的做法是将棋盘抽象为一个状态&#xff08;通常用二进制进行抽象&#xff09;&#xff0c;用最后一次摆放的位置来划分状态&…

LeetCode 1379.找出克隆二叉树中的相同节点:二叉树遍历

【LetMeFly】1379.找出克隆二叉树中的相同节点&#xff1a;二叉树遍历 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree/ 给你两棵二叉树&#xff0c;原始树 original 和克隆树 cloned&#xff0…