たねやつの木

Photographs, Keyboards and Programming

【ぴよログでRAG: 第1回】はじめに:育児ログでパーソナルAIアシスタントを育てる!RAG×LLMの可能性

こんにちは、たねやつです。

さて、我が家では赤ちゃんの毎日の記録を「ぴよログ」というアプリで付けています。授乳、睡眠、おむつ替えなど、あらゆる活動をタップ一つで記録できる非常に便利なアプリです。しかし、データが蓄積されてくると、「先週の平均睡眠時間は?」「ミルクの量が一番多かった日はいつ?」といった、少し複雑な質問に答えてもらうのは難しくなってきます。

そこで、このぴよログのデータを活用して、自分だけの育児AIアシスタントを開発してみようと思い立ちました。本連載では、近年注目されているRAG (Retrieval-Augmented Generation) という技術とLLM (大規模言語モデル) を使い、育児に関するあらゆる質問に答えてくれるAIアシスタントを構築するプロセスを、全9回にわたって詳しく解説していきます。

この記事でできること

  • 本連載を通じて開発する「育児AIアシスタント」の全体像を理解できる。
  • RAGとLLMがどのような技術であり、なぜそれを使うのかがわかる。
  • 全10回の連載で、どのようなステップを踏んで開発を進めていくのかを把握できる。

本連載で作成するもの

最終的な目標は、ぴよログのデータを使って、以下のような質問に自然な言葉で回答できるAIアシスタントを構築することです。

  • 「今日のミルクの合計量は?」
  • 「昨日の夜、一番長く寝たのは何時間?」
  • 「最近、うんちの色がおかしい日はあった?」
  • 「先週の平日の平均授乳回数は?」

このように、単純なデータ検索だけでなく、集計や比較、要約などを含んだ柔軟な質問応答を目指します。

RAG×LLMとは?

今回利用するコア技術が「RAG」と「LLM」です。

  • LLM (Large Language Model): ChatGPTやGoogleのGeminiのように、人間のような自然な文章を生成したり、質問に答えたりできるAIモデルです。非常に賢いのですが、一つ大きな弱点があります。それは、学習に含まれていない知識、特に個人的なデータについては何も知らないということです。例えば、私の子供の睡眠時間をLLMに聞いても、知っているはずがありません。

  • RAG (Retrieval-Augmented Generation): このLLMの弱点を補うための技術です。日本語では「検索拡張生成」と訳されます。簡単に言うと、LLMが回答を生成する(Generation)際に、外部の知識ベースから関連情報を検索(Retrieval)し、その内容を参考にして回答を「拡張(Augmented)」する仕組みです。

今回のプロジェクトでは、ぴよログのデータを「外部の知識ベース」として使い、RAGの仕組みを構築することで、LLMに私たちの子供に関するパーソナルな質問に答えさせることができるようになります。

本連載のゴールと進め方

本連載は、以下の全10回のマイルストーンに沿って開発を進めていきます。

  1. はじめに:育児ログでパーソナルAIアシスタントを育てる!RAG×LLMの可能性 (本記事)
  2. ステップ1:ぴよログデータの構造を理解する
  3. ステップ2:非構造化ログをPythonで解析・構造化する
  4. ステップ3:前処理でデータを整形し、AIが理解しやすい形にする
  5. ステップ4:RAGのためのチャンキング戦略を練る
  6. ステップ5:テキストデータを「数値の言葉」に変換する:エンベディングモデルの選定と実装
  7. ステップ6:知識ベースを構築する:ベクトルデータベースの選定とデータの投入
  8. ステップ7:質問応答の核を実装:RAGの検索フェーズ
  9. ステップ8:賢い回答を生成する:LLMとの連携とプロンプトエンジニアリング

データ分析の基礎から、最新のAI技術の実装まで、ステップバイステップで丁寧に解説していく予定です。

最後に

今回は、これから始まる「ぴよログデータでつくる育児AIアシスタント」プロジェクトの概要と目的、そして使用する技術についてご紹介しました。ぴよログのデータは割と1日単位でまとまってはいますが、今回は一度データ的処理を加えて再度一日単位でデータを出力してという手法で行きます。

育児という、とても身近でパーソナルなテーマを題材にすることで、AI技術が私たちの生活をどのように豊かにしてくれるのかを、より具体的に感じていただけるのではないかと思っています。

次回からは、いよいよ実践編です。まずはプロジェクトの心臓部となる「ぴよログ」のデータ構造を詳しく見ていくところから始めましょう!

次の記事