🚀 斯洛伐克GPT-J-1.4B
斯洛伐克GPT-J-1.4B拥有多达1,415,283,792
个参数,是斯洛伐克GPT-J系列中最新且最大的模型。较小的变体,如斯洛伐克GPT-J-405M和斯洛伐克GPT-J-162M仍然可用。
✨ 主要特性
- 基于GPT-J构建,具有超过14亿个可训练参数。
- 在多种类型的斯洛伐克文本数据集上进行训练,涵盖网络、新闻文章甚至圣经文本等。
- 可用于文本生成任务,学习语言的内部表示以提取对下游任务有用的特征。
📦 安装指南
此模型和分词器可以使用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")
💻 使用示例
基础用法
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")
prompt = "Tradičné jedlo na Orave sú"
encoded_input = tokenizer(prompt, return_tensors='pt')
output = model.generate(**encoded_input)
print(tokenizer.decode(output[0]))
高级用法
在生成提示时,请记住以下三点:
- 不要留有尾随空格。分词器对 "Mám rád slovenčinu"(
slovenčinu
后无空格)和 "Mám rád slovenčinu "(slovenčinu
后有尾随空格)的编码是不同的,即 [12805, 2872, 46878]
!= [12805, 2872, 46878, 221]
。
- 始终使用标准的美式英语双引号,即
""
而不是 „“
。
- 如果需要换行,请输入
\n\n
而不是单个 \n
。
示例代码如下:
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")
prompt = "Tradičné jedlo na Orave sú"
encoded_input = tokenizer(prompt, return_tensors='pt')
output = model.generate(**encoded_input)
print(tokenizer.decode(output[0]))
📚 详细文档
模型描述
模型基于GPT-J构建,具有超过14亿个可训练参数。
属性 |
详情 |
模型类型 |
基于GPT - J架构的因果语言模型 |
训练数据 |
主要由斯洛伐克文本组成的私有数据集,涵盖网络、新闻文章、圣经文本等不同类别,总量超过40GB |
训练步数 |
48,001步 |
训练设备 |
TPU v3 - 8 pod |
最后一步交叉熵验证损失 |
2.657 |
模型参数数量 |
1,415,283,792 |
层数 |
24 |
模型维度 |
2048 |
前馈维度 |
16384 |
头数 |
16 |
头维度 |
256 |
上下文长度 |
2048 |
词汇表大小 |
50256(与GPT - 2/3使用相同的分词器) |
位置编码 |
旋转位置嵌入(RoPE) |
RoPE维度 |
64 |
训练数据
斯洛伐克GPT - J模型在一个私有收集的数据集上进行训练,该数据集主要由斯洛伐克文本组成,涵盖不同类别,如网络、新闻文章甚至圣经文本。为了训练此模型,总共使用了超过40GB的文本数据。
数据集经过了特定方式的预处理和清理,涉及一些细微但需要注意的地方。因此,为了达到预期性能,请参考[使用方法]部分。请记住,尽管努力去除了不适当的语料,但模型仍可能生成敏感内容或泄露敏感信息。
训练过程
该模型在TPU v3 - 8 pod上经过48,001步,对超过265亿个标记进行了训练。最后一步的交叉熵验证损失为 2.657
。
预期用途
与原始的GPT - J一样,斯洛伐克GPT - J学习语言的内部表示,可用于提取对下游任务有用的特征。不过,其预期用途是根据提示进行文本生成。
能力、局限性和偏差
基于参数数量和内部测试,这应该是斯洛伐克GPT - J系列中功能最强大的模型。
由于数据集包含亵渎性、政治不正确的语言,甚至(无意地)包含一些捷克语文本,模型在一定程度上也可能生成这些内容。以下是当提示为捷克语时模型的输出示例:
prompt = "Věta nesmí být sprostá a musí být zcela"
encoded_input = tokenizer(prompt, return_tensors='pt')
output = model.generate(**encoded_input, max_length=16)
print(tokenizer.decode(output[0]))
引用和相关信息
这是2021年夏天的一个兼职项目,旨在更好地理解Transformer。由于当时没有太多空闲时间将其正确开源,所以直到现在才公开。
如果您使用此模型或有任何相关问题,请在Twitter上联系我,或查看我的GitHub个人资料。
BibTeX引用
引用此模型:
@misc{slovak-gpt-j-1.4B,
author = {Kondela, Milos},
title = {{Slovak GPT-J-1.4B}},
howpublished = {\url{https://huggingface.co/Milos/slovak-gpt-j-1.4B}},
year = 2022,
month = February
}
引用训练此模型的代码库:
@misc{mesh-transformer-jax,
author = {Wang, Ben},
title = {{Mesh-Transformer-JAX: Model-Parallel Implementation of Transformer Language Model with JAX}},
howpublished = {\url{https://github.com/kingoflolz/mesh-transformer-jax}},
year = 2021,
month = May
}
📄 许可证
本项目采用GPL - 3.0许可证。
⚠️ 重要提示
尽管努力去除了不适当的语料,但模型仍可能生成敏感内容或泄露敏感信息。
💡 使用建议
为了达到预期性能,请参考使用方法部分,注意生成提示时不要留有尾随空格,使用标准的美式英语双引号,换行时输入 \n\n
。