YAML Metadata Warning: empty or missing yaml metadata in repo card (https://huggingface.co/docs/hub/model-cards#model-card-metadata)

llm-jp-3-13b-finetune

概要

本モデルは「llm-jp/llm-jp-3-13b」をベースモデルとして、Ichikara Instructionデータを用いてLoRA手法による微調整を行った日本語対応のCausal Language Modelです。
指示に対する自然な回答を生成する能力の向上を目的としています。

ベースモデル

  • 元モデル: llm-jp/llm-jp-3-13b
  • このモデルに対し、Ichikara Instructionデータセットを用いた教師あり微調整を実施しました。

訓練データ

  • データセット: Ichikara Instruction
    • 許諾を受けた上で利用可能な日本語指示データ
    • CC-BY-NC-SAライセンス(非営利利用、継承条件付き)
  • 入力形式は「### 指示\n\n### 回答\n\n」というフォーマットで整形され、モデルに学習を行っています。

LoRA設定

  • LoRA Rank (r): 16
  • LoRA Alpha: 32
  • LoRA Dropout: 0.05
  • タスクタイプ: CAUSAL_LM
  • モデル内部の4bit量子化線形層にLoRAを適用しています。

量子化設定

  • 4bit量子化 (NF4)
  • BitsAndBytesConfigを用いて、bnb_4bit_quant_type="nf4"およびbnb_4bit_compute_dtype=torch.bfloat16を指定しています。

トレーニング設定

  • バッチサイズ (per_device_train_batch_size): 1
  • 勾配累積 (gradient_accumulation_steps): 2
  • エポック数 (num_train_epochs): 1
  • オプティマイザ: paged_adamw_32bit
  • 学習率 (learning_rate): 5e-5
  • ウォームアップステップ (warmup_steps): 10
  • シード値 (seed): 3407
  • fp16: False, bf16: False
  • max_seq_length: 512
  • 出力ディレクトリ: ファインチューニング後のモデル名で指定 (例: llm-jp-3-13b-finetune)

ライセンス

  • 本モデルは、学習に用いたIchikara InstructionがCC-BY-NC-SAで提供されているため、このモデルの利用には同ライセンスに準拠することが求められます。
  • Ichikara Instructionデータセットの詳細および利用条件等については下記を参照してください:
    LLMのための日本語インストラクションデータ-公開

推論方法

前提条件

  • transformerstorchpeftbitsandbytesaccelerateなどのライブラリをインストールしてください。
  • GPU環境での実行を推奨します。(4bit量子化済みモデルのため)

推論サンプルコード

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

model_id = "YOUR_HF_USERNAME/llm-jp-3-13b-finetune"  # アップロード済みモデルのIDを指定

# 4bit量子化の設定
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"
)
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)

# 推論用プロンプト
input_text = "自然言語処理とは何ですか?"
prompt = f"""### 指示
{input_text}
### 回答
"""

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
    outputs = model.generate(
        inputs.input_ids,
        max_new_tokens=100,
        do_sample=False,
        repetition_penalty=1.2,
        pad_token_id=tokenizer.eos_token_id
    )

response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)

上記コードを実行すると、input_textで与えた質問や指示に応答するテキストが生成されます。
パラメータ(max_new_tokensdo_sampleなど)は必要に応じて調整してください。

留意点

  • 本モデルは学習データの性質上、回答の正確性や有用性を保証するものではありません。必ず人間による検証を行った上で活用してください。
  • 非営利目的での利用や二次利用時には、元データセット(Ichikara Instruction)のライセンス条件(CC-BY-NC-SA)に従う必要があります。
  • GPU環境での実行を前提としており、CPU上での推論はパフォーマンス面で非推奨です。

引用

Ichikara Instructionデータ利用にあたり、以下の引用が求められます:

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

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support