jerteh-81 — BERT model specijalno obučen za srpski jezik.

  • Vektorizuje reči, ili dopunjava nedostajuće reči u tekstu
  • Zasnovan na RoBERTa-base arhitekturi, 81 milion parametara
  • Obučavan na korpusu srpskog jezika veličine 4 milijarde tokena
  • Među najboljim rezultatima u modelovanju maskiranog jezika za srpski!
  • Jednaka podrška unosa i na ćirilici i na latinici!

Pored skupova navedenih u metapodacima, model je obučavan i na ostalim korpusima Društva za jezičke resurse i tehnologije, uključujući korpuse savremenog srpskog jezika: SrpKor2013 i SrpKor2021, kao i korpus PDRS 1.0 razvijen od strane Instituta za Srpski jezik SANU.

Upotreba

>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='jerteh/jerteh-81')
>>> unmasker("Kada bi čovek znao gde će pasti on bi<mask>.")
[{'score': 0.16073498129844666, 'token': 11379, 'token_str': ' pao', 'sequence': 'Kada bi čovek znao gde će pasti on bi pao.'},
 {'score': 0.14656540751457214, 'token': 10799, 'token_str': ' umro', 'sequence': 'Kada bi čovek znao gde će pasti on bi umro.'},
 {'score': 0.11459200084209442, 'token': 7797, 'token_str': ' otišao', 'sequence': 'Kada bi čovek znao gde će pasti on bi otišao.'},
 {'score': 0.061787571758031845, 'token': 7103, 'token_str': ' znao', 'sequence': 'Kada bi čovek znao gde će pasti on bi znao.'},
 {'score': 0.0532902330160141, 'token': 998, 'token_str': ' rekao', 'sequence': 'Kada bi čovek znao gde će pasti on bi rekao.'}]
>>> from transformers import AutoTokenizer, AutoModelForMaskedLM
>>> from torch import LongTensor, no_grad
>>> from scipy import spatial
>>> tokenizer = AutoTokenizer.from_pretrained('jerteh/jerteh-81')
>>> model = AutoModelForMaskedLM.from_pretrained('jerteh/jerteh-81', output_hidden_states=True)
>>> x = " pas"
>>> y = " mačka"
>>> z = " svemir"
>>> tensor_x = LongTensor(tokenizer.encode(x, add_special_tokens=False)).unsqueeze(0)
>>> tensor_y = LongTensor(tokenizer.encode(y, add_special_tokens=False)).unsqueeze(0)
>>> tensor_z = LongTensor(tokenizer.encode(z, add_special_tokens=False)).unsqueeze(0)
>>> model.eval()
>>> with no_grad():
>>>     vektor_x = model(input_ids=tensor_x).hidden_states[-1].squeeze()
>>>     vektor_y = model(input_ids=tensor_y).hidden_states[-1].squeeze()
>>>     vektor_z = model(input_ids=tensor_z).hidden_states[-1].squeeze()
>>>     print(spatial.distance.cosine(vektor_x, vektor_y))
>>>     print(spatial.distance.cosine(vektor_x, vektor_z))
0.09954947233200073
0.21845555305480957

U slučaju potrebe za većim modelom, pogledajte jerteh-355 — najveći BERT model za srpski jezik.

U slučaju potrebe za generativnim modelom, pogledajte gpt2-orao i gpt2-vrabac

Autor
Mihailo Škorić
Computation
Rudarsko-Geološki fakultet
Data
JeRTeh

Citiranje

@article{skoric24modeli,
  author    = {Mihailo \vSkori\'c},
  title     = {Novi jezi\vcki modeli za srpski jezik},
  journal   = {Infoteka},
  volume    = {24},
  issue     = {1},
  year      = {2024},
  publisher = {Zajednica biblioteka univerziteta u Srbiji, Beograd},
  url       = {https://arxiv.org/abs/2402.14379}
}
Downloads last month
82
Safetensors
Model size
81.3M params
Tensor type
I64
·
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Datasets used to train jerteh/Jerteh-81