Update README.md
Browse files
README.md
CHANGED
@@ -27,16 +27,16 @@ Hugging Faceにアダプタをアップロードしてあることが前提と
|
|
27 |
|
28 |
※本コードはGoogle Colabでの動作を想定しています。
|
29 |
|
30 |
-
```
|
31 |
# 必要なライブラリをインストール
|
|
|
32 |
%%capture
|
33 |
!pip install unsloth
|
34 |
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
|
35 |
!pip install -U torch
|
36 |
!pip install -U peft
|
37 |
```
|
38 |
-
```
|
39 |
# 必要なライブラリを読み込み
|
|
|
40 |
from unsloth import FastLanguageModel
|
41 |
from peft import PeftModel
|
42 |
import torch
|
@@ -44,15 +44,13 @@ import json
|
|
44 |
from tqdm import tqdm
|
45 |
import re
|
46 |
```
|
47 |
-
```
|
48 |
# ベースとなるモデルと学習したLoRAのアダプタ(Hugging FaceのIDを指定)。
|
49 |
-
model_id = "llm-jp/llm-jp-3-13b"
|
50 |
-
adapter_id = "tokushi"
|
51 |
```
|
|
|
|
|
52 |
```
|
53 |
# Hugging Face Token を指定。
|
54 |
-
|
55 |
-
# https://huggingface.co/settings/tokens
|
56 |
HF_TOKEN = "Hugging Face Tokenを入力"
|
57 |
|
58 |
# unslothのFastLanguageModelで元のモデルをロード。
|
@@ -66,15 +64,13 @@ model, tokenizer = FastLanguageModel.from_pretrained(
|
|
66 |
trust_remote_code=True,
|
67 |
)
|
68 |
```
|
|
|
69 |
```
|
70 |
-
adapter_id =
|
71 |
```
|
|
|
|
|
72 |
```
|
73 |
-
# 元のモデルにLoRAのアダプタを統合。
|
74 |
-
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
75 |
-
|
76 |
-
# タスクとなるデータの読み込み。
|
77 |
-
# 事前にデータをアップロードしてください。
|
78 |
datasets = []
|
79 |
with open("/content/elyza-tasks-100-TV_0.jsonl", "r") as f:
|
80 |
item = ""
|
@@ -85,10 +81,9 @@ with open("/content/elyza-tasks-100-TV_0.jsonl", "r") as f:
|
|
85 |
datasets.append(json.loads(item))
|
86 |
item = ""
|
87 |
|
88 |
-
```
|
89 |
```
|
90 |
# モデルを用いてタスクの推論。
|
91 |
-
|
92 |
FastLanguageModel.for_inference(model)
|
93 |
|
94 |
results = []
|
@@ -104,9 +99,9 @@ for dt in tqdm(datasets):
|
|
104 |
|
105 |
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
|
106 |
```
|
107 |
-
```
|
108 |
# 結果をjsonlで保存。
|
109 |
-
|
|
|
110 |
json_file_id = re.sub(".*/", "", adapter_id)
|
111 |
with open(f"/content/{json_file_id}_output.jsonl", 'w', encoding='utf-8') as f:
|
112 |
for result in results:
|
|
|
27 |
|
28 |
※本コードはGoogle Colabでの動作を想定しています。
|
29 |
|
|
|
30 |
# 必要なライブラリをインストール
|
31 |
+
```
|
32 |
%%capture
|
33 |
!pip install unsloth
|
34 |
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
|
35 |
!pip install -U torch
|
36 |
!pip install -U peft
|
37 |
```
|
|
|
38 |
# 必要なライブラリを読み込み
|
39 |
+
```
|
40 |
from unsloth import FastLanguageModel
|
41 |
from peft import PeftModel
|
42 |
import torch
|
|
|
44 |
from tqdm import tqdm
|
45 |
import re
|
46 |
```
|
|
|
47 |
# ベースとなるモデルと学習したLoRAのアダプタ(Hugging FaceのIDを指定)。
|
|
|
|
|
48 |
```
|
49 |
+
model_id = "llm-jp/llm-jp-3-13b"
|
50 |
+
adapter_id = "tokushi/llm-jp-3-13b-it_lora"
|
51 |
```
|
52 |
# Hugging Face Token を指定。
|
53 |
+
```
|
|
|
54 |
HF_TOKEN = "Hugging Face Tokenを入力"
|
55 |
|
56 |
# unslothのFastLanguageModelで元のモデルをロード。
|
|
|
64 |
trust_remote_code=True,
|
65 |
)
|
66 |
```
|
67 |
+
# 元のモデルにLoRAのアダプタを統合。
|
68 |
```
|
69 |
+
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
70 |
```
|
71 |
+
# 入力データの準備
|
72 |
+
./elyza-tasks-100-TV_0.jsonlというファイルからデータセットをロードします。
|
73 |
```
|
|
|
|
|
|
|
|
|
|
|
74 |
datasets = []
|
75 |
with open("/content/elyza-tasks-100-TV_0.jsonl", "r") as f:
|
76 |
item = ""
|
|
|
81 |
datasets.append(json.loads(item))
|
82 |
item = ""
|
83 |
|
|
|
84 |
```
|
85 |
# モデルを用いてタスクの推論。
|
86 |
+
```
|
87 |
FastLanguageModel.for_inference(model)
|
88 |
|
89 |
results = []
|
|
|
99 |
|
100 |
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
|
101 |
```
|
|
|
102 |
# 結果をjsonlで保存。
|
103 |
+
最後に、adapter_idをベースにしたファイル名でJSONL形式の出力ファイルを保存します。
|
104 |
+
```
|
105 |
json_file_id = re.sub(".*/", "", adapter_id)
|
106 |
with open(f"/content/{json_file_id}_output.jsonl", 'w', encoding='utf-8') as f:
|
107 |
for result in results:
|