GLUE:英語用の一般言語理解評価ベンチマーク:AI・機械学習のデータセット辞典
データセット「GLUE」について説明。英語で自然言語処理モデルの性能を評価するための標準ベンチマーク。英語文法の正しさ判定などの9つのタスク(CoLA/SST-2/MRPC/STS-B/QQP/MNLI/QNLI/RTE/WNLI)に対応するデータセットのコレクション。
データセット解説
GLUE(General Language Understanding Evaluation) Benchmark(一般言語理解評価ベンチマーク)は、英語で自然言語処理(NLP)モデルの性能を評価するための標準ベンチマークである。英語文法の正しさ判定や映画レビューの感情分析などの9つのタスク(CoLA/SST-2/MRPC/STS-B/QQP/MNLI/QNLI/RTE/WNLI、詳細後述)に対応するデータセットのコレクションとなっている。
また、自然言語に見られる幅広い言語現象に関してモデルの性能を評価、分析できるように、手動でキュレーションされた小さな「診断(Diagnostic)データセット」が付属している(詳しくは論文のセクション4を参照してほしい)。
さらに、GLUEで評価したモデルを最終スコア(Score)順のランキングで掲載するリーダーボード(Leaderboard)も用意されている(図1)。最終スコアは各タスクのスコアを平均して計算される(計算方法はFAQの「10. How does the leaderboard work?」を参照してほしい)。
なお、GLUEは英語用であり、日本語理解の評価は行えない。日本語の場合は、2022年6月に公開された日本語用のJGLUEを使うとよい。
また、現在の自然言語処理モデルは、言語理解タスクの性能が高くなってきており、人間を超えてきている。そのため、GLUEよりも高難度に設計されたSuperGLUE Benchmark(v2.0)が2019年7月に登場した(※GLUEはバージョン「v1.0」と見なされる)。SuperGLUEベンチマークのリーダーボードはこちら。2023年3月現在の論文ではGLUEの方が採用数が多いが、今後は「GLUEの後継版」とも言えるSuperGLUEの利用が増えていく可能性がある。
9つのタスク
GLUEの9つのタスクを箇条書きで簡単に紹介する。
- CoLA(The Corpus of Linguistic Acceptability): 文の文法の正確さを測定するタスク
- SST-2(The Stanford Sentiment Treebank): 文の感情(ポジティブ/ネガティブ)を判定するタスク
- MRPC(Microsoft Research Paraphrase Corpus): 2つの文が同じ意味かどうかを判定するタスク
- STS-B(Semantic Textual Similarity Benchmark): 2つの文の意味的な類似度を判定するタスク
- QQP(Quora Question Pairs): 2つの質問文が同じ意味かどうかを判定するタスク
- MNLI-m/MNLI-mm(Multi-Genre Natural Language Inference Matched/MultiNLI Mismatched): 前提と仮説の2つの文の含意関係(含意/矛盾/中立)を判定するタスク
- QNLI(Question NLI): 質問と回答のペアが正しい回答を含んでいるかどうかを判定するタスク
- RTE(Recognizing Textual Entailment): 2つの文の含意関係(含意/含意でない)を判定するタスク
- WNLI(Winograd NLI): 代名詞を含む元の文と代名詞を置換した文という、2つの文の含意関係(含意/含意でない)を判定するタスク
各タスクに対応するデータセットは、オリジナルの既存データセットが存在する。例えばCoLA(The Corpus of Linguistic Acceptability)タスクのデータセットには、「The Corpus of Linguistic Acceptability(CoLA)」というオリジナルの既存データセットがある。
引用のための情報
GLUEのデータセットは、オリジナルの既存データセットをベースに構築された派生データセットである。そのため、ライセンスもオリジナルの既存データセットを参照する必要がある。
GLUEのデータセットを引用する際には、使用している全てのデータセットを引用してほしい、とのことだ。詳しくはFAQの「14. How should I cite GLUE?」を参照してほしい。数が多いので本稿では割愛するが、各データセットの引用内容はTensorFlow Datasets「glue」ページを参照するとよい。
利用方法
GLUEの各データセットは、
からダウンロードできる。
TensorFlow/PyTorchでGLUEを使う場合は、各ライブラリが提供する機能を利用することをお勧めする。それぞれのライブラリで「どのようなコードを書くとGLUEが使えるか」の典型的なコードを簡単に示しておく(※コードの詳細は解説しない)。基本的に各ライブラリは、GLUEの各データセットを自動的にダウンロードして使いやすい形にロードしてくれる機能を提供している。
TensorFlow Datasets
リスト1はTensorFlowでGLUEのCoLAデータセットを利用するコード例である。TensorFlow Datasetsには、CoLA/SST-2/MRPC/STS-B/QQP/MNLI/QNLI/RTE/WNLI/AX(診断データセット)と、GLUEの各データセットが用意されている。
# !pip install tensorflow-datasets # ライブラリ「TensorFlow Datasets」をインストール
import tensorflow_datasets as tfds
glue_train = tfds.load(name="glue/cola", split="train")
これらのデータセットは、tensorflow_datasetsモジュール(=tfds)のtfds.load()関数から利用できる。
PyTorch
リスト2はPyTorchでGLUEのCoLAデータセットを利用するコード例である。PyTorchのtorchtext.datasetsには、CoLA/SST-2/MRPC/STS-B/QQP/MNLI/QNLI/RTE/WNLIと、GLUEの各データセットが用意されている。
# !pip install torch torchdata torchtext # ライブラリ「PyTorch」「TorchData」「torchtext」をインストール
# !pip install portalocker # Google Colabで実行した際、このパッケージのインストールしないとエラーになった
import torch
import torchtext
glue_cola = torchtext.datasets.CoLA('./GLUE_CoLA', split='train')
data_loader = torch.utils.data.DataLoader(glue_cola, batch_size=4, shuffle=True)
これらのデータセットを使うには、torchtext.datasetsクラスのコンストラクター(厳密には__init__関数)でデータセットのオブジェクトを生成してデータをダウンロードし、torch.utils.data.DataLoaderクラスのコンストラクターでデータローダーのオブジェクトを生成してデータをロードすればよい。
Copyright© Digital Advantage Corp. All Rights Reserved.