下载Huggingface的cardiffnlp/twitter-roberta-base-sentiment模型

因 Huggingface 为国外网站,我们从该网站下载模型和数据集时总会因网络不稳定、限速等问题下载模型和数据失败。

法一:网页下载cardiffnlp/twitter-roberta-base-sentiment at main

法二:huggingface-cli下载

python版本至少为3.8

1.进入python环境:

我的python在D:\anaconda\envs\hf_env中

查看python版本

2.huggingface-cli下载

(1)安装依赖

pip install -U huggingface_hub

(2)设置环境变量

# Windows
$env:HF_ENDPOINT = "https://hf-mirror.com"
Add-Content -Path $PROFILE -Value '$env:HF_ENDPOINT = "https://hf-mirror.com"'
#若Add-Content命令执行时提示:未能找到“xxx”路径的一部分。则执行如下命令
new-item -path $profile -itemtype file -force #新建该配置文件
Add-Content -Path $PROFILE -Value '$env:HF_ENDPOINT = "https://hf-mirror.com"' #写入配置到该文件
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser #设置执行策略以便配置文件可加载

(3)下载模型和数据

#下载模型
huggingface-cli download --resume-download <modelName> --local-dir <本地路径>
#示例
huggingface-cli download --resume-download gpt2 --local-dir /data/gpt2

#下载数据
huggingface-cli download --repo-type dataset --resume-download <datasetName> --local-dir <本地路径>
#示例
huggingface-cli download --repo-type dataset --resume-download wikitext --local-dir wikitext

 下载成功:

huggingface下载 | 文档中心 - 趋动云

点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cuoa7fschmtp1t280qug

