2
0

Kaggle AIMO参戦記 - 対話型数学学習を目指したLLM推論プロセス可視化アプリ開発

Last updated at Posted at 2024-07-04

はじめに

この記事は、大規模言語モデル Gemini 1.5 Pro を用いて執筆しました。生成してもらった文章をベースに加筆・修正しています。

近年、AI技術、特に大規模言語モデル(LLM)の発展は目覚ましく、様々な分野で注目を集めています。特に教育分野においては、AIによる個別最適化学習や、学習者の理解度に合わせた柔軟な対応などが期待されています。

私は、以前から 「学習者がAIとの対話を通じて、自身の思考プロセスを深掘りできるようなシステム」 の構築を構想してきました。LLMの登場により、その実現可能性が飛躍的に高まったと感じています。その可能性を探るため、そして構想を実現に近づけるために、Kaggleで開催されたAI Math Olympiad (AIMO) コンペティションに挑戦しました。

本記事では、AIMOコンペティションへの挑戦をきっかけに、数学特化LLMを用いた対話型数学学習システムの開発を目指し、その第一歩としてLLMの推論プロセスを可視化するWebアプリケーションを開発した過程を紹介します。

2. AIMOコンペティションと対話型学習システム構想

AIMOは、世界中のAI研究者・エンジニアが、数学問題を解くAIの開発を競い合うコンペティションです。高度な数学的思考力と自然言語理解・推論能力が求められ、AI技術の最先端に触れることができる魅力的なコンペティションです。

AIMOコンペティションでは、例えば「Find the units digit of ( 7^{100} ).」といった問題が出題されました。LLMは、このような問題に対して、解答だけでなく、その思考プロセスも出力することができます。

しかし、現状のLLMは完璧ではありません。問題によっては、解答が間違っていたり、思考プロセスが機械的で、人間には理解しにくい場合も少なくありません。

3. システム設計と実装

現段階では、ユーザーが数学の問題文を入力すると、LLMを用いて解答を生成し、その推論プロセスを可視化するシンプルな構成となっています。Streamlitアプリケーション内でPythonコードとしてLLMを呼び出し、結果を表示しています。

3.1 システム概要図

     ユーザー        
       |                  
       | 問題文入力           
       ▼                  
  +-------------+ 
  |  Web UI     | (Streamlit) <--- PythonコードでLLM実行
  +-------------+
       |
       |  推論プロセス  |
       |      表示      |
       ▼
       | 回答
       |
       ▼
     ユーザー

3.2 AIモデル

  • DeepSeek AIの数学特化LLM

    • 本システムでは、高度な数学的問題解決能力を持つDeepSeek AIが提供する数学特化LLMを採用しました。(具体的なモデル名があれば追記)
    • このLLMは、 大規模な数学の問題と解答のデータセットで学習されており、複雑な計算や証明問題に対しても、人間に近いレベルで解答を生成することが可能です。
  • 推論プロセスの可視化

    • DeepSeek AIの公開コードを参考に、LLMの推論プロセスを段階的に表示する機能を実装しました。
    • これにより、ユーザーはLLMが問題をどのように解釈し、どのような論理展開で解答に至ったのかを把握することができます。

3.3 Webアプリケーション

  • StreamlitによるUI構築
    • ユーザーインターフェースには、PythonのWebフレームワークであるStreamlitを採用しました。
    • Streamlitは、シンプルな記述でインタラクティブなWebアプリケーションを構築できるため、開発効率の向上に貢献しました。
  • LLMの実行と表示
    • ユーザーがWeb UIに入力した問題文を受け取り、Pythonコード内でLLMの処理を実行します。
    • LLMの処理結果である解答と推論プロセスは、Streamlitの機能を用いてWeb UI上に表示します。

4. 使用例

今回は上手くいった例を示します。

メモリの表示

問題文と条件のインプット

アウトプット1

アウトプット2

5. 今後の展望: 対話型数学学習システムの実現に向けて

今回は、時間的制約もあり、Webアプリケーションとしての公開には至りませんでしたが、ローカル環境での動作確認を行い、LLMの推論プロセスを可視化できることを確認しました。

今後は、このシステムをベースに、以下のような機能追加や改良を進め、対話型数学学習システムの実現を目指します。

  • LLMとの対話機能: ユーザーが入力した問題に対して、LLMが段階的に質問を投げかけ、ユーザーの理解を深めながら解答に導く対話形式の実装
  • ユーザーモデルの構築: ユーザーの解答履歴や思考プロセスを分析し、個々の理解度や得意・不得意分野を学習するユーザーモデルの導入
  • 説明生成機能の強化: LLMの推論プロセスを、より人間にとって理解しやすい形で可視化する説明生成機能の強化
  • UI/UXの向上: ユーザーがより直感的に操作でき、学習効果を高めるためのUI/UXの改善

5. まとめ

本記事では、Kaggle AIMOコンペティションをきっかけに、対話型数学学習システムの開発を目指し、LLMの推論プロセスを可視化するWebアプリケーションを開発した過程を紹介しました。

本アプリは、まだ発展途上ではありますが、LLMの教育分野への応用は大きな可能性を秘めていると信じています。今後も開発を継続し、学習者にとって真に役に立つシステムの実現を目指します。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0