Mykola Haltiuk, Aleksander Smywiński-Pohl『On the Path to Make Ukrainian a High-Resource Language』を横目に、modernbert-large-ukrainian-ud-embedsを試作してみた。ただし、元となったmodern-liberta-largeのトークナイザは、return_offsets_mapping=True
が効かない実装になっていたため、LlamaTokenizerFast
を借りて再実装した。Google Colaboratoryで動かしてみよう。
!pip install transformers triton deplacy
from transformers import pipeline
nlp=pipeline("universal-dependencies","KoichiYasuoka/modernbert-large-ukrainian-ud-embeds",trust_remote_code=True)
doc=nlp("Не скупись на втіху їй і ласку любий брате")
import deplacy
deplacy.serve(doc,port=None)
「Не скупись на втіху їй і ласку любий брате」を係り受け解析してみたところ、私(安岡孝一)の手元では以下の結果が出力された。
# text = Не скупись на втіху їй і ласку любий брате
1 Не _ PART _ Polarity=Neg 2 advmod _ _
2 скупись _ VERB _ Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin 0 root _ _
3 на _ ADP _ Case=Acc 4 case _ _
4 втіху _ NOUN _ Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing 2 obl _ _
5 їй _ PRON _ Case=Dat|Gender=Fem|Number=Sing|Person=3|PronType=Prs 2 obj _ _
6 і _ CCONJ _ _ 7 cc _ _
7 ласку _ NOUN _ Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing 4 conj _ _
8 любий _ ADJ _ Case=Voc|Degree=Pos|Gender=Masc|Number=Sing 9 amod _ _
9 брате _ NOUN _ Animacy=Anim|Case=Voc|Gender=Masc|Number=Sing 2 vocative _ SpaceAfter=No
惜しい。この文の「їй」は、いわゆる否定属格ではなく、単純に所有属格だと考えられるので、「втіху」─nmod→「їй」が正しいと思う。それ以外は、「брате」にvocativeが刺さっている点も含め、ちゃんと解析できているようだ。さて、largeモデルだけじゃなくて、baseモデルもほしいところだけど、どうすればいいかな。