第4回コンペティション 「早押し解答部門」
2023年10月〜2024年1月実施
本コンペティションは、SIGNATE のコンペティションプラットフォームにて実施しました。コンペティションの実施内容については SIGNATE のコンペティションページ もあわせてご覧ください。
日程
2023/10/06: コンペティション開始
2024/01/14: リーダーボード最終投稿日
2024/01/17: 最終評価用システム最終投稿日
2024/01/26: 最終報告会
ルール概要
与えられた早押しクイズの問題文に対して、その解答を出力するシステムを構築していただきます。
クイズの問題は、下記のような形式で、問題文の位置 ( position ) が進むごとに1文字ずつ増える形で与えられます。すなわち、各問題について、問題文の長さを L としたとき、1文字目までの問題文、2文字目までの問題文、...、L 文字目までの問題文の計 L 件のJSONの項目が入力されます。
{"qid": "AIO04-0001", "position": 1, "question": "1"}
{"qid": "AIO04-0001", "position": 2, "question": "19"}
{"qid": "AIO04-0001", "position": 3, "question": "194"}
...
{"qid": "AIO04-0001", "position": 44, "question": "1945年、ラテンアメリカの文学者として初めてノーベル文学賞を受賞した、チリの詩人は誰?"}
これらの項目の入力のそれぞれに対して、その時点の問題文に対して予測できた解答を出力していただきます。解答の確信度が十分でない場合は null を出力するものとします(問題文全文を見てから過去の position に遡って解答するのは NG です)。
{"qid": "AIO04-0001", "position": 1, "prediction": null}
{"qid": "AIO04-0001", "position": 2, "prediction": null}
...
{"qid": "AIO04-0001", "position": 30, "prediction": "○○○"}
...
{"qid": "AIO04-0001", "position": 44, "prediction": "○○○"}
予測した解答が正解であった場合、正解した時点の問題文の位置 ( position ) に応じたスコアが与えられ、問題文のより早い(= position の値が小さい)段階で正解を出力できるとより高いスコアが与えられます。ただし、null 以外の誤った解答を一定数出力した場合、その問題は無得点となります。テストデータのすべての問題に対してスコアを計算し、その合計を競います。
評価方法
第4回コンペティションでは、システムの性能評価をリーダーボード(自動評価)と最終評価(人手評価)の2段階で行います。
リーダーボード(自動評価)
リーダーボードでは、リーダーボード用テストデータ(問題文のみ公開)に対するシステムの解答ファイルをアップロードしていただき、正誤判定を自動で行うことで評価を行います。
テストデータの各問題に対して、事前に用意された正解(いくつかの別解を含む)とシステムが予測した解答を比較し、記号などの正規化処理後の文字列が完全に一致すれば正解、一致しなければ不正解としてスコアを計算します(正規化処理については こちらのコード を参照してください)。
最終評価(人手評価)
最終評価では、構築したシステムのDockerイメージを提出していただき、最終評価用テストデータ(非公開)に対する推論を運営側で用意した計算機(評価サーバ)で実行することで評価を行います。
最終評価では、システムが予測した解答の正誤判定を人間の採点者が行います。これは、事前に用意された正解および別解ではカバーしきれないシステムの正答に対しても正しく評価を行うためです。
Dockerイメージは、下記の要件をすべて満たすAPIとして作成していただきます。
イメージから構築されるコンテナ内に、システムの動作に必要なすべてのファイル(推論を行うモデル、推論で利用するデータ等)が含まれていること
コンテナ内からコンテナの外側にあるファイルをダウンロードすること等は不可とします(コンテナの起動時に外部との通信はすべて遮断される設定になっています)。
コンテナの8000番ポートで、テストデータの問題文のHTTPリクエストを受け付けること
評価サーバでは、起動したコンテナに対して、テストデータの問題文が下記のパラメータを持つGETリクエストとして送られます(リーダーボード用テストデータと同形式のデータが1行ずつ送られるイメージです)。
qid: 問題ID
position: クイズ問題の何文字目までの問題文が与えられているか
question: クイズ問題の position の位置までの部分文字列
問題文のリクエストに対して、システムが予測する解答をレスポンスとして返すこと
コンテナは、システムが予測する解答を下記JSON形式のレスポンスとして返すものとします(不要なキーと値の組は無視されます)。
{"prediction": システムが予測する解答の文字列 または null}
評価サーバでは、起動したコンテナに対して、最終評価用テストデータの全ての問題文についてリクエストの送信とレスポンスの受信を繰り返し行います。レスポンスとして受信した解答を集約したものを、最終評価用テストデータ全体に対する解答とします。
※リクエストとして送信される問題文の順番はリーダーボード用テストデータと同様です。すなわち、1問目の1文字目までの問題文、1問目の2文字目までの問題文、...、最終問題の最後の文字までの問題文、という順番で与えられます。
Dockerイメージの提出は、リーダーボード評価期間終了後の一定期間内に1回行っていただきます。Dockerイメージの提出方法は、SIGNATEより参加者へ個別にお知らせします。
下記ベースラインシステムには、APIの作成方法およびDockerイメージの構築方法が含まれています。必要に応じて、実装の参考にしてください。
スコアの算出方法
テストデータに含まれる各問題について、下記の Accuracy Score と Position Score の和をその問題のスコアとし、すべての問題に対するスコアの合計を評価対象とします。
Accuracy Score: 解答が正解であれば position にかかわらず 1.0点
Position Score: 正解を初めて出力した position k と元の問題文の長さ N に対して (1.0 - k / N) 点
ただし、1つの問題で誤答できるのは3回までで、正解を出力する前に null でない4種類以上の誤答を出力した場合、その問題は無得点とします。
以下に、スコア計算の例を示します。
例1: 50文字の問題文に対して、10文字目で誤答を出力したあと30文字目で初めて正解を出力した場合
Accuracy Score 1.0点と、Position Score (1.0 - 30 / 50) = 0.4点の計1.4点を獲得
例2: 50文字の問題文に対して、10・15・20・25文字目ですべて異なる誤答を出力したあと、30文字目で初めて正解を出力した場合
正解を出力する前に4種類の誤答を出力したので無得点
例3: 50文字の問題文に対して、10・15・20・25文字目で同一の誤答を出力したあと、30文字目で初めて正解を出力した場合
正解を出力する前に1種類の誤答しかしていないので、例1と同様に1.4点を獲得
ルール
リーダーボードに関するルール
構築したシステムを用いてリーダーボード用テストデータに対する推論を実行していただき、推論結果のファイルを所定の形式でアップロードしていただきます。
リーダーボード用テストデータの問題数は500問です。
推論結果を人手で編集したもの(クイズを人間が解答したものなど)をアップロードすることは禁止です。
推論結果のアップロードは1日1回まで可能です。
最終評価に関するルール
構築したシステムのDockerイメージを提出していただき、運営側で用意した計算機(評価サーバ)上で最終評価用テストデータに対する推論を実行します。
最終評価用テストデータの問題数は300問です。
評価サーバでは、最終評価用テストデータの問題がリーダーボード用テストデータと同じ形式で1行ずつ与えられ、それぞれに対応する推論結果を出力するものとします(すなわち、推論はバッチサイズを1として行うものとします)。
評価サーバのスペックは以下の通りです。
vCPU 12, Memory 78GB + Nvidia Tesla V100 (Memory 16GB) x1
評価サーバでは、Dockerコンテナは外部との通信ができない設定で起動します。
評価サーバでの推論の制限時間は12時間です。制限時間を超過した場合は、時間内に出力できた推論結果のみを評価対象とします。
※Dockerイメージの要件および提出方法については後日ご案内します。
※最終評価の問題数、評価サーバのスペック、および制限時間は、今後変更される可能性があります(変更の場合は事前にお知らせします)。
利用可能なデータ
システムの構築に利用可能なデータは一般公開されているもののみとします。本コンペティションは研究促進が目的であるため、一部のユーザしか使えないデータ等を使ったシステムは評価対象外とします。ただし、独自に作成したデータであっても、無償で一般公開すれば利用可能となります。「他の組織でも結果を再現できる」というのが一つの目安となります。
参考までに、独自に作成したデータの一般公開が必要かどうかの判断例を記載します。データ(問題)の作成やそれらに対する答えの取得や正誤判定を,公開されているモデルやアルゴリズムによって行う・判断する場合:
公開の必要なし(同じモデルやアルゴリズムを用いることで、他の組織も結果を再現できるため)データ(問題)の作成やそれらに対する答えの取得や正誤判定を,人間が直接行う・補助するような方法で行われている場合:
公開の必要あり(人間が関わった部分は、他の組織によって結果が再現できないため)
本コンペティションのサイトが提供するデータのうち、開発データ用となっているものを学習に利用してもよいこととします。データの区分はあくまでも論文を書く際などの目安の区切りのため。コンペティションにおいて利用することを妨げません。
解答時にシステム外部のリソース(インターネット検索やWeb APIなど)を利用するのは禁止です。
利用可能な計算機リソース
基本的に単一の計算機内のリソースで動くことを想定します(どこまでを単一計算機と思うかは常識的な範囲で考えてください)。
最終評価の計算機環境については、上記「最終評価に関するルール」をご覧ください。
ChatGPT などの LLM の利用に関するルール
本コンペティションのためのモデルの開発、およびデータセットの作成・拡張を行う目的で、ChatGPT などの API 形式の LLM を利用することは不可とします。
API 形式以外の LLM(オープンソースでモデルが配布されているものなど)を利用してモデルの開発およびデータセットの作成・拡張を行うことは、LLM の利用規約に従い、かつ利用方法が他の組織でも再現可能である限り、可能とします。
API 形式以外の LLM を推論時に利用することも可能としますが、システム全体が上記「利用可能な計算機リソース」の範囲内で動作しなければならないことに注意してください。
No private sharing outside team ルール
コンペティション期間中は、チーム外の他の参加者と、本コンペのフォーラム以外のプライベートな場において、コードやデータなどを共有することや、戦略などについて具体的な議論を行うことを禁止します。これはチーム間の情報格差による公平性を保つための措置です。
チーム人数は最大で5人です。
データセット
本コンペティション向けに提供しているデータセットは データセット のページよりダウンロードできます。
学習用データ
システムの学習用データとして AI王公式配布データセット Version 2.0 をご利用いただけます。
※システムの学習・開発に本データを利用することは必須ではありません。また、開発用データをシステムの学習に使っても良いこととします。詳しくは「利用可能なリソースに関するルール」をご確認ください。
開発用データ・リーダーボード用テストデータ・最終評価用テストデータ
第4回コンペティションの早押し解答タスク向けに、開発用データおよびリーダーボード用テストデータ(問題のみ)を AI王公式配布データセット Version 3.0 として提供しています。
※第4回コンペティションの開発用データ、リーダーボード用テストデータ、および最終評価用テストデータは、同じ作者によって同じ時期に作成されたクイズ問題の集合からランダムサンプルされたものであるため、出題の傾向はほぼ同じです。
ベースラインシステム
第4回コンペティション向けにベースラインシステムをご用意しています。こちら からご利用いただけます。
リーダーボード
早押し解答部門のリーダーボードは こちら です(SIGNATE のページに移動します)。