モデル概要
モデル特徴
モデル能力
使用事例
🚀 GPT2会話型モデルカード
- このモデルは非推奨です。より性能の高いモデルについては、https://huggingface.co/Locutusque/gpt2-conversational-retrain を参照してください。*
🚀 クイックスタート
このモデルは、会話応答を生成するために使用されます。以下のセクションでは、モデルの詳細、学習データ、評価指標などについて説明します。
✨ 主な機能
- 様々なコンテキストでの会話応答生成に適しています。
- 自然で魅力的な応答を提供し、会話全体で一貫したトーンとスタイルを維持します。
- テキストベースと音声ベースの両方のインターフェースで使用でき、PyTorchとTransformersフレームワークを使用して既存のアプリケーションに簡単に統合できます。
📦 インストール
このセクションでは、モデルのインストール方法について説明します。以下のコードを使用して、モデルをダウンロードして設定します。
import torch
from transformers import GPT2Tokenizer, GPT2LMHeadModel
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')
tokenizer.add_special_tokens({'pad_token': '[PAD]'})
tokenizer.add_special_tokens({'eos_token': '<|End|>'})
special_tokens = {
"additional_special_tokens": ["<|USER|>", "<|SYSTEM|>", "<|ASSISTANT|>"]
}
tokenizer.add_special_tokens(special_tokens)
model.resize_token_embeddings(len(tokenizer))
model.load_state_dict(torch.load("path/to/model"))
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
💻 使用例
基本的な使用法
def generate_text(model, tokenizer, prompt, max_length=1024):
prompt = f'<|USER|> {prompt} <|ASSISTANT|> '
input_ids = tokenizer.encode(prompt, add_special_tokens=True, return_tensors="pt").to(device)
attention_mask = torch.ones_like(input_ids).to(device)
output = model.generate(input_ids,
max_length=max_length,
do_sample=True,
top_k=35,
top_p=0.80,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
attention_mask=attention_mask)
output_ids = tokenizer.decode(output[0], skip_special_tokens=False)
assistant_token_index = output_ids.index('<|ASSISTANT|>') + len('<|ASSISTANT|>')
next_token_index = output_ids.find('<|', assistant_token_index)
output_ids = output_ids[assistant_token_index:next_token_index]
return output_ids
# Loop to interact with the model
while True:
prompt = input("Enter a prompt (or 'q' to quit): ")
if prompt == "q":
break
output_text = generate_text(model, tokenizer, prompt)
print(output_text)
📚 ドキュメント
モデル詳細
属性 | 详情 |
---|---|
モデル名 | gpt2-conversational-or-qa (プロトタイプ) |
モデルタイプ | 言語モデリング |
タスク | 会話応答の生成 |
ハードウェア | 1x RTX 3060 |
説明 | このモデルは、ユーザーとAIアシスタントの会話データセットで学習され、ユーザーの入力に対して首尾一貫した関連性のある応答を生成することを目的としています。GPT - 2アーキテクチャを使用しており、さまざまなスタイルとトーンの高品質なテキストを生成できる最先端のトランスフォーマーベースの言語モデルです。モデルは、会話データで最尤推定を使用して微調整され、文法的に正しく、ユーザーの入力に意味的に関連する応答を生成する能力に基づいて評価されます。また、https://huggingface.co/Locutusque/gpt2-medium-conversational やhttps://huggingface.co/Locutusque/gpt2-large-conversational などのより大きなモデルも学習しています。 |
意図された使用方法
このモデルは、チャットボット、バーチャルアシスタント、カスタマーサービスアプリケーションなど、さまざまなコンテキストでの会話応答生成に使用することを意図しています。ユーザー入力に対して自然で魅力的な応答を提供し、会話全体で一貫したトーンとスタイルを維持することに重点を置いています。テキストベースと音声ベースの両方のインターフェースで使用するのに適しており、PyTorchとTransformersフレームワークを使用して既存のアプリケーションに簡単に統合できます。
学習データ
このモデルは、ユーザーとAIアシスタントのやり取りからなる大規模な会話データセットで学習されています。データは、機密情報を削除するために前処理され、言語モデルの学習に適した形式に整形されています。学習データは学習セットと検証セットに分割され、学習セットはモデルパラメータの更新に、検証セットはモデルのパフォーマンス評価に使用されます。モデルは245,000のサンプルで1,225,000ステップ学習され、適切な指標を達成しました。
以下は、学習初期段階におけるベースのGPT - 2モデルと会話型GPT - 2モデルの比較です。
# Base GPT-2
"""
Epoch 1/5, Batch 1/10000: Loss - 64.9255, Reward - 260.0000, Penalty - 624.0000, BLEU - 0.0000
Epoch 1/5, Batch 2/10000: Loss - 57.4635, Reward - 303.0000, Penalty - 870.0000, BLEU - 0.0000
Epoch 1/5, Batch 3/10000: Loss - 67.8061, Reward - 295.0000, Penalty - 908.0000, BLEU - 0.0000
Epoch 1/5, Batch 4/10000: Loss - 59.6118, Reward - 800.0000, Penalty - 740.0000, BLEU - 0.0000
Epoch 1/5, Batch 5/10000: Loss - 67.4855, Reward - 402.0000, Penalty - 806.0000, BLEU - 0.0000
Epoch 1/5, Batch 6/10000: Loss - 29.3718, Reward - 937.0000, Penalty - 760.0000, BLEU - 0.0000
Epoch 1/5, Batch 7/10000: Loss - 79.0709, Reward - 390.0000, Penalty - 1114.0000, BLEU - 0.0000
Epoch 1/5, Batch 8/10000: Loss - 61.4583, Reward - 385.0000, Penalty - 760.0000, BLEU - 0.0000
Epoch 1/5, Batch 9/10000: Loss - 56.3084, Reward - 741.0000, Penalty - 560.0000, BLEU - 3.5500
Epoch 1/5, Batch 10/10000: Loss - 80.0192, Reward - 838.0000, Penalty - 1424.0000, BLEU - 0.0000
Epoch 1/5, Batch 11/10000: Loss - 51.8236, Reward - 228.0000, Penalty - 812.0000, BLEU - 0.0001
Epoch 1/5, Batch 12/10000: Loss - 71.4071, Reward - 541.0000, Penalty - 982.0000, BLEU - 0.0000
Epoch 1/5, Batch 13/10000: Loss - 33.3624, Reward - 910.0000, Penalty - 1002.0000, BLEU - 0.0027
Epoch 1/5, Batch 14/10000: Loss - 55.9721, Reward - 808.0000, Penalty - 798.0000, BLEU - 0.0005
Epoch 1/5, Batch 15/10000: Loss - 67.0336, Reward - 517.0000, Penalty - 764.0000, BLEU - 0.0000
"""
# Conversational GPT-2
"""
Epoch 1/5, Batch 1/10000: Loss - 6.1980, Reward - 887.0000, Penalty - 1500.0000, BLEU - 0.0648
Epoch 1/5, Batch 2/10000: Loss - 4.5750, Reward - 245.0000, Penalty - 1618.0000, BLEU - 0.0008
Epoch 1/5, Batch 3/10000: Loss - 5.1264, Reward - 600.0000, Penalty - 642.0000, BLEU - 5.7981
Epoch 1/5, Batch 4/10000: Loss - 0.2995, Reward - 1020.0000, Penalty - 74.0000, BLEU - 13.8469
Epoch 1/5, Batch 5/10000: Loss - 7.9377, Reward - 203.0000, Penalty - 1700.0000, BLEU - 0.3218
Epoch 1/5, Batch 6/10000: Loss - 5.0522, Reward - 1020.0000, Penalty - 2034.0000, BLEU - 0.1946
Epoch 1/5, Batch 7/10000: Loss - 2.0585, Reward - 925.0000, Penalty - 526.0000, BLEU - 16.1298
Epoch 1/5, Batch 8/10000: Loss - 5.9736, Reward - 1009.0000, Penalty - 1844.0000, BLEU - 0.0085
Epoch 1/5, Batch 9/10000: Loss - 6.0867, Reward - 245.0000, Penalty - 1690.0000, BLEU - 1.9342
Epoch 1/5, Batch 10/10000: Loss - 7.8497, Reward - 155.0000, Penalty - 1780.0000, BLEU - 0.0115
Epoch 1/5, Batch 11/10000: Loss - 3.8887, Reward - 1012.0000, Penalty - 2010.0000, BLEU - 0.6957
Epoch 1/5, Batch 12/10000: Loss - 6.6133, Reward - 216.0000, Penalty - 1638.0000, BLEU - 1.7853
Epoch 1/5, Batch 13/10000: Loss - 1.3319, Reward - 945.0000, Penalty - 374.0000, BLEU - 0.0075
Epoch 1/5, Batch 14/10000: Loss - 2.6296, Reward - 956.0000, Penalty - 414.0000, BLEU - 3.2207
Epoch 1/5, Batch 15/10000: Loss - 6.8827, Reward - 1013.0000, Penalty - 1970.0000, BLEU - 3.7418
"""
モデルアーキテクチャ
このモデルに使用されているモデルアーキテクチャはGPT - 2で、さまざまなスタイルとトーンの高品質なテキストを生成できるトランスフォーマーベースの言語モデルです。GPT - 2アーキテクチャは、多層のデコーダー専用トランスフォーマーで構成されており、自己注意機構により長期的な依存関係を捉え、首尾一貫したテキストを生成することができます。
評価指標
このモデルは、損失、報酬、ペナルティ、BLEUスコア、パープレキシティなどのいくつかの指標に基づいて評価されます。損失指標は学習中に計算され、予測出力と実際の出力の差を反映します。報酬指標は、モデルが生成した正しい単語の数に基づいており、ペナルティ指標はモデルが単語を連続して繰り返すことに対してペナルティを課します。BLEUスコアは、生成されたテキストと正解テキストの類似度を測定し、パープレキシティ指標はモデルがシーケンス内の次の単語を予測する能力を測定します。検証時に、モデルは以下の指標を達成しました。
- BLEUスコア: 9
- パープレキシティ: 19
- 損失: 1.7
制限とバイアス
このモデルは、弱いコンピュータでの学習時間が限られているため、すべてのユースケースに適していません。その結果、関連性のないまたは無意味な応答を生成する可能性があります。さらに、チャット履歴を記憶するように微調整されておらず、フォローアップ応答を提供することができず、多くの質問に答えることができません(会話的な方法で応答するようにのみ微調整されています)。最適なパフォーマンスを得るためには、少なくとも4GBのVRAMを持つGPUを使用し、Transformersライブラリを使用するのではなく手動でモデルをダウンロードするか、Interface APIで展開することをお勧めします。
モデルの展開と学習
このモデルは、"<|USER|> {ユーザーのプロンプト} <|ASSISTANT|> {モデルの予測} <|End|>"
のような特定の入力形式で微調整されています。モデルから最良のパフォーマンスを得るためには、入力テキストは <|USER|> {ユーザーのプロンプト} <|ASSISTANT|>
、ターゲット/ラベルは <|USER|> {ユーザーのプロンプト} <|ASSISTANT|> {データセットの出力} <|End|>
とする必要があります。
オープンLLMリーダーボード評価結果
詳細な結果はこちらで確認できます。
指標 | 値 |
---|---|
平均 | 25.09 |
ARC (25-shot) | 21.42 |
HellaSwag (10-shot) | 27.61 |
MMLU (5-shot) | 26.51 |
TruthfulQA (0-shot) | 47.31 |
Winogrande (5-shot) | 51.14 |
GSM8K (5-shot) | 0.08 |
DROP (3-shot) | 1.55 |
🔧 技術詳細
このモデルは、GPT - 2アーキテクチャを使用し、会話データで最尤推定を用いて微調整されています。評価は、損失、報酬、ペナルティ、BLEUスコア、パープレキシティなどの指標に基づいて行われます。
📄 ライセンス
このモデルはOpenRailライセンスの下で提供されています。



