Views
No views yet
1pip install transformers
2pip install datasets
3pip install accelerate
4pip install trl
5pip install peft
6pip install bitsandbytes # 4bit量子化利用時など、GPUに応じて追加でインストール!pip list などで依存パッケージが正しくインストールされているかを確認しておきます。!pip list1from unsloth import FastLanguageModel
2import torch
3
4max_seq_length = 2048 # 推論時に使用する最大シーケンス長
5dtype = None # Noneで自動検出 (Tesla T4, V100ならfp16、Ampere+ならbfloat16)
6load_in_4bit = True # メモリ削減のため4bit量子化を使用
7HF_TOKEN = "your_token"
8
9model, tokenizer = FastLanguageModel.from_pretrained(
10 model_name = "Toki-AI/llm-jp-3-13b-finetune-241202",
11 max_seq_length = max_seq_length,
12 dtype = dtype,
13 load_in_4bit = load_in_4bit,
14 token = HF_TOKEN
15)1from huggingface_hub import login
2login(HF_TOKEN) # Hugging Faceのアクセストークンを入力elyza-tasks-100-TV_0.jsonl のタスクに対して推論を行い、回答を取得する例です。1import json
2from tqdm import tqdm
3from unsloth import FastLanguageModel
4
5# 推論のためにモデルのモードを切り替え
6FastLanguageModel.for_inference(model)
7
8# JSONLファイルの読み込み
9datasets = []
10with open("/content/elyza-tasks-100-TV_0.jsonl", "r") as f:
11 item = ""
12 for line in f:
13 line = line.strip()
14 item += line
15 if item.endswith("}"):
16 datasets.append(json.loads(item))
17 item = ""
18
19results = []
20for dt in tqdm(datasets):
21 input_text = dt["input"]
22 prompt = f"""### 指示\n{input_text}\n### 回答\n"""
23
24 # トークナイズ & 推論
25 inputs = tokenizer([prompt], return_tensors="pt").to(model.device)
26 outputs = model.generate(
27 **inputs,
28 max_new_tokens=2048,
29 use_cache=True,
30 do_sample=False,
31 repetition_penalty=1.2
32 )
33 prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]
34
35 results.append({
36 "task_id": dt["task_id"],
37 "input": input_text,
38 "output": prediction
39 })
40
41# 結果を確認
42for r in results[:3]:
43 print(r)repetition_penalty=1.2 を指定していますが、各種パラメータは用途に応じて変更してください (例: temperature, top_p, max_new_tokens など)。