Model Description

llm-jp-3.13bをベースモデルにichikara-instruction-003でSFTを実施したモデルです。

配布されたLoRA_templateをベースに以下のとおりパラメータを変更しています。 ○PEFTのLoRAのスケーリング係数を調整。 ○学習の評価バッチサイズ及び学習率を調整。auto_find_batch_sizeをTrueに設定。 ○SFTの設定にneftune_noise_alphaを追加。

Sample Uses

以下は、elyza-tasks-100-TV_0.jsonlのためのコードです。 本コードは、生成されたjsonlファイルを講座の課題として提出することを目的としています。 動作環境はOmunicampusを想定しています(動作確認済)。

以下は推論用コード(Python)です。

from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, ) from peft import PeftModel import torch from tqdm import tqdm import json

HF_TOKEN = "******(your token)"

ベースとなるモデル(llm-jp/llm-jp-3-13b)と学習したLoRAのアダプタID(momiji8888/momijillm-jp-3-finetune3)

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

adapter_id = "momiji8888/momijillm-jp-3-finetune3"

QLoRAの設定

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

モデルの読み込み

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

トークナイザーの読み込み

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

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

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

elyza-tasks-100-TVのデータセットの読み込み

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 = ""

推論の実行、結果の取得

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=150, 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})

結果をJsonlで出力し、Omunicampus上に保存

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

Model tree for momiji8888/momijillm-jp-3-finetune3

Finetuned
(1122)
this model

Dataset used to train momiji8888/momijillm-jp-3-finetune3