--- language: - ja - en tags: - llm - question answering - text generation --- LLM-JP-3-13B ファインチューニングモデル # モデル詳細 ベースモデル: llm-jp/llm-jp-3-13b アダプターモデル 1: nmczzi/llm-jp-3-13b-finetune-4 アダプターモデル 2: nmczzi/llm-jp-3-13b-finetune-4-dpo-2 アダプターモデル 3: nmczzi/llm-jp-3-13b-finetune-4-dpo-2-plus 量子化: 4ビット量子化 (QLoRA) # インストール 必要なパッケージのインストール: pip install -U bitsandbytes transformers accelerate datasets peft # 使用方法 以下は、モデルの基本的な使用例です: ``` from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, ) from peft import PeftModel import torch HF_TOKEN = "AVAILABLE YOUR-HF-TOKEN" model_name = "llm-jp/llm-jp-3-13b" adapter_name = "r-yuba62/llm-jp-3-13b-finetune" bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, ) # モデルとトークナイザーをロード model = AutoModelForCausalLM.from_pretrained( model_name, quantization_config=bnb_config, device_map="auto", token=HF_TOKEN ) tokenizer = AutoTokenizer.from_pretrained( model_name, trust_remote_code=True, token=HF_TOKEN ) # PEFTアダプターを適用 model = PeftModel.from_pretrained(model, adapter_name, token=HF_TOKEN) def get_response(input_text): prompt = f"""### 指示 {input_text} ### 回答: """ # トークナイズ処理 tokenized_input = tokenizer( prompt, return_tensors="pt", padding=True, truncation=True, max_length=512 ) input_ids = tokenized_input["input_ids"].to(model.device) attention_mask = tokenized_input["attention_mask"].to(model.device) # モデル生成 with torch.no_grad(): outputs = model.generate( input_ids=input_ids, attention_mask=attention_mask, max_new_tokens=512, do_sample=False, repetition_penalty=1.2, pad_token_id=tokenizer.eos_token_id ) # 出力のデコード output_text = tokenizer.decode(outputs[0], skip_special_tokens=True) return output_text input_text = "xxxを教えてください" response = get_response(input_text) print(response) ```