Update README.md
Browse files
README.md
CHANGED
@@ -1,43 +1,48 @@
|
|
1 |
---
|
2 |
base_model: llm-jp/llm-jp-3-13b
|
3 |
-
tags:
|
4 |
-
- text-generation-inference
|
5 |
-
- transformers
|
6 |
-
- unsloth
|
7 |
-
- llama
|
8 |
-
- trl
|
9 |
-
language:
|
10 |
-
- en
|
11 |
-
- ja
|
12 |
---
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
# 推論用コード
|
15 |
-
|
16 |
-
このコードで生成されたjsonlファイルは課題の成果として提出可能なフォーマットになっております。
|
17 |
|
|
|
|
|
|
|
18 |
```
|
19 |
!pip install unsloth
|
20 |
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
|
21 |
!pip install -U torch
|
22 |
!pip install -U peft
|
23 |
-
```
|
24 |
-
|
25 |
-
# モデル・トークナイザの読み込み
|
26 |
-
```
|
27 |
from unsloth import FastLanguageModel
|
28 |
from peft import PeftModel
|
29 |
import torch
|
30 |
import json
|
31 |
from tqdm import tqdm
|
32 |
import re
|
|
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
HF_TOKEN = "your-token" #@param {type:"string"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
dtype = None
|
40 |
-
load_in_4bit = True
|
41 |
|
42 |
model, tokenizer = FastLanguageModel.from_pretrained(
|
43 |
model_name=model_id,
|
@@ -49,7 +54,7 @@ model, tokenizer = FastLanguageModel.from_pretrained(
|
|
49 |
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
50 |
```
|
51 |
|
52 |
-
|
53 |
```
|
54 |
datasets = []
|
55 |
with open("./elyza-tasks-100-TV_0.jsonl", "r") as f:
|
@@ -62,7 +67,7 @@ with open("./elyza-tasks-100-TV_0.jsonl", "r") as f:
|
|
62 |
item = ""
|
63 |
```
|
64 |
|
65 |
-
|
66 |
```
|
67 |
FastLanguageModel.for_inference(model)
|
68 |
|
@@ -86,7 +91,7 @@ for dt in tqdm(datasets):
|
|
86 |
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
|
87 |
```
|
88 |
|
89 |
-
|
90 |
```
|
91 |
json_file_id = re.sub(".*/", "", adapter_id)
|
92 |
with open(f"/content/{json_file_id}_output.jsonl", 'w', encoding='utf-8') as f:
|
|
|
1 |
---
|
2 |
base_model: llm-jp/llm-jp-3-13b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
---
|
4 |
|
5 |
+
# モデルの概要
|
6 |
+
このモデルは、松尾研大規模言語モデル講座2024の最終課題として作成された提出モデルです。
|
7 |
+
ベースとなるモデルは「llm-jp/llm-jp-3-13b」です。このベースモデルを元に以下のデータセットを用いて追加学習を行いました。
|
8 |
+
・ichikara-Instruction
|
9 |
+
・ELIZA-task-100
|
10 |
+
これらのデータセットを活用することで、モデルの指示対応能力とタスク処理能力を向上させています。
|
11 |
+
|
12 |
# 推論用コード
|
13 |
+
以下のコードを実行すると、HuggingFace上の本モデル「Gamoooo/llm-jp-3-13b-last」を実行して、最終課題用入力データ「elyza-tasks-100-TV_0.jsonl」(課題用オリジナルデータセット)を推論し、その結果を{json_file_id}-outputs.jsonlというファイルに出力できます。
|
|
|
14 |
|
15 |
+
### ライブラリーのインストール&セットアップ
|
16 |
+
### Google Colab環境向けインストール手順
|
17 |
+
以下のコマンドをGoogle Colabのセルに入力して実行してください:
|
18 |
```
|
19 |
!pip install unsloth
|
20 |
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
|
21 |
!pip install -U torch
|
22 |
!pip install -U peft
|
|
|
|
|
|
|
|
|
23 |
from unsloth import FastLanguageModel
|
24 |
from peft import PeftModel
|
25 |
import torch
|
26 |
import json
|
27 |
from tqdm import tqdm
|
28 |
import re
|
29 |
+
```
|
30 |
|
31 |
+
### Hugging FaceのTokenの指定
|
32 |
+
以下のコードを使用して、Hugging Faceのトークンを指定してください:
|
33 |
+
```
|
34 |
HF_TOKEN = "your-token" #@param {type:"string"}
|
35 |
+
```
|
36 |
+
|
37 |
+
### モデル・トークナイザの読み込み
|
38 |
+
### 量子化パラメータの設定
|
39 |
+
ベースモデルは13Bの大規模モデルであるため、量子化(4bit)を行います。
|
40 |
+
```
|
41 |
+
model_id = "llm-jp/llm-jp-3-13b" # ベースモデルのID
|
42 |
+
adapter_id = "Gamoooo/llm-jp-3-13b-last" # 本モデルのアダプタモデルID
|
43 |
|
44 |
dtype = None
|
45 |
+
load_in_4bit = True # メモリ効率化のため4bit量子化を有効化
|
46 |
|
47 |
model, tokenizer = FastLanguageModel.from_pretrained(
|
48 |
model_name=model_id,
|
|
|
54 |
model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
|
55 |
```
|
56 |
|
57 |
+
### 入力データの準備
|
58 |
```
|
59 |
datasets = []
|
60 |
with open("./elyza-tasks-100-TV_0.jsonl", "r") as f:
|
|
|
67 |
item = ""
|
68 |
```
|
69 |
|
70 |
+
### 推論実行
|
71 |
```
|
72 |
FastLanguageModel.for_inference(model)
|
73 |
|
|
|
91 |
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
|
92 |
```
|
93 |
|
94 |
+
### 出力の保存
|
95 |
```
|
96 |
json_file_id = re.sub(".*/", "", adapter_id)
|
97 |
with open(f"/content/{json_file_id}_output.jsonl", 'w', encoding='utf-8') as f:
|