Uploaded model
- Developed by: ShotaMatsumoto
- License: CC BY-NC-SA
- Finetuned from model : llm-jp/llm-jp-3-13b
概要
「llm-jp/llm-jp-3-13bモデルにichikara-instructionデータを用いてファインチューニングを行ったモデルです。 松尾研究室の講義のコンペ用としてモデル作成しました。
https://weblab.t.u-tokyo.ac.jp/lecture/course-list/large-language-model/
データセットは以下を使いました。
- ichikara-instruction-003-001-1.json
- ichikara-instruction-003-001-2.1.json
- ichikara-instruction-003-001-2.2.json
- ichikara-instruction-003-001-5.1.json
- ichikara-instruction-003-001-5.2.json
- ichikara-instruction-003-003-1.json
注意
ichikara-instructionデータは、CC BY-NC-SAライセンス(表示-非営利-継承)で公開されています。このライセンスの下では、非営利目的での利用が許可されていますが、商用利用は認められていません。 詳しくはこちらのホームページで確認してください。https://llm-jp.nii.ac.jp/blog/2024/04/30/v2.0-release.html
推論方法
事前にadapter_model.safetensorsをダウンロードしてください。
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
#ベースモデル ID とアダプタファイルパス
base_model_id = "llm-jp/llm-jp-3-13b"
adapter_model_path = ""/path/to/adapter_model.safetensors""
#デバイス設定
device = "cuda" if torch.cuda.is_available() else "cpu"
#トークナイザーとベースモデルのロード
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)
base_model = AutoModelForCausalLM.from_pretrained(base_model_id, torch_dtype=torch.float16).to(device)
#アダプタの読み込み
model = PeftModel.from_pretrained(base_model, adapter_model_path).to(device)
#推論関数
def generate_text(prompt, max_length=256, temperature=0.7):
inputs = tokenizer(prompt, return_tensors="pt").to(device)
outputs = model.generate(
inputs["input_ids"],
max_length=max_length,
temperature=temperature,
do_sample=True,
top_k=50,
top_p=0.9
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
#テストプロンプト
prompt = "日本の経済について説明してください。"
print("Generating text...")
generated_text = generate_text(prompt)
print("\nGenerated Text:")
print(generated_text)
量子化
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
from transformers import BitsAndBytesConfig
#ベースモデル ID とアダプタファイルパス
base_model_id = "llm-jp/llm-jp-3-13b"
adapter_model_path = "path/to/"
#デバイス設定
device = "cuda" if torch.cuda.is_available() else "cpu"
#量子化の設定
bnb_config = BitsAndBytesConfig(
load_in_4bit=True, # 4-bit 量子化を有効化
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4", # 量子化スキーム
bnb_4bit_compute_dtype=torch.float16, # 推論時の計算精度
)
#トークナイザーのロード
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)
ベースモデルのロード(量子化設定を使用)
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id,
quantization_config=bnb_config,
device_map="auto", # 自動的に GPU に割り当て
)
#アダプタの読み込み
model = PeftModel.from_pretrained(base_model, adapter_model_path).to(device)
`pad_token_id` の設定(トークナイザーから取得)
model.config.pad_token_id = tokenizer.pad_token_id
#推論関数
def generate_text(prompt, max_length=256, temperature=0.7):
# トークナイズして `attention_mask` を設定し、max_length を適用
inputs = tokenizer(
prompt,
return_tensors="pt",
padding=True,
truncation=True,
max_length=max_length # 最大トークン数を制限
).to(device)
outputs = model.generate(
inputs["input_ids"],
attention_mask=inputs["attention_mask"],
max_length=max_length,
temperature=temperature,
do_sample=True,
top_k=50,
top_p=0.9,
pad_token_id=tokenizer.pad_token_id # 安全な動作のため明示的に指定
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
#テストプロンプト
prompt = "日本の経済について説明してください。"
print("Generating text...")
generated_text = generate_text(prompt, max_length=256) # 最大長さを明示的に指定
print("\nGenerated Text:")
print(generated_text)
jsonlファイルの出力方法は以下の通りです。
import json
from google.colab import files
file_name = "elyza-tasks-results.jsonl"
# JSON形式で保存
with open(file_name, "w", encoding="utf-8") as f:
json.dump(results, f, ensure_ascii=False)
# 内容確認
with open(file_name, 'w', encoding='utf-8') as f:
for result in results:
json.dump(result, f, ensure_ascii=False)
f.write('\n')
# ファイルのダウンロード
files.download(file_name)
This llama model was trained 2x faster with Unsloth and Huggingface's TRL library.
- Downloads last month
- 1
Inference Providers
NEW
This model is not currently available via any of the supported third-party Inference Providers, and
HF Inference API was unable to determine this model’s pipeline type.
Model tree for ShotaMatsumoto/llm-jp-3-13b-finetune-2
Base model
llm-jp/llm-jp-3-13b