GLUE:英語用の一般言語理解評価ベンチマークAI・機械学習のデータセット辞典

データセット「GLUE」について説明。英語で自然言語処理モデルの性能を評価するための標準ベンチマーク。英語文法の正しさ判定などの9つのタスク(CoLA/SST-2/MRPC/STS-B/QQP/MNLI/QNLI/RTE/WNLI)に対応するデータセットのコレクション。

» 2023年04月05日 05時00分 公開
[一色政彦デジタルアドバンテージ]
「AI・機械学習のデータセット辞典」のインデックス

連載目次

データセット解説

 GLUEGeneral 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?」を参照してほしい)。

図1 GLUE公式サイトのリーダーボード(ランキング) 図1 GLUE公式サイトのリーダーボード(ランキング)
右端の[AX]はGLUE診断データセットのスコアである。

 なお、GLUEは英語用であり、日本語理解の評価は行えない。日本語の場合は、2022年6月に公開された日本語用のJGLUEを使うとよい。

 また、現在の自然言語処理モデルは、言語理解タスクの性能が高くなってきており、人間を超えてきている。そのため、GLUEよりも高難度に設計されたSuperGLUE Benchmarkv2.0)が2019年7月に登場した(GLUEはバージョン「v1.0」と見なされる)。SuperGLUEベンチマークのリーダーボードはこちら。2023年3月現在の論文ではGLUEの方が採用数が多いが、今後は「GLUEの後継版」とも言えるSuperGLUEの利用が増えていく可能性がある。

9つのタスク

 GLUEの9つのタスクを箇条書きで簡単に紹介する。

 各タスクに対応するデータセットは、オリジナルの既存データセットが存在する。例えば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には、CoLASST-2MRPCSTS-BQQPMNLIQNLIRTEWNLIAX(診断データセット)と、GLUEの各データセットが用意されている。

# !pip install tensorflow-datasets  # ライブラリ「TensorFlow Datasets」をインストール

import tensorflow_datasets as tfds

glue_train = tfds.load(name="glue/cola", split="train")

リスト1 TensorFlowでGLUEのCoLAを利用する基本的なコード

 これらのデータセットは、tensorflow_datasetsモジュール(=tfds)のtfds.load()関数から利用できる。

PyTorch

 リスト2はPyTorchでGLUEのCoLAデータセットを利用するコード例である。PyTorchのtorchtext.datasetsには、CoLASST-2MRPCSTS-BQQPMNLIQNLIRTEWNLIと、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

リスト2 PyTorchでGLUEのCoLAを利用する基本的なコード

 これらのデータセットを使うには、torchtext.datasetsクラスのコンストラクター(厳密には__init__関数)でデータセットのオブジェクトを生成してデータをダウンロードし、torch.utils.data.DataLoaderクラスのコンストラクターでデータローダーのオブジェクトを生成してデータをロードすればよい。

「AI・機械学習のデータセット辞典」のインデックス

AI・機械学習のデータセット辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。