File size: 3,332 Bytes
7f12c11 1bd9928 a3ffe6b 1bd9928 a3ffe6b 7f12c11 30f10c1 7f12c11 a6258d3 bb58bd2 2d67a61 bb58bd2 21ae24e bb58bd2 725e05e b42855b 725e05e ad7d465 8d6371f ad7d465 725e05e ad7d465 725e05e 2d67a61 ad7d465 4b45e82 fc475a3 7f12c11 4b45e82 fc475a3 2d67a61 70c643c 4b45e82 7f12c11 4b45e82 7f12c11 4b45e82 2d67a61 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
---
language:
- en
- ja
license: other
library_name: transformers
tags:
- facebook
- meta
- pytorch
- llama
- llama-3
datasets:
- cl-nagoya/auto-wiki-qa
- llm-jp/databricks-dolly-15k-ja
license_name: llama3
license_link: LICENSE
---
# 日本語向け Llama 3 8B
![eyecatch](eyecatch.webp)
# はじめに
このリポジトリはLlama 3を日本語化しようとしたモデルのリポジトリです。4/23に更新したため、新しくダウンロードすることをオススメします。
# ライセンス
[Llama 3 ライセンス](LICENSE)なので商用利用可能です。ただし、Llama 3ライセンスをよく読んで使ってください。
# 使い方
手っ取り早くやるなら[デモ](https://huggingface.co/spaces/alfredplpl/Llama-3-8B-Instruct-Ja-Demo)を使ってください。次点は[Colab](https://colab.research.google.com/drive/1le0T54BOr72dFeeCFtKxcTDBdIrnr7f6?usp=sharing)がおすすめです。
ローカルでやる場合は次のとおりです。
まず、ライブラリを次のようにインストールします。
```bash
pip install -U transformers accelerate
```
その後、以下のコードを実行してください。
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("alfredplpl/Llama-3-8B-Instruct-Ja")
model = AutoModelForCausalLM.from_pretrained("alfredplpl/Llama-3-8B-Instruct-Ja", device_map="auto", torch_dtype=torch.bfloat16)
# プロンプトの準備
messages = [
{
'role': "system",
'content': "あなたは日本語で回答するAIアシスタントです。"
},
{
'role': "user",
'content': "猫と犬、どっちが好き?"
}
]
prompt=tokenizer.apply_chat_template(messages, tokenize=False)
# 推論の実行
input_ids = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**input_ids,
max_new_tokens=128,
do_sample=True,
top_p=0.95,
temperature=0.2,
repetition_penalty=1.1,
eos_token_id=[
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
],
)
print(tokenizer.decode(outputs[0]))
```
次のような結果が得られるはずです。
```python
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
あなたは日本語で回答するAIアシスタントです。<|eot_id|><|start_header_id|>user<|end_header_id|>
猫と犬、どっちが好き?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
猫と犬の両方を飼っているので、どちらも好きだ!<|eot_id|>
```
# 学習データ
- llm-jp/databricks-dolly-15k-ja
- cl-nagoya/auto-wiki-qa
- meta-llama/Meta-Llama-3-8B-Instruct
# 学習方法
meta-llama/Meta-Llama-3-8B-Instructに対して、cl-nagoya/auto-wiki-qaにある約240万件の学習データでLoRAによるインストラクションチューニングを1epoch行い、LoRAをマージしました。
その後、そのモデルに対して、llm-jp/databricks-dolly-15k-jaでLoRAによるインストラクションチューニングを5epoch行い、LoRAをマージしました。
これらの学習はすべて教師あり学習で行いました。
# ハードウェア
- NVIDIA A6000x2
# ソフトウェア
- transformers
- trl
# 学習時間
- 60 GPU hours |