File size: 2,214 Bytes
c4a3361 fa2e6ec c4a3361 8c76cad c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 2d7a1d0 c4a3361 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
---
language: ja
tags:
- text-generation
- japanese
- llm
- lora
- instruction-tuning
license: cc-by-nc-sa-4.0
datasets:
- ichikara-instruction
- Ego/jpflan-raw
base_model: llm-jp/llm-jp-3-3.7b
model_name: llm-jp-3-3.7b-it_lora_all
widget:
- text: " "
---
# LLM-JP-3.3.7B LoRA Model
This is the **LLM-JP-3.3.7B** model fine-tuned with LoRA for instruction-based Japanese text generation tasks. The model has been fine-tuned on datasets **ichikara-instruction** and **Ego/jpflan-raw**.
## How to Use
Below is an example of how to use the model for inference:
```python
import torch
from unsloth import FastLanguageModel
from peft import PeftModel
HF_TOKEN = "" # Add your Hugging Face token here
# Load the base model and tokenizer
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="llm-jp/llm-jp-3-3.7b",
dtype=None,
load_in_4bit=True,
trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, "nito78/llm-jp-3-3.7b-it_lora_all", token=HF_TOKEN)
# Switch to inference mode
FastLanguageModel.for_inference(model)
# Example usage
import json
# Load dataset
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 = ""
from tqdm import tqdm
# Perform inference
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=512, 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})
import os
import json
# Save results
output_dir = "./results"
os.makedirs(output_dir, exist_ok=True)
output_file = os.path.join(output_dir, "result.jsonl")
with open(output_file, "w", encoding="utf-8") as f:
for result in results:
json.dump(result, f, ensure_ascii=False)
f.write("\n")
|