## 🚀 T5-largeを用いた誘導選択肢生成
このリポジトリには、誘導選択肢生成のためにファインチューニングされた**T5-large**モデルが含まれています。T5のテキスト対テキストフレームワークとカスタム区切りトークンを利用して、このモデルは与えられた質問、文脈、正解を条件として、選択問題のための3つの妥当な誘導選択肢を生成します。
## ✨ 主な機能
このモデルは、[PyTorch Lightning](https://www.pytorchlightning.ai/)を用いて構築され、事前学習済みの**T5-base**モデルをファインチューニングして誘導選択肢を生成します。モデルは質問、文脈、正解がカスタムトークンで区切られた単一の入力シーケンスを受け取り、3つの誘導選択肢を含むターゲットシーケンスを生成します。このアプローチは、選択問題生成タスクに特に有用です。
## 📦 インストール
このモデルはHugging FaceのTransformersライブラリを使用しています。必要なライブラリをインストールするには、以下のコマンドを実行します。
```bash
pip install transformers
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
model_name = "fares7elsadek/t5-large-distractor-generation"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
SEP_TOKEN = "<sep>"
def generate_distractors(question, context, correct, max_length=64):
input_text = f"{question}{SEP_TOKEN}{correct}{SEP_TOKEN}{context}"
inputs = tokenizer([input_text], return_tensors="pt", truncation=True, padding=True)
outputs = model.generate(
input_ids=inputs["input_ids"],
attention_mask=inputs["attention_mask"],
max_length=max_length
)
decoded = tokenizer.decode(outputs[0], skip_special_tokens=True, clean_up_tokenization_spaces=True)
distractors = [d.strip() for d in decoded.split(SEP_TOKEN)]
return distractors
question = "What is the capital of France?"
context = "France is a country in Western Europe known for its rich history and cultural heritage."
correct = "Paris"
print(generate_distractors(question, context, correct))
📚 ドキュメント
データ処理
入力構築
各入力サンプルは、以下の形式の単一の文字列です。
question {SEP_TOKEN} correct {SEP_TOKEN} context
- question: 質問文
- context: 文脈の文章
- correct: 正解
- SEP_TOKEN: 異なるフィールドを区切るためにトークナイザに追加された特殊トークン
ターゲット構築
各ターゲットサンプルは、以下のように構築されます。
incorrect1 {SEP_TOKEN} incorrect2 {SEP_TOKEN} incorrect3
この形式により、モデルは一度に3つの誘導選択肢を生成できます。
学習詳細
- フレームワーク: PyTorch Lightning
- ベースモデル: T5-base
- オプティマイザ: 線形スケジューリングを使用したAdam(ウォームアップスケジューラーを使用)
- バッチサイズ: 32
- エポック数: 5
- 学習率: 2e-5
- トークン化:
- 入力: 最大512トークン
- ターゲット: 最大64トークン
- 特殊トークン: カスタムの
SEP_TOKEN
がトークナイザに追加され、入力とターゲットシーケンスの異なる部分を区切るために使用されます。
評価指標
モデルは、生成された各誘導選択肢のBLEUスコアを使用して評価されます。以下は、テストセットで得られたBLEUスコアです。
誘導選択肢 |
BLEU-1 |
BLEU-2 |
BLEU-3 |
BLEU-4 |
誘導選択肢1 |
32.29 |
23.85 |
19.86 |
17.53 |
誘導選択肢2 |
26.70 |
17.76 |
14.01 |
11.77 |
誘導選択肢3 |
23.63 |
14.89 |
11.29 |
9.41 |
これらのスコアは、モデルが参照誘導選択肢と比較して高いn-gramオーバーラップを持つ誘導選択肢を生成できることを示しています。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。
以上のREADMEは、元の文書の内容を保持しつつ、日本語に翻訳し、構造を整理し、視覚的に美しく整形されています。また、必要な情報を明確に提示するために、emojiを追加しています。