
こんにちは、CCCMKホールディングスAIエンジニアの三浦です。
最近急に寒くなってきました。長袖の服を出さなきゃ・・・と思いつつ、バタバタしていてまだ出すことが出来ていません。。。
10/20にdatabricksのユーザー会"JEDAI Meetup! AI Readyへの道のり"に参加し、"AI-Readyを目指した非構造化データのメダリオンアーキテクチャ"というテーマで発表の機会をいただきました。
今回はmanabian様と一緒に登壇させていただきました。資料の準備等含めてご一緒させていただいたのですが、自分一人では気づかないような視点やアイデアに触れることが出来、とてもよい経験になりました。
この記事では発表した内容をベースに私自身が感じたことや学んだことをまとめてみたいと思います。
非構造化データのメダリオンアーキテクチャ
"メダリオンアーキテクチャ"は取得したばかりのデータから段階的にデータの検証やクリーニングを行い、データの品質を向上させていくデータ設計です。構造化データでは幅広く使われていますが、非構造化データにおいてはまだ明確な基準がないのが現状です。
今回実際に取り組んでみて感じたのは、明確な基準を設けることは難しい、ということです。非構造化データは構造化データに比べて含まれている情報が格段に多く、データを使いやすいように整形をすると、そのたびに必ずなんらかの情報が削られてしまいます。
たとえばpptxファイルから内容をMarkdown形式で出力するとテキスト形式になって取り扱いやすくなりますが、pptxファイルに含まれるデザインといった情報は削られてしまいます。もしそういった情報が分析やアプリで必要になるのであれば、データ加工の際に維持する方法を検討する必要が発生します。
社内ナレッジファイルにおけるメダリオンアーキテクチャ
ここからは具体的な例でメダリオンアーキテクチャを考えてみます。
たとえば社内に蓄積されたPowerpointで作成されたスライドファイル(pptx)から必要な時に必要な情報にアクセスできるようなシステムを構築する場合、これを実現するためのメダリオンアーキテクチャに基づいた設計を行い、次のようにブロンズ・シルバー・ゴールド層を考えました。
- ブロンズ層: pptxファイル
- シルバー層: ファイルの内容をMarkdown形式で出力し格納したtable
- ゴールド層: LLMで参照させるためのVector Search Indexとスライド各ページをPNG出力し格納したvolume
全体像は次のようになります。

manabian様に作成いただいた、より詳細なフローはこちらです。ファイルの破損チェックやメタデータの取得といったよりきめ細かいプロセスも記載いただいています。

社内ナレッジ検索アプリ
前述したメダリオンアーキテクチャを活用して以下のようなアプリを開発しました。このアプリは自然言語で検索したワードを入力すると、それが説明されているスライドを検索し、そのスライドの要約、URL、画像を表示することが出来ます。

AIアプリ開発においてメダリオンアーキテクチャで得られるメリット
ここからはメダリオンアーキテクチャに従って非構造化データを取り扱うことで、AIアプリ開発においてどのようなメリットがあったかをまとめたいと思います。
AIアプリ開発においては精度やパフォーマンス向上のため様々なチューニングが必要になることが多々あります。たとえばVectorDBを使うような場合だとテキストを分割するチャンクサイズの調整や使用する埋め込みモデルの選定などが必要になりますが、これまではこういった調整を行う場合、pptxの取り込みからやり直すことが多かったです。しかし、今回のようにシルバー層にMarkdown化したtableを持たせておくことでこのtableから処理を開始できるようになり、チューニングが大幅にやりやすくなりました。
まとめ
今回は10/20のdatabricksのユーザー会"JEDAI Meetup! AI Readyへの道のり"で発表した内容をベースに私自身が感じたことや学んだことをまとめてみました。
非構造化データは取り扱いにAIが絡むことが多いため、現在はAIエンジニアが加工のための全工程を行うことが多いのですが、一連の流れの中で動きが少ない静的な箇所はデータエンジニアが、動きが多い動的な箇所はAIエンジニアが担当する、といった役割分担が出来ると品質や精度がより向上するんじゃないかと思います。
非構造化データの活用についてはこれからますます活発になっていくと思います。きっと様々なアイデアやテクニックが色々なところで生まれていくと考えられ、それらを追っていくことが今からとても楽しみです!