Views
No views yet
transformerstorchunslothbitsandbytesacceleratepeftpip install transformers torch unsloth bitsandbytes accelerate peft1!pip uninstall unsloth -y
2!pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"1from unsloth import FastLanguageModel
2import torch
3
4# セッティング例
5max_seq_length = 2048
6dtype = None # Noneで自動検出 (GPU世代に応じて fp16 / bfloat16)
7load_in_4bit = True # 4bit量子化を有効化(メモリ節約)
8
9HF_TOKEN = "your_token" # Hugging Faceのアクセストークン
10
11model, tokenizer = FastLanguageModel.from_pretrained(
12 model_name = "Toki-AI/llm-jp-3-13b-finetune-241202",
13 max_seq_length = max_seq_length,
14 dtype = dtype,
15 load_in_4bit = load_in_4bit,
16 token = HF_TOKEN,
17)1from unsloth import FastLanguageModel
2from tqdm import tqdm
3import json
4
5# 推論モードに切り替え
6FastLanguageModel.for_inference(model)
7
8# 推論したいタスクのJSONLファイルを読み込む例
9datasets = []
10with open("elyza-tasks-100-TV_0.jsonl", "r") as f:
11 for line in f:
12 if line.strip():
13 datasets.append(json.loads(line))
14
15# 推論の実行
16results = []
17for dt in tqdm(datasets):
18 input_text = dt["input"]
19 # プロンプト例
20 prompt = f"""### 指示
21{input_text}
22### 回答
23"""
24
25 inputs = tokenizer([prompt], return_tensors="pt").to(model.device)
26 outputs = model.generate(
27 **inputs,
28 max_new_tokens=512,
29 use_cache=True,
30 do_sample=False,
31 repetition_penalty=1.2
32 )
33
34 # 出力を整形
35 prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]
36 results.append({"task_id": dt["task_id"], "input": input_text, "output": prediction})
37
38# 推論結果の確認 (先頭3件)
39for res in results[:3]:
40 print(res)max_new_tokens, do_sample, repetition_penalty, temperature, top_pなど)はタスクに応じて変更してください。