File size: 3,268 Bytes
706304d 614996e 706304d 11e2e46 706304d 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 f5ffd8f 11e2e46 f5ffd8f 11e2e46 1301820 614996e 0f9d579 11e2e46 0f9d579 614996e 11e2e46 f5ffd8f 11e2e46 f5ffd8f 11e2e46 f5ffd8f 11e2e46 f851ee7 |
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 111 |
---
library_name: peft
---
# モデル概要
[meta-llama/Llama-2-7b-hf](https://huggingface.co/meta-llama/Llama-2-7b-hf)を日本語データ([taka-yayoi/databricks-dolly-15k-ja](https://huggingface.co/datasets/taka-yayoi/databricks-dolly-15k-ja))を用いてインストラクションチューニングしました.
# 使用方法
```python
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
# モデルの読み込み
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-2-7b-hf",
quantization_config=BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
),
device_map={"":0}
)
# トークナイザーの読み込み
tokenizer = AutoTokenizer.from_pretrained(
"meta-llama/Llama-2-7b-hf"
)
# LoRAの読み込み
model = PeftModel.from_pretrained(
model,
"asaoka/Llama-2-7b-hf-qlora-dolly15k-japanese",
device_map={"":0}
)
model.eval()
# プロンプトの準備
prompt = "### Instruction: 富士山とは?\n\n### Response: "
# 推論の実行
inputs = tokenizer(prompt, return_tensors="pt").to("cuda:0")
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
使用方法は,[「Google Colab で Llama-2-7B のQLoRA ファインチューニングを試す」](https://note.com/npaka/n/na7c631175111#f2af0e53-4ef3-4288-b152-6524f1b940a7)を参照しました.
# トレーニング方法
- ファインチューニング:インストラクションチューニング + QLoRA(4bitLoRA)
- トークナイザー:[meta-llama/Llama-2-7b-hf](https://huggingface.co/meta-llama/Llama-2-7b-hf)のトークナイザーをそのまま使用
## Training procedure
The following `bitsandbytes` quantization config was used during training:
- quant_method: bitsandbytes
- load_in_8bit: False
- load_in_4bit: True
- llm_int8_threshold: 6.0
- llm_int8_skip_modules: None
- llm_int8_enable_fp32_cpu_offload: False
- llm_int8_has_fp16_weight: False
- bnb_4bit_quant_type: nf4
- bnb_4bit_use_double_quant: True
- bnb_4bit_compute_dtype: bfloat16
### Framework versions
- PEFT 0.5.0
# JGLUEスコア
| タスク | Llama-2-7b-hf | This Model |
|:-|:-|:-|
| jcommonsenseqa-1.1-0.6(acc) | 0.7274 | 0.7060 |
[JGLUEスコア](https://aclanthology.org/2022.lrec-1.317/)は,Stability AI社の[lm-evaluation-harness](https://github.com/Stability-AI/lm-evaluation-harness)を用いて
算出しました.JGLUEスコアの算出に用いたスクリプトを下記に示します.
- Llama-2-7b-hf
```bash
!python main.py \
--model hf-causal-experimental \
--model_args pretrained=meta-llama/Llama-2-7b-hf \
--tasks jcommonsenseqa-1.1-0.6 \
--num_fewshot 3 \
--device cuda \
--output_path ./results.json
```
- This Model
```bash
!python main.py \
--model hf-causal-experimental \
--model_args pretrained=meta-llama/Llama-2-7b-hf,peft=asaoka/Llama-2-7b-hf-qlora-dolly15k-japanese \
--tasks jcommonsenseqa-1.1-0.6 \
--num_fewshot 3 \
--device cuda \
--output_path ./results.json
```
|