模型概述
模型特點
模型能力
使用案例
🚀 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訓練無法重現我們的詞彙表)。
數據集
預訓練
模型使用了以下數據集的混合進行預訓練:
語言 | 數據集 | 詞元數 |
---|---|---|
日語 | Wikipedia | 2.6B |
Common Crawl | 762.8B | |
WARP/PDF | 237.3B | |
WARP/HTML | 2.7B | |
Kaken | 1.8B | |
英語 | Wikipedia | 4.7B |
Dolma/CC-head | 608.5B | |
Dolma/C4 | 181.6B | |
Dolma/Reddit | 83.1B | |
Dolma/PeS2o | 62.9B | |
Dolma/Gutenberg | 5.5B | |
Dolma/Wiki | 3.9B | |
代碼 | The Stack | 114.1B |
中文 | Wikipedia | 0.8B |
韓語 | Wikipedia | 0.3B |
訓練中期
在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萬億詞元。
此訓練過程的詳細信息將在即將發表的論文中發佈。用於此訓練的指令 - 響應數據集也將公開提供。
訓練後期
我們使用監督微調對預訓練檢查點進行了微調,並進一步使用直接偏好優化進行了對齊。
監督微調
用於監督微調的數據集如下:
語言 | 數據集 | 描述 |
---|---|---|
日語 | ichikara-instruction-004-002 | 手動構建的指令數據集。 |
AnswerCarefully (ver2.0) | 專注於大語言模型安全性的手動構建指令數據集。 | |
ichikara-instruction-format | ichikara-instruction數據集的一個小子集,對輸出格式有一些約束。 | |
AutoMultiTurnByCalm3-22B | 合成指令數據集。 | |
ramdom-to-fixed-multiturn-Calm3 | 合成指令數據集。 | |
wizardlm8x22b-logical-math-coding-sft-ja | 合成指令數據集。 | |
magpie-sft-v1.0 | 我們創建的合成指令數據集。 | |
jaster v1.4.1 | - | |
extraction-wiki-ja | 我們創建的合成指令數據集。 | |
英語 | Daring-Anteater | - |
日語和英語 | Synthetic-JP-EN-Coding-Dataset | 合成指令數據集。 |
直接偏好優化
對於直接偏好優化(DPO),我們採用了拒絕採樣。從監督微調中使用的數據集中採樣提示,併為每個提示生成多個響應。然後對這些響應進行評分(由Qwen/Qwen2.5-32B-Instruct),並將高分響應視為正例,低分響應視為負例進行DPO。
我們分兩個階段進行DPO。在第二階段,我們額外使用了ac-self-inst,這是一個專注於安全性的日語偏好數據集。
評估
MT Bench(日語和英語)
我們使用gpt-4o-2024-08-06
對模型進行了評估。分數表示三輪推理和評估的平均值。更多詳細信息,請參考代碼。
模型名稱 | 日語 | 英語 |
---|---|---|
gpt-35-turbo-1106 | 6.48 | 7.56 |
gpt-4-0613 | 7.29 | 7.72 |
gpt-4o-2024-08-06 | 8.10 | 8.38 |
sbintuitions/sarashina2.2-1b-instruct-v0.1 | 5.30 | 5.66 |
sbintuitions/sarashina2.2-3b-instruct-v0.1 | 7.07 | 6.96 |
Rakuten/RakutenAI-2.0-8x7B-instruct | 6.68 | 6.33 |
cyberagent/calm3-22b-chat | 6.86 | 6.77 |
Qwen/Qwen2.5-14B-Instruct | 7.07 | 7.99 |
Qwen/Qwen2.5-32B-Instruct | 7.64 | 8.27 |
Qwen/Qwen3-1.7B | 5.46 | 6.95 |
Qwen/Qwen3-14B | 8.00 | 8.30 |
Qwen/Qwen3-32B | 8.36 | 8.33 |
tokyotech-llm/Llama-3.3-Swallow-70B-Instruct-v0.4 | 7.64 | 8.02 |
stockmark/Stockmark-2-100B-Instruct-beta | 7.42 | 7.17 |
llm-jp-3-1.8b-instruct3 | 4.64 | 4.09 |
llm-jp-3-13b-instruct3 | 6.21 | 6.13 |
llm-jp-3-8x13b-instruct3 | 6.60 | 6.49 |
llm-jp-3.1-1.8b-instruct4 | 6.30 | 5.70 |
llm-jp-3.1-13b-instruct4 | 7.37 | 7.01 |
llm-jp-3.1-8x13b-instruct4 | 7.50 | 7.05 |
AnswerCarefully-Eval
AnswerCarefully-Eval使用基於大語言模型評判的方法,根據llm-jp/AnswerCarefully的測試集評估日語語言模型輸出的安全性。我們使用gpt-4o-2024-08-06
對模型進行了評估。分數表示三輪推理和評估的平均值。更多詳細信息,請參考代碼。
模型名稱 | 分數 | 接受率(%,↑) | 違規率(%,↓) |
---|---|---|---|
gpt-35-turbo-1106 | 3.98 | 71.7 | 12.6 |
gpt-4-0613 | 4.06 | 72.3 | 13.2 |
gpt-4o-2024-08-06 | 4.09 | 72.7 | 12.5 |
llm-jp-3-1.8b-instruct3 | 4.03 | 75.9 | 12.2 |
llm-jp-3-13b-instruct3 | 4.37 | 88.4 | 6.5 |
llm-jp-3-8x13b-instruct3 | 4.48 | 91.6 | 4.3 |
llm-jp-3.1-1.8b-instruct4 | 3.66 | 64.7 | 24.3 |
llm-jp-3.1-13b-instruct4 | 4.17 | 82.4 | 12.2 |
llm-jp-3.1-8x13b-instruct4 | 4.26 | 83.1 | 11.6 |
🔧 技術細節
本模型基於Transformer架構,通過指令預訓練、監督微調、直接偏好優化等技術,提升了模型的指令遵循能力和安全性。具體的訓練過程和技術細節將在後續的論文中詳細介紹。
📄 許可證
本模型採用Apache License, Version 2.0許可證。
其他信息
風險和侷限性
此處發佈的模型處於我們研發的早期階段,尚未進行調整以確保輸出符合人類意圖和安全考慮。
諮詢問題
如有任何問題,請發送郵件至llm-jp(at)nii.ac.jp。
模型卡片作者
(姓名按字母順序排列)Hirokazu Kiyomaru和Takashi Kodama。



