🚀 日语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许可证。