投稿

NotebookLMを使った試験学習

手作りノート(アナログ)とNotebookLM(デジタル)の融合

社会人になってから、ソフトウェア開発技術者(現:応用情報技術者)の取得を皮切りに、いろいろな資格を受験してきました。試験合格のために書き留めた学習ノートは、今も本棚に残っています。さすがに邪魔になってきたため断捨離を決意。……したのですが、なかなか捨てられず。 というのも、一度不合格だった試験を再度受ける際の参考資料や、資格の更新が必要な時に見直しで使うので、まったく無駄な遺物というわけではなかったからです。

そんな時にふと気が付きました。「この学習ノートをNotebookLMに取り込んで、AIのソースとして使えばよいのでは?」と。 昔は手書きの文章を電子データにするには、自分で打ち込むしかありませんでしたが、最近はテクノロジーの進化が著しく、以下の手順で簡単にデータ化できます。

↓ Googleドライブに保存し、Googleドキュメントで開く=これにより手書きの文字が電子データとして返還されます。

そしてここからAIの出番。NotebookLMにGoogleドキュメントを取り込んだ後、以下のように命令します。

現在登録されているソースは、私が2023年にAWS Solution Architect Professionalの試験勉強で手書きで書いたノートをスキャンし、GoogleドキュメントでOCR読み込みしたものです。すべてのソースを読み込み、OCR読み込みに失敗した誤字脱字を修正して、意味が分からない単語をAWS Solution Architect Professionalの用語に基づいて訂正した内容を出力してください。それをGoogleドキュメントに保存して、このNotebookのソースとします。

このように書くといい感じに誤字脱字を訂正してくれます。

大量にあった手書きノートを上記の手順でカテゴリー別にまとめ、文字通りNotebookなLMを作ることができました。 大量にあった手書きノートを上記の手順でカテゴリー別にまとめ、文字通り「Notebook(ノートブック)」なLMを作ることができました。

手書きノートをNotebookLM化

このNotebookLMを使って試験学習を行いました。まずはテキストブックの役目を果たしてもらいました。以下は今回受験したAWS DevOps ProfessionalのNotebookLMに対してのプロンプトです。各章に対して以下のような指示をAIに与えました。

ソースに基づき、第1分野「SDLCのオートメーション」に関する試験対策用の詳細な教科書を作成してください。 なお、ソース内の情報だけでは解説が不十分な箇所や、文脈をつなぐために必要な一般的なAWSの知識については、あなたの知識を用いて補足し、その部分が補足であることを明記してください。

  1. CodeDeployのライフサイクルフック: EC2/オンプレミス用(BeforeInstallやApplicationStop等)とECS/Lambda用(BeforeAllowTraffic等)の違いと実行順序、および appspec.yml の記述。
  2. API GatewayとLambdaの統合: 504 Gateway Timeout や権限エラー(Integration Failure)が発生する原因と、add-permission コマンドやIAMロールによる具体的な解決策。
  3. デプロイ戦略の実装: Blue/Greenデプロイ、Canaryデプロイを各サービス(Beanstalk, OpsWorks, ECS)で実現する際の具体的な構成(Route 53加重ルーティングの利用やDNS切り替えなど)。
  4. ビルドとテスト: CodeBuildの buildspec.yml の各フェーズ(install, pre_build等)で何を行うべきか、およびDockerイメージのビルドプロセス。

このように指示すると章別に必要な知識をソースから引っ張ってきて、ちゃんとまとめてくれます。Google Geminiは優秀で、元のソースの日本語がOCRや文章の改行の問題からへんてこな内容だったとしても、文意を理解し、適切なテキストブックを作ってくれます。

一つ上記のプロンプトで書き忘れたのが 「最新の情報を基に、古い知識が有ったらアップデートをお願いします」 という命令。AWSのサービスは日進月歩なので、3年前は存在したサービスが終了していたり、できなかったことができていたりなど、必ずしも正しい情報がノートに書かれていない可能性があります。

教科書としてNotebookLMを使った後は、次は問題集として活用します。 教科書としてNotebookLMを使った後は、問題集として活用します。

NotebookLMのクイズ機能

NotebookLMにはフラッシュカード(単語カード)機能やクイズ機能もあります、が実際の試験はそんな簡単な問題は出ないので、以下のように問題文を作成するよう指示しました。

ソースに含まれる学習ノートに基づき、ジャンルに関する本番レベルの模擬問題を 3問 作成してください。 【作成のルール】

  1. シナリオ形式にする: 単なる知識問題ではなく、「デプロイが失敗した」「エラーが発生した」「要件を満たす最小権限の構成が必要」といった具体的な状況設定を行ってください。
  2. ノートの「失敗談」や「注意点」を反映する: ソース内で「ミス」「定着不十分」「難」「引っ掛け」とマークされているトピックを優先的に問題化してください。
  3. 技術的な深さを確保する: 選択肢には、具体的なCLIコマンド、IAMポリシーの記述、設定ファイルのパラメータを含めてください。
  4. 正解と不正解の解説: なぜその選択肢が正解なのか、なぜ他の選択肢(もっともらしい間違い)が不正解なのかを、ソースの記述や一般的なAWSの知識を交えて論理的に解説してください。 問題と選択肢を全問出題してから、回答と解説を書いてください。これは問題文の直後に回答と解説が見えないようにすることで、答えが見えてしまうことを防ぐためです。

ポイントとして、AIに「もっと難しい問題を出してください」と指示すると、かなりテクニカルな問題を出してきます。唸らされました。「そんな重箱の隅をつつくような問題、実際に出ますか?」と泣きついたくらいですw

ともあれ、この手書きノートNotebookLM作戦のおかげで、今回のDevOps Professionalは無事合格することができました。実際勝因の一つは、AIから出題された問題の中に、実際の問題に類似した問題も出てきたところでしょうか。AI恐るべし、活かさない手はありません。この、過去の自習ノートを取り込んだこのNotebookLMは他にはない唯一無二の存在。実際AIも 「2023年時点で貴方はこうメモに残していましたが、今は状況が変わっています」 と答えるなど、僕の頭脳に最適化された教科書になっています。素晴らしい。これで安心して手書きノートを古紙のごみに出すことが出来そうですw

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。