🚀 Slovak GPT-J-162M
Slovak GPT-J-162Mは、Slovak GPT-Jシリーズで最初にリリースされたモデルであり、主にスロバキア語コーパスで学習された最初の公開されたTransformerモデルです。最初のリリース以来、他に2つのモデルが公開されています。Slovak GPT-J-405M と最大の Slovak GPT-J-1.4B です。
🚀 クイックスタート
このモデルを使用するには、以下の手順に従ってください。
まず、AutoModelForCausalLM
機能を使用してモデルとトークナイザーをロードします。
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Milos/slovak-gpt-j-162M")
model = AutoModelForCausalLM.from_pretrained("Milos/slovak-gpt-j-162M")
テキスト生成を行う際には、以下の3点に注意してください。
- 末尾の空白を残さないでください。トークナイザーが "Mám rád slovenčinu"(
slovenčinu
の後に空白なし)と "Mám rád slovenčinu "(slovenčinu
の後に空白あり)をエンコードする方法は異なります。つまり [12805, 2872, 46878]
!= [12805, 2872, 46878, 221]
です。
- 常に米国英語のダブルクォーテーション
""
を使用してください。„“
ではなく。
- 改行する場合は、常に
\n\n
を使用してください。単一の \n
ではなく。
基本的なテキスト生成の例を示します。
>>> prompt = "Moje najobľubenejšie mesto na severe Slovenska je"
>>> encoded_input = tokenizer(prompt, return_tensors='pt')
>>> output = model.generate(**encoded_input)
>>> tokenizer.decode(output[0])
'Moje najobľubenejšie mesto na severe Slovenska je Žilina.\n\nV Žiline sa nachádza množstvo zaujímavých miest'
✨ 主な機能
- Slovak GPT-J-162Mは、主にスロバキア語コーパスで学習されたTransformerモデルです。
- このモデルは、GPT-Jをベースにしており、162M以上の学習可能なパラメータを持っています。
- このモデルは、テキスト生成や特徴抽出に使用できます。
📦 インストール
このモデルは、Hugging FaceのTransformersライブラリを使用して簡単にロードできます。
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Milos/slovak-gpt-j-162M")
model = AutoModelForCausalLM.from_pretrained("Milos/slovak-gpt-j-162M")
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Milos/slovak-gpt-j-162M")
model = AutoModelForCausalLM.from_pretrained("Milos/slovak-gpt-j-162M")
prompt = "Moje najobľubenejšie mesto na severe Slovenska je"
encoded_input = tokenizer(prompt, return_tensors='pt')
output = model.generate(**encoded_input)
print(tokenizer.decode(output[0]))
高度な使用法
prompt = "Věta nesmí být sprostá a musí být zcela"
encoded_input = tokenizer(prompt, return_tensors='pt')
output = model.generate(**encoded_input, max_length=16)
print(tokenizer.decode(output[0]))
📚 ドキュメント
モデルの説明
このモデルは GPT-J をベースにしており、162,454,608個の学習可能なパラメータを持っています。
ハイパーパラメータ |
値 |
\(n_{parameters}\) |
162,454,608 |
\(n_{layers}\) |
12 |
\(d_{model}\) |
768 |
\(d_{ff}\) |
16384 |
\(n_{heads}\) |
16 |
\(d_{head}\) |
256 |
\(n_{ctx}\) |
2048 |
\(n_{vocab}\) |
50256 (GPT-2/3と同じトークナイザー†) |
位置エンコーディング |
Rotary Position Embedding (RoPE) |
RoPE次元 |
64 |
† ByteLevelBPETokenizerは、同じスロバキア語コーパスで学習されました。
学習データ
Slovak GPT-J-162Mは、主にスロバキア語のテキストからなる非公開のデータセットで学習されました。このデータセットには、ウェブ、ニュース記事、聖書のテキストなど、さまざまなカテゴリのテキストが含まれています。合計で40GB以上のテキストデータが使用されました。
学習手順
このモデルは、TPU v3-8 podで69,001ステップ、約370億トークンのデータで学習されました。最後のステップでの交差エントロピー検証損失は3.065でした。
能力、制限、およびバイアス
このモデルは、比較的小さなサイズ(合計162Mのパラメータ)のため、能力が非常に限られています。したがって、このモデルの主な用途は、教育や楽しみのためです。
データセットには、不適切な言葉、政治的に不適切な言葉、(意図せず)チェコ語のテキストも含まれているため、モデルもある程度それらを生成する可能性があります。以下は、プロンプトがチェコ語の場合のモデル出力の例です。
>>> prompt = "Věta nesmí být sprostá a musí být zcela"
>>> encoded_input = tokenizer(prompt, return_tensors='pt')
>>> output = model.generate(**encoded_input, max_length=16)
>>> tokenizer.decode(output[0])
'Věta nesmí být sprostá a musí být zcela věrná.'
🔧 技術詳細
このモデルは、GPT-Jをベースにしており、主にスロバキア語コーパスで学習されたTransformerモデルです。モデルのハイパーパラメータや位置エンコーディングなどの詳細については、「モデルの説明」セクションを参照してください。
📄 ライセンス
このモデルは、GPL-3.0ライセンスの下で公開されています。
引用と関連情報
このプロジェクトは、2021年の夏にTransformerをより深く理解するために行われた副業プロジェクトです。適切にオープンソース化する時間がなかったため、これまでハードドライブに保存されていました。このモデルの人気や関心に応じて、より大きなバージョンのSlovak GPT-Jモデルをリリースする可能性があります。
このモデルを使用した場合や、このモデルに関する質問がある場合は、twitter で連絡するか、github のプロフィールを確認してください。
BibTeXエントリ
このモデルを引用するには、以下のようにしてください。
@misc{slovak-gpt-j-162m,
author = {Kondela, Milos},
title = {{Slovak GPT-J-162M}},
howpublished = {\url{https://huggingface.co/Milos/slovak-gpt-j-162M}},
year = 2022,
month = February
}
このモデルを学習させたコードベースを引用するには、以下のようにしてください。
@misc{mesh-transformer-jax,
author = {Wang, Ben},
title = {{Mesh-Transformer-JAX: Model-Parallel Implementation of Transformer Language Model with JAX}},
howpublished = {\url{https://github.com/kingoflolz/mesh-transformer-jax}},
year = 2021,
month = May
}
謝辞
このプロジェクトは、TPU Research Cloud (TRC) program によって支援されています。また、Ben Wang と素晴らしい EleutherAI community にも感謝します。