RoBERTa中文预训练模型 概述 中文预训练RoBERTa模型 RoBERTa是BERT的改进版,通过改进训练任务和数据生成方式、训练更久、使用更大批次、使用更多数据等获得了State of The Art的效果;可以用Bert直接加载。 本项目是用TensorFlow实现了在大规模中文上RoBERTa的预训练,也会提供PyTorch的预训练模型和加载方式。 中文预训练RoBERTa模型-下载 6层RoBERTa体验版 RoBERTa-zh-Layer6: Google Drive 或 百度网盘,TensorFlow版本,Bert 直接加载, 大小为200M 推荐 RoBERTa-zh-Large 通过验证 RoBERTa-zh-Large: Google Drive 或 百度网盘 ,TensorFlow版本,Bert 直接加载 RoBERTa-zh-Large: Google Drive 或 百度网盘 ,PyTorch版本,Bert的PyTorch版直接加载 RoBERTa 24/12层版训练数据:30G原始文本,近3亿个句子,100亿个中文字(token),产生了2.5亿个训练数据(instance);覆盖新闻、社区问答、多个百科数据等; 本项目与中文预训练24层XLNet模型 XLNet_zh项目,使用相同的训练数据。 RoBERTa_zh_L12: Google Drive 或 百度网盘 TensorFlow版本,Bert 直接加载 RoBERTa_zh_L12: Google Drive 或百度网盘 PyTorch版本,Bert的PyTorch版直接加载 Roberta_l24_zh_base TensorFlow版本,Bert 直接加载 24层base版训练数据:10G文本,包含新闻、社区问答、多个百科数据等 什么是RoBERTa: 一种强大的用于预训练自然语言处理(NLP)系统的优化方法,改进了Transformers或BERT的双向编码器表示形式,这是Google在2018年发布的自监督方法。 RoBERTa在广泛使用的NLP基准通用语言理解评估(GLUE)上产生最先进的结果。 该模型在MNLI,QNLI,RTE,STS-B和RACE任务上提供了最先进的性能,并在GLUE基准上提供了可观的性能改进。 RoBERTa得分88.5,在GLUE排行榜上排名第一,与之前的XLNet-Large的表现相当。 效果测试与对比 Performance 互联网新闻情感分析:CCF-Sentiment-Analysis 模型 线上F1 BERT 80.3 Bert-wwm-ext 80.5 XLNet 79.6 Roberta-mid 80.5 Roberta-large (max_seq_length=512, split_num=1) 81.25 注:数据来源于guoday的开源项目;数据集和任务介绍见:CCF互联网新闻情感分析 自然语言推断:XNLI 模型 开发集 测试集 BERT 77.8 (77.4) 77.8 (77.5) ERNIE 79.7 (79.4) 78.6 (78.2) BERT-wwm 79.0 (78.4) 78.2 (78.0) BERT-wwm-ext 79.4 (78.6) 78.7 (78.3) XLNet 79.2 78.7 RoBERTa-zh-base 79.8 78.8 RoBERTa-zh-Large 80.2 (80.0) 79.9 (79.5) 注:RoBERTa_l24_zh,只跑了两次,Performance可能还会提升; BERT-wwm-ext来自于这里;XLNet来自于这里; RoBERTa-zh-base,指12层RoBERTa中文模型 问题匹配语任务:LCQMC(Sentence Pair Matching) 模型 开发集(Dev) 测试集(Test) BERT 89.4(88.4) 86.9(86.4) ERNIE 89.8 (89.6) 87.2 (87.0) BERT-wwm 89.4 (89.2) 87.0 (86.8) BERT-wwm-ext - - RoBERTa-zh-base 88.7 87.0 RoBERTa-zh-Large 89.9(89.6) 87.2(86.7) RoBERTa-zh-Large(20w_steps) 89.7 87.0 注:RoBERTa_l24_zh,只跑了两次,Performance可能还会提升。保持训练轮次和论文一致: 阅读理解测试 目前阅读理解类问题bert和roberta最优参数均为epoch2, batch=32, lr=3e-5, warmup=0.1 cmrc20
### 如何在 Python 中配置和使用 mBERT 或 XLM-RoBERTa 模型 为了在 Python 项目中配置和使用多语言 BERT (mBERT) 或 XLM-RoBERTa 模型,可以利用 Hugging Face 的 `transformers` 库。以下是具体实现方式: #### 安装依赖库 首先需要安装必要的 Python 包,可以通过 pip 来完成。 ```bash pip install transformers torch ``` #### 加载预训练模型 接着定义一个函数来加载指定的预训练模型及其分词器。这里以 XLM-RoBERTa 为例[^1]。 ```python from transformers import AutoTokenizer, AutoModelForSequenceClassification def load_model(model_name="xlm-roberta-base"): tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) return tokenizer, model ``` 此代码片段展示了如何初始化特定名称下的预训练模型实例,并返回对应的分词工具与模型对象。 #### 对输入文本进行编码 对于给定的一段或多段文字,需先将其转换成适合送入神经网络的形式——即 token IDs 列表加上 attention masks 等辅助信息。下面是一个简单的封装函数用来处理单句或批量句子的编码工作。 ```python import torch def encode_texts(texts, tokenizer, max_length=128): encodings = tokenizer( texts, truncation=True, padding='max_length', max_length=max_length, return_tensors='pt' ) input_ids = encodings['input_ids'] attention_mask = encodings['attention_mask'] return { 'input_ids': input_ids, 'attention_mask': attention_mask } ``` 这段代码接收待预测的文字列表作为参数,调用之前创建好的分词器来进行标准化操作,最后整理好格式以便后续传递给模型做进一步计算。 #### 执行推理过程 有了前面准备的数据结构之后就可以正式调用模型执行前向传播了。注意这里的输出可能取决于具体的下游任务类型(比如分类、回归),因此此处仅给出通用框架供参考。 ```python @torch.no_grad() def predict(texts, tokenizer, model): inputs = encode_texts(texts, tokenizer) outputs = model(**inputs) logits = outputs.logits predictions = torch.argmax(logits, dim=-1).tolist() return predictions ``` 上述逻辑实现了无梯度模式下对一批次样本实施推断的过程,最终得到每条记录所属类别的索引编号组成的列表形式的结果集合。 通过以上几个部分组合起来便可以在本地环境中轻松部署并应用像 mBERT 和 XLM-RoBERTa 这样强大的跨语言理解利器了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值