【ITニュース解説】I built an AI examiner that reads my friend's notes — without the notes ever leaving their laptop
2026年10月05日に「Dev.to」が公開したITニュース「I built an AI examiner that reads my friend's notes — without the notes ever leaving their laptop」について初心者にもわかりやすく解説しています。
ITニュース概要
AIがPDFノートから試験問題を作成し、学生の弱点を特定する勉強アプリ「Notes vs. Me」が開発された。このアプリはノートをパソコン外に出さず、オフラインで動作するためプライバシーが保護される。個人の学習履歴に応じて効率的に出題し、弱点克服を支援する。
ITニュース解説
今回紹介するニュース記事は、学生が持つPDF形式のノートを基に、AIが試験問題を作成し、その学生の弱点を発見してくれる学習アプリ「Notes vs. Me」についてだ。このアプリの最大の特徴は、学生の学習データやノートが一切、彼らのラップトップから外部に送信されることなく、全ての処理が完結する点にある。
このアプリは、友人の大学生活を助けるために開発された。学生が陥りがちなのは、教科書やノートを何度も読み返し、勉強したつもりになっても、いざ試験となると全く歯が立たないという状況だ。これは、読むことと、実際に質問に答えることとでは必要なスキルが異なるからだ。手元にはノートや練習問題があっても、自分のノートの内容を理解した上で、さらに突っ込んだ質問をしてくれるようなツールはなかなか存在しない。そこで、作成者はAIの力を借りて、その「物足りなさ」を解決しようと考えたのだ。
開発を進める上で最も重要視された制約が、「ノートは学生のラップトップから外に出してはならない」という点だった。過去問や個人ノートといった学習データがクラウド上にアップロードされることに抵抗を感じる学生は多い。プライバシーの懸念はもちろん、試験期間中にインターネット接続が不安定になるような状況でも、オフラインで学習できることが求められた。そのため、「Notes vs. Me」は、AIによる全ての処理を学生自身のPC上で完結させる設計となっている。
アプリの技術的な仕組みは、初心者にも理解しやすいように設計されている。まず、ユーザーがPDF形式の学習資料を取り込むと、「PyMuPDF」というツールを使って、PDF内のテキストが約1200文字程度の意味のある小さな「かたまり」(チャンク)に分割される。
次に、学生がクイズを始めるときの工夫がある。単にランダムに問題を出題するのではなく、学生の過去の学習履歴に基づいて、最適なチャンクが選ばれるのだ。例えば、まだ一度もテストされていない内容や、以前間違えてしまった苦手なトピックが優先的に選ばれる。この学習履歴は、別途サーバーを立てるような大がかりなシステムではなく、「SQLite」という軽量なデータベースファイルとして、学生のPC内に保存される。これにより、サーバーへの接続も、ユーザーアカウントも不要となり、データは完全にローカルに保たれる。
選ばれたチャンクに基づいて、いよいよAIが問題を作成する。ここでは「Ollama」というツールを介して、「Gemma 3」というGoogleが開発した軽量なAIモデルが利用されている。このAIモデルは、各チャンクから、トピック名、質問文、選択肢、正解、そして学生にとって役立つ解説文を、正確なJSON形式というデータ構造で生成する。JSONは、コンピューターと人間がデータをやり取りする際に使われる、整理された形式のことだ。
生成された問題に対する採点もAIが行う。選択問題であれば、正解を事前に設定しているため自動的に採点できる。記述問題の場合でも、同じAIモデルが模範解答と比較して採点する。AIには、質問の意図を正確に理解しているかについては厳しく、表現の仕方は多少違っていても柔軟に評価するように指示が出されている。もし採点に問題が生じた場合は、AIが採点をブロックするのではなく、模範解答を表示して学生が学習を続けられるように配慮されている。
開発者が特に楽しかったと語るのは、この学習履歴に基づく問題の「サンプリングループ」だ。固定されたクイズばかりではすぐに飽きてしまうが、アプリが学生の苦手なトピック(例えば「カルビン回路」)を記憶し、次の出題時にこっそり含めてくれることで、まるで自分を合格させようと励ましてくれるかのような体験が得られる。この仕組みは、わずか10行程度のシンプルなコードで実現されている。一方、難しかった点としては、Gemma 3のような比較的小規模なAIモデルから、常に期待通りのJSON形式の出力を引き出すことだった。AIモデルは、プロンプト(指示文)内の例を文字通りコピーしてしまう傾向があるため、プロンプト内で具体的な回答例を示す(「見せる」)ことで対応し、さらにモデルの実際の出力タイプを信頼する補正層を設けることで解決した。このような工夫は、小型のローカルAIモデルを使う上でのトレードオフだが、その価値は大きい。なぜなら、このAIシステム全体が約1GBのRAM(メモリ)で動作するため、学生が実際に持っているような一般的なラップトップでも動かすことが可能だからだ。もしPCの性能が足りず、ローカルでAIモデルが実行できない場合でも、Groqが提供する同じGemma 3モデルに切り替えて、クラウド経由で処理を行うフォールバック機能も用意されており、学生にはどちらのモードで動作しているかが明確に通知される。
このアプリでオープンソースの技術、特にオープンな重みを持つAIモデル(Gemma 3のようなモデル)が重要である理由は多岐にわたる。まず、先述の通り、学生のノートデータがPCから外部に出ることなく、AI処理の全サイクル(解析、生成、採点)が完結する点だ。これは、データプライバシーの観点から非常に重要であり、インターネット接続がなくても学習が進められるという実用的なメリットもある。
次に、コスト面でのメリットだ。クローズドなAIサービスでは、学生が問題を解いたり、間違えたりするたびに、API利用料などのコストが発生することが多い。しかし、Gemma 3のようなオープンモデルをローカルで利用すれば、一回あたりのクエリ(AIへの質問)にかかる費用は実質ゼロとなる。これにより、学生はいくらでも問題を間違え、試行錯誤を繰り返すことができ、徹底的に学習できる。
さらに、このアプリがMITライセンスというオープンソースライセンスで公開されているため、他の学生や開発者が自由にコードを「フォーク」(コピーして改変)できるというメリットもある。例えば、医学部の学生であれば、専門のOSCE(客観的臨床能力試験)形式の口頭試問に対応するプロンプトに書き換えたり、法学部の学生であれば、判例問題に対応するようにカスタマイズしたりすることも可能だ。学生の学習内容が、特定のサーバーや料金体系、開発者のロードマップに縛られることがない。
最後に、オープンソースであることは「放棄されても生き残る」という利点がある。もし開発者がこのプロジェクトを今後一切更新しなくなったとしても、コードは公開されているため、アプリはそのまま使い続けることができる。これは、特定の企業がサービスを停止した途端に使えなくなってしまうようなクローズドな学習ツールとは異なり、長期的な利用の安心感を提供してくれる。
開発者は、このアプリを友人のカリキュラムに合わせて提供し、実際の学習状況を観察する予定だ。きっと、友人が見落としていた一節をアプリが指摘してくれるだろうと期待している。
今後の展望としては、手書きのノートをカメラで撮影して取り込めるようにする機能(ローカルでのOCR技術の導入)、AIが音声で問題を出題してくれる「声出しグリルモード」、そして苦手なトピックを可視化する「弱点ヒートマップ」を学習チェックリストとしてエクスポートする機能などが検討されている。
この「Notes vs. Me」は、オープンソースのAI技術が、身近な問題解決にどのように貢献できるかを示す好例だ。自分のノートで試してみて、もし知っていると思っていたトピックの弱点を発見できたら、それはアプリが期待通りに機能している証拠だ。