Uploaded model

  • Developed by: aztec95pa
  • License: CC-BY-NC-SA-4.0
  • Finetuned from model: llm-jp/llm-jp-3-13b

This model was fine-tuned on Ichikara Instruction data (CC-BY-NC-SA-4.0).

This llama model was trained 2x faster with Unsloth and Huggingface's TRL library.

実行手順・再現方法

Google Colabでの実行例 Google Colab無料版(T4 GPU)上で以下のようなステップで実行が可能です。

パッケージインストール: !pip uninstall unsloth -y !pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git" !pip install --upgrade torch !pip install --upgrade xformers !pip install --no-deps "trl<0.9.0" peft accelerate bitsandbytes

※Omnicampusでのconda環境構築例や詳細インストールコマンドは、必要に応じて参考程度にしてください。今回の実装はGoogle Colabで行っています。

Fine-Tuning手順 HFトークン取得: Hugging FaceのSettings→Access TokensからWrite権限のあるトークンを取得し、 HF_TOKEN = "YOUR_WRITE_TOKEN" のようにセットします。

モデルとトークナイザのロード: from unsloth import FastLanguageModel model, tokenizer = FastLanguageModel.from_pretrained( model_name="llm-jp/llm-jp-3-13b", dtype=None, load_in_4bit=True, trust_remote_code=True, )

LoRAでの微調整設定: model = FastLanguageModel.get_peft_model( model, r=32, target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"], lora_alpha=32, lora_dropout=0.05 )

SFTTrainerで学習実行: Ichikara Instructionデータを事前にアップロードし、SFTTrainerで1エポック程度学習します。 from trl import SFTTrainer from transformers import TrainingArguments

trainer = SFTTrainer( model=model, tokenizer=tokenizer, train_dataset=..., args=TrainingArguments( per_device_train_batch_size=2, gradient_accumulation_steps=4, num_train_epochs=1, ... ), ) trainer.train()

モデルアップロード: model.push_to_hub_merged( "llm-jp-3-13b-it_lora", tokenizer=tokenizer, save_method="lora", token=HF_TOKEN, private=False )

推論手順 "Model_Inference_Template_unsloth_20241127.ipynb"を使用し、LoRAアダプタ適用モデルを読み込み、ELYZA-tasks-100-TVに対してgenerate()を実行し、出力をjsonl形式で保存します。

例: results = [] for task in elyza_tasks_100_tv_data: prompt = f"### 指示\n{task['input']}\n### 回答\n" outputs = model.generate(tokenizer(prompt, return_tensors='pt').to(model.device), max_new_tokens=512) prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('### 回答')[-1] results.append({"task_id": task["task_id"], "input": task["input"], "output": prediction})

with open("llm-jp-3-13b-it_output.jsonl", "w", encoding="utf-8") as f: for r in results: json.dump(r, f, ensure_ascii=False) f.write('\n')

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference API
Unable to determine this model’s pipeline type. Check the docs .

Model tree for aztec95pa/llm-jp-3-13b-it_lora

Finetuned
(1140)
this model