File size: 3,453 Bytes
7f12c11 1bd9928 a3ffe6b 1bd9928 a3ffe6b 7f12c11 30f10c1 7f12c11 a6258d3 bb58bd2 742b09e bb58bd2 21ae24e bb58bd2 725e05e b42855b 725e05e ad7d465 8d6371f ad7d465 725e05e ad7d465 725e05e ad7d465 4b45e82 fc475a3 7f12c11 4b45e82 fc475a3 70c643c 4b45e82 7f12c11 4b45e82 7f12c11 4b45e82 1bd9928 |
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 110 |
---
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
pipeline_tag: text-generation
license_name: llama3
license_link: LICENSE
---
# 日本語向け Llama 3 8B
![eyecatch](eyecatch.webp)
# はじめに
このリポジトリはLlama 3を日本語化しようとしたモデルのリポジトリです。
# ライセンス
[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によるインストラクションチューニングを1epoch行い、LoRAをマージしました。
これらの学習はすべて教師あり学習で行いました。
# ハードウェア
- NVIDIA A6000x2
# ソフトウェア
- transformers
- trl
# 学習時間
- 50 GPU hours |