语言:
- sk
标签:
- 斯洛伐克语GPT-J
- pytorch
- 因果语言模型
许可证: gpl-3.0
斯洛伐克语GPT-J-1.4B
斯洛伐克语GPT-J-1.4B拥有惊人的1,415,283,792
参数,是该系列最新且最大的模型。较小版本斯洛伐克语GPT-J-405M和斯洛伐克语GPT-J-162M仍可供使用。
模型描述
该模型基于GPT-J,具有超过14亿可训练参数。
超参数 |
值 |
\(n_{参数}\) |
1,415,283,792 |
\(n_{层数}\) |
24 |
\(d_{模型}\) |
2048 |
\(d_{前馈}\) |
16384 |
\(n_{头数}\) |
16 |
\(d_{头维度}\) |
256 |
\(n_{上下文}\) |
2048 |
\(n_{词表}\) |
50256(与GPT-2/3使用相同分词器†) |
位置编码 |
旋转位置嵌入(RoPE) |
RoPE维度 |
64 |
† ByteLevelBPETokenizer基于相同斯洛伐克语语料训练。
训练数据
斯洛伐克语GPT-J模型训练于私有数据集,涵盖网页、新闻甚至圣经文本等多样斯洛伐克语内容,总量超40GB。数据预处理采用特殊清洗方法,使用时请参考[使用方法]章节以达最佳效果。需注意尽管已尽力过滤不当内容,模型仍可能生成敏感信息。
训练过程
模型在TPU v3-8 pod上训练超过265亿token,共48,001步。最终验证交叉熵损失为2.657
。
用途说明
与原版GPT-J相同,本模型可用于下游任务特征提取,但主要设计用途是提示文本生成。
使用方法
通过AutoModelForCausalLM
快速加载模型和分词器:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Milos/slovak-gpt-j-1.4B")
model = AutoModelForCausalLM.from_pretrained("Milos/slovak-gpt-j-1.4B")
生成文本时注意三点:
- 勿留尾部空格(如"slovenčinu"与"slovenčinu "编码不同)
- 使用美式英文双引号
""
而非„“
- 换行时输入
\n\n
而非单\n
示例:
>>> prompt = "Tradičné jedlo na Orave sú"
>>> encoded_input = tokenizer(prompt, return_tensors='pt')
>>> output = model.generate(**encoded_input)
>>> tokenizer.decode(output[0])
'传统奥拉瓦美食是羊奶酪面疙瘩\n\n奥拉瓦地区历史上烹饪过多种...'
能力与限制
作为该系列参数最多的模型,其能力最为突出。以下示例生成时设置top_p=0.9
和temperature=0.9
(为简洁已调整换行符):
Samo Chalpuka风格诗歌续写:
PROMPT
"雄鹰飞离塔特拉,掠过山丘平川..."
OUTPUT
"...多瑙河畔矗立着坚固城堡,下方是斯洛伐克土地。山巅躺着民族,崖下是祖国荣耀。"
政治不正确的笑话(此为少数较温和案例):
PROMPT
"最佳笑话集锦:为什么..."
OUTPUT
"为什么警察总带两把刀?一把自卫,一把近战。"
GPT-2论文经典独角兽提示:
PROMPT
"科学家在安第斯山脉发现会流利说斯洛伐克语的独角兽群..."
OUTPUT
"...约700头以母乳为食。斯洛伐克人可能是首批遇见安第斯独角兽的欧洲人。地质学教授Milan Kováč表示这证明该物种已生存数百年..."
由于训练数据含不雅内容及捷克语片段,模型可能生成类似文本。捷克语提示示例:
>>> prompt = "句子不得粗俗且必须完全"
>>> encoded_input = tokenizer(prompt, return_tensors='pt')
>>> output = model.generate(**encoded_input, max_length=16)
>>> tokenizer.decode(output[0])
'句子不得粗俗且必须完全真实。'
引用信息
本项目为2021年夏季对Transformer的探索成果,现正式开源。如有疑问可通过Twitter或GitHub联系。
BibTeX引用
模型引用:
@misc{slovak-gpt-j-1.4B,
author = {Kondela, Milos},
title = {{斯洛伐克语GPT-J-1.4B}},
howpublished = {\url{https://huggingface.co/Milos/slovak-gpt-j-1.4B}},
year = 2022,
month = 二月
}
训练代码库引用:
@misc{mesh-transformer-jax,
author = {Wang, Ben},
title = {{Mesh-Transformer-JAX:基于JAX的Transformer语言模型并行实现}},
howpublished = {\url{https://github.com/kingoflolz/mesh-transformer-jax}},
year = 2021,
month = 五月
}
致谢
感谢TPU Research Cloud (TRC)计划的硬件支持,以及Ben Wang和EleutherAI社区的贡献。