Transformers
Safetensors
Inference Endpoints
sonodd commited on
Commit
2e747e8
1 Parent(s): 8438f09

Updating Read.ME

Browse files
Files changed (1) hide show
  1. README.md +124 -42
README.md CHANGED
@@ -1,35 +1,33 @@
1
  ---
2
  library_name: transformers
3
- tags: []
 
 
 
 
4
  ---
5
 
6
- # Model Card for Model ID
7
-
8
- <!-- Provide a quick summary of what the model is/does. -->
9
-
10
-
11
 
12
  ## Model Details
13
 
14
  ### Model Description
15
-
16
- <!-- Provide a longer summary of what this model is. -->
17
-
18
- This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
19
-
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
27
 
28
  ### Model Sources [optional]
29
 
30
- <!-- Provide the basic links for the model. -->
31
-
32
- - **Repository:** [More Information Needed]
33
  - **Paper [optional]:** [More Information Needed]
34
  - **Demo [optional]:** [More Information Needed]
35
 
@@ -38,38 +36,122 @@ This is the model card of a 🤗 transformers model that has been pushed on the
38
  <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
39
 
40
  ### Direct Use
41
-
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
-
44
- [More Information Needed]
45
 
46
  ### Downstream Use [optional]
47
-
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
-
50
- [More Information Needed]
51
 
52
  ### Out-of-Scope Use
53
-
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
55
-
56
- [More Information Needed]
57
 
58
  ## Bias, Risks, and Limitations
59
-
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
-
62
- [More Information Needed]
63
 
64
  ### Recommendations
65
-
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
-
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
 
70
  ## How to Get Started with the Model
71
 
72
- Use the code below to get started with the model.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
 
74
  [More Information Needed]
75
 
 
1
  ---
2
  library_name: transformers
3
+ license: other
4
+ datasets:
5
+ - DeL-TaiseiOzaki/Tengentoppa-sft-v1.0
6
+ base_model:
7
+ - llm-jp/llm-jp-3-13b
8
  ---
9
 
10
+ # Model Card for llm-jp-3-13b-finetune-sonodd006
11
+ LoRAアダプターによる日本語チャットボット用のモデルです。ベースモデルである `llm-jp/llm-jp-3-13b` を、`Tengentoppa-sft-v1.0` データセットを用いてSFT(指示調整)しました。
 
 
 
12
 
13
  ## Model Details
14
 
15
  ### Model Description
