🚀 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。