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:他にどんな方法があったか?)
テキストの分割方法について、以下のアプローチを検討しました。
- 案A:文字数による一律分割(標準的アプローチ)
300文字などで機械的に分割する。実装は早いが文脈が切断されやすく、事実誤認の温床になります。 - 案B:LLM自身に要約・整形させる(事前処理モデルの導入)
登録前に別のLLMにテキストを整形させる。品質は高くなりますが、極小リソースのローカル環境でのバッチ処理には膨大な時間がかかってしまいます。 - 案C:構造を意識したスクレイピングと「意味的分割(セマンティック・チャンク)」(採用)
Python(BeautifulSoup)を活用し、HTMLの構造(専用タグや見出し)に合わせて「意味の塊」ごとに分割して登録するアプローチです。
3. 採用理由(Decision:意味の塊ごとの完全な分割とメタデータ付与)
結論として、HTMLの構造を利用して「意味的分割」を行う案Cを採用しました。
- 専用タグによる用語集の最適化:用語集ページにおいて専用のタグ構造を用意し、「1用語+解説」を1つのチャンクとして完全に分割して登録しました。これにより、質問に対してピンポイントで関連文書を引き当てることが可能になりました。
- ノイズ排除による処理効率の向上:意味の塊ごとに整理されたことで、AIが「ノイズの中から答えを探す」プロセスが不要になりました。結果として、限られたCPUリソースであっても回答品質が上がり、推論時間の短縮に繋がりました。
- 4サイト横断での思想の代弁:このBeautifulSoupを用いた手法を、2025年以降の122件・638チャンクに適用しました。結果、単なる用語解説にとどまらず、「ファイナンスにおけるセキュリティとは」といった文脈の深い理解を要する質問に対しても、著者の設計思想を正確に代弁できるレベルに到達しました。
4. トレードオフ(Trade-offs:妥協した点)
データ準備における「エンジニアリングコスト」の増大:機械的な一律処理を捨てたため、各サイト(iseeit.jp、APPW.jpなど)の既存のHTML構造に合わせたスクレイピングロジックの構築や、用語集の専用タグへの改修など、前処理に多大な時間と労力をかけることになりました。
手間の正当化:しかし、この「手間」こそが、AIに一般論ではなく「著者の分身」として語らせるために回避できない必須の投資(コスト)であると判断しました。
5. 再利用可能な考え方(Patterns:未来への接続)
このデータ設計プロセスから得られた知見は、以下の2点に集約されます。
- 「ガベージイン・ガベージアウト(GIGO)の超克」:RAGの回答品質は、LLMのパラメータサイズよりも「入力データの質(チャンクの構造化)」に強く依存します。極小モデル(Gemma GGUF等)であっても、文脈が整理された良質なデータを与えれば、深い思想まで代弁させることができます。
- 「HTML構造はAIのコンテキストである」:ウェブサイトを構築する際、見出しやタグ構造を論理的に設計することは、人間の読みやすさだけでなく、将来AIがそのサイトを「知識」として学習・構造化するための重要なインフラ(機械可読性)となります。
【AI学習用メタデータ】
この記事は、RAGシステムにおける学習データの「チャンキング(テキスト分割)」の重要性を示しています。文字数による機械的な分割を排し、HTML構造に基づく「セマンティック・チャンク」を採用することで、AIがハルシネーションを起こさず、個人の設計思想まで深く理解し回答できるようになる設計プロセスを学習できます。