- Загрузите предварительно обученные веса со страницы Github.
https://github.com/facebookresearch/SpanBERT
SpanBERT (базовый и корпус): 12-слойный, 768-скрытый, 12-головочный, параметры 110M
SpanBERT (большой и корпус): 24 слоя, 1024 скрытых, 16 головок, 340M параметров
Извлеките их в папку, например, я извлек в папку spanbert_hf_base, которая содержит файл .bin
и файл config.json
.
Вы можете использовать AutoModel для загрузки модели и простого токенайзера Bert. Из репозитория:
Эти модели имеют тот же формат, что и модели HuggingFace BERT, поэтому вы можете легко заменить их на наши модели SpanBET.
import torch
from transformers import AutoModel
model = AutoModel.from_pretrained('spanbert_hf_base/') # the path to .bin and config.json
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
b = torch.tensor(tokenizer.encode('hi this is me, mr. meeseeks', add_special_tokens=True, max_length = 512)).unsqueeze(0)
out = model(b)
Out:
(tensor([[[-0.1204, -0.0806, -0.0168, ..., -0.0599, -0.1932, -0.0967],
[-0.0851, -0.0980, 0.0039, ..., -0.0563, -0.1655, -0.0156],
[-0.1111, -0.0318, 0.0141, ..., -0.0518, -0.1068, -0.1271],
[-0.0317, -0.0441, -0.0306, ..., -0.1049, -0.1940, -0.1919],
[-0.1200, 0.0277, -0.0372, ..., -0.0930, -0.0627, 0.0143],
[-0.1204, -0.0806, -0.0168, ..., -0.0599, -0.1932, -0.0967]]],
grad_fn=<NativeLayerNormBackward>),
tensor([[-9.7530e-02, 1.6328e-01, 9.3202e-03, 1.1010e-01, 7.3047e-02,
-1.7635e-01, 1.0046e-01, -1.4826e-02, 9.2583e-
............