LLM | A Technical Report for Polyglot-Ko: Open-Source Large-Scale Korean Language Models论文详解

论文题目:A Technical Report for Polyglot-Ko: Open-Source Large-Scale Korean Language Models

论文地址:[2306.02254] A Technical Report for Polyglot-Ko: Open-Source Large-Scale Korean Language Models (arxiv.org)

 1.介绍

尽管 mBERT、BLOOM、XGLM 等多语言语言模型已经发布,但使用非英语语言的研究人员仍在追求单语模型。这是因为公开的<多语言>模型的训练数据偏向于英语,在非英语语言任务上表现不佳。

2.数据集

2.1.数据收集

韩国数据由 TUNiB 863GB(预处理前为 1.2TB)Polyglot-Ko 收集用于训练,未开源,数据包含了以下内容:

2.2. 数据分析

2.2.1.学习路径

  • 句子太短或太长
  • 重复的字词或字符
  • 重复数据

2.2.2.推理过程

  • 个人身份信息 ( PII )

在每个过程中,上述问题都可能造成风险,因此进行数据分析。

从降低上述风险的角度分析数据,将数据分为四种类型

  • 可训练数据
    • 新闻, 维基百科: 文本足够长的信息
  • 上下文信息允许从数据中学习
    • 博客,一些新闻:由许多短句组成的剪辑不佳
  • 仇恨言论的不可训练数据
    • 一些社区数据
  • NLP 任务数据
    • NLP任务数据,如文本分类、实体识别:可用于训练,但在评估时应排除

在训练数据之前,需要解决一些质量问题

执行预处理,因为它可能会在学习过程中引起问题

扫描二维码关注公众号,回复: 17264659 查看本文章
  • 空文本:空句
  • Unnecessary space : 不必要的空间
  • 去标识化:个人数据
  • 未清除的 HTML 标记 :未清除 HTML 标记
  • 重复数据删除:完全匹配重复数据实例
  • 损坏的代码:仅存在 HML 或 Markdown 的一部分
  • 短文本:句子太短
  • 重复字符:数据实例中的重复字符

→ plyglot 旨在生成韩语句子,因此请尽可能删除所有类似 html 的代码。

另一个需要预处理的重要问题是数据的长度

→ 句子越长,模型学习的信息就越多

3.模型

为了训练polyglot模型,使用GPT-NeoX 为基础,也就是Transformer的decoder的构架。

  • 1.3B的模型训练于213B tokens
  • 3.8B的模型训练于219B tokens
  • 5.8B的模型训练于172B tokens
  • 12.8B的模型训练于167B tokens

特征词大小是30003,使用的tokenize是 morpheme-aware ByteLevel BPE (Byte-Pair Encoding).

 词素分析(morpheme analysis)使用MeCab,就是一种分词方法。

模型版本

 1.3B 模型没有使用模型并行,利用一个整的批量大小1024,训练,验证数据丢失发生过拟合(约 100000 步)并中断训练,推理也显示出性能的急剧下降,因此在过拟合之前,通过检查点的评估和验证来选择模型。

3.8 B使用Pipeline 并行化 batch size: 1024,1.3 与 100000 步一样,过拟合发生在大约 100000 步时.

5.8B 使用 流水线并行化 批量大小:256,批量较小,因此最多 320000 步没有过拟合,训练完成
随着步骤的进展提高模型性能.

4.实验

验证了KOBEST数据集,在五个下游任务中

  • COPA
  • HellaSwag
  • BoolQ
  • SentiNeg
  • WiC 

5.检查点合并和模型上传

将训练好的模型上传到 huggingface

GPT-NeoX 检查点需要合并为一个检查点,并转换为 Hugging Face Transformers 格式

为此创建一个脚本,并按照以下步骤操作。

  1. Creater 配置文件:GPT-NeoX 在 Hugging Face Transformer 中不可用。将特定于模型的参数放在 config.json 中。它不包括训练过程中使用的训练参数。
  2. 按层合并模型:合并划分的检查点。根据一层中每个 GPU 排序的张量在主进程 (GPU0) 中合并为单个检查点。(例如model_layer_1.bin)

合并和转换模型检查点:使用 Hugging Face Transformer 的键将存储在每层楼一个文件中的 chekpoints 保存为状态字典。

论文总结

使用韩国数据进行预训练的 Polyglot-ko 模型,在通过各种预处理方法处理了 TUNiB 收集的 1.2TB 韩国数据后进行了预训练。只是一份报告,所以并没有什么创新点。

训练环境建议:4台RTX3090(4090/A5000)

基础知识点

MeCab 

MeCab - Wikipedia

eunjeon / mecab-ko-dic — Bitbucket

 형태소 분석기 mecab-ko 설치 + 사전 적용(+우선순위 높이기) :: 듐듐다다 (tistory.com)

RoPE

 旋转位置编码(Rotary Position Embedding,RoPE)是论文Roformer: Enhanced Transformer With Rotray Position Embedding 提出的一种能够将相对位置信息依赖集成到 self-attention 中并提升 transformer 架构性能的位置编码方式。而目前很火的 LLaMA、GLM 模型也是采用该位置编码方式。

 参考文献

【1】kevinko (songys.github.io)

 【2】언어 천재가 된 AI, 다국어(Polyglot) 모델 (2) (letr.ai)

【3】한국어 (초)거대 공개 언어모델 - Polyglot, KoGPT (tistory.com) 

【4】[OpenFlaminKO] - Polyglot-KO를 활용한 한국어 기반 MultiModal 도전기! (tistory.com)

【5】十分钟读懂旋转编码(RoPE) - 知乎 (zhihu.com) 

【6】qwopqwop/KoAlpaca-Polyglot-12.8B-GPTQ at main (huggingface.co)

猜你喜欢

转载自blog.csdn.net/weixin_44649780/article/details/134590656