Uploaded model

  • Developed by: ikedachin
  • License: apache-2.0
  • Finetuned from model : llm-jp/llm-jp-3-13b

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

継続事前学習モデル

ikedachin/llm-jp-3-13b-october-news-e1-all-3-5

学習データセット

以下をシャッフルして使用

  • llm-jp/magpie-sft-v1.0からランダムに5000データ
  • DeL-TaiseiOzaki/Tengentoppa-sft-mini-vol1.0からランダムに15000データ

実行方法(GoogleColabでの実行を想定しています。)

https://github.com/ikedachin/llm_lecture_2024.git

  • 上記リポジトリのinference_notebook.ipynbで実行可能です。
  • シークレットタブからHF_TOKENの名前でHuggingfaceのアクセストークンをセットしてください。
  • 推論したいデータセット(ここではelyza-tasks-100-TV_0.jsonl)は手動でColabのフォルダにアップロードしてください。

ライブラリインストール

エラーが発生した場合は再実行し、エラーがないことを確認すること

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

※上のセルはエラーが出やすいので注意

!pip install --upgrade torch
!pip install --upgrade xformers
import torch
if torch.cuda.get_device_capability()[0] >= 8:
    !pip install --no-deps packaging ninja einops "flash-attn>=2.6.3"

評価セットのアップロード

elyza-tasks-100-TV_0.jsonlファイルをGoogleColabのcontentフォルダにアップロードしておくこと。

実行コード

# import libraries
import re
import json
from tqdm import tqdm
import torch
from unsloth import FastLanguageModel

# config
max_seq_length = 1024
dtype = None
load_in_4bit = True
model_id = "ikedachin/llm-jp-3-13b-october-news-e1-all-3-5-sft-Ozaki-Magpie-20000-sorted-params"

# set Token of Huggingface
from google.colab import userdata
HF_W=userdata.get('HF_TOKEN')

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

# prepare a dataset for inference
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 = ""

# inference
FastLanguageModel.for_inference(model)

results = []
for dt in tqdm(datasets):
    input = dt["input"]
  
    prompt = f"""### 指示
{input}
### 回答
"""
  
    inputs = tokenizer([prompt], return_tensors = "pt").to(model.device)
    outputs = model.generate(**inputs, max_new_tokens = max_seq_length, 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})

# save results
json_file_id = re.sub(".*/", "", model_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 ikedachin/llm-jp-3-13b-october-news-e1-all-3-5-sft-Ozaki-Magpie-20000-sorted-params

Finetuned
(2)
this model

Datasets used to train ikedachin/llm-jp-3-13b-october-news-e1-all-3-5-sft-Ozaki-Magpie-20000-sorted-params