File size: 3,135 Bytes
706304d 614996e 706304d 11e2e46 706304d 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 bf77b45 11e2e46 1301820 614996e 0f9d579 11e2e46 0f9d579 614996e 11e2e46 |
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 |
---
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)
- トークナイザー: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 | ? |
[JGLUEスコア](https://aclanthology.org/2022.lrec-1.317/)は,Stability AI社の[lm-evaluation-harness](https://github.com/Stability-AI/lm-evaluation-harness)を用いて
算出しました.JGLUEスコアの算出に用いたスクリプトを下記に示します.
```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
```
```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
```
|