Uploaded model

  • Developed by: aino813
  • 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.

🧐 Instruction Tuning

  • このモデルは、以下のデータを用いて指示チューニング(Instruction Tuning)を行いました。
  • 指示チューニングにあたっては、QLoRAを使っています。

🤩 Datasets

  • 英語と非英語(日本語)のデータセットを使っています。
    データセット名 言語 件数 主な用途
    databricks-dolly-15k 英語 約15,000件 指示チューニング用
    databricks-dolly-15k-ja 日本語 約15,000件 日本語指示チューニング用
    oasst1-21k-en 英語 約21,000件 会話モデルや指示応答モデルのトレーニング
    oasst1-21k-ja 日本語 約21,000件 日本語会話モデルや指示応答モデルのトレーニング
    ichikara-instruction-003-001 日本語 2,903件 日本語特化の指示チューニング
  1. databricks-dolly-15k

    • Databricksが公開した、指示応答形式のデータセット。
    • 約15,000件の英語の指示・応答ペアを含む。
    • 質問応答、説明、生成タスクなどが含まれる。
  2. databricks-dolly-15k-ja

    • databricks-dolly-15kを日本語に翻訳したデータセット。
    • 英語の指示・応答ペアを高品質な日本語翻訳に変換。
    • 総件数: 約15000件。
  3. oasst1-21k-en

    • Open Assistantが公開した、英語の指示応答データセット。
    • 約21,000件の英語データを含む。
    • コミュニティから収集したデータで、多様なタスクや質問形式が含まれる。
  4. oasst1-21k-ja

    • oasst1-21k-enを日本語に翻訳したバージョン。
    • 多様なタスクや指示形式に対応。
    • 総件数: 約21,000件
  5. ichikara-instruction-003-001

    • LLMのための日本語のシングルターン指示応答データセット。
    • 約2,903件の日本語データ。

Parameter

パラメータ名
LoRA_r 128
LoRA_alpha 256
LoRA_dropout 0.05
per_device_train_batch_size 1
gradient_accumulation_steps 16
max_steps 150
warmup_ratio 0.1
num_train_epochs 2
learning_rate 0.0001
embedding_learning_rate 0.00001

😚 License

Apache-2.0 ライセンスに基づいて提供されています。 Apache License, Version 2.0

😉 Usage

ライブラリーのインストール・アップグレード

!pip install -U bitsandbytes
!pip install -U transformers
!pip install -U accelerate
!pip install -U datasets
!pip install -U peft

ライブラリーのインポート

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

HF_TOKENの設定

HF_TOKEN = "******************"

モデルidの指定

元のモデルとLoRAアダプターを指定します。LoRAアダプターのIDは本レポジトリになります。

# omnicampas環境を使用する場合
model_id = "models/models--llm-jp--llm-jp-3-13b/snapshots/cd3823f4c1fcbb0ad2e2af46036ab1b0ca13192a"
# omnicampas以外の環境を使用する場合(以下のコメントアウトを外す)
# model_id = "llm-jp/llm-jp-3-13b" 
adapter_id = "aino813/llm-jp-3-13b-241213-SFT-dolly-oasst-ichikara-final_lora"

量子化の設定

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)

推論用データセットの読み込み

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=1024,
          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ファイルの作成

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

Model tree for aino813/llm-jp-3-13b-241213-SFT-dolly-oasst-ichikara-final_lora

Finetuned
(1120)
this model