Views
No views yet
・DeL-TaiseiOzaki/Tengentoppa-sft-v1.0(license: CC-BY-4.0)
・サンプリングしてインストラクションチューニングに利用
・Aratako/Magpie-Tanuki-8B-97k(license: Apache-2.0)
・サンプリングしてインストラクションチューニングに利用
・ichikara-instruction-003(license:CC-BY-NC-SA)
・ichikara-instruction-003-001-1をインストラクションチューニングに利用
・elyza/ELYZA-tasks-100(license:CC-BY-SA-4.0)
・インストラクションチューニングに利用・GENIAC-Team-Ozaki/Hachi-Alpaca_newans(license: CC-BY-4.0)
・GENIAC-Team-Ozaki/chatbot-arena-ja-karakuri-lm-8x7b-chat-v0.1-awq(license: CC-BY-4.0)
・GENIAC-Team-Ozaki/WikiHowNFQA-ja_cleaned(license: CC-BY-4.0)
・GENIAC-Team-Ozaki/Evol-Alpaca-gen3-500_cleaned(license: 記載なし)
・GENIAC-Team-Ozaki/oasst2-33k-ja_reformatted(license: 記載なし)
・Aratako/SFT-Dataset-For-Self-Taught-Evaluators-iter1(license: Apache-2.0)
・GENIAC-Team-Ozaki/debate_argument_instruction_dataset_ja(license: 記載なし)
・fujiki/japanese_hh-rlhf-49k(license: Apache-2.0)
・GENIAC-Team-Ozaki/JaGovFaqs-22k(license: 記載なし)
・GENIAC-Team-Ozaki/Evol-hh-rlhf-gen3-1k_cleaned(license: 記載なし)
・DeL-TaiseiOzaki/magpie-qwen2.5-32b-reasoning-100k(license: Apache-2.0)
・DeL-TaiseiOzaki/reasoning-finetuning-ja(license: Apache-2.0)
・DeL-TaiseiOzaki/magpie-llm-jp-3-13b-20k(license: Apache-2.0)
・llm-jp/magpie-sft-v1.0(license: Apache-2.0)
・weblab-GENIAC/aya-ja-nemotron-dpo-masked(license: Apache-2.0)
・weblab-GENIAC/Open-Platypus-Japanese-masked(license: CC-BY-4.0)
・hatakeyama-llm-team/AutoGeneratedJapaneseQA-CC(license: 記載なし)必要なライブラリをインストール
%%capture !pip install unsloth !pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git" !pip install -U torch !pip install -U peft
必要なライブラリを読み込み
from unsloth import FastLanguageModel from peft import PeftModel import torch import json from tqdm import tqdm import re
ベースとなるモデルと学習したLoRAのアダプタ(Hugging FaceのIDを指定)。
model_id = "llm-jp/llm-jp-3-13b"
adapter_id = "tetumoko/tetumoko-v2-1-llm-jp-3-13b-it_lora"
Hugging Face Token を指定。
下記の URL から Hugging Face Token を取得できますので下記の HF_TOKEN に入れてください。
https://huggingface.co/settings/tokens
HF_TOKEN = ""
unslothのFastLanguageModelで元のモデルをロード。
dtype = None # Noneにしておけば自動で設定 load_in_4bit = True # 今回は13Bモデルを扱うためTrue
model, tokenizer = FastLanguageModel.from_pretrained( model_name=model_id, dtype=dtype, load_in_4bit=load_in_4bit, trust_remote_code=True, )
元のモデルに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 = ""
モデルを用いてタスクの推論。
推論するためにモデルのモードを変更
FastLanguageModel.for_inference(model)
results = [] for dt in tqdm(datasets): input = dt["input"]
prompt = f"""### 指示\n{input}\n### 回答\n"""
inputs = tokenizer([prompt], return_tensors = "pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens = 1024, use_cache = True, do_sample=False, repetition_penalty=1.2) prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答')[-1]
results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
結果をjsonlで出力・保存。
ここではadapter_idを元にファイル名を決定しているが、ファイル名は任意で問題なし。
json_file_id = re.sub(".*/", "", adapter_id) with open(f"/content/{json_file_id}_output.jsonl", 'w', encoding='utf-8') as f: for result in results: json.dump(result, f, ensure_ascii=False) f.write('\n')