LLM-JP-3-13B ファインチューニングモデル

モデル詳細

ベースモデル: llm-jp/llm-jp-3-13b
アダプターモデル 1: nmczzi/llm-jp-3-13b-finetune-4
アダプターモデル 2: nmczzi/llm-jp-3-13b-finetune-4-dpo-2
アダプターモデル 3: nmczzi/llm-jp-3-13b-finetune-4-dpo-2-plus
量子化: 4ビット量子化 (QLoRA)

インストール

必要なパッケージのインストール:

pip install -U bitsandbytes transformers accelerate datasets peft

使用方法

以下は、モデルの基本的な使用例です:

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel, LoraConfig
import torch

HF_TOKEN = "有効なHuggingFaceトークン"

from google.colab import userdata
HF_TOKEN = userdata.get('HF_API_KEY')

base_model_id = "llm-jp/llm-jp-3-13b"
adapter_id_1 = "nmczzi/llm-jp-3-13b-finetune-4"
adapter_id_2 = "nmczzi/llm-jp-3-13b-finetune-4-dpo-2"
adapter_id_3 = "nmczzi/llm-jp-3-13b-finetune-4-dpo-2-plus"

### QLoRA設定
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

### モデルの読み込み
model = AutoModelForCausalLM.from_pretrained(
    base_model_id,
    quantization_config=bnb_config,
    device_map="auto",
    token=HF_TOKEN
)

### トークナイザーの読み込み
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True, token=HF_TOKEN)

### ファインチューニングされたアダプターの読み込み
model = PeftModel.from_pretrained(model, adapter_id_1, token=HF_TOKEN)
model = PeftModel.from_pretrained(model, adapter_id_2, token=HF_TOKEN)
model = PeftModel.from_pretrained(model, adapter_id_3, token=HF_TOKEN)

### 生成用の関数を定義
def generate_response(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=100,
          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)
  return output

### 使用例
input = "### 指示\nあなたの指示をここに入力してください\n### 回答\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model.generate(**inputs, max_new_tokens=100, do_sample=False, repetition_penalty=1.2)

response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
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 library tag.