--- base_model: llm-jp/llm-jp-3-13b tags: - text-generation-inference - transformers - unsloth - llama - trl license: apache-2.0 language: - jp --- # Uploaded model - **Developed by:** kazugiri - **License:** apache-2.0 - **Finetuned from model :** llm-jp/llm-jp-3-13b This llama model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library. [](https://github.com/unslothai/unsloth) # How to use Follow these instructions and execute codes in Google Colab ```python !pip install -U bitsandbytes !pip install -U transformers !pip install -U accelerate !pip install -U datasets !pip install ipywidgets --upgrade ``` ```python from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, ) import torch from tqdm import tqdm import json import re ``` ```python # Write here your Hugging Face token HF_TOKEN = "{your Hugging Face token}" model_name = "kazugiri/llm-jp-3-13b-kgit1.1" ``` ```python # QLoRA config bnb_config = BitsAndBytesConfig( load_in_8bit=True, bnb_8bit_quant_type="fp8", bnb_8bit_compute_dtype=torch.float32, bnb_8bit_use_double_quant=True, use_llm_int8=True, ) ``` ```python # Load model model = AutoModelForCausalLM.from_pretrained( model_name, quantization_config=bnb_config, device_map="auto", token = HF_TOKEN ) # Load tokenizer tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True, token = HF_TOKEN) ``` ```python datasets = [] with open("{your task data jsonl file path}", "r") as f: item = "" for line in f: line = line.strip() item += line if item.endswith("}"): datasets.append(json.loads(item)) item = "" ``` ```python results = [] for data in tqdm(datasets): input = data["input"] prompt = f"""あなたは、読解力と共感力の高い、信頼できるロボットアシスタントです。ユーザーの指示を正確に理解し、具体的で的確な回答を提供します。必要に応じて追加の情報や説明を提供し、ユーザーの問題解決を助けます。 以下は指示と回答の例です: --- ### 指示: 日本の首都はどこですか? ### 回答: 日本の首都は東京です。 --- ### 指示: 猫と犬の違いを3つ教えてください。 ### 回答: 1. **社会性の違い**: 猫は単独行動を好む傾向がありますが、犬は群れで行動する社会的な動物です。 2. **運動能力の違い**: 猫は高い場所に登ったり、ジャンプしたりするのが得意ですが、犬は持久力があり、長距離を走るのが得意です。 3. **コミュニケーションの違い**: 猫はしっぽや鳴き声で感情を表現しますが、犬は表情や体全体で感情を伝えます。 --- ### 指示: 「break the ice」というイディオムを使った英語の例文を作成してください。 ### 回答: She told a funny story to break the ice at the meeting. --- ### 指示: 次の対話を読み、その状況を説明してください。 A: 「飛行機に乗り遅れるなんて信じられない!」 B: 「本当だよ。あと10分早く家を出ていればよかったのに。」 A: 「次の便まで待たなきゃいけなくなったね。」 ### 回答: このダイアログの状況は、AとBが飛行機に乗り遅れてしまったことです。二人は家を出るのがもう少し早ければ間に合ったのですが、今は次の飛行機を待つ必要がある状況にあります。 --- ### 指示: {input} ### 回答: """ tokenized_input = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device) with torch.no_grad(): outputs = model.generate( tokenized_input, max_new_tokens=500, do_sample=True, temperature=0.8, top_p=0.95, num_beams=3, no_repeat_ngram_size=3, length_penalty=1.2, repetition_penalty=1.5 )[0] output = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True) results.append({"task_id": data["task_id"], "input": input, "output": output}) ``` ```python # get the answers as a jsonl file model_name = re.sub(".*/", "", model_name) with open(f"./{model_name}-outputs.jsonl", 'w', encoding='utf-8') as f: for result in results: json.dump(result, f, ensure_ascii=False) # ensure_ascii=False for handling non-ASCII characters f.write('\n') ``` # Notes - [llm-jp/oasst1-21k-ja](https://huggingface.co/datasets/llm-jp/oasst1-21k-ja) dataset was used to train this model.