Sample Use
Google Colab 上でモデルを読み込み、elyza-tasks-100-TV_0.jsonl のinput からoutput を出力し、jsonl 形式で保存するコードは以下の通りである。
1# 必要なライブラリをインストール
2%%capture
3!pip install unsloth
4!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
5!pip install -U torch
6!pip install -U peft
7
8# 必要なライブラリを読み込み
9from unsloth import FastLanguageModel
10from peft import PeftModel
11import torch
12import json
13from tqdm import tqdm
14import re
15import pandas as pd
16from datasets import load_dataset
17import time
18
19from google.colab import userdata
20HF_TOKEN=userdata.get('HF_TOKEN')
21
22# ベースとなるモデルと学習したLoRAのアダプタ(Hugging FaceのIDを指定)。
23model_id = "./gemma-2-27b"
24adapter_id = "LLMstudy/gemma-2-27b-it-241217-2epoch-Llama_lora"
25
26# 入出力ファイルの設定
27test_file_path = './elyza-tasks-100-TV_0.jsonl'
28output_file_path = f'./answer_gemma-2-27b-it-241217.jsonl'
29
30# プロンプトフォーマットの定義
31prompt = """以下は、タスクを説明する指示です。指示を適切に満たす回答を書いてください。
32
33
34### 指示:
35{}
36
37
38### 回答:
39{}"""
40
41# モデルの読み込み
42!huggingface-cli login --token $HF_TOKEN
43!huggingface-cli download google/gemma-2-27b --local-dir gemma-2-27b/
44
45# model parameters
46max_seq_length = 2048
47dtype = None
48load_in_4bit = True
49
50# FastLanguageModel インスタンスを作成
51model, tokenizer = FastLanguageModel.from_pretrained(
52 model_name=model_id,
53 dtype=dtype,
54 load_in_4bit=load_in_4bit,
55 trust_remote_code=True,
56)
57
58# 元のモデルにLoRAのアダプタを統合。
59model = PeftModel.from_pretrained(model, adapter_id, token = HF_TOKEN)
60
61# 推論
62# データセットの読み込み
63datasets = []
64with open(test_file_path, "r") as f:
65 item = ""
66 for line in f:
67 line = line.strip()
68 item += line
69 if item.endswith("}"):
70 datasets.append(json.loads(item))
71 item = ""
72
73# 学習したモデルを用いてタスクを実行
74FastLanguageModel.for_inference(model)
75start_time = time.time()
76results = []
77for dt in tqdm(datasets):
78 input = dt["input"]
79 instruction = prompt.format(input, "")
80 inputs = tokenizer([instruction], return_tensors = "pt").to(model.device)
81
82 outputs = model.generate(**inputs, max_new_tokens = 2048, use_cache = True, do_sample=False, repetition_penalty=1.2)
83 prediction = tokenizer.decode(outputs[0], skip_special_tokens=True).split('\n### 回答:\n')[-1]
84
85 results.append({"task_id": dt["task_id"], "input": input, "output": prediction})
86 print(f"task_id: {dt['task_id']}")
87 print(f"prompt: {instruction}")
88 print(f"output: {prediction}")
89 print("-" * 50)
90end_time = time.time()
91print(f"Execution Time: {end_time - start_time} seconds")
92
93# jsonlで保存
94with open(output_file_path, 'w', encoding='utf-8') as f:
95 for result in results:
96 json.dump(result, f, ensure_ascii=False)
97 f.write('\n')
License
This model is distributed under the following terms:
- Gemma Terms of Use (see attached
Gemma_Terms_of_Use.txt or https://ai.google.dev/gemma/terms)
- Additional Restrictions:
- Use of this model, its derivatives, or its outputs is strictly prohibited for any purpose, including research, commercial, or educational purposes, without the explicit permission of the creator.
- Redistribution of this model or its derivatives in any form is prohibited without the explicit permission of the creator.
Model Card for Model ID
Model Details
Model Description
This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
- Developed by: [More Information Needed]
- Funded by [optional]: [More Information Needed]
- Shared by [optional]: [More Information Needed]
- Model type: [More Information Needed]
- Language(s) (NLP): [More Information Needed]
- License: [More Information Needed]
- Finetuned from model [optional]: [More Information Needed]
Model Sources [optional]
- Repository: [More Information Needed]
- Paper [optional]: [More Information Needed]
- Demo [optional]: [More Information Needed]
Uses
Direct Use
[More Information Needed]
Downstream Use [optional]
[More Information Needed]
Out-of-Scope Use
[More Information Needed]
Bias, Risks, and Limitations
[More Information Needed]
Recommendations
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
How to Get Started with the Model
Use the code below to get started with the model.
[More Information Needed]
Training Details
Training Data
[More Information Needed]
Training Procedure
Preprocessing [optional]
[More Information Needed]
Training Hyperparameters
- Training regime: [More Information Needed]
Speeds, Sizes, Times [optional]
[More Information Needed]
Evaluation
Testing Data, Factors & Metrics
Testing Data
[More Information Needed]
Factors
[More Information Needed]
Metrics
[More Information Needed]
Results
[More Information Needed]
Summary
Model Examination [optional]
[More Information Needed]
Environmental Impact
Carbon emissions can be estimated using the
Machine Learning Impact calculator presented in
Lacoste et al. (2019).
- Hardware Type: [More Information Needed]
- Hours used: [More Information Needed]
- Cloud Provider: [More Information Needed]
- Compute Region: [More Information Needed]
- Carbon Emitted: [More Information Needed]
Technical Specifications [optional]
Model Architecture and Objective
[More Information Needed]
Compute Infrastructure
[More Information Needed]
Hardware
[More Information Needed]
Software
[More Information Needed]
Citation [optional]
BibTeX:
[More Information Needed]
APA:
[More Information Needed]
Glossary [optional]
[More Information Needed]
More Information [optional]
[More Information Needed]
Model Card Authors [optional]
[More Information Needed]
Model Card Contact
[More Information Needed]