|
--- |
|
language: |
|
- ja |
|
tags: |
|
- japanese-stablelm |
|
- causal-lm |
|
pipeline_tag: text-generation |
|
license: apache-2.0 |
|
--- |
|
|
|
# Japanese StableLM-3B-4E1T Instruct |
|
|
|
## Model Description |
|
|
|
This is a 3B-parameter decoder-only Japanese language model fine-tuned on instruction-following datasets, built on top of the base model [Japanese StableLM-3B-4E1T Base](https://huggingface.co/stabilityai/japanese-stablelm-3b-4e1t-base). |
|
|
|
## Usage |
|
|
|
```python |
|
import torch |
|
from transformers import LlamaTokenizer, AutoModelForCausalLM |
|
|
|
tokenizer = AutoTokenizer.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-instruct") |
|
model = AutoModelForCausalLM.from_pretrained( |
|
"stabilityai/japanese-stablelm-3b-4e1t-instruct", |
|
trust_remote_code=True, |
|
torch_dtype="auto", |
|
) |
|
model.eval() |
|
|
|
if torch.cuda.is_available(): |
|
model = model.to("cuda") |
|
|
|
def build_prompt(user_query, inputs="", sep="\n\n### "): |
|
sys_msg = "ไปฅไธใฏใใฟในใฏใ่ชฌๆใใๆ็คบใจใๆ่ใฎใใๅ
ฅๅใฎ็ตใฟๅใใใงใใ่ฆๆฑใ้ฉๅใซๆบใใๅฟ็ญใๆธใใชใใใ" |
|
p = sys_msg |
|
roles = ["ๆ็คบ", "ๅฟ็ญ"] |
|
msgs = [": \n" + user_query, ": \n"] |
|
if inputs: |
|
roles.insert(1, "ๅ
ฅๅ") |
|
msgs.insert(1, ": \n" + inputs) |
|
for role, msg in zip(roles, msgs): |
|
p += sep + role + msg |
|
return p |
|
|
|
# Infer with prompt without any additional input |
|
user_inputs = { |
|
"user_query": "ไธใใใใใใจใใใฎๆๅณใๅฐๅญฆ็ใงใๅใใใใใซๆใใฆใใ ใใใ", |
|
"inputs": "ๆ
ใใฏไบบใฎใใใชใใ" |
|
} |
|
prompt = build_prompt(**user_inputs) |
|
|
|
input_ids = tokenizer.encode( |
|
prompt, |
|
add_special_tokens=False, |
|
return_tensors="pt" |
|
) |
|
|
|
tokens = model.generate( |
|
input_ids.to(device=model.device), |
|
max_new_tokens=256, |
|
temperature=1, |
|
top_p=0.95, |
|
do_sample=True, |
|
) |
|
|
|
out = tokenizer.decode(tokens[0][input_ids.shape[1]:], skip_special_tokens=True).strip() |
|
print(out) |
|
``` |
|
|
|
## Model Details |
|
|
|
* **Developed by**: [Stability AI](https://stability.ai/) |
|
* **Model type**: `Japanese StableLM-3B-4E1T Instruct` model is an auto-regressive language model based on the transformer decoder architecture. |
|
* **Language(s)**: Japanese |
|
* **License**: This model is licensed under [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). |
|
* **Contact**: For questions and comments about the model, please email `lm@stability.ai` |
|
|
|
### Model Architecture |
|
|
|
The model is a decoder-only transformer similar to the LLaMA ([Touvron et al., 2023](https://arxiv.org/abs/2307.09288)) architecture with the following modifications: |
|
|
|
| Parameters | Hidden Size | Layers | Heads | Sequence Length | |
|
|----------------|-------------|--------|-------|-----------------| |
|
| 2,795,443,200 | 2560 | 32 | 32 | 4096 | |
|
|
|
* **Position Embeddings**: Rotary Position Embeddings ([Su et al., 2021](https://arxiv.org/abs/2104.09864)) applied to the first 25% of head embedding dimensions for improved throughput following [Black et al. (2022)](https://arxiv.org/pdf/2204.06745.pdf). |
|
* **Normalization**: LayerNorm ([Ba et al., 2016](https://arxiv.org/abs/1607.06450)) with learned bias terms as opposed to RMSNorm ([Zhang & Sennrich, 2019](https://arxiv.org/abs/1910.07467)). |
|
* **Tokenizer**: GPT-NeoX ([Black et al., 2022](https://arxiv.org/abs/2204.06745)). |
|
|
|
|
|
### Training Datasets |
|
|
|
- [Japanese translation of the Databricks Dolly-15k dataset](https://huggingface.co/datasets/kunishou/databricks-dolly-15k-ja) |
|
- [Japanese translation of the subset of the Anthropic HH dataset](https://huggingface.co/datasets/fujiki/japanese_hh-rlhf-49k) |
|
- [Wikinews](https://ja.wikinews.org/wi) [subset](https://huggingface.co/datasets/fujiki/llm-japanese-dataset_wikinews) of the [izumi-lab/llm-japanese-dataset](https://huggingface.co/datasets/izumi-lab/llm-japanese-dataset) |
|
|
|
|
|
|
|
## Use and Limitations |
|
|
|
### Intended Use |
|
|
|
The model is intended to be used by all individuals as a foundational model for application-specific fine-tuning without strict limitations on commercial use. |
|
|
|
### Limitations and bias |
|
|
|
The pre-training dataset may have contained offensive or inappropriate content even after applying data cleansing filters which can be reflected in the model-generated text. We recommend users exercise reasonable caution when using these models in production systems. Do not use the model for any applications that may cause harm or distress to individuals or groups. |
|
|
|
|
|
## Acknowledgements |
|
|
|
We are grateful for the contributions of the EleutherAI Polyglot-JA team in helping us to collect a large amount of pre-training data in Japanese. Polyglot-JA members includes Hyunwoong Ko (Project Lead), Fujiki Nakamura (originally started this project when he commited to the Polyglot team), Yunho Mo, Minji Jung, KeunSeok Im, and Su-Kyeong Jang. |
|
|
|
We are also appreciative of [AI Novelist/Sta (Bit192, Inc.)](https://ai-novel.com/index.php) and the numerous contributors from [Stable Community Japan](https://discord.gg/VPrcE475HB) for assisting us in gathering a large amount of high-quality Japanese textual data for model training. |
|
|
|
|