Jerteh-81 / README.md
procesaur's picture
Update README.md
5f3ede3 verified
|
raw
history blame
6.16 kB
metadata
license: cc-by-sa-4.0
datasets:
  - jerteh/cc100-sr-jerteh
  - jerteh/SrpWiki
  - jerteh/SrpELTeC
  - srwac
language:
  - sr
tags:
  - srpski
  - Serbian
  - RoBERTa
  - BERT
  - MaskedLM
widget:
  - text: Kada bi čovek znao gde će pasti on bi<mask>.

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
>>> generator = 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ć

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}
}