Views
No views yet
1!pip install unsloth
2!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
3!pip install --upgrade torch
4!pip install --upgrade xformers
5!pip install ipywidgets --upgrade1import torch
2if torch.cuda.get_device_capability()[0] >= 8:
3 !pip install --no-deps packaging ninja einops "flash-attn>=2.6.3"
4
5from unsloth import FastLanguageModel
6import json
7from tqdm import tqdm
8import datetime
9import pytz
10
11model_name = "onewan/llm-jp-3-13b-finetune-2"
12new_model_id = "llm-jp-3-13b-finetune-2"
13
14max_seq_length = 2048
15dtype = None
16load_in_4bit = True
17
18model, tokenizer = FastLanguageModel.from_pretrained(
19 model_name = model_name,
20 max_seq_length = max_seq_length,
21 dtype = dtype,
22 load_in_4bit = load_in_4bit,
23 token = "--Input your own Hugging Face Token--",
24)
25FastLanguageModel.for_inference(model)
26
27datasets = []
28with open("./elyza-tasks-100-TV_0.jsonl", "r") as f:
29 item = ""
30 for line in f:
31 line = line.strip()
32 item += line
33 if item.endswith("}"):
34 datasets.append(json.loads(item))
35 item = ""
36
37FastLanguageModel.for_inference(model)
38
39results = []
40for dt in tqdm(datasets):
41 input = dt["input"]
42 prompt = f"""### 指示\n{input}\n### 回答\n"""
43 inputs = tokenizer([prompt], return_tensors = "pt").to(model.device)
44 outputs = model.generate(**inputs, max_new_tokens = 512, use_cache = True, do_sample=False, repetition_penalty=1.2)
45 prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]
46 results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
47
48now = datetime.datetime.now(pytz.timezone('Asia/Tokyo')).strftime("%Y%m%d-%H%M%S")
49
50with open(f"{new_model_id}_output_{now}.jsonl", 'w', encoding='utf-8') as f:
51 for result in results:
52 json.dump(result, f, ensure_ascii=False)
53 f.write('\n')