🚀 日語GPT-NeoX 36億參數模型
本項目提供了一個擁有36億參數的日語GPT - NeoX模型,可用於文本生成等自然語言處理任務,為日語相關的NLP研究和應用提供了強大的支持。
🚀 快速開始
以下是使用該模型進行文本生成的示例代碼:
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 的代碼進行訓練。
- 模型架構:這是一個基於Transformer的語言模型,具有36層,隱藏層大小為2816。
- 預訓練:模型在來自 日語CC - 100、日語C4 和 日語維基百科 的約 3125億 個標記上進行訓練,以優化傳統的語言建模目標,最終驗證困惑度達到 8.68。
- 模型系列:
變體 |
鏈接 |
36億參數PPO |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-ppo |
36億參數SFT - v2 |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-sft-v2 |
36億參數SFT |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-sft |
36億參數預訓練 |
https://huggingface.co/rinna/japanese-gpt-neox-3.6b |
- 貢獻者:趙天宇 和 澤田圭
- 發佈日期:2023年3月17日
🔧 技術細節
分詞器
該模型使用基於 sentencepiece 的分詞器,具有以下特點:
- 分詞器的詞彙量為32000。
- 使用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}}
}
📄 許可證
本模型遵循 MIT許可證。