🚀 llm-jp-3.1-13b-instruct4
LLM-jp-3.1是由国立情报学研究所的大语言模型研发中心开发的一系列大语言模型。该系列模型在LLM-jp-3的基础上,加入了训练中期的指令预训练,与原始的LLM-jp-3模型相比,其遵循指令的能力得到了显著提升。本仓库提供了llm-jp-3.1-13b-instruct4模型。
🚀 快速开始
本模型的检查点格式为Hugging Face Transformers。若要使用该模型,你需要安装以下依赖库,同时请确保使用对应版本:
- torch>=2.3.0
- transformers>=4.40.1
- tokenizers>=0.19.1
- accelerate>=0.29.3
- flash-attn>=2.5.8
以下是使用该模型的示例代码:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("llm-jp/llm-jp-3.1-13b-instruct4")
model = AutoModelForCausalLM.from_pretrained("llm-jp/llm-jp-3.1-13b-instruct4", device_map="auto", torch_dtype=torch.bfloat16)
chat = [
{"role": "system", "content": "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"},
{"role": "user", "content": "自然言語処理とは何か"},
]
tokenized_input = tokenizer.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
tokenized_input,
max_new_tokens=100,
do_sample=True,
top_p=0.95,
temperature=0.7,
repetition_penalty=1.05,
)[0]
print(tokenizer.decode(output))
✨ 主要特性
- 指令遵循能力强:通过训练中期的指令预训练,显著提升了模型遵循指令的能力。
- 多语言支持:支持日语、英语等多种语言。
- 多架构选择:提供了不同参数规模的密集模型和MoE模型。
📦 安装指南
你可以使用以下命令安装所需的依赖库:
pip install torch>=2.3.0 transformers>=4.40.1 tokenizers>=0.19.1 accelerate>=0.29.3 flash-attn>=2.5.8
💻 使用示例
基础用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("llm-jp/llm-jp-3.1-13b-instruct4")
model = AutoModelForCausalLM.from_pretrained("llm-jp/llm-jp-3.1-13b-instruct4", device_map="auto", torch_dtype=torch.bfloat16)
chat = [
{"role": "system", "content": "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"},
{"role": "user", "content": "自然言語処理とは何か"},
]
tokenized_input = tokenizer.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
tokenized_input,
max_new_tokens=100,
do_sample=True,
top_p=0.95,
temperature=0.7,
repetition_penalty=1.05,
)[0]
print(tokenizer.decode(output))
📚 详细文档
模型详情
属性 |
详情 |
模型类型 |
基于Transformer的语言模型 |
架构 |
密集模型和MoE模型 |
密集模型
参数 |
层数 |
隐藏层大小 |
头数 |
上下文长度 |
嵌入参数 |
非嵌入参数 |
1.8b |
24 |
2048 |
16 |
4096 |
407,498,752 |
1,459,718,144 |
13b |
40 |
5120 |
40 |
4096 |
1,018,746,880 |
12,688,184,320 |
MoE模型
参数 |
层数 |
隐藏层大小 |
头数 |
路由专家数 |
激活专家数 |
上下文长度 |
嵌入参数 |
非嵌入参数 |
激活参数 |
总参数 |
8x13b |
40 |
5120 |
40 |
8 |
2 |
4096 |
1,018,746,880 |
72,144,081,920 |
22,200,806,400 |
73,162,828,800 |
分词器
该模型的分词器基于huggingface/tokenizers的Unigram字节回退模型。词汇表条目是从llm-jp-tokenizer v3.0
转换而来的。有关词汇表构建过程的详细信息,请参考llm-jp-tokenizer
的README.md(纯SentencePiece训练无法重现我们的词汇表)。
数据集
预训练
模型使用了以下数据集的混合进行预训练:
训练中期
在LLM-jp-3.1系列中,我们基于指令预训练进行了持续预训练。指令预训练通过在大量指令 - 响应对上继续预训练,增强了模型遵循指令的能力。我们准备了约900亿词元的指令 - 响应数据,并将其与预训练数据集混合,总共在4000亿词元上进行了持续预训练。每个模型都从现有的检查点(llm-jp/llm-jp-3-1.8b、llm-jp/llm-jp-3-13b和llm-jp/llm-jp-3-8x13b)初始化,并进行了持续的指令预训练。由于LLM-jp-3系列最初在21万亿词元上进行了预训练,因此总预训练词元数达到了25万亿词元。
此训练过程的详细信息将在即将发表的论文中发布。用于此训练的指令 - 响应数据集也将公开提供。
训练后期
我们使用监督微调对预训练检查点进行了微调,并进一步使用直接偏好优化进行了对齐。
监督微调
用于监督微调的数据集如下:
直接偏好优化
对于直接偏好优化(DPO),我们采用了拒绝采样。从监督微调中使用的数据集中采样提示,并为每个提示生成多个响应。然后对这些响应进行评分(由Qwen/Qwen2.5-32B-Instruct),并将高分响应视为正例,低分响应视为负例进行DPO。
我们分两个阶段进行DPO。在第二阶段,我们额外使用了ac-self-inst,这是一个专注于安全性的日语偏好数据集。
评估
MT Bench(日语和英语)
我们使用gpt-4o-2024-08-06
对模型进行了评估。分数表示三轮推理和评估的平均值。更多详细信息,请参考代码。
AnswerCarefully-Eval
AnswerCarefully-Eval使用基于大语言模型评判的方法,根据llm-jp/AnswerCarefully的测试集评估日语语言模型输出的安全性。我们使用gpt-4o-2024-08-06
对模型进行了评估。分数表示三轮推理和评估的平均值。更多详细信息,请参考代码。
🔧 技术细节
本模型基于Transformer架构,通过指令预训练、监督微调、直接偏好优化等技术,提升了模型的指令遵循能力和安全性。具体的训练过程和技术细节将在后续的论文中详细介绍。
📄 许可证
本模型采用Apache License, Version 2.0许可证。
其他信息
风险和局限性
此处发布的模型处于我们研发的早期阶段,尚未进行调整以确保输出符合人类意图和安全考虑。
咨询问题
如有任何问题,请发送邮件至llm-jp(at)nii.ac.jp。
模型卡片作者
(姓名按字母顺序排列)Hirokazu Kiyomaru和Takashi Kodama。