Uploaded_model

  • Developed by: Ta1k1
  • License: cc-by-sa-4.0
  • Finetuned from model : Ta1k1/llm-jp-3-13b-1217ver1_lora
  • Finetuned from model : Ta1k1/llm-jp-3-13b-1217ver2_lora

This llama model was trained 2x faster with Unsloth and Huggingface's TRL library.

  • llm-jp/llm-jp-3-13bに対して、継続事前学習を行ったもの/
  • Ta1k1/llm-jp-3-13b-1217ver1_lora/
  • これに対して、追加学習を行ったもの/
  • Ta1k1/llm-jp-3-13b-1217ver2_lora/
  • さらに追加学習を行ったもの
  • this model

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

%%capture
!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

ベースとなるモデルと学習したLoRAのアダプタ(Hugging FaceのIDを指定)。

model_id = "llm-jp/llm-jp-3-13b"
adapter_id = "Ta1k1/llm-jp-3-13b-1217ver3_lora"

Hugging Face Token を指定。

下記の URL から Hugging Face Token を取得できますので下記の HF_TOKENに入れてください。

https://huggingface.co/settings/tokens

HF_TOKEN = "your_token_key" #@param {type:"string"}

unslothのFastLanguageModelで元のモデルをロード。

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,
)

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

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

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

事前にデータをアップロード

datasets = []
with open("/content/drive/MyDrive/Data Science/松尾研講義資料/LLM2024/最終課題/data/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.2)
  prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]

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

結果をjsonlで保存。

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')
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 Ta1k1/llm-jp-3-13b-1217ver3_lora

Finetuned
(1)
this model