基于CPU安装使用ModernBERT教程
·
ModernBert简介
- ModernBERT 是继BERT之后,一个新的Encoder-Only模型,在速度和准确性方面都比 BERT 系列实现了改进。
- 该模型采用了近年来在大型语言模型 (LLM) 方面的数十项进展,并将它们应用于 BERT 风格的模型,包括对架构和训练过程的更新。
详细介绍 - 论文:https://arxiv.org/pdf/2412.13663
- 量子位公众号发布https://www.qbitai.com/2024/12/236469.html
- 魔搭公众号发布https://mp.weixin.qq.com/s/4b_KfU7LJMj8CsVponzhMA
- 代码仓:https://github.com/AnswerDotAI/ModernBERT
模型下载
- ModernBERT-base - 22 层,1.49 亿参数:https://modelscope.cn/models/AI-ModelScope/ModernBERT-base
- ModernBERT-large - 28 层,3.95 亿参数:https://modelscope.cn/models/AI-ModelScope/ModernBERT-larg
环境准备
-
代码中目录结构如下

-
比较重要的包就是
transformers, 这边要求的版本比较高, 需要4.48.0,尝试了官网的几种方式,最后通过尝试3成功安装transformers
尝试1(失败)
-
根据readme中所述,直接用它所述的方法,进入到下载后的代码目录中,直接使用
conda env create -r environment.yaml -
失败,报如下错

尝试2(失败)
-
到代码中的
environmernt.yaml先看下python版本,为3.11.9

-
然后使用命令
conda create -n py311 python=3.11创建镜像 -
进到
requirements-cpu.txt继续查看下必须依赖的包,然后依次手动安装(/JCHeader/v1/oneboxfile/v1/oneboxFile?url=api/v2/files/9406908/456859/url ‘image.png’) -
还是失败,按照其官网所述,transformer要求的版本比较高,直接使用pip install transformer不支持
-
尝试使用官方命令:
pip install git+https://github.com/huggingface/transformers.git,还是不行
尝试3(成功)
- 下载附件的
transformers-main.zip压缩包 - 也可以到https://github.com/huggingface/transformers.git直接下载压缩包
- 进入到上一步创建的
python 3.11的conda环境下 - 解压安装包,进入到
your_path\transformers-main\transformers-main下 - 输入命令
pip install ./transformers-main --trusted-host mirrors.tools.huawei.com -i http://mirrors.tools.huawei.com/pypi/simple,便可以成功安装
简单调用
pipline
- 代码如下:
import torch
from transformers import pipeline
from pprint import pprint
pipe = pipeline(
"fill-mask",
model=r"D:\models\ModernBERT-base\ModernBERT-base",
torch_dtype=torch.bfloat16,
)
input_text = "He walked to the [MASK]."
results = pipe(input_text)
pprint(results)
- 输出结果

AutoModelForMaskedLM模型推理
- 代码如下:
from transformers import AutoTokenizer, AutoModelForMaskedLM
model_id = r"D:\models\ModernBERT-base\ModernBERT-base"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForMaskedLM.from_pretrained(model_id)
text = "The capital of France is [MASK]."
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
# To get predictions for the mask:
masked_index = inputs["input_ids"][0].tolist().index(tokenizer.mask_token_id)
predicted_token_id = outputs.logits[0, masked_index].argmax(axis=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print("Predicted token:", predicted_token)
# Predicted token: Paris
- 输出结果

问题记录
- 下载安装包后,应该采用尝试3的方式,不可以直接进入安装目录后
pip install transformers-main,transformers-main前面需要加上目录比如:pip install ./transformers-main
参考网址
- https://huggingface.co/blog/modernbert
- ModernBERT-base:终于等到了 BERT 回归:https://mp.weixin.qq.com/s/4b_KfU7LJMj8CsVponzhMA
- python脚本安装requirements.txt:https://3ms.huawei.com/km/blogs/details/14983618?l=zh-cn
更多推荐



所有评论(0)