license: apache-2.0
language:
- en
- ja
programming_language:
- C
- C++
- C#
- Go
- Java
- JavaScript
- Lua
- PHP
- Python
- Ruby
- Rust
- Scala
- TypeScript
library_name: peft
pipeline_tag: text-generation
inference: false
llm-jp-13b-instruct-lora-jaster-dolly-oasst-v1.0
This repository provides large language models developed by LLM-jp, a collaborative project launched in Japan.
Pre-trained models |
llm-jp-13b-v1.0 |
llm-jp-1.3b-v1.0 |
Checkpoints format: Hugging Face Transformers (Megatron-DeepSpeed format models are available here) |
Required Libraries and Their Versions
- torch>=2.0.0
- transformers>=4.34.0
- tokenizers>=0.14.0
- accelerate==0.23.0
- peft==0.5.0
Usage
import torch
from peft import PeftModel, PeftConfig
from transformers import AutoTokenizer, AutoModelForCausalLM
peft_model_name = "llm-jp/llm-jp-13b-instruct-lora-jaster-dolly-oasst-v1.0"
tokenizer = AutoTokenizer.from_pretrained(peft_model_name)
config = PeftConfig.from_pretrained(peft_model_name)
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, device_map="auto", torch_dtype=torch.float16)
model = PeftModel.from_pretrained(model, peft_model_name)
text = "自然言語処理とは何か"
text = text + "### 回答:"
tokenized_input = tokenizer(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,
)[0]
print(tokenizer.decode(output))
Model Details
- Model type: Transformer-based Language Model
- Total seen tokens: 300B
Model | Params | Layers | Hidden size | Heads | Context length |
---|---|---|---|---|---|
13b model | 13b | 40 | 5120 | 40 | 2048 |
1.3b model | 1.3b | 24 | 2048 | 16 | 2048 |
Training
Pre-training:
- Hardware: 96 A100 40GB GPUs (mdx cluster)
- Software: Megatron-DeepSpeed
Instruction tuning:
- Hardware: 8 A100 40GB GPUs (mdx cluster)
- Software: TRL, PEFT, and DeepSpeed
Tokenizer
The tokenizer of this model is based on huggingface/tokenizers Unigram byte-fallback model.
The vocabulary entries were converted from llm-jp-tokenizer v2.1 (50k)
.
Please refer to README.md of llm-ja-tokenizer
for details on the vocabulary construction procedure.
- Model: Hugging Face Fast Tokenizer using Unigram byte-fallback model which requires
tokenizers>=0.14.0
- Training algorithm: SentencePiece Unigram byte-fallback
- Training data: A subset of the datasets for model pre-training
- Vocabulary size: 50,570 (mixed vocabulary of Japanese, English, and source code)
Datasets
Pre-training
The models have been pre-trained using a blend of the following datasets.
Language | Dataset | Tokens |
---|---|---|
Japanese | Wikipedia | 1.5B |
mC4 | 136B | |
English | Wikipedia | 5B |
The Pile | 135B | |
Codes | The Stack | 10B |
The pre-training was continuously conducted using a total of 10 folds of non-overlapping data, each consisting of approximately 27-28B tokens. We finalized the pre-training with additional (potentially) high-quality 27B tokens data obtained from the identical source datasets listed above used for the 10-fold data.
Instruction tuning
The models have been fine-tuned on the following datasets.
Language | Dataset | description |
---|---|---|
Japanese | jaster | An automatically transformed data from the existing Japanese NLP datasets |
databricks-dolly-15k | A translated one by DeepL in LLM-jp | |
OpenAssistant Conversations Dataset | A translated one by DeepL in LLM-jp |
Evaluation
You can view the evaluation results of several LLMs on this leaderboard. We used llm-jp-eval for the evaluation.
Risks and Limitations
The models released here are still in the early stages of our research and development and have not been tuned to ensure outputs align with human intent and safety considerations.
Send Questions to
llm-jp(at)nii.ac.jp
License
Model Card Authors
The names are listed in alphabetical order.
Hirokazu Kiyomaru, Hiroshi Matsuda, Jun Suzuki, Namgi Han, Saku Sugawara, Shota Sasaki, Shuhei Kurita, Taishi Nakamura, Takumi Okamoto.