🚀 日本語GPT - NeoX - 3.6B
このリポジトリは、36億パラメータの日本語GPT - NeoXモデルを提供しています。このモデルは、自然言語処理タスクにおいて高い性能を発揮し、多様なデータセットを用いて学習されています。
🚀 クイックスタート
このモデルを使用するには、以下の手順に従ってください。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt-neox-3.6b")
if torch.cuda.is_available():
model = model.to("cuda")
text = "西田幾多郎は、"
token_ids = tokenizer.encode(text, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=100,
min_new_tokens=100,
do_sample=True,
temperature=0.8,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0])
print(output)
"""西田幾多郎は、この「絶対矛盾的自己同一」を「世界の自己同一」と置きかえ、さらに西田哲学を出発点として「絶対無」を「世界の成立」に変え、世界と自己を一つの統一物とみなす哲学として展開する。この世界と自己は絶対矛盾的自己同一として同一の性質を有し、同じ働きをする。西田哲学においては、この世界と自己は矛盾しあうのではなく、同一の性質をもっている。この世界と自己は同一である。絶対"""
✨ 主な機能
ライブラリ
このモデルは、[EleutherAI/gpt - neox](https://github.com/EleutherAI/gpt - neox)に基づくコードを使用して学習されました。
モデルアーキテクチャ
36層、隠れ層のサイズが2816のTransformerベースの言語モデルです。
事前学習
このモデルは、[Japanese CC - 100](http://data.statmt.org/cc - 100/ja.txt.xz)、Japanese C4、Japanese Wikipediaからの約3125億トークンで学習され、従来の言語モデリングの目的を最適化しています。最終的な検証パープレキシティは8.68に達しています。
モデルシリーズ
バリアント |
リンク |
3.6B PPO |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-ppo |
3.6B SFT - v2 |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-sft-v2 |
3.6B SFT |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-sft |
3.6B 事前学習済み |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b |
貢献者
Zhao Tianyu と Sawada Kei
リリース日
2023年3月17日
🔧 技術詳細
トークナイゼーション
このモデルは、sentencepieceベースのトークナイザーを使用しています。
- トークナイザーの語彙サイズは32,000です。
- sentencepieceのバイトフォールバック機能を使用して、未知のテキスト片をUTF - 8バイト片に分解し、
<UNK>
トークンの生成を回避します。
- sentencepieceの
--add_dummy_prefix
オプションはオフに設定されているため、先頭の空白が自動的に追加されません。print(tokenizer.tokenize("吾輩は猫である"))
# ['吾', '輩', 'は', '猫', 'である']
# rinna/japanese-gpt-1bのように['▁', '吾', '輩', 'は', '猫', 'である']ではない
- sentencepieceの
--remove_extra_whitespaces
オプションはオフに設定されているため、先頭、末尾、重複する空白が保持されます。print(tokenizer.tokenize(" 吾輩は 猫である "))
# ['▁', '▁', '吾', '輩', 'は', '▁', '▁', '猫', 'である', '▁', '▁', '▁']
# rinna/japanese-gpt-1bのように['▁', '吾', '輩', 'は', '▁猫', 'である']ではない
- 上記の機能を正しく機能させるには、
use_fast=False
を設定することを忘れないでください。good_tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b", use_fast=False)
bad_tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b")
print(good_tokenizer.decode(good_tokenizer.encode("გამარჯობა 吾輩は 猫である ")))
# 'გამარჯობა 吾輩は 猫である </s>'
print(bad_tokenizer.decode(bad_tokenizer.encode("გამარჯობა 吾輩は 猫である ")))
# 'გამარ[UNK]ობა 吾輩は 猫である </s>'
📚 引用方法
@misc{rinna-japanese-gpt-neox-3.6b,
title = {rinna/japanese-gpt-neox-3.6b},
author = {Zhao, Tianyu and Sawada, Kei},
url = {https://huggingface.co/rinna/japanese-gpt-neox-3.6b}
}
@inproceedings{sawada2024release,
title = {Release of Pre-Trained Models for the {J}apanese Language},
author = {Sawada, Kei and Zhao, Tianyu and Shing, Makoto and Mitsui, Kentaro and Kaga, Akio and Hono, Yukiya and Wakatsuki, Toshiaki and Mitsuda, Koh},
booktitle = {Proceedings of the 2024 Joint International Conference on Computational Linguistics, Language Resources and Evaluation (LREC-COLING 2024)},
month = {5},
year = {2024},
pages = {13898--13905},
url = {https://aclanthology.org/2024.lrec-main.1213},
note = {\url{https://arxiv.org/abs/2404.01657}}
}
📄 ライセンス
The MIT license