16
+ このモデルは、松尾・岩澤研究室の大規模言語モデル講座([詳細はこちら](https://weblab.t.u-tokyo.ac.jp/lecture/course-list/large-language-model/))における演習で、個人(開発者: [sonodd](https://huggingface.co/sonodd))がLoRAのアダプターを使って作成した日本語特化のチャットボット用モデルです。主に日本語でのインストラクション応答・対話生成を目的としています。
17
+
18
+ - **Model Name / Model ID:** [llm-jp-3-13b-finetune-sonodd006](https://huggingface.co/sonodd/llm-jp-3-13b-finetune-sonodd-006)
19
+ - **Developed by:** 個人(sonodd)
20
+ - **Funded by [optional]:** 松尾・岩澤研究室の講座演習(大規模言語モデル講座)
21
+ - **Shared by [optional]:** sonodd
22
+ - **Model type:** Decoder-only Transformer (LoRAアダプター使用)
23
+ - **Language(s) (NLP):** 日本語
24
+ - **License:** CC-BY-SA
25
+ - 演習での利用を想定しており、上記演習での参考以外への利用を禁止しています。
26
+ - **Finetuned from model:** [`llm-jp/llm-jp-3-13b`](https://huggingface.co/llm-jp/llm-jp-3-13b)
 
27
 
28
  ### Model Sources [optional]
29
 
30
+ - **Repository:** [llm-jp-3-13b-finetune-sonodd006](https://huggingface.co/sonodd/llm-jp-3-13b-finetune-sonodd-006)
 
 
31
  - **Paper [optional]:** [More Information Needed]
32
  - **Demo [optional]:** [More Information Needed]
33
 
 
36
  <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
37
 
38
  ### Direct Use
39
+ 日本語チャットボット、対話型アプリケーションへの組み込みを想定しています。単純な質問応答や創作文章生成など、多目的に利用可能です。
 
 
 
40
 
41
  ### Downstream Use [optional]
42
+ さらなるLoRA微調整や、他の日本語タスク(要約やQAなど)への転用は可能ですが、本モデルはチャットボット向けに最適化されている点をご留意ください。
 
 
 
43
 
44
  ### Out-of-Scope Use
45
+ - 公序良俗に反する、あるいは不適切・有害な内容の生成を意図する利用
46
+ - 大規模サービス等への商用利用(講座演習の参考利用範囲を超える利用は禁止されています)
 
 
47
 
48
  ## Bias, Risks, and Limitations
49
+ - ChatGPT系統のLLMと同様、誤情報やバイアスを含む応答を生成する可能性があります。
50
+ - 生成された文章の内容を利用する場合は、専門家による検証やファクトチェックが必須です。
 
 
51
 
52
  ### Recommendations
53
+ - 利用者は、モデルが誤った情報や不適切な表現を生成し得る点を理解した上で使用してください。
54
+ - 社会的にセンシティブなテーマに関しては特に慎重に取り扱ってください。
 
 
55
 
56
  ## How to Get Started with the Model
57
 
58
+
59
+ 以下のPythonコード例では、Hugging Face TransformersとPEFTライブラリを使ってLoRAアダプターを読み込んで推論します。
60
+
61
+ ```python
62
+ # ライブラリのimport, なければpipで取得
63
+ from transformers import (
64
+ AutoModelForCausalLM,
65
+ AutoTokenizer,
66
+ BitsAndBytesConfig,
67
+ )
68
+ from peft import PeftModel
69
+ import torch
70
+ from tqdm import tqdm
71
+ import json
72
+
73
+ # Hugging Faceにログイン
74
+ import os
75
+ from huggingface_hub import login
76
+
77
+ # Hugging Faceで取得したTokenをこちらに貼る。
78
+ HF_TOKEN = "Hugging Face Token"
79
+
80
+ login(HF_TOKEN)
81
+
82
+ base_model_id = "llm-jp/llm-jp-3-13b"#Hugging FaceのID
83
+ adapter_id = "sonodd/llm-jp-3-13b-finetune-sonodd006" #Hugging FaceのID
84
+
85
+ # QLoRA config 量子化設定
86
+ bnb_config = BitsAndBytesConfig(
87
+ load_in_4bit=True, # 4-bit量子化を有効化
88
+ bnb_4bit_compute_dtype=torch.float16, # 計算精度をFP16に設定
89
+ bnb_4bit_use_double_quant=True, # ダブル量子化を有効化
90
+ bnb_4bit_quant_type="nf4" # nf4量子化タイプを使用
91
+ )
92
+
93
+ # ベースモデルのロード
94
+ base_model = AutoModelForCausalLM.from_pretrained(
95
+ base_model_id,
96
+ quantization_config=bnb_config, # 量子化設定
97
+ device_map="auto", # 自動でGPUとCPUに割り当て
98
+ use_auth_token=HF_TOKEN # Hugging Faceトークン
99
+ )
100
+
101
+ # トークナイザーのロード
102
+ tokenizer = AutoTokenizer.from_pretrained(
103
+ base_model_id,
104
+ trust_remote_code=True,
105
+ use_auth_token=HF_TOKEN
106
+ )
107
+
108
+ print("モデルが正常にロードされました")
109
+
110
+ # LoRAアダプタを適用
111
+ model = PeftModel.from_pretrained(
112
+ base_model, # ベースモデル
113
+ adapter_id, # LoRAアダプタの ID
114
+ use_auth_token=HF_TOKEN
115
+ )
116
+
117
+ print("LoRAアダプタが適用されました")
118
+
119
+ # データセットの読み込み({{data_set_name}}に置いてあるファイルを指定)
120
+ datasets = []
121
+ with open("./{{data_set_name}}", "r") as f:
122
+ item = ""
123
+ for line in f:
124
+ line = line.strip()
125
+ item += line
126
+ if item.endswith("}"):
127
+ datasets.append(json.loads(item))
128
+ item = ""
129
+
130
+ results = []
131
+ for data in tqdm(datasets):
132
+
133
+ input = data["input"]
134
+
135
+ prompt = f"""### 指示
136
+ {input}
137
+ ### 回答
138
+ """
139
+
140
+ tokenized_input = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)
141
+ attention_mask = torch.ones_like(tokenized_input)
142
+ with torch.no_grad():
143
+ outputs = model.generate(
144
+ tokenized_input,
145
+ attention_mask=attention_mask,
146
+ max_new_tokens=512,
147
+ do_sample=False,
148
+ repetition_penalty=1.2,
149
+ pad_token_id=tokenizer.eos_token_id
150
+ )[0]
151
+ output = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True)
152
+
153
+ results.append({"task_id": data["task_id"], "input": input, "output": output})
154
+ ```
155
 
156
  [More Information Needed]
157