language:
- ko
tags:
- pytorch
- causal-lm
license: apache-2.0
Polyglot-Ko-5.8B
模型描述
Polyglot-Ko是由EleutherAI多语言团队开发的一系列大规模韩语自回归语言模型。
超参数 |
值 |
\(n_{parameters}\) |
5,885,059,072 |
\(n_{layers}\) |
28 |
\(d_{model}\) |
4096 |
\(d_{ff}\) |
16,384 |
\(n_{heads}\) |
16 |
\(d_{head}\) |
256 |
\(n_{ctx}\) |
2,048 |
\(n_{vocab}\) |
30,003 / 30,080 |
位置编码 |
旋转位置嵌入(RoPE) |
RoPE维度 |
64 |
该模型包含28个Transformer层,模型维度为4096,前馈网络维度为16384。模型维度被分割为16个头,每个头维度为256。旋转位置嵌入(RoPE)应用于每个头的64个维度。模型使用30003的词汇表进行训练。
训练数据
Polyglot-Ko-5.8B在863GB韩语数据(处理前1.2TB)上训练,这是一个由TUNiB策划的大规模数据集。数据收集过程遵守了韩国法律。该数据集是为训练Polyglot-Ko模型而收集的,因此不会公开发布供公众使用。
来源 |
大小(GB) |
链接 |
韩语博客文章 |
682.3 |
- |
韩语新闻数据集 |
87.0 |
- |
Modu语料库 |
26.4 |
corpus.korean.go.kr |
韩语专利数据集 |
19.0 |
- |
韩语问答数据集 |
18.1 |
- |
KcBert数据集 |
12.7 |
github.com/Beomi/KcBERT |
韩语小说数据集 |
6.1 |
- |
韩语在线评论 |
4.2 |
- |
韩语维基百科 |
1.4 |
ko.wikipedia.org |
Clova呼叫 |
< 1.0 |
github.com/clovaai/ClovaCall |
Naver情感电影语料库 |
< 1.0 |
github.com/e9t/nsmc |
韩语仇恨言论数据集 |
< 1.0 |
- |
开放字幕 |
< 1.0 |
opus.nlpl.eu/OpenSubtitles.php |
AIHub多任务数据集 |
< 1.0 |
aihub.or.kr |
标准韩语词典 |
< 1.0 |
stdict.korean.go.kr/main/main.do |
此外,为了避免模型记忆和生成训练数据中的个人身份信息(PII),我们在预处理阶段屏蔽了以下敏感信息:
<|acc|>
: 银行账号
<|rrn|>
: 居民身份证号
<|tell|>
: 电话号码
训练过程
Polyglot-Ko-5.8B在256个A100 GPU上使用GPT-NeoX框架训练了1720亿个token,共320,000步。它被训练为一个自回归语言模型,使用交叉熵损失来最大化预测下一个token的可能性。
使用方法
可以使用AutoModelForCausalLM
类轻松加载此模型:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/polyglot-ko-5.8b")
model = AutoModelForCausalLM.from_pretrained("EleutherAI/polyglot-ko-5.8b")
评估结果
我们在KOBEST数据集上评估Polyglot-Ko-3.8B,这是一个包含5个下游任务的基准测试,与skt/ko-gpt-trinity-1.2B-v0.5、kakaobrain/kogpt和facebook/xglm-7.5B等可比模型进行对比,使用论文中提供的提示。
以下表格显示了不同少样本数量时的结果。您可以使用lm-evaluation-harness的polyglot分支和以下脚本来重现这些结果。为了公平比较,所有模型在相同条件下运行并使用相同的提示。在表格中,n
表示少样本示例的数量。
在WiC数据集的情况下,所有模型都表现出随机性能。
python main.py \
--model gpt2 \
--model_args pretrained='EleutherAI/polyglot-ko-3.8b' \
--tasks kobest_copa,kobest_hellaswag \
--num_fewshot $YOUR_NUM_FEWSHOT \
--batch_size $YOUR_BATCH_SIZE \
--device $YOUR_DEVICE \
--output_path $/path/to/output/
COPA (F1)
HellaSwag (F1)
BoolQ (F1)