File size: 2,854 Bytes
06fb064
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5855348
af54c8c
06fb064
 
 
 
5855348
1884d0f
da55fdd
5855348
9b784f6
5855348
9b784f6
5855348
9b784f6
5855348
9b784f6
5855348
9b784f6
5855348
 
 
 
 
 
 
9b784f6
5855348
1884d0f
e3b8de6
679b8f0
e3b8de6
679b8f0
e3b8de6
679b8f0
1884d0f
e3b8de6
679b8f0
 
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
 
3555595
0c99229
 
 
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
 
 
 
 
 
 
679b8f0
1884d0f
 
 
 
3555595
679b8f0
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
679b8f0
1884d0f
 
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
---
base_model: llm-jp/llm-jp-3-13b
tags:
- text-generation-inference
- transformers
- unsloth
- llama
- trl
license: apache-2.0
language:
- en
---

# Uploaded  model

- **Developed by:** SusumuDou
- **License:** apache-2.0
- **How to use base model:** unslothを使用し、事前学習したベースモデルを4bit量子化のqLoRA設定でロードしファインチューニング
- **Used dataset:** https://liat-aip.sakura.ne.jp/wp/llmのための日本語インストラクションデータ作成/llmのための日本語インストラクションデータ-公開/Distribution20241221_all/ichikara-instruction-003-001-1.json

This llama model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library.

[<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>](https://github.com/unslothai/unsloth)

1.ファインチューニングした本モデルを使用して推論するモデルとトークナイザを読み出すコードの例を以下に示します。

from unsloth import FastLanguageModel

model_name = "SusumuDou/llm-jp-3-13b-finetune-2"

max_seq_length = 2048

dtype = None

load_in_4bit = True

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = model_name,
    max_seq_length = max_seq_length,
    dtype = dtype,
    load_in_4bit = load_in_4bit,
    token = HF TOKEN,
)

FastLanguageModel.for_inference(model)

2.上記1の推論モデルとトークナイザを使って推論したoutput.jsonlの出力方法を以下に示します。

 モデルに推論させる入力ファイル:LLM_2024/最終課題/elyza-tasks-100-TV_0.jsonl
 
 (1) 入力ファイルの読み込みコード
  
 datasets = []
 
 with open("/content/drive/MyDrive/LLM_2024/最終課題/elyza-tasks-100-TV_0.jsonl", "r") as f:
 
    item = ""
    
    for line in f:
    
      line = line.strip()

      item += line
      
      if item.endswith("}"):
      
        datasets.append(json.loads(item))
        
        item = ""
        
 (2) 推論コード

from tqdm import tqdm

results = []

for dt in tqdm(datasets):

  input = dt["input"]

  prompt = f"""### 指示\n{input}\n### 回答\n"""

  inputs = tokenizer([prompt], return_tensors = "pt").to(model.device)

  outputs = model.generate(**inputs, max_new_tokens = 512, use_cache = True, do_sample=False, repetition_penalty=1.2)
  
  prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]

  results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
  
(3) 推論結果output.jsonlの出力コード

with open(f"output.jsonl", 'w', encoding='utf-8') as f:

    for result in results:
    
        json.dump(result, f, ensure_ascii=False)
        
        f.write('\n')