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

Kitahata/llm-jp-3-13b-finetune

推論方法 (以下を順に実行してください)

!pip install -U bitsandbytes

!pip install -U transformers

!pip install -U accelerate

!pip install -U datasets

!pip install -U peft

notebookでインタラクティブな表示を可能とする(ただし、うまく動かない場合あり)

!pip install ipywidgets --upgrade

from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, ) from peft import PeftModel

import torch

from tqdm import tqdm

import json

Hugging Faceで取得したTokenをこちらに貼る。

HF_TOKEN = "Hugging Face Token"

ベースとなるモデルと学習したLoRAのアダプタ。

model_idの値はomnicampusの環境におけるモデルのパスを表しており、それ以外の環境で実行する場合は変更の必要があります。

model_id = "models/models--llm-jp--llm-jp-3-13b/snapshots/cd3823f4c1fcbb0ad2e2af46036ab1b0ca13192a"

omnicampus以外の環境をご利用の方は以下をご利用ください。

base_model_id = "llm-jp/llm-jp-3-13b"

adapter_id = "" # こちらにアップロードしたHugging FaceのIDを指定してください。

QLoRA config

bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, )

Load model

model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=bnb_config, device_map="auto", token = HF_TOKEN )

Load tokenizer

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True, token = HF_TOKEN)

元のモデルにLoRAのアダプタを統合。

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

データセットの読み込み。

omnicampusの開発環境では、左にタスクの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 = ""

gemma

results = []

for data in tqdm(datasets):

input = data["input"]

prompt = f"""### 指示 {input}

回答

"""

input_ids = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(**input_ids, max_new_tokens=512, do_sample=False, repetition_penalty=1.2,)

output = tokenizer.decode(outputs[0][input_ids.input_ids.size(1):], skip_special_tokens=True)

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

llmjp

results = []

for data in tqdm(datasets):

input = data["input"]

prompt = f"""### 指示 {input}

回答

"""

tokenized_input = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)

attention_mask = torch.ones_like(tokenized_input)

with torch.no_grad(): outputs = model.generate( tokenized_input, attention_mask=attention_mask, max_new_tokens=100, do_sample=False, repetition_penalty=1.2, pad_token_id=tokenizer.eos_token_id )[0]

output = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True)

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

こちらで生成されたjsolを提出してください。

本コードではinputとeval_aspectも含んでいますが、なくても問題ありません。

必須なのはtask_idとoutputとなります。

import re

jsonl_id = re.sub(".*/", "", adapter_id)

with open(f"./{jsonl_id}-outputs.jsonl", 'w', encoding='utf-8') as f: for result in results: json.dump(result, f, ensure_ascii=False) # ensure_ascii=False for handling non-ASCII characters f.write('\n')

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.