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')
|