🚀 スロバキアBERT(ベースサイズモデル)
スロバキアBERTは、マスク言語モデリング(MLM)の目標を使用してスロバキア語で事前学習されたモデルです。このモデルは大文字と小文字を区別し、例えば「slovensko」と「Slovensko」を区別することができます。
🚀 クイックスタート
このモデルを使用して、直接マスク言語モデリングを行うことができます。
from transformers import pipeline
unmasker = pipeline('fill-mask', model='gerulata/slovakbert')
unmasker("Deti sa <mask> na ihrisku.")
[{'sequence': 'Deti sa hrali na ihrisku.',
'score': 0.6355380415916443,
'token': 5949,
'token_str': ' hrali'},
{'sequence': 'Deti sa hrajú na ihrisku.',
'score': 0.14731724560260773,
'token': 9081,
'token_str': ' hrajú'},
{'sequence': 'Deti sa zahrali na ihrisku.',
'score': 0.05016357824206352,
'token': 32553,
'token_str': ' zahrali'},
{'sequence': 'Deti sa stretli na ihrisku.',
'score': 0.041727423667907715,
'token': 5964,
'token_str': ' stretli'},
{'sequence': 'Deti sa učia na ihrisku.',
'score': 0.01886524073779583,
'token': 18099,
'token_str': ' učia'}]
以下は、PyTorchでこのモデルを使用して、与えられたテキストの特徴を取得する方法です。
from transformers import RobertaTokenizer, RobertaModel
tokenizer = RobertaTokenizer.from_pretrained('gerulata/slovakbert')
model = RobertaModel.from_pretrained('gerulata/slovakbert')
text = "Text ktorý sa má embedovať."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
TensorFlowでの使用方法は以下の通りです。
from transformers import RobertaTokenizer, TFRobertaModel
tokenizer = RobertaTokenizer.from_pretrained('gerulata/slovakbert')
model = TFRobertaModel.from_pretrained('gerulata/slovakbert')
text = "Text ktorý sa má embedovať."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
また、以下のようにモデルから情報を抽出することもできます。
from transformers import pipeline
unmasker = pipeline('fill-mask', model='gerulata/slovakbert')
unmasker("Slovenské národne povstanie sa uskutočnilo v roku <mask>.")
[{'sequence': 'Slovenske narodne povstanie sa uskutočnilo v roku 1944.',
'score': 0.7383289933204651,
'token': 16621,
'token_str': ' 1944'},...]
✨ 主な機能
- マスク言語モデリング(MLM)の目標を使用して、スロバキア語で事前学習されています。
- 大文字と小文字を区別し、異なる大文字と小文字の形式の単語を区別することができます。
📚 ドキュメント
想定される用途と制限
元のモデルを使用してマスク言語モデリングを行うことができますが、主に下流タスクでの微調整に使用されます。
⚠️ 重要提示
このモデルは「 和 」(直接引用符)の文字で学習されていないため、テキストをトークン化する前に、すべての「 和 」(直接引用符)を単一の "(二重引用符)に置き換えることをお勧めします。
学習データ
スロバキアBERTモデルは、以下のデータセットで事前学習されています。
- ウィキペディア(326MBのテキスト)
- OpenSubtitles(415MBのテキスト)
- Oscar(4.6GBのテキスト)
- Gerulata WebCrawl(12.7GBのテキスト)
- Gerulata Monitoring(214MBのテキスト)
- blbec.online(4.5GBのテキスト)
テキストは以下の手順で処理されました。
- URLと電子メールアドレスを特殊なトークン(「url」、「email」)に置き換えます。
- 伸ばされた句読点を簡略化します(例えば、-- を - に簡略化します)。
- Markdown構文を削除します。
- 括弧内のすべてのテキスト内容を削除して、トークンとプログラミング言語のテキストの数を減らします。
得られたコーパスを文に分割し、重複を削除すると、1億8160万個の一意の文が得られました。最終的なコーパスには合計19.35GBのテキストが含まれています。
事前学習
このモデルは、fairseqで4台のNvidia A100 GPUを使用して300Kステップの学習を行いました。バッチサイズは512、シーケンス長は512です。使用されたオプティマイザはAdamで、学習率は5e - 4、\(\beta_{1} = 0.9\)、\(\beta_{2} = 0.98\)、\(\epsilon = 1e - 6\)、重み減衰は0.01、ドロップアウト率は0.1です。学習率は10Kステップでウォームアップされ、その後は線形に減衰します。16ビット浮動小数点精度を使用しました。
🔧 技術詳細
モデル学習の技術的な詳細は以下の通りです。
属性 |
詳細 |
モデルタイプ |
マスク言語モデリング(MLM)の目標に基づく事前学習モデル |
学習データ |
ウィキペディア、OpenSubtitles、Oscar、Gerulata WebCrawl、Gerulata Monitoring、blbec.online |
学習デバイス |
4 x Nvidia A100 GPUs |
学習ステップ数 |
300K |
バッチサイズ |
512 |
シーケンス長 |
512 |
オプティマイザ |
Adam |
学習率 |
5e - 4 |
\(\beta_{1}\) |
0.9 |
\(\beta_{2}\) |
0.98 |
\(\epsilon\) |
1e - 6 |
重み減衰 |
0.01 |
ドロップアウト率 |
0.1 |
学習率ウォームアップステップ数 |
10K |
学習率減衰方式 |
線形減衰 |
浮動小数点精度 |
16ビット |
📄 ライセンス
このプロジェクトはMITライセンスの下で提供されています。
当社について
Gerulata Technologiesは、誤情報や悪意のある宣伝に対抗するツールを提供することに取り組むテクノロジー企業です。
Gerulataでは、最新の人工知能ツールを提供することに注力しています。これらのツールは、人間のアナリストに力を与え、彼らが賢明な決定を下せるようにします。
私たちのツールは、オンライン活動の監視と分析、誤情報や悪意のある宣伝活動の検出と追跡を行うことができます。私たちの製品を通じて、私たちの顧客は脅威をより適切にリアルタイムで識別し、対応することができます。
BibTeX引用と引用情報
もしあなたが私たちのリソースや論文が役に立ったと感じた場合は、あなたの論文に以下の引用を含めることを検討してください。
- https://arxiv.org/abs/2109.15254
@misc{pikuliak2021slovakbert,
title={SlovakBERT: Slovak Masked Language Model},
author={Matúš Pikuliak and Štefan Grivalský and Martin Konôpka and Miroslav Blšták and Martin Tamajka and Viktor Bachratý and Marián Šimko and Pavol Balážik and Michal Trnka and Filip Uhlárik},
year={2021},
eprint={2109.15254},
archivePrefix={arXiv},
primaryClass={cs.CL}
}