Overview

このモデルは、「gemma-2-9b」に対して、データセット「kamakura-tasks-100」の100件を用いてファインチューニングを実施し、指示応答できるようにしました。

Blog Post

Usage

以下は、ELYZA-tasks-100-TV(100問)の回答を生成する推論コードです。

Requirements:

# python 3.10
pip install -U transformers
pip install -U accelerate

gemma-2-9b」を利用するには、HFにログインし、利用規約に同意する必要があります。以下のコマンドでログインしてください(Notebookではfrom_pretrained()のtoken引数でも可)。

huggingface-cli login

Inference:

import json

import torch
from datasets import Dataset
from tqdm import tqdm
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "fukugawa/gemma-2-9b-finetuned"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype=torch.bfloat16)

datasets = Dataset.from_json("./elyza-tasks-100-TV_0.jsonl")

results = []
for data in tqdm(datasets):
  input = data["input"]
  prompt = f"### 指示\n{input}\n### 回答\n"
  tokenized_input = tokenizer.encode(prompt, return_tensors="pt").to(model.device)

  with torch.no_grad():
      outputs = model.generate(
          tokenized_input,
          max_new_tokens=512,
          do_sample=False,
      )[0]
    
  output = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True)
  results.append({"task_id": data["task_id"], "input": input, "output": output})

with open("./outputs.jsonl", 'w', encoding='utf-8') as f:
    for result in results:
        json.dump(result, f, ensure_ascii=False)
        f.write('\n')

ELYZAタスクTVのJSONLファイル(elyza-tasks-100-TV_0.jsonl)が必要です。 推論時に18〜19GBのGPUメモリが必要になります。Nvidia L4 24GBメモリで動作確認しています。 100問の推論時間は約15〜20分程です。 カレントディレクトリにoutputs.jsonlが出力されます。

Dataset

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 pipeline_tag.

Dataset used to train fukugawa/gemma-2-9b-finetuned