# Kaggle大会:TensorFlow 2.0 Question Answering
[Kaggleリンク](https://www.kaggle.com/competitions/tensorflow2-question-answering/)
[GitHubリンク](https://github.com/JT-street53/tensorflow2-question-answering)
## プロジェクト概要
- 世界最大の機械学習大会Kaggleで開催された大会
- 1,233チーム中26位の予測精度を出し、銀メダル獲得
## 取り組んだ課題
- Wikipediaに記載のテキストとそれに関する質問文が与えられ、質問文に対して回答が記載されている箇所を機械学習モデルに予測、抽出させる問題。
- 2020年1月に開催されており、BERTが発表された後、AlbertやXLNet等の類似モデルが出現した頃。パラメータ数が多い巨大なモデルを最小限の計算スペックで学習させるメモリ最適化、速度高速化が大きな課題。
- 1,2語で回答するShort Answerと、1段落まるごと回答となるLong Answerの2通り存在する複雑な問題設定も課題。
## 取り組みの成果
- 予測精度をF値0.65851を出し、1,233チーム中26位の予測精度を出し、銀メダル獲得
## 特に工夫したこと
- 巨大自然言語モデルを高速計算させるため、GCP上でのTPUの扱い方を学び、計算速度高速化を実現。結果としてモデル学習のepoch数を上げることが出来たのが最も高精度を出す要因となった。
- 学習データの加工関数での変数設定やループ処理の書き方を工夫し、メモリ最適化を実施。その結果大きなBatchで学習させることが出来、精度向上に役立った。
- 機械学習モデルには単純な回答箇所予測をさせるだけでなく、Short AnswerかLong Answerかの2択を予測させるアウトプットも加えたことで、回答箇所予測の精度が上がった。