🚀 llm-jp-13b-v2.0
本倉庫提供了由日本發起的合作項目 LLM-jp 開發的大語言模型。這些模型能夠處理多種語言的文本生成任務,為自然語言處理領域的研究和應用提供了強大的支持。
🚀 快速開始
本項目提供了預訓練模型和指令微調模型,你可以根據需求選擇合適的模型進行使用。以下是使用示例:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("llm-jp/llm-jp-13b-v2.0")
model = AutoModelForCausalLM.from_pretrained("llm-jp/llm-jp-13b-v2.0", device_map="auto", torch_dtype=torch.bfloat16)
text = "自然言語処理とは何か"
tokenized_input = tokenizer.encode(text, add_special_tokens=False, 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))
✨ 主要特性
- 多語言支持:支持多種編程語言,包括 C、C++、C#、Go、Java、JavaScript、Lua、PHP、Python、Ruby、Rust、Scala 和 TypeScript。
- 多種模型變體:提供指令模型和預訓練模型,滿足不同的應用場景。
- 豐富的訓練數據:使用多種數據集進行預訓練和指令微調,提高模型的性能和泛化能力。
📦 安裝指南
使用本項目的模型需要安裝以下庫及其指定版本:
- torch>=2.3.0
- transformers>=4.40.1
- tokenizers>=0.19.1
- accelerate>=0.29.3
- flash-attn>=2.5.8
你可以使用以下命令進行安裝:
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-13b-v2.0")
model = AutoModelForCausalLM.from_pretrained("llm-jp/llm-jp-13b-v2.0", device_map="auto", torch_dtype=torch.bfloat16)
text = "自然言語処理とは何か"
tokenized_input = tokenizer.encode(text, add_special_tokens=False, 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的語言模型 |
總可見令牌數 |
256B |
模型 |
參數 |
層數 |
隱藏層大小 |
頭數 |
上下文長度 |
13b模型 |
13b |
40 |
5120 |
40 |
4096 |
訓練信息
預訓練
指令微調
分詞器
本模型的分詞器基於 huggingface/tokenizers 的 Unigram byte-fallback 模型。詞彙表條目從 llm-jp-tokenizer v2.2 (100k: code20K_en40K_ja60K.ver2.2)
轉換而來。有關詞彙表構建過程的詳細信息,請參考 llm-ja-tokenizer
的 README.md(純 SentencePiece 訓練無法重現我們的詞彙表)。
- 模型:使用 Unigram byte-fallback 模型的 Hugging Face 快速分詞器
- 訓練算法:合併使用 SentencePiece Unigram byte-fallback 構建的代碼/英語/日語詞彙表,並使用 EM 算法重新估計分數。
- 訓練數據:模型預訓練數據集的一個子集
- 詞彙表大小:96,867(日語、英語和源代碼的混合詞彙表)
- 由於向上取整為 256 的倍數,預訓練模型中詞彙表的實際大小為 97,024。
數據集
預訓練
模型使用以下數據集的混合進行預訓練:
指令微調
模型在以下數據集上進行了微調:
評估
你可以在這個 排行榜 上查看多個大語言模型的評估結果。我們使用 llm-jp-eval(v1.3.0)進行評估。此外,我們還使用了大語言模型評判框架 Japanese Vicuna QA Benchmark 和 Japanese MT Bench 進行評估。詳情請參考 我們的技術博客(日語)。
🔧 技術細節
本項目的模型基於 Transformer 架構,通過大規模的預訓練和指令微調,能夠處理多種語言的文本生成任務。在預訓練階段,使用了多種語言的數據集,包括日語、英語和代碼,以提高模型的泛化能力。在指令微調階段,使用了特定的數據集和技術,以確保模型能夠更好地理解和執行指令。
📄 許可證
本項目採用 Apache 許可證 2.0 版。
模型卡片作者
姓名按字母順序排列
Namgi Han、Tatsuya Hiraoka、Hirokazu Kiyomaru、Takashi Kodama 和 Hiroshi Matsuda。
⚠️ 重要提示
這裡發佈的模型仍處於我們研發的早期階段,尚未進行調整以確保輸出符合人類意圖和安全考慮。
💡 使用建議
如果有任何問題,請發送郵件至 llm-jp(at)nii.ac.jp。