🚀 emre/gemma-2-9b-Turkish-Lora-Continue-Pre-Trained
このモデルは、トルコ語の自然言語処理タスクに特化したモデルです。google/gemma-2-9b
をベースに、トルコ語のWikipediaデータセットで追加学習を行い、LoRAを用いて効率的にトルコ語に適応させています。
🚀 クイックスタート
Pythonの transformers
と peft
ライブラリを使用して、このモデルを簡単にロードして使用することができます。
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
model_name = "google/gemma-2-9b"
peft_model_id = "emre/gemma-2-9b-Turkish-Lora-Continue-Pre-Trained"
tokenizer = AutoTokenizer.from_pretrained(model_name)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.float16
)
base_model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
device_map="auto",
torch_dtype=torch.float16,
attn_implementation="eager"
)
model = PeftModel.from_pretrained(base_model, peft_model_id)
model.eval()
if torch.cuda.is_available():
model = model.to("cuda")
prompt = "Türkiye'nin başkenti neresidir?"
input_ids = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**input_ids, max_new_tokens=50, num_return_sequences=1)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
✨ 主な機能
直接的な利用
このモデルは、様々な自然言語処理タスクのためのトルコ語テキスト生成に使用できます。
- テキスト生成
- 言語モデリング
- 創作的な文章作成
- トルコ語の文章に基づく質問応答(適切なプロンプトを使用)
下流タスクでの利用
このモデルは、トルコ語の特定の下流タスクでのさらなる微調整の強力なベースとして機能します。
- トルコ語の文章要約
- トルコ語の質問応答
- トルコ語の文章分類
- トルコ語の対話生成
📦 インストール
原READMEにインストール手順が明記されていないため、このセクションは省略されます。
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
model_name = "google/gemma-2-9b"
peft_model_id = "emre/gemma-2-9b-Turkish-Lora-Continue-Pre-Trained"
tokenizer = AutoTokenizer.from_pretrained(model_name)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.float16
)
base_model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
device_map="auto",
torch_dtype=torch.float16,
attn_implementation="eager"
)
model = PeftModel.from_pretrained(base_model, peft_model_id)
model.eval()
if torch.cuda.is_available():
model = model.to("cuda")
prompt = "Türkiye'nin başkenti neresidir?"
input_ids = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**input_ids, max_new_tokens=50, num_return_sequences=1)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
📚 ドキュメント
モデルの詳細
- 商用利用:BBVAグループのみ商用利用可能。学術および研究目的では無料で使用できます。
モデルの説明
このモデルは、google/gemma-2-9b
ベースモデルの追加事前学習バージョンで、トルコ語のWikipediaデータセット (Alaeddin/wikipedia-turkish
) で学習されています。微調整は、低ランク適応 (LoRA) を使用して行われ、モデルを効率的にトルコ語に適応させています。このモデルは、ベースモデルのトルコ語テキストの理解と生成能力を向上させることを目的としています。
- 開発者:Emre Tasar, PhDc University of Navarra / Data Scientist
- 資金提供:自己資金による研究プロジェクト。(Google Colabの計算時間料金820時間)
- 共有者:Emre Tasar (https://huggingface.co/emre)
- モデルタイプ:Causal Language Model
- 言語 (NLP):トルコ語 (tr)
- ライセンス:Gemma, BBVA Only, Free for academy
- 事前学習元のモデル:google/gemma-2-9b
モデルのソース
モデルの使用に関する注意事項
このモデルは、有害、非倫理的または偏ったコンテンツの生成には使用しないでください。大規模なテキストコーパスで学習された言語モデルであるため、誤ってそのようなコンテンツを生成する可能性があります。ユーザーは、このモデルをデプロイする際には注意と責任を持って行う必要があります。
バイアス、リスク、制限事項
このモデルは、トルコ語のWikipediaデータセットで学習されており、元のデータに含まれるバイアスが存在する可能性があります。モデルの性能は、特定のタスクやドメインによって異なる場合があります。ユーザーは、これらの制限事項を認識し、特定のユースケースについて十分な評価を行う必要があります。
推奨事項
ユーザーは、このモデルの出力を慎重に評価し、潜在的なバイアスを考慮してから、実世界のアプリケーションにデプロイする必要があります。特定のタスクや多様なトルコ語データセットでのさらなる微調整は、これらの制限事項の一部を軽減するのに役立つ可能性があります。
🔧 技術詳細
学習データ
このモデルは、Alaeddin/wikipedia-turkish データセットで学習されています。
- 学習分割:1,620,000段落。
- 検証分割:1,000段落(学習セットとは別)。
学習手順
このモデルは、Google Colab Pro+インスタンスのA100 GPU (40GB) を使用して、Hugging Faceの Trainer
APIを用いて学習されました。主要な設定は以下の通りです。
- 量子化:4ビット、NF4タイプ、ダブル量子化 (
BitsAndBytesConfig
)。
- LoRA設定:
- ランク (
r
):8
- アルファ (
lora_alpha
):32
- ターゲットモジュール:
q_proj
, v_proj
- ドロップアウト:0.1
- 学習引数:
- エポック数:1
- 有効バッチサイズ:8 (
per_device_train_batch_size=2
, gradient_accumulation_steps=4
)
- 学習率:2e-5
- スケジューラ:500ステップのウォームアップを伴う線形スケジューラ
- 混合精度:FP16
- 評価頻度:5,000ステップごと
- 総ステップ数:202,500
学習ハイパーパラメータ
- 学習方式:FP16混合精度
- オプティマイザ:AdamW (fused implementation)
速度、サイズ、時間
- 学習時間:約110時間
- ハードウェア:A100 GPU (40GB)
- 学習可能なパラメータ数:4,472,832 (総9,246,178,816パラメータの0.0484%)
評価
テストデータ、要因、指標
テストデータ
トルコ語のWikipediaデータセットから1,000段落を検証セットとして予約しています。
指標
- 検証損失:検証セットでのモデルの予測誤差を測定します。
- パープレキシティ:モデルが次のトークンをどれだけうまく予測できるかを示します(値が低いほど良い)。
結果
モデル |
検証損失 |
パープレキシティ |
事前学習済みコア (Gemma-2-9b) |
2.5168 |
12.39 |
追加事前学習済み (LoRA) |
2.1027 |
8.19 |
LoRAで適応させたモデルは、トルコ語テキストに関してベースモデルを大幅に上回っています。
環境への影響
炭素排出量は、Machine Learning Impact calculator を使用して推定されています。
- ハードウェアタイプ:A100 GPU (40GB)
- 使用時間:110時間
- クラウドプロバイダー:Google Colab
- コンピュートリージョン:不明 (推定ではus-central1と仮定)
- 排出された炭素量:~22 kg CO2eq (44 kWh、0.5 kg CO2/kWhに基づく)
注意:正確な排出量は、コンピュートリージョンのエネルギーミックスに依存します。
📄 ライセンス
Gemma, BBVA Only, Free for academy
引用
@misc{tasar2023gemma2turkish,
author = {Davut Emre Tasar},
title = {Gemma-2-9b Turkish LoRA Continue Pre-Trained Model},
year = {2025},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/emre/gemma-2-9b-Turkish-Lora-Continue-Pre-Trained}}
}