模型简介
模型特点
模型能力
使用案例
🚀 Llama-2-Ko 🦙🇰🇷
Llama-2-Ko 是 Llama 2 的高级版本,在进一步预训练中增加了词汇量,并纳入了韩语语料库。和其前身一样,Llama-2-Ko 属于生成式文本模型,参数范围从 70 亿到 700 亿。本仓库主要关注 70 亿参数的预训练版本,它适配了 Hugging Face Transformers 格式。如需访问其他模型,请参考下面的索引。
🚀 快速开始
本文档提供了 Llama-2-Ko 模型的详细信息,包括模型更新日志、模型细节、基准测试结果、使用注意事项、引用信息等。
✨ 主要特性
- 词汇扩展:在原有的 Llama-2 基础上,增加了韩语词汇,提升了韩语处理能力。
- 多参数版本:提供 70 亿、130 亿和 700 亿等不同参数规模的模型。
- 适配 Hugging Face:70 亿参数的预训练版本适配了 Hugging Face Transformers 格式。
📚 详细文档
更新日志
- 2023.12.27
- 新模型发布!仅使用开放获取的韩语文本语料库进行训练:https://huggingface.co/beomi/open-llama-2-ko-7b
- 2023.10.19
- 修复
transforemrs>=4.34.0
之后的分词器错误(解码时不应用空格)
- 修复
模型细节
- 模型开发者:Junbum Lee (Beomi)
- 变体:Llama-2-Ko 有 70 亿、130 亿和 700 亿等不同参数规模,以及预训练和微调等不同版本。
- 输入:模型仅接受文本输入。
- 输出:模型仅生成文本输出。
- 模型架构:Llama-2-Ko 是一个自回归语言模型,基于 Llama-2 使用了优化的 Transformer 架构。
属性 | 详情 |
---|---|
模型开发者 | Junbum Lee (Beomi) |
变体 | 7B、13B 和 70B 参数规模,预训练和微调版本 |
输入 | 仅文本 |
输出 | 仅文本 |
模型架构 | 基于 Llama-2 的优化 Transformer 架构的自回归语言模型 |
训练数据 | 参数 | 内容长度 | GQA | 令牌数 | 学习率 |
---|---|---|---|---|---|
新的韩语在线数据组合 | 7B | 4k | ❌ | >40B* | 1e⁻⁵ |
*计划训练至 200B 令牌 |
词汇扩展
模型名称 | 词汇量 | 描述 |
---|---|---|
原始 Llama-2 | 32000 | Sentencepiece BPE |
扩展后的 Llama-2-Ko | 46336 | Sentencepiece BPE,增加了韩语词汇和合并规则 |
分词示例
-
韩语句子 "안녕하세요, 오늘은 날씨가 좋네요." | 模型 | 分词结果 | | --- | --- | | Llama-2 |
['▁', '안', '<0xEB>', '<0x85>', '<0x95>', '하', '세', '요', ',', '▁', '오', '<0xEB>', '<0x8A>', '<0x98>', '은', '▁', '<0xEB>', '<0x82>', '<0xA0>', '씨', '가', '▁', '<0xEC>', '<0xA2>', '<0x8B>', '<0xEB>', '<0x84>', '<0xA4>', '요']
| | Llama-2-Ko |['▁안녕', '하세요', ',', '▁오늘은', '▁날', '씨가', '▁좋네요']
| -
英文句子 "Llama 2: Open Foundation and Fine-Tuned Chat Models" | 模型 | 分词结果 | | --- | --- | | Llama-2 |
['▁L', 'l', 'ama', '▁', '2', ':', '▁Open', '▁Foundation', '▁and', '▁Fine', '-', 'T', 'un', 'ed', '▁Ch', 'at', '▁Mod', 'els']
| | Llama-2-Ko |['▁L', 'l', 'ama', '▁', '2', ':', '▁Open', '▁Foundation', '▁and', '▁Fine', '-', 'T', 'un', 'ed', '▁Ch', 'at', '▁Mod', 'els']
|
模型基准测试
LM Eval Harness - 韩语 (polyglot 分支)
使用了 EleutherAI 的 lm-evaluation-harness:https://github.com/EleutherAI/lm-evaluation-harness/tree/polyglot
NSMC (准确率)
测试数据为 50000 条完整测试集,结果待公布。
COPA (F1 分数)
模型 | 0 次提示 | 5 次提示 | 10 次提示 | 50 次提示 |
---|---|---|---|---|
https://huggingface.co/skt/ko-gpt-trinity-1.2B-v0.5 | 0.6696 | 0.6477 | 0.6419 | 0.6514 |
https://huggingface.co/kakaobrain/kogpt | 0.7345 | 0.7287 | 0.7277 | 0.7479 |
https://huggingface.co/facebook/xglm-7.5B | 0.6723 | 0.6731 | 0.6769 | 0.7119 |
https://huggingface.co/EleutherAI/polyglot-ko-1.3b | 0.7196 | 0.7193 | 0.7204 | 0.7206 |
https://huggingface.co/EleutherAI/polyglot-ko-3.8b | 0.7595 | 0.7608 | 0.7638 | 0.7788 |
https://huggingface.co/EleutherAI/polyglot-ko-5.8b | 0.7745 | 0.7676 | 0.7775 | 0.7887 |
https://huggingface.co/EleutherAI/polyglot-ko-12.8b | 0.7937 | 0.8108 | 0.8037 | 0.8369 |
Llama-2 原始 7B* | 0.562033 | 0.575982 | 0.576216 | 0.595532 |
Llama-2-Ko-7b 20B (10k) | 0.738780 | 0.762639 | 0.780761 | 0.797863 |
Llama-2-Ko-7b 40B (20k) | 0.743630 | 0.792716 | 0.803746 | 0.825944 |
*Llama-2 原始 7B 使用了 https://huggingface.co/meta-llama/Llama-2-7b-hf(未更新分词器) |
HellaSwag (F1 分数)
模型 | 0 次提示 | 5 次提示 | 10 次提示 | 50 次提示 |
---|---|---|---|---|
https://huggingface.co/skt/ko-gpt-trinity-1.2B-v0.5 | 0.5243 | 0.5272 | 0.5166 | 0.5352 |
https://huggingface.co/kakaobrain/kogpt | 0.5590 | 0.5833 | 0.5828 | 0.5907 |
https://huggingface.co/facebook/xglm-7.5B | 0.5665 | 0.5689 | 0.5565 | 0.5622 |
https://huggingface.co/EleutherAI/polyglot-ko-1.3b | 0.5247 | 0.5260 | 0.5278 | 0.5427 |
https://huggingface.co/EleutherAI/polyglot-ko-3.8b | 0.5707 | 0.5830 | 0.5670 | 0.5787 |
https://huggingface.co/EleutherAI/polyglot-ko-5.8b | 0.5976 | 0.5998 | 0.5979 | 0.6208 |
https://huggingface.co/EleutherAI/polyglot-ko-12.8b | 0.5954 | 0.6306 | 0.6098 | 0.6118 |
Llama-2 原始 7B* | 0.415390 | 0.431382 | 0.421342 | 0.442003 |
Llama-2-Ko-7b 20B (10k) | 0.451757 | 0.466751 | 0.472607 | 0.482776 |
Llama-2-Ko-7b 40B (20k) | 0.456246 | 0.465665 | 0.469810 | 0.477374 |
*Llama-2 原始 7B 使用了 https://huggingface.co/meta-llama/Llama-2-7b-hf(未更新分词器) |
BoolQ (F1 分数)
模型 | 0 次提示 | 5 次提示 | 10 次提示 | 50 次提示 |
---|---|---|---|---|
https://huggingface.co/skt/ko-gpt-trinity-1.2B-v0.5 | 0.3356 | 0.4014 | 0.3640 | 0.3560 |
https://huggingface.co/kakaobrain/kogpt | 0.4514 | 0.5981 | 0.5499 | 0.5202 |
https://huggingface.co/facebook/xglm-7.5B | 0.4464 | 0.3324 | 0.3324 | 0.3324 |
https://huggingface.co/EleutherAI/polyglot-ko-1.3b | 0.3552 | 0.4751 | 0.4109 | 0.4038 |
https://huggingface.co/EleutherAI/polyglot-ko-3.8b | 0.4320 | 0.5263 | 0.4930 | 0.4038 |
https://huggingface.co/EleutherAI/polyglot-ko-5.8b | 0.4356 | 0.5698 | 0.5187 | 0.5236 |
https://huggingface.co/EleutherAI/polyglot-ko-12.8b | 0.4818 | 0.6041 | 0.6289 | 0.6448 |
Llama-2 原始 7B* | 0.352050 | 0.563238 | 0.474788 | 0.419222 |
Llama-2-Ko-7b 20B (10k) | 0.360656 | 0.679743 | 0.680109 | 0.662152 |
Llama-2-Ko-7b 40B (20k) | 0.578640 | 0.697747 | 0.708358 | 0.714423 |
*Llama-2 原始 7B 使用了 https://huggingface.co/meta-llama/Llama-2-7b-hf(未更新分词器) |
SentiNeg (F1 分数)
模型 | 0 次提示 | 5 次提示 | 10 次提示 | 50 次提示 |
---|---|---|---|---|
https://huggingface.co/skt/ko-gpt-trinity-1.2B-v0.5 | 0.6065 | 0.6878 | 0.7280 | 0.8413 |
https://huggingface.co/kakaobrain/kogpt | 0.3747 | 0.8942 | 0.9294 | 0.9698 |
https://huggingface.co/facebook/xglm-7.5B | 0.3578 | 0.4471 | 0.3964 | 0.5271 |
https://huggingface.co/EleutherAI/polyglot-ko-1.3b | 0.6790 | 0.6257 | 0.5514 | 0.7851 |
https://huggingface.co/EleutherAI/polyglot-ko-3.8b | 0.4858 | 0.7950 | 0.7320 | 0.7851 |
https://huggingface.co/EleutherAI/polyglot-ko-5.8b | 0.3394 | 0.8841 | 0.8808 | 0.9521 |
https://huggingface.co/EleutherAI/polyglot-ko-12.8b | 0.9117 | 0.9015 | 0.9345 | 0.9723 |
Llama-2 原始 7B* | 0.347502 | 0.529124 | 0.480641 | 0.788457 |
Llama-2-Ko-7b 20B (10k) | 0.485546 | 0.829503 | 0.871141 | 0.851253 |
Llama-2-Ko-7b 40B (20k) | 0.459447 | 0.761079 | 0.727611 | 0.936988 |
*Llama-2 原始 7B 使用了 https://huggingface.co/meta-llama/Llama-2-7b-hf(未更新分词器) |
oobabooga/text-generation-webui 使用注意事项
需要在 modules/models.py
文件的 load_tokenizer
函数(第 109 行左右)中移除 ValueError
异常捕获。
diff --git a/modules/models.py b/modules/models.py
index 232d5fa..de5b7a0 100644
--- a/modules/models.py
+++ b/modules/models.py
@@ -106,7 +106,7 @@ def load_tokenizer(model_name, model):
trust_remote_code=shared.args.trust_remote_code,
use_fast=False
)
- except ValueError:
+ except:
tokenizer = AutoTokenizer.from_pretrained(
path_to_model,
trust_remote_code=shared.args.trust_remote_code,
由于 Llama-2-Ko 使用了 HF tokenizers 提供的 FastTokenizer,而不是 sentencepiece 包,因此在初始化分词器时需要使用 use_fast=True
选项。
苹果硅芯片不支持 BF16 计算,请使用 CPU 代替(NVIDIA GPU 支持 BF16)。
引用信息
@misc {l._junbum_2023,
author = { {L. Junbum} },
title = { llama-2-ko-7b (Revision 4a9993e) },
year = 2023,
url = { https://huggingface.co/beomi/llama-2-ko-7b },
doi = { 10.57967/hf/1098 },
publisher = { Hugging Face }
}
致谢
本模型的训练得到了 TPU Research Cloud 项目的支持。
Open LLM 排行榜评估结果
详细结果请参考 此处
指标 | 值 |
---|---|
平均值 | 39.43 |
ARC (25 次提示) | 48.46 |
HellaSwag (10 次提示) | 75.28 |
MMLU (5 次提示) | 39.56 |
TruthfulQA (0 次提示) | 34.49 |
Winogrande (5 次提示) | 72.14 |
GSM8K (5 次提示) | 1.97 |
DROP (3 次提示) | 4.1 |



