Model Card for yuhkis/llm-jp-3-13b-it_lora

Model Details

Model Description

This is a LoRA-tuned version of LLM-jp-3-13b, fine-tuned using Unsloth techniques and Hugging Face's TRL library for accelerated training.

  • Developed by: Yuhki Shiraishi
  • Model type: Instruction-tuned Japanese Language Model
  • Language: Japanese
  • License: CC-BY-NC-SA
  • Finetuned from model: llm-jp/llm-jp-3-13b

Uses

Output Generation and Format

Implementation Details

To generate output in the required JSONL format:

# 必要なライブラリをインストール
%%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 = "yuhkis/llm-jp-3-13b-it_lora"

# Hugging Face Token を指定。
HF_TOKEN = "" #@param {type:"string"}

# unslothのFastLanguageModelで元のモデルをロード。
dtype = None # Noneにしておけば自動で設定
load_in_4bit = True # 今回は13Bモデルを扱うため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("./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')

Output Format Specification

Required fields in the JSONL output:

  • task_id: Task identifier (integer)
  • output: Generated response (string)

Example output format:

{"task_id": 1, "output": "生成された応答1"}
{"task_id": 2, "output": "生成された応答2"}

Recommendations

  • Ensure consistency in the input prompt structure to maintain output quality.
  • Evaluate generated outputs for accuracy, particularly for critical applications.

Training Details

Training Data

  • Dataset: Ichikara Instruction Dataset

Training Procedure

  • Training regime: bf16 mixed precision, accelerated using Unsloth and Hugging Face's TRL library
  • Optimization: LoRA (Low-Rank Adaptation)

Technical Specifications

Model Architecture

  • Base model: LLM-jp-3-13b
  • Adaptation method: LoRA
  • Training enhancement: Unsloth framework

Citation

BibTeX:

@misc{shiraishi2024llm,
    title={LLM-jp-3-13b-it_lora: Instruction-tuned Japanese Language Model with Accelerated Training},
    author={Yuhki Shiraishi},
    year={2024},
    publisher={Hugging Face},
    howpublished={\url{https://huggingface.co/yuhkis/llm-jp-3-13b-it_lora}}
}

Base Model Citation:

@misc{llm-jp2024,
    title={LLM-jp-3: Large Language Model for Japanese},
    author={LLM-jp Project Team},
    year={2024},
    publisher={Hugging Face},
    howpublished={\url{https://huggingface.co/llm-jp/llm-jp-3-13b}}
}

Training Data Citation:

関根聡, 安藤まや, 後藤美知子, 鈴木久美, 河原大輔, 井之上直也, 乾健太郎.
ichikara-instruction: LLMのための日本語インストラクションデータの構築.
言語処理学会第30回年次大会(2024)

Model Card Contact

Primary Contact:

  • Name: Yuhki Shiraishi
  • GitHub: @yuhkis

For questions regarding this model, please open an issue in the GitHub repository or contact via HuggingFace discussion forum.

Please include "LLM-jp-3-13b-it_lora" in the subject line of any correspondence.

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.