YAML Metadata Warning: empty or missing yaml metadata in repo card (https://huggingface.co/docs/hub/model-cards#model-card-metadata)

実行手順

以下の手順に従うことで、Hugging Face上のモデル(llm-jp/llm-jp-3-13b + ShotaKaji/llm-jp-3-13b-finetune-3)を用いて入力データ(elyza-tasks-100-TV_0.jsonl)を推論し、その結果を{adapter_id}-outputs.jsonlというファイルに出力できます。

  • 事前にHugging Face Tokenと、pythonの実行環境をご準備ください(Google ColabのL4 GPU環境での動作確認済み。推論時間は15分程度です)

必要なライブラリをインストール

!pip install unsloth
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
!pip install -U torch
!pip install -U peft

必要なライブラリを読み込み

from unsloth import FastLanguageModel
from peft import PeftModel
import torch
import json
from tqdm import tqdm
import re

Hugging Face Tokenを指定

以下の""の間に取得したHugging Faceトークンをコピー&ペーストします。

HF_TOKEN = "" 

モデル, トークナイザーの読み込み

model_id = "llm-jp/llm-jp-3-13b"
adapter_id = "ShotaKaji/llm-jp-3-13b-finetune-3"

dtype = None 
load_in_4bit = True

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name=model_id,
    dtype=dtype,
    load_in_4bit=load_in_4bit,
    trust_remote_code=True,
)

model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)

タスクとなるデータの読み込み

事前にelyza-tasks-100-TV_0.jsonlというファイルからデータセットをロードしてください。

datasets = []
with open("./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 = ""

推論実行

FastLanguageModel.for_inference(model)

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.3)
  prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]

  results.append({"task_id": dt["task_id"], "input": input, "output": prediction})

出力の保存

json_file_id = re.sub(".*/", "", adapter_id)
with open(f"/content/{json_file_id}_output.jsonl", 'w', encoding='utf-8') as f:
    for result in results:
        json.dump(result, f, ensure_ascii=False)
        f.write('\n')

以上の手順で、{adapter_id}-outputs.jsonlというファイルに推論結果が書き出されます。

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The model has no library tag.