17 のメトリクスを使用したダイアログ モデルの自動評価のための軽量リポジトリ。
? 計算したいメトリクスを選択します
評価は、応答ファイルまたは複数のファイルを含むディレクトリに対して自動的に実行できます。
? メトリクスは、事前に定義された処理しやすい形式で保存されます
次のコマンドを実行して、必要なパッケージをインストールします。
pip install -r requirements.txt
メイン ファイルはどこからでも呼び出すことができますが、ディレクトリへのパスを指定する場合は、リポジトリのルートから指定する必要があります。
python code/main.py -h
完全なドキュメントについては、wiki を参照してください。
必要な引数パス (上の画像) をできるだけ多く指定する必要があります。一部を見逃した場合でもプログラムは実行されますが、それらのファイルを必要とする一部のメトリクスは計算されません (これらのメトリクスは出力されます)。トレーニング データ ファイルがある場合、プログラムは自動的に語彙を生成し、fastText 埋め込みをダウンロードできます。
すべてのメトリクスを計算したくない場合は、構成ファイルでどのメトリクスを計算するかを簡単に設定できます。
ファイルは、応答ファイルが存在するディレクトリに保存されます。最初の行にはメトリクスの名前が含まれ、各行には 1 つのファイルのメトリクスが含まれます。ファイル名の後には、スペースで区切られた個々のメトリック値が続きます。各メトリクスは、平均、標準偏差、信頼区間というカンマで区切られた 3 つの数値で構成されます。引数で信頼区間の t 値を設定できます。デフォルトは 95% の信頼です。
興味深いことに、17 のメトリクスはすべて、ある時点までは改善しますが、DailyDialog での Transformer モデルのトレーニング中に過剰適合が発生せずに停滞します。図については、論文の付録を確認してください。
TRF は検証損失の最小値で評価された Transformer モデルであり、TRF-O はトレーニングの 150 エポック後に評価された Transformer モデルであり、メトリクスが停滞し始めます。 RT はトレーニング セットからランダムに選択された応答を意味し、GT はグラウンド トゥルース応答を意味します。
TRF は Transformer モデルであり、RT はトレーニング セットからランダムに選択された応答を意味し、GT はグラウンド トゥルース応答を意味します。これらの結果は、検証損失が最小限に抑えられたチェックポイントでのテスト セットで測定されたものです。
TRF は Transformer モデルであり、RT はトレーニング セットからランダムに選択された応答を意味し、GT はグラウンド トゥルース応答を意味します。これらの結果は、検証損失が最小限に抑えられたチェックポイントでのテスト セットで測定されたものです。
新しいメトリクスを追加するには、データに基づいてメトリクスの計算を処理するメトリクスのクラスを作成します。例については、BLEU メトリクスを確認してください。通常、init 関数は後で必要になるデータ設定を処理し、update_metrics は引数からの現在の例を使用してメトリクス dict を更新します。クラス内で、特定のテスト ファイルのメトリック値のリストを保存する self.metrics dict を定義する必要があります。これらのメトリクスの名前 (辞書のキー) も、構成ファイルの self.metrics に追加する必要があります。最後に、メトリック クラスのインスタンスを self.objects に追加する必要があります。ここで、メトリクスにセットアップが必要な場合は、初期化時にデータ ファイルへのパスを利用できます。この後、メトリクスが自動的に計算され、保存されます。
ただし、メトリクスにいくつかの制約を追加する必要もあります。たとえば、メトリクスの計算に必要なファイルが見つからない場合は、ここにあるようにユーザーに通知する必要があります。
このプロジェクトは MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。
仕事で使用し、次の論文の引用を検討する場合は、このリポジトリへのリンクを含めてください。
@inproceedings{Csaky:2019,
title = "Improving Neural Conversational Models with Entropy-Based Data Filtering",
author = "Cs{'a}ky, Rich{'a}rd and Purgai, Patrik and Recski, G{'a}bor",
booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
month = jul,
year = "2019",
address = "Florence, Italy",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/P19-1567",
pages = "5650--5669",
}