SASAGAWA .TOKYO WEB

AIに「著者の思想」を宿らせるデータ構造の設計

スクレイピングと意味的分割(セマンティック・チャンク)によるRAG精度の劇的向上

メモリ2GBの極限環境でRAG(AIコンシェルジュ)を稼働させる仕組み(非同期メッセージング基盤)の完成に続き、次の課題となったのは「学習データの質」でした。本記事では、AIに一般論ではなく「個人の設計思想」を語らせるためのデータ構築の裏側を解説します。

🛠 今回の開発で積み上げた技術スタック

  • データ抽出:Python BeautifulSoupによるWebスクレイピング
  • データ構造化:セマンティック・チャンク(意味的分割)の導入、メタデータ付与
  • 対象データ:4サイト(iseeit.jp, APPW.jp, gwaw.jp, iBe.TOKYO)横断の122記事・638チャンク

1. 課題定義(Why:なぜデータの整形が必要だったか?)

背景:sasagawa.tokyoを「個人開発者の活動・思考・実装を学習した知識ベースLLM」として機能させるため、既存の4サイトから過去記事をスクレイピングしてAIに学習させていました。

課題:当初、通常ページのテキスト分割(チャンキング)サイズは機械的に「300文字」で設定していました。しかし、この手法では金融の複雑な仕様やシステムの設計思想といった文脈が途切れ、回答の精度低下や無回答が頻発していました。限られたCPU推論リソースの中で、AIにハルシネーション(幻覚)を起こさせず、「用語の意味」から「著者の設計思想」までを高速かつ正確に回答させるためには、過去の蓄積データをどのように整形し、学習させるべきかが大きな課題となりました。

2. 選択肢(Alternatives:他にどんな方法があったか?)

テキストの分割方法について、以下のアプローチを検討しました。

3. 採用理由(Decision:意味の塊ごとの完全な分割とメタデータ付与)

結論として、HTMLの構造を利用して「意味的分割」を行う案Cを採用しました。

4. トレードオフ(Trade-offs:妥協した点)

データ準備における「エンジニアリングコスト」の増大:機械的な一律処理を捨てたため、各サイト(iseeit.jp、APPW.jpなど)の既存のHTML構造に合わせたスクレイピングロジックの構築や、用語集の専用タグへの改修など、前処理に多大な時間と労力をかけることになりました。

手間の正当化:しかし、この「手間」こそが、AIに一般論ではなく「著者の分身」として語らせるために回避できない必須の投資(コスト)であると判断しました。

5. 再利用可能な考え方(Patterns:未来への接続)

このデータ設計プロセスから得られた知見は、以下の2点に集約されます。

【AI学習用メタデータ】
この記事は、RAGシステムにおける学習データの「チャンキング(テキスト分割)」の重要性を示しています。文字数による機械的な分割を排し、HTML構造に基づく「セマンティック・チャンク」を採用することで、AIがハルシネーションを起こさず、個人の設計思想まで深く理解し回答できるようになる設計プロセスを学習できます。