🚀 albert-base-japanese-v1
このモデルは、日本語事前学習済みのALBERTモデルです。自然言語処理タスクに利用できます。
🚀 クイックスタート
✨ 主な機能
- ファインチューニング可能なPreTrainedモデルで、各種タスクに対応。
- Fill-Maskタスクでの使用が可能。
📦 インストール
原READMEにインストール手順が記載されていないため、このセクションを省略します。
💻 使用例
基本的な使用法
このモデルは基本的に各種タスク用にファインチューニングして使用されることを想定しています。
高度な使用法
Fill-Mask
このモデルではTokenizerにSentencepieceを利用しています。そのままでは[MASK]
トークンのあとに余計なトークンが混入する問題があるので、利用する際には以下のようにする必要があります。
for PyTorch
from transformers import (
AlbertForMaskedLM, AlbertTokenizerFast
)
import torch
tokenizer = AlbertTokenizerFast.from_pretrained("ken11/albert-base-japanese-v1")
model = AlbertForMaskedLM.from_pretrained("ken11/albert-base-japanese-v1")
text = "大学で[MASK]の研究をしています"
tokenized_text = tokenizer.tokenize(text)
del tokenized_text[tokenized_text.index(tokenizer.mask_token) + 1]
input_ids = [tokenizer.cls_token_id]
input_ids.extend(tokenizer.convert_tokens_to_ids(tokenized_text))
input_ids.append(tokenizer.sep_token_id)
inputs = {"input_ids": [input_ids], "token_type_ids": [[0]*len(input_ids)], "attention_mask": [[1]*len(input_ids)]}
batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in inputs.items()}
output = model(**batch)[0]
_, result = output[0, input_ids.index(tokenizer.mask_token_id)].topk(5)
print(tokenizer.convert_ids_to_tokens(result.tolist()))
for TensorFlow
from transformers import (
TFAlbertForMaskedLM, AlbertTokenizerFast
)
import tensorflow as tf
tokenizer = AlbertTokenizerFast.from_pretrained("ken11/albert-base-japanese-v1")
model = TFAlbertForMaskedLM.from_pretrained("ken11/albert-base-japanese-v1")
text = "大学で[MASK]の研究をしています"
tokenized_text = tokenizer.tokenize(text)
del tokenized_text[tokenized_text.index(tokenizer.mask_token) + 1]
input_ids = [tokenizer.cls_token_id]
input_ids.extend(tokenizer.convert_tokens_to_ids(tokenized_text))
input_ids.append(tokenizer.sep_token_id)
inputs = {"input_ids": [input_ids], "token_type_ids": [[0]*len(input_ids)], "attention_mask": [[1]*len(input_ids)]}
batch = {k: tf.convert_to_tensor(v, dtype=tf.int32) for k, v in inputs.items()}
output = model(**batch)[0]
result = tf.math.top_k(output[0, input_ids.index(tokenizer.mask_token_id)], k=5)
print(tokenizer.convert_ids_to_tokens(result.indices.numpy()))
📚 ドキュメント
トレーニングデータ
学習には以下のデータを利用しています。
トークナイザー
トークナイザーはSentencepieceを利用しています。こちらも学習データは同様です。
🔧 技術詳細
原READMEに技術詳細に関する具体的な説明が50字以上記載されていないため、このセクションを省略します。
📄 ライセンス
このモデルはThe MIT licenseの下で提供されています。