--- license: apache-2.0 base_model: google/gemma-2-9b-it tags: - fine-tuned - gemma - lora - japanese - qa library_name: transformers pipeline_tag: text-generation --- # eyepyon/rcgemma2_9b_it-finetuned このモデルは、`google/gemma-2-9b-it` をベースにLoRAでファインチューニングされたモデルです。 ## 🔧 モデル情報 - **ベースモデル**: google/gemma-2-9b-it - **ファインチューニング手法**: LoRA (Low-Rank Adaptation) - **アテンション実装**: eager (Gemma推奨) - **量子化**: 4ビット (QLoRA) - **対応言語**: 日本語 - **タスク**: 質問応答 ## 🚀 使用方法 ```python from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel # ベースモデルとトークナイザーを読み込み base_model = AutoModelForCausalLM.from_pretrained( "google/gemma-2-9b-it", torch_dtype="auto", device_map="auto", attn_implementation="eager", # Gemma推奨 trust_remote_code=True ) tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-9b-it") # LoRAアダプターを適用 model = PeftModel.from_pretrained(base_model, "eyepyon/rcgemma2_9b_it-finetuned") # 推論 def generate_response(context, question): input_text = f"### コンテキスト:\n{context}\n\n### 質問:\n{question}\n\n### 回答:\n" inputs = tokenizer(input_text, return_tensors="pt") # GPUに移動 if torch.cuda.is_available(): inputs = {k: v.to(model.device) for k, v in inputs.items()} with torch.no_grad(): outputs = model.generate( **inputs, max_length=512, do_sample=True, temperature=0.7, top_p=0.9, pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) if "### 回答:" in response: response = response.split("### 回答:")[-1].strip() return response # 使用例 context = "人工知能は機械学習技術を使用してデータから学習します。" question = "機械学習の特徴は何ですか?" answer = generate_response(context, question) print(answer) ``` ## 📊 入力フォーマット ``` ### コンテキスト: [背景情報やコンテキスト] ### 質問: [ユーザーの質問] ### 回答: [期待される回答] ``` ## ⚙️ トレーニング設定 - **LoRAランク**: 8 - **LoRA Alpha**: 16 - **ターゲットモジュール**: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj - **学習率**: 2e-4 - **バッチサイズ**: 1 × 4 (gradient accumulation) - **グラディエントチェックポイント**: use_reentrant=False ## ⚠️ 重要な注意事項 ### Gemma特有の設定 - **eager attention必須**: `attn_implementation="eager"`を使用してください - **use_cache=False**: グラディエントチェックポイントとの互換性のため - **use_reentrant=False**: 新しい推奨設定 ### 制限事項 - 主に日本語での質問応答に最適化 - 生成される回答の事実確認が必要 - 特定のドメイン知識でのファインチューニング ## 📄 ライセンス Apache 2.0 License ## 🔗 関連リンク - [ベースモデル](google/gemma-2-9b-it) - [PEFT Documentation](https://huggingface.co/docs/peft) - [Transformers Documentation](https://huggingface.co/docs/transformers) --- **最終更新**: 2025年05月25日