Update README.md
Browse files
README.md
CHANGED
@@ -18,17 +18,26 @@ base_model: llm-jp/llm-jp-3-13b
|
|
18 |
|
19 |
This llama model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library.
|
20 |
|
21 |
-
|
22 |
-
本コードはunslothで学習したqLoRAのアダプタを用いてELYZA-tasks-100-TVの出力を得るためのコードです。<br>
|
23 |
-
松尾研大規模言語モデル講座2024のコンペ用の提出モデル作成の一環として作成・公開しています。<br>
|
24 |
-
このコードはunslothライブラリを用いてモデルを読み込み、推論するためのコードとなります。
|
25 |
|
26 |
-
|
27 |
|
28 |
-
|
29 |
-
Hugging Faceのアクセストークン (HF_TOKEN) が取得済みであること
|
30 |
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
```
|
33 |
%%capture
|
34 |
!pip install unsloth
|
@@ -36,7 +45,7 @@ Hugging Faceのアクセストークン (HF_TOKEN) が取得済みであるこ
|
|
36 |
!pip install -U torch
|
37 |
!pip install -U peft
|
38 |
```
|
39 |
-
|
40 |
```
|
41 |
from unsloth import FastLanguageModel
|
42 |
from peft import PeftModel
|
@@ -45,12 +54,12 @@ import json
|
|
45 |
from tqdm import tqdm
|
46 |
import re
|
47 |
```
|
48 |
-
|
49 |
```
|
50 |
model_id = "llm-jp/llm-jp-3-13b"
|
51 |
adapter_id = "tokushi/llm-jp-3-13b-it_lora"
|
52 |
```
|
53 |
-
|
54 |
```
|
55 |
HF_TOKEN = "Hugging Face Tokenを入力"
|
56 |
|
@@ -65,11 +74,11 @@ model, tokenizer = FastLanguageModel.from_pretrained(
|
|
65 |
trust_remote_code=True,
|
66 |
)
|
67 |
```
|
68 |
-
|
69 |
```
|
70 |
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
71 |
```
|
72 |
-
|
73 |
./elyza-tasks-100-TV_0.jsonlというファイルからデータセットをロードします。
|
74 |
事前にデータをアップロードしてください。
|
75 |
```
|
@@ -84,7 +93,7 @@ with open("/content/elyza-tasks-100-TV_0.jsonl", "r") as f:
|
|
84 |
item = ""
|
85 |
|
86 |
```
|
87 |
-
|
88 |
```
|
89 |
FastLanguageModel.for_inference(model)
|
90 |
|
@@ -101,7 +110,7 @@ for dt in tqdm(datasets):
|
|
101 |
|
102 |
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
|
103 |
```
|
104 |
-
|
105 |
最後に、adapter_idをベースにしたファイル名でJSONL形式の出力ファイルを保存します。
|
106 |
```
|
107 |
json_file_id = re.sub(".*/", "", adapter_id)
|
|
|
18 |
|
19 |
This llama model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library.
|
20 |
|
21 |
+
## 使い方
|
|
|
|
|
|
|
22 |
|
23 |
+
本コードはunslothで学習したqLoRAのアダプタを用いてELYZA-tasks-100-TVの出力を得るためのコードです。松尾研大規模言語モデル講座2024のコンペ用の提出モデル作成の一環として作成・公開しています。このコードはunslothライブラリを用いてモデルを読み込み、推論するためのコードとなります。
|
24 |
|
25 |
+
### 前提条件
|
|
|
26 |
|
27 |
+
- Python環境があること(例: Google Colab)
|
28 |
+
- Hugging Faceのアクセストークン (HF_TOKEN) が取得済みであること
|
29 |
+
|
30 |
+
### 使用方法
|
31 |
+
|
32 |
+
1. 必要なライブラリをインストール
|
33 |
+
2. ベースモデルとLoRAアダプタを読み込み
|
34 |
+
3. 入力データの準備
|
35 |
+
4. モデルを用いてタスクの推論
|
36 |
+
5. 結果をJSONL形式で保存
|
37 |
+
|
38 |
+
詳細な使用手順はコード内のコメントを参照してください。
|
39 |
+
|
40 |
+
### 必要なライブラリをインストール
|
41 |
```
|
42 |
%%capture
|
43 |
!pip install unsloth
|
|
|
45 |
!pip install -U torch
|
46 |
!pip install -U peft
|
47 |
```
|
48 |
+
### 必要なライブラリを読み込み
|
49 |
```
|
50 |
from unsloth import FastLanguageModel
|
51 |
from peft import PeftModel
|
|
|
54 |
from tqdm import tqdm
|
55 |
import re
|
56 |
```
|
57 |
+
### ベースとなるモデルと学習したLoRAのアダプタ(Hugging FaceのIDを指定)。
|
58 |
```
|
59 |
model_id = "llm-jp/llm-jp-3-13b"
|
60 |
adapter_id = "tokushi/llm-jp-3-13b-it_lora"
|
61 |
```
|
62 |
+
### Hugging Face Token を指定。
|
63 |
```
|
64 |
HF_TOKEN = "Hugging Face Tokenを入力"
|
65 |
|
|
|
74 |
trust_remote_code=True,
|
75 |
)
|
76 |
```
|
77 |
+
### 元のモデルにLoRAのアダプタを統合。
|
78 |
```
|
79 |
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
80 |
```
|
81 |
+
### 入力データの準備
|
82 |
./elyza-tasks-100-TV_0.jsonlというファイルからデータセットをロードします。
|
83 |
事前にデータをアップロードしてください。
|
84 |
```
|
|
|
93 |
item = ""
|
94 |
|
95 |
```
|
96 |
+
### モデルを用いてタスクの推論。
|
97 |
```
|
98 |
FastLanguageModel.for_inference(model)
|
99 |
|
|
|
110 |
|
111 |
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
|
112 |
```
|
113 |
+
### 結果をjsonlで保存。
|
114 |
最後に、adapter_idをベースにしたファイル名でJSONL形式の出力ファイルを保存します。
|
115 |
```
|
116 |
json_file_id = re.sub(".*/", "", adapter_id)
|