Update README.md
Browse files
README.md
CHANGED
@@ -13,7 +13,6 @@ base_model:
|
|
13 |
前提:Google Colab上での実行想定します。
|
14 |
|
15 |
## 必要なライブラリのインストール
|
16 |
-
|
17 |
```python
|
18 |
!pip install -U bitsandbytes
|
19 |
!pip install -U transformers
|
@@ -22,6 +21,7 @@ base_model:
|
|
22 |
!pip install -U peft
|
23 |
```
|
24 |
## 必要なライブラリの読み込み
|
|
|
25 |
from transformers import (
|
26 |
AutoModelForCausalLM,
|
27 |
AutoTokenizer,
|
@@ -31,13 +31,16 @@ from peft import PeftModel
|
|
31 |
import torch
|
32 |
from tqdm import tqdm
|
33 |
import json
|
|
|
34 |
|
35 |
## ベースモデル、LoRAアダプタの指定
|
|
|
36 |
base_model_id = "llm-jp/llm-jp-3-13b"
|
37 |
adapter_id = "arbk/llm_jp_3_13b_finetune_30"
|
38 |
-
|
39 |
|
40 |
## ベースモデルとトークナイザーの読み込み
|
|
|
41 |
from huggingface_hub import login
|
42 |
HF_TOKEN = "Your_Token" # 自身のhuggingfaceのトークンを入力
|
43 |
login(token=HF_TOKEN)
|
@@ -56,11 +59,14 @@ model = AutoModelForCausalLM.from_pretrained(
|
|
56 |
)
|
57 |
|
58 |
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True, token = HF_TOKEN)
|
|
|
59 |
|
60 |
## 元のモデルにLoRAのアダプタを統合。
|
|
|
61 |
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
62 |
-
|
63 |
## タスクとなるデータの読み込み。
|
|
|
64 |
datasets = []
|
65 |
with open("file_name", "r") as f: # file_nameにファイル名を入力。事前に自身のカレントディレクトリにファイルをアップロードしてください。
|
66 |
item = ""
|
@@ -70,9 +76,10 @@ with open("file_name", "r") as f: # file_nameにファイル名を入力。事
|
|
70 |
if item.endswith("}"):
|
71 |
datasets.append(json.loads(item))
|
72 |
item = ""
|
73 |
-
|
74 |
|
75 |
## モデルを用いてタスクの推論。
|
|
|
76 |
results = []
|
77 |
for data in tqdm(datasets):
|
78 |
|
@@ -97,11 +104,15 @@ for data in tqdm(datasets):
|
|
97 |
output = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True)
|
98 |
|
99 |
results.append({"task_id": data["task_id"], "input": input, "output": output})
|
100 |
-
|
101 |
## 結果をjsonl形式で保存。
|
|
|
102 |
import re
|
103 |
jsonl_id = re.sub(".*/", "", adapter_id) # デフォルトではadapter_id用いたファイル名になります。必要に応じて変更してください。
|
104 |
with open(f"./{jsonl_id}-outputs.jsonl", 'w', encoding='utf-8') as f:
|
105 |
for result in results:
|
106 |
json.dump(result, f, ensure_ascii=False)
|
107 |
f.write('\n')
|
|
|
|
|
|
|
|
13 |
前提:Google Colab上での実行想定します。
|
14 |
|
15 |
## 必要なライブラリのインストール
|
|
|
16 |
```python
|
17 |
!pip install -U bitsandbytes
|
18 |
!pip install -U transformers
|
|
|
21 |
!pip install -U peft
|
22 |
```
|
23 |
## 必要なライブラリの読み込み
|
24 |
+
```python
|
25 |
from transformers import (
|
26 |
AutoModelForCausalLM,
|
27 |
AutoTokenizer,
|
|
|
31 |
import torch
|
32 |
from tqdm import tqdm
|
33 |
import json
|
34 |
+
```
|
35 |
|
36 |
## ベースモデル、LoRAアダプタの指定
|
37 |
+
```python
|
38 |
base_model_id = "llm-jp/llm-jp-3-13b"
|
39 |
adapter_id = "arbk/llm_jp_3_13b_finetune_30"
|
40 |
+
```
|
41 |
|
42 |
## ベースモデルとトークナイザーの読み込み
|
43 |
+
```python
|
44 |
from huggingface_hub import login
|
45 |
HF_TOKEN = "Your_Token" # 自身のhuggingfaceのトークンを入力
|
46 |
login(token=HF_TOKEN)
|
|
|
59 |
)
|
60 |
|
61 |
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True, token = HF_TOKEN)
|
62 |
+
```
|
63 |
|
64 |
## 元のモデルにLoRAのアダプタを統合。
|
65 |
+
```python
|
66 |
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
67 |
+
```
|
68 |
## タスクとなるデータの読み込み。
|
69 |
+
```python
|
70 |
datasets = []
|
71 |
with open("file_name", "r") as f: # file_nameにファイル名を入力。事前に自身のカレントディレクトリにファイルをアップロードしてください。
|
72 |
item = ""
|
|
|
76 |
if item.endswith("}"):
|
77 |
datasets.append(json.loads(item))
|
78 |
item = ""
|
79 |
+
```
|
80 |
|
81 |
## モデルを用いてタスクの推論。
|
82 |
+
```python
|
83 |
results = []
|
84 |
for data in tqdm(datasets):
|
85 |
|
|
|
104 |
output = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True)
|
105 |
|
106 |
results.append({"task_id": data["task_id"], "input": input, "output": output})
|
107 |
+
```
|
108 |
## 結果をjsonl形式で保存。
|
109 |
+
```python
|
110 |
import re
|
111 |
jsonl_id = re.sub(".*/", "", adapter_id) # デフォルトではadapter_id用いたファイル名になります。必要に応じて変更してください。
|
112 |
with open(f"./{jsonl_id}-outputs.jsonl", 'w', encoding='utf-8') as f:
|
113 |
for result in results:
|
114 |
json.dump(result, f, ensure_ascii=False)
|
115 |
f.write('\n')
|
116 |
+
```
|
117 |
+
|
118 |
+
以上
|