■ はじめに
現在、LLMの活用において専門的な分野に対応したRAG (Retrieval Augmented Generation):検索拡張生成 が話題となっている状況だと思います。よくファインチューニングと比較されますが、追加学習の必要性がない・コストもかからない・更新も楽なことからLLM回答精度を向上させることできる点で、着目されております。
・RAGとファインチューニングの比較解説記事
今年に、マルチモーダルGPT4Vが登場したことから、以前はテキストベースのみで適用されていたRAGについてもマルチモーダルへの適用化が求められているため、その情報を収集したものを簡単ですがまとめました。
■ RAG : Retrieval Augmented Generation
RAG自体についてはこちらの解説などがわかりやすいので参考まで。
■ マルチモーダルRAGについて
これまでテキストのみの情報であれば、RAGに組み込む際にベクトルDBとして情報を保存します。これが異なるデータ(画像、テキスト、テーブル)の場合にどのように統合して保存するかがポイントのようです。既に色々な情報があるようで、それぞれの解説ページを参照して頂ければと思います。
① Multivector Retrieverを使ったPDFの画像まで含めた検索システム実装
② 別解説記事:上記と参照している大本は同じ
③ LangChainのテンプレート活用事例
・中身の解説はないがすぐに試せるコードがいくつかあるよう。こちらもPDF対象
④ LlamaIndex の マルチモーダルRAG
・Wikipediaからの画像・テキスト情報収集を行い、統合してベクトルDB化処理を行う。Jupiter codeもあり、動作確認とプロセスが理解しやすい内容でした。
- 動作するにあたって、pydanticのダウングレードが必要でした。
!pip install pydantic==1.10.9
・マルチモーダルRAGの解説記事
⑤ 他LlamaIndex の マルチモーダルRAG活用
■ その他 マルチモーダルLLMの活用調査
GPT4Vの限界挑戦・できること、できないことの調査内容の情報
マルチモーダルRAGを今後広げていく上でのヒント多数。座標情報やセグメントの弱い部分の補強の仕方などなど
🔳その他 画像ベクトル検索
・Computer Vision 使った 画像のベクトル化と検索の事例