🚀 カンボジア語mT5要約モデル (1024トークン) - V2
このリポジトリには、カンボジア語mT5要約モデルの改良版 songhieng/khmer-mt5-summarization-1024tk-V2 が含まれています。このバージョンは、kimleang123/rfi_news などの拡張データセットで学習されており、カンボジア語テキストの要約性能が向上しています。
🚀 クイックスタート
このモデルは、カンボジア語のテキストを要約するために設計されています。以下のセクションでは、モデルの詳細、インストール方法、使用方法、評価方法などを説明します。
✨ 主な機能
- 拡張データセットで学習されたカンボジア語要約モデル
- 最大1024トークンの入力をサポート
- Hugging Face
transformers
ライブラリを使用した簡単な操作
- ROUGEスコアで評価された高い性能
📦 インストール
1️⃣ 依存関係のインストール
transformers
、torch
、datasets
をインストールしてください。
pip install transformers torch datasets
2️⃣ モデルの読み込み
微調整されたモデルを読み込んで使用するには、以下のコードを実行します。
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_name = "songhieng/khmer-mt5-summarization-1024tk-V2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
💻 使用例
基本的な使用法
def summarize_khmer(text, max_length=150):
input_text = f"summarize: {text}"
inputs = tokenizer(input_text, return_tensors="pt", truncation=True, max_length=1024)
summary_ids = model.generate(**inputs, max_length=max_length, num_beams=5, length_penalty=2.0, early_stopping=True)
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
return summary
khmer_text = "កម្ពុជាមានប្រជាជនប្រមាណ ១៦ លាននាក់ ហើយវាគឺជាប្រទេសនៅតំបន់អាស៊ីអាគ្នេយ៍។"
summary = summarize_khmer(khmer_text)
print("Khmer Summary:", summary)
高度な使用法
Hugging Face Pipelineを使用する場合
from transformers import pipeline
summarizer = pipeline("summarization", model="songhieng/khmer-mt5-summarization-1024tk-V2")
khmer_text = "កម្ពុជាមានប្រជាជនប្រមាណ ១៦ លាននាក់ ហើយវាគឺជាប្រទេសនៅតំបន់អាស៊ីអាគ្នេយ៍។"
summary = summarizer(khmer_text, max_length=150, min_length=30, do_sample=False)
print("Khmer Summary:", summary[0]['summary_text'])
FastAPIを使用してAPIとしてデプロイする場合
from fastapi import FastAPI
app = FastAPI()
@app.post("/summarize/")
def summarize(text: str):
inputs = tokenizer(f"summarize: {text}", return_tensors="pt", truncation=True, max_length=1024)
summary_ids = model.generate(**inputs, max_length=150, num_beams=5, length_penalty=2.0, early_stopping=True)
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
return {"summary": summary}
📚 ドキュメント
モデル詳細
プロパティ |
詳細 |
ベースモデル |
google/mt5-small |
微調整対象 |
拡張入力長を持つカンボジア語テキスト要約 |
学習データセット |
kimleang123/rfi_news + 以前のデータセット |
フレームワーク |
Hugging Face transformers |
タスクタイプ |
シーケンス-to-シーケンス (Seq2Seq) |
入力 |
最大1024トークンのカンボジア語テキスト (記事、段落、またはドキュメント) |
出力 |
要約されたカンボジア語テキスト |
学習ハードウェア |
GPU (Tesla T4) |
評価指標 |
ROUGEスコア |
モデル評価
モデルは ROUGEスコア を使用して評価されました。ROUGEスコアは、生成された要約と参照要約の類似度を測定します。
from datasets import load_metric
rouge = load_metric("rouge")
def compute_metrics(pred):
labels_ids = pred.label_ids
pred_ids = pred.predictions
decoded_preds = tokenizer.batch_decode(pred_ids, skip_special_tokens=True)
decoded_labels = tokenizer.batch_decode(labels_ids, skip_special_tokens=True)
return rouge.compute(predictions=decoded_preds, references=decoded_labels)
trainer.evaluate()
モデルの保存とアップロード
微調整後、モデルをHugging Face Hubにアップロードできます。
model.push_to_hub("songhieng/khmer-mt5-summarization-1024tk-V2")
tokenizer.push_to_hub("songhieng/khmer-mt5-summarization-1024tk-V2")
後でモデルをダウンロードするには、以下のコードを使用します。
model = AutoModelForSeq2SeqLM.from_pretrained("songhieng/khmer-mt5-summarization-1024tk-V2")
tokenizer = AutoTokenizer.from_pretrained("songhieng/khmer-mt5-summarization-1024tk-V2")
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。