🚀 Aeona | チャットボット
Aeonaは、生成型AI技術に基づくチャットボットです。人間と友人のように交流することができ、主にDiscordプラットフォームを対象としています。特定のモデルとデータセットを用いて訓練されており、会話生成において優れた性能を発揮します。また、AIMLチャットボットと連携することで、性能を向上させることができます。
🚀 クイックスタート
Aeonaは、microsoft/DialoGPT-small を使用して構築された生成型AIです。
AIMLチャットボット と一緒に使用することをおすすめします。これにより、負荷を軽減し、より良い返答を得ることができ、ボットに名前と個性を与えることができます。AIMLチャットボットを使用すると、いくつかの返答をハードコードすることもできます。
ここをクリック すると、このボットを招待することができます。このプロジェクトに関する詳細情報を得たり、AIとチャットしたりするには、このウェブサイト を訪問してください。
✨ 主な機能
- 友好的な交流:Aeonaは、人間と友人のように会話することを目指しており、主なターゲットプラットフォームはDiscordです。
- 個性の適応:過去のメッセージのコンテキストを利用して、会話相手の人間の個性を推測し、自身の個性を調整して、ユーザーとより良く交流することができます。
- AIMLとの連携:AIMLチャットボットと連携することで、負荷を軽減し、より良い返答を得ることができ、ボットに名前と個性を与えることができます。また、いくつかの返答をハードコードすることもできます。
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("deepparag/Aeona")
model = AutoModelWithLMHead.from_pretrained("deepparag/Aeona")
for step in range(4):
new_user_input_ids = tokenizer.encode(input(">> User:") + tokenizer.eos_token, return_tensors='pt')
bot_input_ids = torch.cat([chat_history_ids, new_user_input_ids], dim=-1) if step > 0 else new_user_input_ids
chat_history_ids = model.generate(
bot_input_ids, max_length=200,
pad_token_id=tokenizer.eos_token_id,
no_repeat_ngram_size=4,
do_sample=True,
top_k=100,
top_p=0.7,
temperature=0.8
)
print("Aeona: {}".format(tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)))
🔧 技術詳細
目標
AIMLと連携して、最も人間に近いAIを作成することを目標としています。
なぜAIを単独で使用しないのか?
AIMLと比較すると、AIは実際にはユーザーを理解し、彼らのデータを保存することは不可能です。一方、AIMLはコードを実行することさえできます!AIの目標は、AIMLが処理できない場合に返答を生成することです。
したがって、目標は、広範な知識を持ちながら、できるだけ小さなAIを作成することです!このために、3つのデータセットを使用しています。
- Movielines:映画のセリフは、より長く、より深い返答を生成するのに役立ちますが、非常にランダムな場合があります。約20万のセリフがあります!
- Discord Messages:これらのメッセージは幅広いトピックをカバーしており、フィルタリングされてゴミ情報が取り除かれています。これにより、AIは非常にランダムな性質を持ち、日常的な質問に非常にランダムな返答をすることができます。約1億2000万のメッセージがあります!
- カスタムデータセット:個人のメッセージから抽出されたもので、範囲が狭いです。このデータセットを使用して訓練し、ランダムな返答をすると、AIはしばしば謝罪することになります!
訓練
Discordメッセージデータセットの規模は他のデータセットよりもはるかに大きいため、これらのデータセットは繰り返し使用されます。これにより、互いの欠点を補うことができます!
このAIのコンテキストは6つのメッセージです。つまり、ユーザーの前の4つのメッセージに返答します。例
ヒント
ユーザーの入力と、前の3つのAIと人間の返答を送信することをおすすめします。
これ以上のコンテキストを使用すると、無意味な返答になる可能性がありますが、コンテキストを少なく使用することもできます。ただし、返答はよりランダムになる可能性があります。
📚 ドキュメント
評価
以下は、Aeonaと他のベースラインモデルが上記の混合データセットで自動評価指標を使用して比較された結果です。
モデル |
困惑度 |
Seq2seq Baseline [3] |
29.8 |
Wolf et al. [5] |
16.3 |
GPT - 2 baseline |
99.5 |
DialoGPT baseline |
56.6 |
DialoGPT finetuned |
11.4 |
PersonaGPT |
10.2 |
Aeona |
7.9 |
📄 ライセンス
このプロジェクトはMITライセンスの下で提供されています。