🚀 トルコ語版GPT2モデルのファインチューニング
このモデルは、英語版のGPT2-Smallモデルをベースに、2020年10月28日時点のトルコ語のウィキペディア記事でファインチューニングおよび追加学習を行ったものです。
このモデルに基づくライブデモはこちら: https://www.metayazar.com/
このモデルを使用したファインチューニング済みのライター: https://huggingface.co/gorkemgoknar/gpt2-turkish-writer
この作業は、Pierre Guillouのチュートリアル(https://github.com/piegu/fastai-projects/blob/master/finetuning-English-GPT2-any-language-Portuguese-HuggingFace-fastaiv2.ipynb)に基づいて行われています。
コードはFastai 2.Xで動作するように変換されています。
学習にはGoogle Colabを使用しています。
追加のチュートリアルやソースは、後日https://github.com/gorkemgoknarに公開されます。
現在の精度は33%、パープレキシティは51.88です。
利用可能なモデル:
🚀 クイックスタート
✨ 主な機能
このモデルは、トルコ語の自然言語生成タスクに特化しており、文章の生成や続きの予測などのタスクに使用できます。
📦 インストール
from transformers import AutoTokenizer, AutoModelWithLMHead
import torch
tokenizer = AutoTokenizer.from_pretrained("gorkemgoknar/gpt2-small-turkish")
model = AutoModelWithLMHead.from_pretrained("gorkemgoknar/gpt2-small-turkish")
tokenizer.model_max_length=1024
model.eval()
💻 使用例
基本的な使用法
text = "Bu yazıyı bilgisayar yazdı."
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs, labels=inputs["input_ids"])
loss, logits = outputs[:2]
predicted_index = torch.argmax(logits[0, -1, :]).item()
predicted_text = tokenizer.decode([predicted_index])
print('input text:', text)
print('predicted text:', predicted_text)
高度な使用法
text = "Bu yazıyı bilgisayar yazdı."
inputs = tokenizer(text, return_tensors="pt")
sample_outputs = model.generate(inputs.input_ids,
pad_token_id=50256,
do_sample=True,
max_length=50,
top_k=40,
num_return_sequences=1)
for i, sample_output in enumerate(sample_outputs):
print(">> Generated text {}\\\\
\\\\
{}".format(i+1, tokenizer.decode(sample_output.tolist())))
📚 ドキュメント
意図された用途と制限
このモデルの学習データはトルコ語のウィキペディア記事です。インターネット上の未フィルタリングのコンテンツが含まれており、中立性に欠ける可能性があります。
🔧 技術詳細
学習データ
2020年10月28日時点のトルコ語のウィキペディア記事のダンプを使用しています。
評価結果
エポック |
訓練損失 |
検証損失 |
精度 |
パープレキシティ |
時間 |
0 |
4.777015 |
4.621834 |
0.292547 |
101.680367 |
2:42:05 |
1 |
4.509412 |
4.403999 |
0.305574 |
81.777267 |
1:09:38 |
2 |
4.169529 |
4.120755 |
0.324908 |
61.605747 |
1:07:45 |
3 |
4.293973 |
4.177899 |
0.317211 |
65.228653 |
1:07:02 |
4 |
4.049848 |
3.949103 |
0.338347 |
51.888783 |
1:05:53 |
#エポック0はTesla T4で、それ以外はV100で行われました。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で提供されています。
その他の情報
プロパティ |
詳細 |
モデルタイプ |
GPT2-Smallベースのトルコ語モデル |
学習データ |
2020年10月28日時点のトルコ語ウィキペディア記事 |
評価指標 |
パープレキシティ、精度 |